IOT-DOC
Contents
Introduction
Il n'est plus d'objet technique aujourd'hui qui ne soit connecté.
Cela est vrai des ordinateurs et des smartphones qui seraient complètement inutiles sans connectivité. Cela commence à être vrai pour l'ensemble des objets techniques, qui contiennent presque tous des microcontrôleurs pouvant facilement profiter d'une connectique ne serait-ce que pour être mis à jour et évoluer.
Le grand chapitre de l'Internet des objets Internet of Things (IoT) est ouvert. Si les opérateurs de Télécom ont mis la main sur l'Internet mobile en faisant payer extrêmement cher le passage par leur infrastructure 3g, 4g ou 5g il n'est pas question de les laisser faire et de passer par eux pour l'IoT ou par d'autres opérateurs comme Sigfox™. C'est tout le sens du projet TnT [1] dans lequel nous ne pouvons que nous inscrire.
Définitions
On peut utiliser n'importe quelle couche réseau physique pour faire communiquer des dispositifs entre eux. Ethernet si l'on dispose d'un réseau câblé, le WiFi (802.11) si l'on dispose d'une couverture et de l'énergie, du GSM si l'on possède couverture, énergie et argent...
S'il s'agit d'interconnecter une grappe d'objets à proximité d'un système à grande connectivité, le Bluetooth (802.15.1) peut parfaitement convenir. De même, de nombreux petits circuits radio permettent d'interconnecter des systèmes à faible coût (433Mhz, XBee, etc.)
Il n'est pas toujours nécessaire de disposer d'une grande bande passante pour leurs communications. Si quelques ko/s suffissent, il existe des modules qui assurent ce débit sur de courtes (ZygBee) ou plus longues distances (LoRa) réclamant peut d'énergie, les protocoles qui les concerne appartiennent à la famille 802.15.4. Un groupe travaille sur la mise en réseau mesh de ces objets, ce qui nous intéresse beaucoup.
Si les cartes qui supportent un Linux embarqué offrent tout le confort nécessaire pour implémenter les protocoles (RPi,BBB etc). Il n'en est pas de même pour les petites cartes à microcontrôleurs si des micro systèmes d'exploitation n'étaient pas prévus pour l'IoT.
RIOT est l'exemple typique d'un tel système.
Une fois les liaisons établies, reste la raison pour laquelle on l'a établie, la transmission de messages ! Pour cela MQTT va devoir être implémenté... et fera l'objet d'un point à part.
Réalisations
2 Modules LoRA
Pour diminuer les difficultés nous partons de 2 modules d'AdaFruit RFM95 en 433Mhz sur circuits Feather 32U4 [2]. Peut-être aurait-il fallu acheter des modules en 868Mhz. Cette architecture a l’intérêt d’être parfaitement conçue pour un usage embarqué avec alimentation sur batterie Lipo et chargeur intégré.
[File:Feather_32U4.jpg]
Si la soudure des barrettes de connecteurs et de l'antenne de 16.5cm ne pose pas de problème. Il faut bien suivre les instructions d'Adafruit pour installer les librairies pour les composants de la famille Feather 32U4 et la librairie RadioHead [3].
Une fois cela fait je me suis empressé d'utiliser les sources d'AdaFruit pour réaliser un émetteur et un récepteur afin de tester la connectivité. (L'hybride RX_TX donné comme exemple dans la librairie ne marche pas out-of-the-box)
Le source de l'émetteur RFM95_TX
Le source du récepteur RFM95_RX
La communication entre mon atelier 2°me sous-sol et mon appartement 2°me étage fonctionne bien, il faudra tester sur de plus longues distances et dans d'autres environnements ;-)
2 modules at86rf230 pour RPi
Connexion de 2 cartes Atmel AT86RF233 de chez OpenLabs [4]
Je vais suivre pas à pas les articles de Linux Journal N°271, 272 et 273.
- Installons le bon kernel > 4.7
- Installons les bons outils wpan-tools
- Installons la carte [img[OpenLabs.jpg]]
- Configuration IPv6
Références
Retrouvez ici la liste des références qui accompagnent l’article « RIOT, le système d’exploitation libre pour l’Internet des objets » (p.45-57), publié dans Open Silicium n°18 (numéro de avril-mai-juin 2016) par Aline Hof :
- [1] Projet RIOT sur GitHub [5]
- [2] Raisons du choix de RIOT dans le projet Watr.li [6]
- [3] Protocole 6LowPAN [7]
- [4] Protocole RPL [8]
- [5] Protocole COAP [9]
- [6] Wiki RIOT [10]
- [7] Documentation de l’API RIOT [11]
- [8] Liste de cartes supportées par RIOT [12]
- [9] Contribuer à RIOT [13]
- [10] Liste des périphériques externes supportés [14]
- [11] I2C temp[15]
- [12] API I2C dans RIOT[16]
- [13] Doc de carte d’extension Atmel I/O1 Xplained pro [17]
- [14] Code P2P [18]
- [15] IEEE 802.15.4[19]
- [16] Code source de la section 4.2[20]
- [17] Code source de la section 4.3[21]
- [18] SparkFun Bluetooth Modem – BlueSMiRF Silver [22]
- [19] Adafruit Bluefruit LE UART Friend [23]
- [20] Code source de la section 4.4 [24]