Architecture Réseau
Nous présentons ici l’architecture réseau de la plateforme Smartsense. La plateforme est isolée dans un réseau privé. Un serveur fait l’interface entre ce réseau privé et celui de l’Irisa/Inria. Les utilisateurs peuvent accéder aux données depuis le réseau Irisa/Inria ou depuis internet.
Les Nœuds
Les différents éléments qui remontent des données sont:
- Les nœuds capteurs;
- Les nœuds Athemium;
- Les compteurs électriques (EcoCompteur et IPX800);
- Les prises de courant Cléode Zplugboost.
Les nœuds capteurs sont dédiés à la récolte des informations environnementales. Les nœuds Athemium sont dédiés à la récolte des informations de consommation électrique.
Les éléments qui mesurent la consommation électrique (Compteur électrique et prise Zplugboost) remontent leurs données aux nœuds Athemium. Sur la photos du dessus, 2 nœuds Athemium avec des récepteur radio pour les prises connectées. Chaque nœud traite les données de 25 prises Cléodes Zplugboost. Les données des compteurs sont aussi réparties entre les 2 nœuds. Les informations des compteurs sont remontées par Ethernet.
Les nœuds capteurs utilisent le même matériel que les nœuds Athemium. La solution logicielle développé par Athemium est pratiquement la même sur les 2 types de nœud. La différence se situe au niveau des données à récolter. Athemium utilise des plug-ins pour chaque type de données à traiter. Le nœud capteur utilise un plug-in pour les différents modules capteurs. Le nœud Athemium utilise un plug-in pour les prises connectées et un plug-in pour chaque type de compteur électrique. Quel que soit le nœud il y a toujours un client MQTT qui envoie les différentes données au serveur de gestion.
Les données des prises connectées sont reçues par radio (ZigBee). Les données des compteurs électriques sont reçues par Ethernet.
Les serveurs
La plateforme est constitué de 2 serveurs physique comme nous l’avons indiqué sur le schéma simplifié de l’architecture réseau.
- Serveur de gestion (Sgest);
- Serveur de base de données (Sbdd).
Pour simplifier l’explication nous avons réunis les deux serveurs sur le même schéma.
Quand un message MQTT arrive sur le serveur, il est traité par le brocker MQTT mosquitto. Ce message sera envoyé à la base de données (InfluxDB) via le plugin Telegraf. Nos données sont des séries temporelle. InfluxDB est une base de données spécialisée pour le traitements de ces séries. Il y a deux interfaces utilisateurs. Une interface web développé par Athemium, et une interface plus générale en utilisant un client MQTT classique.
Une interface web permet à l’utilisateur:
- D’exporter les données;
- De visualiser les données via Grafana;
- De visualiser les données via un client web MQTT.
Gestion des utilisateurs
Il y a une gestion des droits utilisateurs. Un utilisateur aura donc des droits sur certaines données. L’utilisateur peut avoir des restrictions sur:
- Les types de données (exemple : les données de température);
- Les zones géographiques des données (exemple : certaine salles du laboratoire);
- La période d’accès aux données (exemple : illimité, pendant un mois).
MQTT
Un message MQTT est constitué d’un sujet (topic) et d’un contenu (payload).
Le sujet possède une hiérarchie et est constitué de la façon suivante:
<event|commande>/(production|experimentation)/<site>/<secteur>/<sous-secteur>/<noeud>/<submodule>/<mesure>
Pour s’abonner à un sujet il est possible d’utiliser des jokers :
- ‘+’ remplace un élément de la hiérarchie;
- ‘#’ correspond à tous les éléments restant de la hiérarchie, il ne peut être utilisé qu’en dernier.
Exemples :
- «event/production/Lannion/+/+/MAC-F0_79_59_16_48_A7/#» permet de s’abonner à tous
les capteurs d’un noeuds ayant l’adresse MAC F0:79:59:16:48:A7. - «event/production/Lannion/labo/+/+/+/temperature» permet de s’abonner a tous les
capteurs de température de labo.