« AirTregor » : différence entre les versions
Aucun résumé des modifications |
(→LoRa) |
||
(17 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 9 : | Ligne 9 : | ||
* la création d'objets connectés, autonomes en énergie, connectés au réseau LoRa | * la création d'objets connectés, autonomes en énergie, connectés au réseau LoRa | ||
* la collecte des données et la réalisation d'une carte | * la collecte des données et la réalisation d'une carte | ||
= L'objet connecté = | = L'objet connecté = | ||
Ligne 29 : | Ligne 27 : | ||
Il faut câbler le 5V et la masse sur le TTGO | Il faut câbler le 5V et la masse sur le TTGO | ||
Rx | Rx port 12 | ||
Tx port 35 | |||
[[File:TTGODust.jpg|200px]] | [[File:TTGODust.jpg|200px]] | ||
Ligne 38 : | Ligne 38 : | ||
On utilisera la librairie [https://github.com/ricki-z/SDS011 SDS011] | On utilisera la librairie [https://github.com/ricki-z/SDS011 SDS011] | ||
Bien vérifier que Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/lmic_project_config.h est sur la bande 868 : | |||
<code> | |||
// project-specific definitions | |||
#define CFG_eu868 1 | |||
//#define CFG_us915 1 | |||
//#define CFG_au915 1 | |||
//#define CFG_as923 1 | |||
// #define LMIC_COUNTRY_CODE LMIC_COUNTRY_CODE_JP /* for as923-JP */ | |||
//#define CFG_kr920 1 | |||
//#define CFG_in866 1 | |||
#define CFG_sx1276_radio 1 | |||
//#define LMIC_USE_INTERRUPTS | |||
</code> | |||
le PB https://github.com/mcci-catena/arduino-lmic/issues/585 a été rencontré | |||
=Énergie= | =Énergie= | ||
Ligne 81 : | Ligne 98 : | ||
* thinkspeak (comme Thierry) | * thinkspeak (comme Thierry) | ||
* Exemple de boite de visualisation : https://wikifab.org/wiki/Labo%C3%AEte_-_affichage_de_la_qualit%C3%A9_de_l%27air | * Exemple de boite de visualisation : https://wikifab.org/wiki/Labo%C3%AEte_-_affichage_de_la_qualit%C3%A9_de_l%27air | ||
*[https://opensensemap.org/ OpenSenseMap] | |||
C'est une alternative qui propose une intégration directe à TTN : | |||
https://github.com/sensebox/ttn-osem-integration | |||
https://sensebox.github.io/books-v2/osem/ttn_integration.html | |||
https://gist.github.com/felixerdy/04f8ee955a4f5828be97eb981e5b2d27 | |||
https://www.thethingsnetwork.org/community/rhein-sieg/post/senseboxhome-mit-lora-im-v3-stack-wir-haben-den-payload-decoder-fertig | |||
=API= | |||
==Émission== | |||
Le format emis par TTNv3 peut être : | |||
{"end_device_ids": | |||
{"device_id":"air-tregor-3","application_ids":{"application_id":"air-tregor"},"dev_eui":"70B3D57ED0045F7E","join_eui":"0000000000000000","dev_addr":"260B3B8E"} | |||
{"session_key_id":"AYCQilMb9Y4aEanQGG9LUA==","f_port":1,"f_cnt":4,"frm_payload":"CgB8DNAI",'''"decoded_payload":{"PM10":319.6,"PM25":225.6,"bytes":[10,0,124,12,208,8],"pax":10,"port":1,"wifi":10}''',","network_ids":{"net_id":"000013","tenant_id":"ttn","cluster_id":"eu1","cluster_address":"eu1.cloud.thethings.network"}}} | |||
==Réception== | |||
Example POST for SDS011: | |||
header | |||
Content-Type: application/json | |||
X-Pin: 1 | |||
X-Sensor: TTN-12345678 | |||
Data | |||
{ | |||
"software_version": "your_version", | |||
"sensordatavalues":[ | |||
{"value_type":"P1","value":"66.04"}, | |||
{"value_type":"P2","value":"53.32"} | |||
] | |||
} | |||
= Références = | = Références = | ||
Ligne 93 : | Ligne 149 : | ||
==Réalisations== | ==Réalisations== | ||
===Ateliers=== | ===Ateliers=== | ||
* https://www.wiki.lesfabriquesduponant.net/index.php?title=Cat%C3%A9gorie:Penn_Avel | |||
* http://lesfabriquesduponant.net/index.php?article121/atelier-capteurs-de-qualite-de-lair | * http://lesfabriquesduponant.net/index.php?article121/atelier-capteurs-de-qualite-de-lair | ||
* http://www.wiki-rennes.fr/Les_capteurs_Ambassad%27Air | * http://www.wiki-rennes.fr/Les_capteurs_Ambassad%27Air | ||
Ligne 103 : | Ligne 160 : | ||
===LoRa=== | ===LoRa=== | ||
* https://gerritniezen.com/designing-an-open-source-air-quality-monitor-and-building-a-community-sensor | |||
* https://revspace.nl/LoraWanDustSensor | * https://revspace.nl/LoraWanDustSensor | ||
* https://www.thethingsnetwork.org/forum/t/connection-from-ttn-node-to-luftdaten-api/33073/2 | * https://www.thethingsnetwork.org/forum/t/connection-from-ttn-node-to-luftdaten-api/33073/2 | ||
Ligne 119 : | Ligne 177 : | ||
* https://github.com/tribp/Lora_TTN_AWS_Luftdaten | * https://github.com/tribp/Lora_TTN_AWS_Luftdaten | ||
* https://github.com/bertrik/LoraLuftdatenForwarder | * https://github.com/bertrik/LoraLuftdatenForwarder | ||
* https://github.com/dasdigidings/Paxcounter-SDS011-Lora-Umweltsensor | |||
* https://devices.sensor.community/sensors | |||
* https://docs.sensebox.de/sensebox-home/home-erweiterung-lora/ | |||
* https://opensensemap.org/ | |||
[[Category:LoRa]] | [[Category:LoRa]] | ||
[[Category:Projet]] | [[Category:Projet]] |
Version actuelle datée du 1 novembre 2022 à 17:53
Introduction
Le Fablab de Lannion a investi dans quelques antennes LoRa ces dernières années. Pour le moment ce réseau est assez peu utilisé, d'où le souhait de créer un projet fédérateur pour valoriser ce réseau.
Le but serait de créer un réseau de capteurs autonomes mesurant la qualité de l'air et permettant de tracer une carte en temps réel sur le territoire.
Cela nécessite
- la création d'objets connectés, autonomes en énergie, connectés au réseau LoRa
- la collecte des données et la réalisation d'une carte
L'objet connecté
Notre secrétaire préféré a déjà réalisé un objet similaire (ESP connecté en Wifi) en mesurant la qualité de l'air au dessus de Pleumeur-Bodou. Son capteur est autonome avec une batterie et un panneau solaire.
Shopping List
- ESP: LiLYGO@TTGO LoRa32 ~ 15€. Attention à la consommation en veille de ce module. Si trop importante, la batterie ne suffira pas ! Je peux en tester un si besoin.
- Capteur: SDS-011 ~ 15€
- Batterie capacité? 6000mAh ~ 10€. La capacité de la batterie fait la différence en cas de mauvais temps. En utilisant du WiFi (plus gourmand que LoRa) avec une batterie 10 000 mA, cela tient 1 semaine environ sans soleil. Avec LoRa, 6000mAh semblent OK.
- Panneau Taille/Capacité : les panneaux solaires bas coût (j'ai essayé un premier prix ali express) ne donnent pas satisfaction. Pour obtenir une charge réelle même avec des conditions d'ensoleillement moyennes, j'ai opté pour un panneau 12V-10W. Un panneau 6V me semble un peu juste, il faut vraiment du plein soleil pour y arriver. Ce panneau m'a coûté 18€ chez Amazon.
- Module convertisseur de tension. L'ESP fonctionne en 3V et la carte ne fournit pas de 5V quand alimenté par batterie. J'ai utilisé un bouclier WeMOS charge batterie pour environ 1€.
Coût électronique 45€-50€
Câblage
Il faut câbler le 5V et la masse sur le TTGO
Rx port 12
Tx port 35
La partie Arduino
Le code pour l'ESP doit collecter les informations et les transmettre via le réseau LoRa.
On utilisera la librairie SDS011
Bien vérifier que Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/lmic_project_config.h est sur la bande 868 :
// project-specific definitions
#define CFG_eu868 1
//#define CFG_us915 1
//#define CFG_au915 1
//#define CFG_as923 1
// #define LMIC_COUNTRY_CODE LMIC_COUNTRY_CODE_JP /* for as923-JP */
//#define CFG_kr920 1
//#define CFG_in866 1
#define CFG_sx1276_radio 1
//#define LMIC_USE_INTERRUPTS
le PB https://github.com/mcci-catena/arduino-lmic/issues/585 a été rencontré
Énergie
Fonctionnement
La consommation de l'ensemble est la somme des consommations de :
- WemosTTGO : 70mA
- CapteurAir : 70mA ±10mA
Sommeil
- WemosTTGO : quelqes mA
- CapteurAir : 4mA (Laser et ventilo en sleep)
La carterisation
L'objet doit résister à la pluie et au soleil.
Rennes a fait une boîte en bois, on pourrait peut être utiliser la thermoformeuse...
J'ai utilisé une boite en PLA que j'ai mis dans un capot en plexiglas découpé laser. Je voulais utiliser la thermoplieuse, mais le fil chaud n'était plus dispo...
J'ai choisi une orientation du panneau à 60° qui doit donner le maximum de charge en hiver. C'est loin d'être le mieux sur l'année, mais la batterie ne tient pas 6 mois... La boîte doit évidemment être orientée plein SUD
Il doit être facilement installable en hauteur.
Exemple de boitier réalisé par Thierry
Le réseau LoRa
Tangi a réalisé plusieurs objets connectés sur notre réseau LoRa TTN Lannion.
La cartographie
- Sensor Community ex Lufdaten :
Sensor.Community est un réseau global de détecteurs mis en œuvre par des contributeurs bénévoles pour créer des données environnementales. Notre mission est d'inspirer et d'enrichir la vie de nos concitoyens en mettant à disposition une plateforme favoriant la curiosité pour la nature de manière authentique, joyeuse et positive.
- médiation TTN / LuftDaten https://www.thethingsnetwork.org/forum/t/connection-from-ttn-node-to-luftdaten-api/33073/2)
- thinkspeak (comme Thierry)
- Exemple de boite de visualisation : https://wikifab.org/wiki/Labo%C3%AEte_-_affichage_de_la_qualit%C3%A9_de_l%27air
C'est une alternative qui propose une intégration directe à TTN :
https://github.com/sensebox/ttn-osem-integration
https://sensebox.github.io/books-v2/osem/ttn_integration.html
https://gist.github.com/felixerdy/04f8ee955a4f5828be97eb981e5b2d27
API
Émission
Le format emis par TTNv3 peut être :
{"end_device_ids": {"device_id":"air-tregor-3","application_ids":{"application_id":"air-tregor"},"dev_eui":"70B3D57ED0045F7E","join_eui":"0000000000000000","dev_addr":"260B3B8E"} {"session_key_id":"AYCQilMb9Y4aEanQGG9LUA==","f_port":1,"f_cnt":4,"frm_payload":"CgB8DNAI","decoded_payload":{"PM10":319.6,"PM25":225.6,"bytes":[10,0,124,12,208,8],"pax":10,"port":1,"wifi":10},","network_ids":{"net_id":"000013","tenant_id":"ttn","cluster_id":"eu1","cluster_address":"eu1.cloud.thethings.network"}}}
Réception
Example POST for SDS011: header
Content-Type: application/json
X-Pin: 1
X-Sensor: TTN-12345678
Data
{
"software_version": "your_version", "sensordatavalues":[ {"value_type":"P1","value":"66.04"}, {"value_type":"P2","value":"53.32"} ]
}
Références
Internes
- http://forum.fablab-lannion.org/viewtopic.php?f=2&t=1018&p=5527#p5527
- https://gitlab.com/fablab-lannion/air-tregor
- https://www.youtube.com/watch?v=BTXxVsOBZ1Y
- Cartes_TTGO
- Présentation au Summit 4 Good : File:Fablab summit for good2.pdf
- Article Télégramme
Réalisations
Ateliers
- https://www.wiki.lesfabriquesduponant.net/index.php?title=Cat%C3%A9gorie:Penn_Avel
- http://lesfabriquesduponant.net/index.php?article121/atelier-capteurs-de-qualite-de-lair
- http://www.wiki-rennes.fr/Les_capteurs_Ambassad%27Air
- http://www.wiki-rennes.fr/Monter_son_capteur_Luftdaten
- http://www.wiki-rennes.fr/Station_de_qualit%C3%A9_de_l%27air_LoRa
- https://www.osons-a-stmalo.com/YADUSMOG/toWiki/index.html
- http://www.wiki-rennes.fr/Organiser_un_atelier_de_montage_de_capteur_Sensor_Community
- http://www.bretagne-creative.net/article18117.html
- http://www.labfab.fr/atelier-capteurs-environnementaux-en-distanciel/
LoRa
- https://gerritniezen.com/designing-an-open-source-air-quality-monitor-and-building-a-community-sensor
- https://revspace.nl/LoraWanDustSensor
- https://www.thethingsnetwork.org/forum/t/connection-from-ttn-node-to-luftdaten-api/33073/2
- https://www.thethingsnetwork.org/forum/t/air-quality-sensor-for-pm2-5-and-pm10/2910/37
- https://quo.vadis.stojkovic.ch/air-pollution-monitor/
- https://github.com/corbo/TTN_Enschede_SDS011_Node
- https://aqicn.org/sensor/sds011/fr/
- https://www.gotronic.fr/art-capteur-de-qualite-de-l-air-sds011-27929.htm
- https://www.thethingsnetwork.org/labs/story/reporting-pm25-pm10-micro-particle-dust-sensor-by-using-arduino-and-lorawan-atim-acw-duino-shield
- https://dev.to/minkovsky/working-on-my-iot-air-quality-monitoring-setup-40a5
- https://deohs.washington.edu/hsm-blog/heat-fire-smoke-and-health-washingtons-ag-industry