This repository has been archived by the owner on Feb 18, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 58
Use Case IoT Cloud
Pascal Bach edited this page Apr 6, 2015
·
2 revisions
This use case describes an IoT system that connects devices at a users location with a an application running in the cloud.
+------------+
| |
| ControlApp | Out of band URI
| (UI) + - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
| | |
+------+-----+
| |
|
|WebSocket +--------------+
| 802.15.4 | |
+------+---------+ +------+ Device A |
| | +----------------+ | | |
| Global Router | TCP/IP | | | +--------------+
| (well-known) +---------------+ Local Router +------+
| | | | | +--------------+
+----------------+ +----------------+ | | |
+------+ Device B |
| |
+--------------+
The use case involves the following participants.
- ControlApp (UI) : This is the main interface for the user. He is able to control all his devices. The ControlApp has it's own hashname and is under the control of the user and runs on his smartphone.
- Global Router : This is a "global" router that is well known to all participants. ControlApps will connect to this router to find associated devices. Given by their URI.
- Local Router : The local router is installed at the users location and is responsible for connecting the local 802.15.4 network to the internet. It has a path to the global router via TCP and acts as default router for all locale 802.15.4 devices.
- Device X : Devices are small low power micro-controllers that are able to receive commands from the ControlApp and also send data back to the ControlApp. Devices are in sleep mode some of the time and are only periodically able to receive data.
A general connection setup looks like this.
- The user initializes the ControlApp. It generates a hashname and connect to the global router.
- The user sets-up a local router and connects it via the global router to the ControlApp.
- The user installs a device at his location
- 3a. The Local router is discoverable to the device
- 3b. The Device generates an URI based on the routers url and shares it via NFC
- The user scans the NFC with the ControlApp and with this binds the device to the ControlApp
- The ControlApp is now able to send data to the device via the Global -> Local Router to the device.
The following are the main challenges in this scenario
- Devices can be offline some of the time
- There is always one or two routers involved as the ControlApp is not able to send data directly to the Device (TCP vs 802.15.4)
- The Local Router might be behind a NAT firewall and not be reachable from outside