the fabryq iot prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • widespread...
TRANSCRIPT
![Page 1: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/1.jpg)
The fabryq IoT prototyping platform
Will McGrath PhD Student
Advised by Björn Hartmann
![Page 2: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/2.jpg)
Motivation
![Page 3: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/3.jpg)
Fitness Tracker
![Page 4: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/4.jpg)
Embedded Gateway Cloud • Embedded – Low Power device with sensors – Short range wireless
• Gateway – Bridge between short and long range
• Cloud – Access over Internet – Stores, aggregates, and provides data
![Page 5: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/5.jpg)
Challenges • Writing code in several languages (Server,
Mobile, Web, etc.) • Dealing with networking asynchronicity • Hard to quickly prototype or iterate ideas
![Page 6: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/6.jpg)
fabryq • Platform to allow rapid prototyping of
applications for new low-power connected devices
• Allows JavaScript web apps to communicate with smart devices via Bluetooth Low Energy (BLE)
![Page 7: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/7.jpg)
Bluetooth Low Energy • Low power short-range
protocol • Widespread support • Growing number of devices
![Page 8: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/8.jpg)
BLE Basics • Variables arranged in a table
(GATT) • Organized by services and
characteristics • Accessed using commands – SET (Write) – GET (Read) – NOTIFY (Read on change)
• “Star” network topology
![Page 9: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/9.jpg)
App Development • BLE devices and
apps must be registered with fabryq before use
• Applications specify necessary devices
![Page 10: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/10.jpg)
App Development
Run Applicationin web browser or
on phone
Define application!What kind of devices?
B DRegister devices!by demonstration
A
Write Fabryq.js Code
C
![Page 11: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/11.jpg)
Example Application
![Page 12: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/12.jpg)
Example Application
![Page 13: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/13.jpg)
Overview
fabryq Gateway
BLE
BLE Devices
fabryq
fabryq API
fabryq Server
TCP/IP
fabryq-‐enabled app
![Page 14: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/14.jpg)
Fabryq - Commands
fabryq-‐enabled app
fabryq Gateway
fabryq API
fabryq Server
BLE
TCP/IP
BLE Devices
fabryq Get HR HR = 70
![Page 15: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/15.jpg)
Gateway • Hardware that enables a device to act
as a bridge between BLE and the Internet
• Fabryq currently supports iOS and OSX gateways
![Page 16: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/16.jpg)
fabryq Gateway Features • Allows users to manage associated devices • Display custom user interfaces
![Page 17: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/17.jpg)
Gateway Challenges • Backgrounding • Device identification/management • Power usage tradeoff
![Page 18: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/18.jpg)
Server • Stores, aggregates, and provides data • Supports long-running apps (Agent) • Manages – Commands – Users – Devices
• Scaling can be challenging
![Page 19: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/19.jpg)
fabryq API Goals • Make getting data as simple as possible • Allow for flexibility in program structure • Permit long running applications
![Page 20: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/20.jpg)
fabryq API Implementation • Protocol proxy (GET, SET, NOTIFY) • Receiving events – Command completion – System / error conditions
• Spawning agents
![Page 21: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/21.jpg)
Sporadic vs Continuous • Two types of supported applications – Sporadic – Infrequent usage and
communication with device (i.e. light control) – Continuous monitoring – Application logic is
constantly running waiting to act on events (i.e. security system)
![Page 22: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/22.jpg)
Feature Breakdown • Sporadic – UI on gateway or Web
• Continuous – Client UI launches/controlls agent application
running constantly in cloud – Agent can push notifications to user
![Page 23: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/23.jpg)
Event Handling • Tree-shaped event
and error handling structure
• Supports both callback-based and Swing-like handling
![Page 24: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/24.jpg)
ID aliasing • Hex parsing for
known devices • Extensible json
format
![Page 25: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/25.jpg)
Agents • Agent support for long-running applications
Client ApplicaAon
Agent ApplicaAon
startAgent messages
commands
![Page 26: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/26.jpg)
Evaluations • ufabryq hackathon • Lightning hack sessions • Class prototype
![Page 27: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/27.jpg)
Example Apps
![Page 28: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/28.jpg)
Home Monitor • Easy to stream data
(~1s latency) • Creating the rest of
app is time-consuming
![Page 29: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/29.jpg)
μfabryq • All JavaScript
hardware prototyping
• Based on BLE113 • Arduino-like
Javascript commmands
![Page 30: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/30.jpg)
μfabryq • Access to – GPIO – ADC – PWM – Interrupts
• Limited by latency and hardware
![Page 31: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/31.jpg)
Page Served Indicator • Easy to get running • Easy to integrate
with existing services (JavaScript or REST)
![Page 32: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/32.jpg)
StepSense • Easy integration into
new prototypes • Makes it simple to
develop web applications for prototypes
![Page 33: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/33.jpg)
Current Limitations • Low latency not
guaranteed • Rigid configuration • iOS limitations – Backgrounding – Identification
![Page 34: The fabryq IoT prototyping platformiot.stanford.edu/seminar/sitp-w15-mcgrath.pdf · • Widespread support • Growing number of devices. BLE Basics • Variables arranged in a table](https://reader034.vdocuments.site/reader034/viewer/2022050106/5f4402315944922176509b53/html5/thumbnails/34.jpg)
Future Work • More gateway support • Persistent connections • Firmware integration / remote updates • Longer-term studies