Un guide du monde du matériel et des protocoles dans le dépôt awesome-iot
Le développement IoT ressemble souvent à une marche dans le brouillard. Des dizaines de fabricants proposent du matériel. Les protocoles de communication se multiplient chaque année. Ajoutez à cela le choix entre MicroPython, Rust et C++, et votre tête commence à tourner même au stade de la conception. Je me souviens avoir passé deux soirées à essayer de comprendre en quoi CoAP différait de MQTT et ce qui fonctionnerait sur un microcontrôleur lorsque je construisais mon premier tableau de bord de capteur de température.
Le dépôt awesome-iot maintenu par Khallim Carroum aide à gagner du temps. Il s'agit d'une collection bien structurée de plateformes matérielles, de systèmes d'exploitation, de langages de programmation et de protocoles réseau.
Le projet a recueilli plus de quatre mille étoiles sur GitHub. Explorons les ressources intéressantes disponibles ici et comment exploiter cette base de connaissances.
Ce que contient le catalogue
Comme toute liste Awesome, le projet se compose de liens avec de brèves descriptions. Les auteurs ont divisé toutes les ressources en cinq grandes sections :
- Matériel et ordinateurs monocartes
- Pile logicielle (systèmes d'exploitation, langages, frameworks et utilitaires)
- Protocoles réseau et normes de communication
- Alliances et groupes industriels
- Livres, articles et publications scientifiques
Cette structure vous aide à trouver rapidement le bon composant pour votre projet sans fouiller dans les moteurs de recherche.
Matériel et systèmes d'exploitation
Au-delà des cartes familières comme Raspberry Pi et Arduino, la collection comprend des solutions pour des tâches spécialisées.
Pour les capteurs simples avec Wi-Fi et Bluetooth, les puces ESP32 ou NodeMCU fonctionnent bien. Si vous avez besoin d'un mini ordinateur industriel avec une plage de fonctionnement de -25°C à +85°C, OLinuXino est utile. Pour travailler avec le bus CAN automobile, vous trouverez le projet AutoPi dans la liste.
La situation logicielle pour le matériel est similaire. Le catalogue comprend des systèmes d'exploitation temps réel :
- FreeRTOS et Zephyr Project pour les appareils avec des contraintes strictes en énergie et mémoire.
- Apache Mynewt avec un accent sur le Bluetooth Low Energy.
- OpenWrt et Raspbian pour les ordinateurs monocartes complets.
- NodeOS pour ceux qui veulent exécuter un système d'exploitation basé sur JavaScript.
Dans quoi écrire le code
Vous pouvez connecter le matériel à la logique pas seulement en C ou C++. La communauté a créé des adaptations de langages familiers pour les microcontrôleurs.
La collection propose MicroPython, ainsi que PikaPython, qui ne nécessite que 4 Ko de RAM. Pour les amateurs de typage strict, il y a TinyGo, qui peut compiler du code Go pour Arduino et BBC micro:bit. Si vous écrivez en Rust, vous trouverez également une riche base de bibliothèques. Les options exotiques comme AtomVM vous permettent d'exécuter Erlang et Elixir directement sur des microcontrôleurs.
Frameworks et transfert de données
Connecter un capteur à un serveur est une tâche distincte. Le catalogue sépare clairement les couches de transfert de données.
Les technologies physiques et réseau incluent LoRaWAN, NB-IoT, ZigBee et Thread. Au niveau application, MQTT, CoAP et STOMP sont représentés.
Pour le traitement des données côté appareil ou serveur, la liste comprend des outils prêts à l'emploi :
- Home Assistant pour la domotique.
- Astarte pour gérer des flottes d'appareils Linux et ESP32.
- Eclipse Ditto pour créer des jumeaux numériques d'appareils physiques.
- ForestHub pour exécuter des modèles d'intelligence artificielle sur des appareils edge comme Jetson ou Raspberry Pi.
Parmi les brokers de messages, vous pouvez choisir NanoMQ léger pour fonctionner sur l'appareil lui-même ou EMQX et VerneMQ à haute capacité, capables de gérer des millions de connexions simultanées.
Qui trouvera cette liste utile
Le dépôt fonctionne comme une référence dans les situations où vous devez choisir une pile pour un nouveau projet.
Pour les développeurs de services web, il montre des points d'entrée dans le matériel à travers des langages familiers comme JavaScript ou Python. Pour les architectes, il simplifie la recherche du bon broker ou protocole de communication. Pour les ingénieurs débutants, la collection fournit une image complète de ce dont sont composés les systèmes IoT modernes.
Le projet est ouvert à la communauté. Si vous utilisez une bonne solution open source pour travailler avec le matériel, vous pouvez la suggérer via Pull Request.
Projets similaires