Système domotique low-cost : Raspberry Pi / MediaTek LinkIt + Azure – Architecture complète
Composants et fournitures
| Raspberry Pi 2 Model B (ou Orange Pi ~15 $) | ×1 |
| Module XBee (ou transceiver radio low-cost) | ×1 |
| Arduino UNO | ×1 |
Applications et services en ligne
- Microsoft Azure (stockage tables, Web Apps ASP.NET 5)
Architecture du système
Les capteurs (température, humidité, lumière, PIR, distance, GPS, gaz, humidité sol, microphone) transmettent leurs données par radio (XBee) au module MediaTek LinkIt. Celui-ci formate les données en JSON (structure normalisée avec deviceid, desired, timeutc, signedBy) et les poste via HTTP POST au serveur local (Raspberry/Orange Pi sous Node.js).
Rôle du serveur local (Node.js / Express)
- Réception des JSON POST depuis le LinkIt
- Ajout de l'horodatage UTC et signature (
signedBy: "orangepi") - Relai vers le cloud (Azure) via nouvelles requêtes POST vers les API ASP.NET 5
- Possibilité de filtrage, validation, conversion, analytics locale
Modélisation JSON (exemples)
{ "deviceid": "iot/myhome/livingroom/thermostat",
"desired": { "temperature": "24", "humidity": "80" },
"timeutc": "2015-11-23T00:41:48.824Z",
"signedBy": "localserver" }
Chaque type de capteur a son endpoint dédié sur le serveur local (/iot/myhome/livingroom/thermostat, /iot/myhome/livingroom/pir, etc.) qui forward vers l'API Azure correspondante.
Côté MediaTek LinkIt (C++ / Arduino)
Le sketch MediaTekRx.ino (fourni) simule des lectures capteurs (valeurs aléatoires) et les poste cycliquement au serveur local. Il gère la reconnexion Wi-Fi et HTTP, et attend les réponses du serveur avec timeout.
Serveur local (Node.js – index.js)
Routes Express POST pour chaque endpoint, ajout de timeutc et signedby, puis request vers l'API Azure (URL à configurer).
API Cloud (ASP.NET 5 / C# – Controllers)
Chaque contrôleur (ThermoStatController, PIRController, MoistureController, etc.) hérite de IoTController, reçoit le JSON, crée une entité Azure Table Storage (PartitionKey = type capteur, RowKey = GUID), et insère la ligne. La classe Desired typée selon le capteur.
Conclusion
Architecture modulaire, extensible, démontrant qu'un serveur local à 15 $ peut prétraiter les données IoT avant envoi cloud. Code source complet (LinkIt, Node.js, ASP.NET 5) sur GitHub : syediddi/iot-mediatek-linkIt.
Schémas
Schéma de transmission radio depuis Arduino (avec/sans shield XBee).
Processus de fabrication
- Données intelligentes : naviguer la prochaine frontière de l'IoT et du Big Data
- Construire un contrôleur domotique 433 MHz avec Sensorflare et Raspberry Pi
- Construire un système domotique piloté par Raspberry Pi pour contrôle à distance
- Barman intelligent : Construisez votre propre station de cocktails alimentée par Raspberry Pi
- Hôpitaux intelligents de demain : Le rôle critique des logiciels intelligents
- Combler le fossé des compétences smart home : pourquoi la Grande-Bretagne traîne l'Europe
- Comment l'interconnectivité pilote efficacité, sécurité et durabilité dans les lieux de travail modernes
- Évolution maison intelligente : ce que l'avenir réserve pour le connected living
- Usines intelligentes : de la vision à la réalité — pourquoi la plupart des entreprises UK manquent encore la cible