The Microsoft Hackathon found us this year tinkering with some IoT-related technologies. Bernd, Bence, Balázs and me also tried to evaluate the reality of the commercially available iOT devices — and found a promising, but somewhat grim landscape.
We tried to bring to life the following four devices in different scenarios:
Samsung Artik 5
* 100 USD
* ARM Cortex A7x2 @ 1GHz
* 512MB LPDDR3 + 4GB eMMC
* WiFi, Bluetooth, Zigbee, Ethernet
* 45 USD
* Texas Instrument CC3200, Cortex-M4 @ 80MHz
* 256kb RAM + 2Mb Flash
Raspberry Pi 3
* 40 USD
* 1.2GHz 64-bit quad-core ARMv8 CPU
* 1GB RAM
* WiFi, Bluetooth, Bluetooth LE, Ethernet
* proper Linux and what not
* 30 USD
* Unknown memory
* Arduino® IDE, Blynk
The smoothest learning curve was definitely provided by the WiPy.
“When the WiPy boots with the default factory configuration starts in Access Point mode with ssid that starts with: wipy-wlan and key: www.wipy.io. Connect to this network and the WiPy will be reachable at 192.168.1.1. In order to gain access to the interactive prompt, open a telnet session to that IP address on the default port (23). You will be asked for credentials: login: micro and password: python.”
Connecting a sensor and typing the following lines in the prompt will give you instant gratification — and data.
> from machine import Pin, ADC
> import time
> adc = ADC()
> apin = adc.channel(pin=’GP4')
> while True:
Getting serious is still hard given the immaturity of the ecosystems:
- *khm* patchy documentation is everywhere as most devices are still works-in-progress,
- setup and discoverability is far from trivial, default settings raise serious security concerns— remember, even the Amazon Dash has to chirp home,
- talking securely to remote services is hard — the OAuth dance is very outlandish to iOT (you have to have an own, exposed IP, maybe be able to handle web callbacks, even HTTPS),
- there’s no de-facto communication model (push/pull, broadcast/poll) and developers are not even nudged in either direction with best practices,
- the current state of the union is that IoT devices have to be considered as ‘dumb’, local sensors and you need a bridge (at least a RasPi) to connect them to the outer world.