« AirTregor » : différence entre les versions

De Kernel Fablab Lannion
 
(23 versions intermédiaires par 3 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
Nous avons sollicité un financement des [https://cotesdarmor.fr/vos-services/construire-le-numerique-en-cotes-d-armor Côtes d'Armor] pour mener ce projet à bien.


= L'objet connecté =
= 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'aire au dessus de Pleumeur-Bodou.
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.
Son capteur est autonome avec une batterie et un panneau solaire.


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 et Tx sur les ports 22 et 23
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=
==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 =
= La carterisation =
Ligne 66 : 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 74 : Ligne 145 :
* [[Cartes_TTGO]]
* [[Cartes_TTGO]]
* Présentation au [https://summit4good.timebankpro.com/ Summit 4 Good] : [[:File:Fablab summit for good2.pdf]]
* Présentation au [https://summit4good.timebankpro.com/ Summit 4 Good] : [[:File:Fablab summit for good2.pdf]]
* [https://www.letelegramme.fr/cotes-darmor/begard/a-begard-un-premier-prix-de-l-innovation-numerique-pour-infothema-16-11-2020-12657371.php Article Télégramme]


==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 84 : Ligne 157 :
* http://www.wiki-rennes.fr/Organiser_un_atelier_de_montage_de_capteur_Sensor_Community
* http://www.wiki-rennes.fr/Organiser_un_atelier_de_montage_de_capteur_Sensor_Community
* http://www.bretagne-creative.net/article18117.html
* http://www.bretagne-creative.net/article18117.html
* http://www.labfab.fr/atelier-capteurs-environnementaux-en-distanciel/


===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 101 : Ligne 176 :
===code===
===code===
* https://github.com/tribp/Lora_TTN_AWS_Luftdaten
* https://github.com/tribp/Lora_TTN_AWS_Luftdaten
* 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]]

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

TTGODust.jpg

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 ThierryCapteurExt1.JPG


Le réseau LoRa

Tangi a réalisé plusieurs objets connectés sur notre réseau LoRa TTN Lannion.


La cartographie

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.

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

Internes

Réalisations

Ateliers

LoRa

code