Please provide the following:
- SDK Version: lastest 38
- Platforms(Android/iOS/web/all):Android/iOS
Hi there,
I develop low cost educational IoT Things (with Bluetooth LE, WIFI, Ethernet connectivity, NFC).
Frankly speaking these things run bare metal (no Linux), have limited memory footprint(flash <=1MB, RAM <=256KB), CPU frequency of 80-120MHz… The software stacks mostly support lightweight IoT communication protocols like MQTT, TLS for Security, raw TCP/UDP client/server sockets, ZeroConf… but in most cases they do not expose REST API endpoints to talk to an app through HTTP(s).
The basic workflow to add an IoT thing to a home Wifi/Ethernet or BLE network is the folllowing:
- Thing Discovery Process
- Wifi/Ethernet enabled things → TCP/UDP with TLS/DTLS Service to discover IP based devices on the network
*BLE enabled device → provisining API is part of the BLE protocol
- Thing Provisioning (Credentials like Wifi SSID, Passphrase, Tokens, x509 auth.,…)
- Wifi/Ethernet devicses → TCP/UDP with TLS/DTLS Service or m-DNS to discover IP based devices on the local area network
- Near-Field-Communication (NFC) enabled things → tap the mobile on the things and load e.g. Wifi credentials onto the thing
*BLE enabled device → provisining API is part of the BLE protocol
- Things telemetry data exchange with App
To streamline this workflow for IoT things with Expo it requires to support few React native plug-ins in Expo:
Prio1: TCP/UDP with TLS/DTLS support using x509 certificates: react-native-udp (would be a good starting point), react-native-tcp
Prio1: NFC: react-native-nfc-manager
Prio2: BLE: react-native-ble-plx
When Expo will support these plug-ins by default? I am pretty sure that would facilitate the integration of low cost IoT Things with Expo and accelerate the adpoption of IoT Device manufacturers.
Greetings,
JP