Ceci est une ancienne révision du document !
Table des matières
Les Capteurs de LaPerco
Pour le projet LaPerCo, nous allons concevoir des capteurs environnementaux. Ces capteurs produiront des données publiques accessibles sur Internet. Ce genre de materiel est ce que l'on appel l'Internet des Objets : IoT. Le but est de faire découvrir et démistifier ce genre d'objets. Nous resterons critique quand à leur utilité.
Présentation du projet
Le projet LaPerCo nous donne l'opportunité d'installer des capteurs dans l'environnement urbain. C'est une bonne opportunité de mettre le pied à l'étrier. Voici une présentation de ce que voulons nous mettre en place.
Découpage du chantier en modules techniques
Des capteurs sur les quai de Loire
Le projet LaPerCo installe des bacs de plantations sur les quai de Loire. L'un de ces bacs accueillera donc divers capteurs électronique cf mesurer_quelles_metriques. Il y a plusieurs défis à résoudre :
- Construire un dispositif de captation des gradeurs physiques
- Utiliser divers capteurs électronique et les comparer
- Quelle alimentation électrique ?
- Limiter la consomation électrique du dispositif
- Protéger le dispositif des températures extrêmes et de l'humidité
- Réaliser des mesures fiables
C'est également l'opportunité de :
- Tester différents dispositifs et capteurs en conditions réelles dans l'environnement urbain
- Créer nos propres capteurs comme par exemple un “capteur de biofeedback”
- Sensibiliser le public sur les capteurs, calibrage, erreur de mesure, incertitudes, …
L'émission des données numériques en direct par radio
Pour collecter les grandeurs physiques mesurées, nous faisons le choix de les transmettre par radio. Nous utilisons pour cela la technologie LoRa : un protocole de communication radio longue distance & low energy. Pour faire simple, c'est une sorte de WiFi qui nécessite peu d'énergie et qui peu émettre à très longue portée. En revanche, le débit de communication est très faible. C'est la technologie idéale pour les objets connectés autonome.
Nous avons déployé une passerelle LoRaWAN: un protocole réseau pour communiquer par radio avec les objets connectés. Cette passerelle permet aux objets connectés qui sont compatible de publier leur données directement sur internet. Notre passerelle est accessible librement et gratuitement à tous le voisinage et participe à l'adoption de ce genre de technologie. Le bas débit disponible ne permet pas de naviguer sur internet, mais permet aux objets d'envoyer et recevoir des données fréquement.
Notre ambition est donc de pouvoir construire des objets connectés autonomes qui peuvent communiquer avec internet, à bas débit, gratuitement, sans forfait téléphonique.
Il y a plusieurs défis à résoudre :
- Installer une ou plusieurs passerelle LoRaWAN dans l'environnement urbain
- Déployer éventuellement une infrastructure LoRaWAN
C'est également l'opportunité de :
- Participer à la couverture radio du territoire
- Sensibiliser le public à la présence des objets connectés dans leur environnement, leur miniaturisation, leur multiplication
Le stockage et la visualisation des données
Nous souhaitons que les données collectées soient accessibles à tous librement. Que chacun puissent les visualiser et les exploiter. Pour cela il nous faut les stocker durablement et disposer d'outils pour faciliter leur visualisation.
Il y a plusieurs défis à résoudre :
- Choisir et exploiter une base de données
- Choisir et installer des outils de visualisations
C'est également l'opportunité de :
- Proposer au public un espace de stockage de visualisation de leur données en dehors des habituels silo propriétaire
- Sensibiliser le public sur la collecte et l'exploitation des données, l'accessibilité des données
Mesurer quelles métriques ?
Métriques pertinantes pour les bacs de Laperco
- Température de l'air
- Température de l'eau (bac aquaponique)
- Température du sol (à différentes profondeurs)
- Humidité de l'air
- Humidité du sol (à différentes profondeurs)
- Pression atmosphérique
- Luminosité
- Niveau de bruit
- Biofeedback
- Vitesse du vent
- Précipitations
- Tension des batteries / tensions d'alimentation
- Autres capteurs agricoles des sols ? Salinité, Oxygenation, Compaction, …
Métriques de pollution
Inspiration du projet opensense .
- Particules fines
- CO
- O3
- NO2
- NO
- SO2
- Volatile Organic Compound
- ???
Conception
Il y a quelques choix à effectuer pour concevoir les capteurs. Il y a également quelques problèmes à résoudre.
- Autonomie
- Robustesse en exterieur (humidité, froid, chaleur)
- Mobilier urbain (vol / dégradation) / Boitier / Confinement / Conditionnement
- Quels capteurs ? (théoriquement le CNRS nous fournis des Capteurs, néanmoins nous avons une demande d'un projet qui est intéréssé par des capteurs d'humidité
- Acquisition des données
- Transmission des données (éméteur/récépteur & client/serveur)
- Stockage des données
- Visualisation des données
Travaux réalisés
- Nous écartons Prometheus comme DB pour stoquer les données. Produit très bien pour stocker des métriques temporelles, mais impensable de stocker proprement des métriques géolocalisées.
- Test du protocol MQTT pour transmettre et recevoir des données ainsi que de l'implémentation du serveur VerneMQ.
- Réalisation d'un kit de mesure du signal LoRa (avec les 2 transceivers Lora achetés : Le modem LoRa E45-TTL-100).
Travaux en cours
- Recherche d'une base de données pour héberger des métriques localisés dans l'espace et le temps
- Test de grafana pour visualiser ces métriques localisés dans l'espace et le temps
- Etude des capacités des ESP32 à notre disposition : ESP32 devkit v1
- Etude détaillé du protocole LoRa : un protocole de communication radio longue distance & low energy
- Etude détaillé du protocole et de l'infrastructure LoRaWAN: un protocole réseau pour communiquer par radio avec les objets connectés
- Conception de la carte d'acquisition des capteurs.
MQTT
Travaux réalisés du coté de l'AMIPO .
- Installation du serveur VerneMQ
- Ecriture de 2 scripts de test rapide en python pour publier dans les files MQTT et poller les files. Pour le moment pas d'authentification utilisé.
- Ecriture d'un daemon en python pour poller les files MQTT avec un exporter prometheus python intégré.
Ressources
- PAHO une librairire python pour dialoguer avec un serveur MQTT : https://pypi.org/project/paho-mqtt
- Des explications sur le protocole MQTT : https://www.hivemq.com/blog/mqtt-essentials-part-1-introducing-mqtt/
- De la doc sur l'implementation VerneMQ : https://docs.vernemq.com/configuring-vernemq
- Des tutos pour la librairie python PAHO : http://www.steves-internet-guide.com/category/python-mqtt/
Acquisition
Nous commencons à réaliser que pour acquerir les données de plusieurs capteurs (peut etre plus de 10), il faudrait se pencher sur la conception d'une carte d'acquisition doté d'un mutliplexeur. Julien propose de construire tous les capteurs avec la fameuse “boucle de courant de 4 à 20 mA”. cf ici. Ainsi, tous les capteurs émetteraient en sortie d'un signal analogique similaire, que la carte d'acquisition pourra mesurer un par un de manière séquentielle.
Je propose d'alimenter également les capteurs avec la carte d'acquisition, et de commander cette alimentation avec des transistors. Ainsi, pour chaque “voie” de captation, un cable ruban 4 fils équipé d'un connecteur 4 broche permettrait d'alimenter et de réaliser les mesures d'un capteur. Il sera alors possible de pré-alumer des capteurs, de réaliser plusieurs mesures de suite avant d'éteindre un capteur pour économiser de l'energie. Un allumage du capteur par heure peut largement suffir. Chaque voie devrait etre alimenter avec la meme tension d'alimentation pour des raisons de simplicité, probablement 5V. Il devrait etre facile de proposer une tension alternative de 12V à l'aide d'un cavalier. Il faudrait prévoir de pouvoir commander l'alimentation simultané de tout ou partie des capteurs, afin de pouvoir lancer un “pré-chauffage” tandis qu'une mesure sur un autre capteur est en cours.
Le multiplexage analogique pourra etre fait facilement avec un multiplexeur. Néanmoins, il existe des Convertisseurs Analogiques Numériques multi-voies déjà équipés d'un multiplexeur.
Pour la mesure de chaque voie, on pourra régler :
- Une fréquence de mesure
- Un temp de chauffe du capteur
- Une courbe de transfert
- Un étalonnage
Boucle de courant 4 à 20 mA
Une convention pour formatter les données analogiques émises par les capteurs et pouvoir traiter les données de manière standardisée. Quesako ? cf ici
Une page dédiée : La boucle de courant 4 à 20 mA
Electronique
Je propose de commencer par réaliser quelques prototypes de modules que l'on pourra tester indépendament du reste :
- Un module d'acquisition analogique 4 voies.
- Quelques capteurs équipé d'une interface “boucle de courant 4 à 20mA”.
- Un module de transmission LORA.
- Un module de réception LORA qui puisse servir de Gateway vers l'Internet.
- Un module cerveau chargé de lancer les mésures, interpréter les données et les pousser sur l'Internet via MQTT.
- Tous les modules numériques adressables via I2C.
La construction modulaire permet d'affiner itérativement chaque module indépendament des autres. Ces modules pourront également être réutilisables pour d'autres projets.
LoRa / TTN
Nous avons choisi d'utiliser la technologie LoRa : un protocole de communication radio longue distance & low energy pour transmettre les données.
Materiel à notre disposition
- 1 Module LoRa “Chistera-Pi” basé sur le circuit LoRa Le modem LoRa RFM95
- 2 Modules Le modem LoRa E45-TTL-100
Materiel interessant
- Microchip RN2483 with serial interface and firmware-based LoRaWAN protocol
- RAK811 ou RAK811-N module
- RFM95W
Ressources
- Thread interessant causant LoRa + LoRaWAN + Materiel & compatibilités : https://forum.micropython.org/viewtopic.php?f=18&t=4196&start=10
Liste de courses
- Quelques ESP32 de dev. Je recommande un devkit de type lolin32 qui fit mieux sur une breadbord pour des ateliers et bricoler, et qui disposent de plus de pin. Moins de 8€ chez aliexpress avec de très faible consomation en courant en deepsleep mode et de quoi brancher une batterie rechargable. Idéale pour des projets versatiles et autonomes.
- Voir sinon quelques ESP32 avec écran OLED et module lora intégrés : doc sur github , pour moins de 15€ qui fit bien sur une breadboard et avec de quoi branché et recharger une batterie, cf sur aliexpress
- cf une super spreadsheet google de comparaison des ESP32 pour tous vos projets : ici .
- Des antennes à la bonne taille pour LoRa.
- Un amperemetre à branché sur port USB pour monitorer la consommation électrique. Un outil très utile pour mesurer l'autonomie d'un device autonome, du genre ça
- Des capteurs de temperature + humidité: DHT22 ou BME280 qui mesure également la pression atmospherique.
- Des capteurs de particule fine: SDS011
- Des modules LoRa de type “SX1262” ou “SX1261” ou “SX1272”.
Ateliers Capteurs
Nous souhaitons réaliser des “ateliers capteurs”. Dans un premier temps, ces ateliers auront pour but de faire découvrir les capteurs, leur technologie, leur fonctionnement. Ces ateliers seront propice à l'explication de la production et de l'exploitation des données, du data mining, mais également de leur caractère public ou privées. A nous de réussir à monter un atelier pouvant sensibiliser sur ces thèmes. Dans un second temps, nous proposerons des ateliers pour concevoir et réaliser les capteurs du projet LaPerCo.
Ateliers découverte des capteurs
Je propose de réaliser un ou plusieurs ateliers dans la veine des SITA que fait la Labomedia habituellement. C'est à dire un atelier pratique dans lequel est distiller du savoir théorique.
Je propose donc que par petits groupes, les “stagiaires” co-réalisent de petits dispositifs de captation électronique. Chaque groupe assemblerait un dispositif de captation de nature et de technologie différente. Une fois tous les dispositifs opérationnels, la production des données, et leur exploitation pourront faire l'objet de corrélation en directe. (Disposer d'un sèche cheveux pour la démo ?).
On peut donc imaginer qu'un groupe réalise un dispositif de captation de la température de l'air avec un arduino. C'est un dispositif plutot avancé avec de la programmation Arduino. Pendant ce temps là, un autre groupe pourrait réaliser un dispositif de captation de la luminosité avec un CAN intégré.
Idées de capteurs
- Un capteur de température de l'air
- Un capteur d'humidité de l'air
- Un capteur de luminosité
- Un capteur de biofeedback
- Un compte tour / anémomètre
- Un voltmètre
Variété technologique
- actif
- passif
- mesure de tension
- mesure de courant
- mesure de capacité
- mesure de resistance
- acquisition de données numérique serie.
Acquisition
- micro-controller
- CAN intégré
- CAN bricolé
Transmission ou affichage
- 1 dispositif unique pour afficher une donnée numerique ?
- 1 dispositif unique pour transmetre les données en usb/serie ?
- 1 dispositif unique pour transmetre les donnée via LORA ?
- le dispositif unique peut recueillir les données de plusieurs capteurs simultanément ?
Ateliers conception des capteurs
Il nous faudrait des retours du CNRS concernant les capteurs, mais nous pouvons travailler sur toute la chaine. A la fin, les technologie de capteurs auront des impacts sur le conditionnement et l'autonomie du dispositif.
Brainstorming Ateliers / Agenda
- Une réunion de séléction / achat des capteurs.
- Un atelier de construction / préfiguration des capteurs.
- Un atelier de manipulation des capteurs préfiguré durant lequel on liste les conditions d'utilisations de chaque capteur envisagé pour LaPerco et on fait des choix pour limiter le capteurs que l'on embarque une première version.
- Atelier construction / intégration des capteurs dans les bacs.
- Un atelier de présentation LoRA + LoRaWAN
- Un Atelier Amipo automatisation et poussage en production de la chaine MQTT + InfluxDB + Grafana