From 9b38346c118d583f49ddb7309cf3375fb39272b9 Mon Sep 17 00:00:00 2001
From: CARNEIRO--GILLET Alexandre
 <alexandre.carneiro-gillet@imt-atlantique.net>
Date: Tue, 20 May 2025 09:19:48 +0200
Subject: [PATCH] =?UTF-8?q?ajout=20code=20puml=20pour=20sch=C3=A9ma=20+=20?=
 =?UTF-8?q?modifs=20mineures=20main=20gw=20custom=20+=20ajouts=20biblio?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Autre/Pronto3_v2.bib            | 362 ++++++++++++++++++++++++++++++++
 GW-custom/LoRa_homemade/main.py |  11 +-
 GW-custom/schema.png            | Bin 0 -> 9269 bytes
 GW-custom/schema.puml           |  35 +++
 4 files changed, 404 insertions(+), 4 deletions(-)
 create mode 100644 Autre/Pronto3_v2.bib
 create mode 100644 GW-custom/schema.png
 create mode 100644 GW-custom/schema.puml

diff --git a/Autre/Pronto3_v2.bib b/Autre/Pronto3_v2.bib
new file mode 100644
index 0000000..d0cac0b
--- /dev/null
+++ b/Autre/Pronto3_v2.bib
@@ -0,0 +1,362 @@
+
+@online{noauthor_monter_nodate,
+	title = {Monter son capteur Sensor Community - {WikiRennes}},
+	url = {https://www.wiki-rennes.fr/Monter_son_capteur_Sensor_Community},
+	urldate = {2025-03-09},
+	file = {Monter son capteur Sensor Community - WikiRennes:C\:\\Users\\Acarn\\Zotero\\storage\\F357MSQR\\Monter_son_capteur_Sensor_Community.html:text/html},
+}
+
+@online{noauthor_projets_nodate,
+	title = {Projets de capteurs},
+	url = {https://docs.google.com/document/d/1eSX8Qj0tCwyIWlLmYeAOnDefFQXOgTDh5hKrkRq0wnA/edit?usp=drive_web&ouid=101875162182806736197&usp=embed_facebook},
+	abstract = {Projets de Capteurs  Capteur de température/Humidite : https://www.instructables.com/Temperature-Humidity-Sensor-With-{DHT}11-Sensor-and-/  De fumée : https://www.instructables.com/{ESP}32-Smoke-Detector-Project-With-{MQ}-2-Sensor/  Qualité de l’air : https://www.instructables.com/Air-Quality-{ESP}32-Bui...},
+	titleaddon = {Google Docs},
+	urldate = {2025-03-09},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\GPLX2S4A\\edit.html:text/html},
+}
+
+@online{noauthor_capteurs_nodate,
+	title = {Capteurs Sensor Community - {WikiRennes}},
+	url = {https://www.wiki-rennes.fr/Capteurs_Sensor_Community},
+	urldate = {2025-03-09},
+}
+
+@online{noauthor_ttn_nodate,
+	title = {{TTN} Coverage},
+	url = {https://ttnmapper.org/heatmap/},
+	urldate = {2025-03-09},
+	file = {TTN Coverage:C\:\\Users\\Acarn\\Zotero\\storage\\D2U547N7\\heatmap.html:text/html},
+}
+
+@online{noauthor_integration_2022,
+	title = {Intégration {TTN}},
+	url = {https://forum.sensor.community/t/integration-ttn/1248},
+	abstract = {I am trying to send data from {LoRaWAN} {TTN} to madavi and {SC}. I can do it in Helium.  Can Someone send me an example with Screenshots in {TTN}.  I don t understand how you do normal {POST} with the webhooks. Or must I Redirect?},
+	titleaddon = {Forum Sensor.Community},
+	urldate = {2025-03-09},
+	date = {2022-02-14},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\6HJAUMLD\\1248.html:text/html},
+}
+
+@online{noauthor_visual_nodate,
+	title = {Visual Paradigm Online},
+	url = {https://online.visual-paradigm.com/drive/#proj=0&dashboard},
+	urldate = {2025-03-09},
+	file = {Visual Paradigm Online:C\:\\Users\\Acarn\\Zotero\\storage\\2GKWHWC8\\drive.html:text/html},
+}
+
+@video{sylvain_montagny_tout_2022,
+	title = {Tout ce que vous devez savoir sur le {LoRaWAN} en 40 mins},
+	url = {https://www.youtube.com/watch?v=j0ONEdkOm28},
+	author = {{Sylvain Montagny}},
+	urldate = {2025-03-09},
+	date = {2022},
+}
+
+@software{montagny_sylvainmontagnylorae5_2025,
+	title = {{SylvainMontagny}/{LoRaE}5},
+	url = {https://github.com/SylvainMontagny/LoRaE5},
+	author = {Montagny, Sylvain},
+	urldate = {2025-03-09},
+	date = {2025-02-19},
+	note = {original-date: 2023-03-22T21:16:48Z},
+}
+
+@online{noauthor_lora-e5_nodate,
+	title = {{LoRa}-E5 {\textbar} Téléfab},
+	url = {https://telefab.fr/2023/12/06/lora-e5/},
+	urldate = {2025-03-09},
+	langid = {french},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\847YRPH6\\lora-e5.html:text/html},
+}
+
+@online{noauthor_communication_nodate,
+	title = {Communication peer to peer {LoRa}-E5 {\textbar} Arduino Leonardo {\textbar} Téléfab},
+	url = {https://telefab.fr/2024/09/26/communication-peer-to-peer-lora-e5-arduino-leonardo/},
+	urldate = {2025-03-09},
+	langid = {french},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\EX6LREWY\\communication-peer-to-peer-lora-e5-arduino-leonardo.html:text/html},
+}
+
+@online{noauthor_aller_nodate,
+	title = {Aller plus loin avec la {LoPy}4 {\textbar} Téléfab},
+	url = {https://telefab.fr/2021/10/04/aller-plus-loin-avec-la-lopy4/},
+	urldate = {2025-03-09},
+	langid = {french},
+}
+
+@online{noauthor_mini-projet_nodate,
+	title = {Mini-projet capteur météo et {LoRaWAN} avec la Lopy4 {\textbar} Téléfab},
+	url = {https://telefab.fr/2021/10/18/mini-projet-capteur-meteo-et-lorawan-avec-la-lopy4/},
+	urldate = {2025-03-09},
+	langid = {french},
+}
+
+@online{noauthor_demarrer_nodate,
+	title = {Démarrer avec Lopy4 Pycom {\textbar} Téléfab},
+	url = {https://telefab.fr/2021/09/27/demarrer-avec-lopy4-pycom/},
+	urldate = {2025-03-09},
+	langid = {french},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\LMLI75HY\\demarrer-avec-lopy4-pycom.html:text/html},
+}
+
+@online{noauthor_dht22_nodate,
+	title = {{DHT}22 {ESP}32 in Arduino Code: Measuring humidity \& temperature},
+	url = {https://www.upesy.com/blogs/tutorials/esp32-dht22-am2302-humidity-temperature-sensor-with-arduino-code},
+	shorttitle = {{DHT}22 {ESP}32 in Arduino Code},
+	abstract = {Mesurez la température et l'humidité de l'air ambiant grâce au capteur {DHT}22, un capteur pratique pour les projets {DIY} avec l’{ESP}32. Découvrez ses caractéristiques et comment l’utiliser avec du code Arduino dans cet article.},
+	titleaddon = {{uPesy}},
+	urldate = {2025-03-09},
+	langid = {english},
+	keywords = {esp32},
+}
+
+@online{noauthor_prise_nodate,
+	title = {Prise du {NodeMCU} V3 avec Platform {IO} {\textbar} Téléfab},
+	url = {https://telefab.fr/2025/03/03/prise-du-nodemcu-v3-avec-platform-io/},
+	urldate = {2025-03-09},
+	langid = {french},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\SLGD9YUL\\prise-du-nodemcu-v3-avec-platform-io.html:text/html},
+}
+
+@video{rui_santos_install_2018,
+	title = {Install the {ESP}32 Board in Arduino {IDE} in less than 1 minute (Windows, Mac {OS} X, and Linux)},
+	url = {https://www.youtube.com/watch?v=mBaS3YnqDaU},
+	author = {{Rui Santos}},
+	urldate = {2025-03-09},
+	date = {2018},
+	keywords = {esp32},
+}
+
+@online{noauthor_index_nodate,
+	title = {Index of /airrohr},
+	url = {https://firmware.sensor.community/airrohr/},
+	urldate = {2025-03-09},
+	file = {Index of /airrohr:C\:\\Users\\Acarn\\Zotero\\storage\\LU97CPSR\\airrohr.html:text/html},
+}
+
+@online{noauthor_en_nodate,
+	title = {{EN} Installing firmware},
+	url = {https://github.com/opendata-stuttgart/meta/wiki/EN-Installing-firmware},
+	abstract = {Opendata Stuttgart organisiert und reguliert. Contribute to opendata-stuttgart/meta development by creating an account on {GitHub}.},
+	titleaddon = {{GitHub}},
+	urldate = {2025-03-09},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\AUL5KDRM\\EN-Installing-firmware.html:text/html},
+}
+
+@online{noauthor_prise_nodate-1,
+	title = {Prise en main {NodeMCU} {ESP}32 {\textbar} Téléfab},
+	url = {https://telefab.fr/2023/09/29/prise-en-main-nodemcu-esp32/},
+	urldate = {2025-03-09},
+	langid = {french},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\V86TYW96\\prise-en-main-nodemcu-esp32.html:text/html},
+}
+
+@online{noauthor_lora-e5_nodate-1,
+	title = {{LoRa}-E5 {\textless}{\textgreater} The Things Network {\textless}{\textgreater} {MQTT}},
+	url = {https://www.hackster.io/sufiankaki/lora-e5-the-things-network-mqtt-655086},
+	abstract = {Monitor and Control your {LoRa}-E5 powered {IoT} devices using any Arduino / {ESP} board using the Things Network! By Sufian Kaki Aslam.},
+	titleaddon = {Hackster.io},
+	urldate = {2025-03-11},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\H9PRZAYA\\lora-e5-the-things-network-mqtt-655086.html:text/html},
+}
+
+@online{noauthor_lora_2020,
+	title = {Lora and the Things Network},
+	url = {https://forum.sensor.community/t/lora-and-the-things-network/134/7},
+	abstract = {In {HTCC}-{AB}01 we use step-up boost converter.},
+	titleaddon = {Forum Sensor.Community},
+	urldate = {2025-03-09},
+	date = {2020-12-28},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\X7K823KQ\\134.html:text/html},
+}
+
+@online{noauthor_lorawandustsensor_nodate,
+	title = {{LoraWanDustSensor} - {RevSpace}},
+	url = {https://revspace.nl/LoraWanDustSensor},
+	urldate = {2025-03-09},
+	file = {LoraWanDustSensor - RevSpace:C\:\\Users\\Acarn\\Zotero\\storage\\XFMR5WDI\\LoraWanDustSensor.html:text/html},
+}
+
+@software{riva_lemarivaupylorawan_2025,
+	title = {lemariva/{uPyLoRaWAN}},
+	rights = {Apache-2.0},
+	url = {https://github.com/lemariva/uPyLoRaWAN},
+	abstract = {{ESP}32 using {MicroPython} meets {LoRa} and {LoRaWAN}.},
+	author = {Riva, Mauro},
+	urldate = {2025-03-31},
+	date = {2025-03-16},
+	note = {original-date: 2018-09-27T16:47:37Z},
+	keywords = {esp32, lora, lorawan, lorawan-application},
+}
+
+@software{lh70_lh70pylora_2025,
+	title = {lh70/{PyLoRa}},
+	rights = {Apache-2.0},
+	url = {https://github.com/lh70/PyLoRa},
+	abstract = {A Minimal {LoRa} Library for the {ESP}32},
+	author = {lh70},
+	urldate = {2025-04-01},
+	date = {2025-04-01},
+	note = {original-date: 2023-10-10T15:27:31Z},
+}
+
+@online{aslam_lora-e5_2022,
+	title = {{LoRa}-E5 communication without {LoRaWAN}},
+	url = {https://www.hackster.io/sufiankaki/lora-e5-communication-without-lorawan-9fbddc},
+	abstract = {If you quickly want to exchange messages between 2 or more {LoRa}-E5 modules, this project will act as a guide to you! By Sufian Kaki Aslam.},
+	titleaddon = {Hackster.io},
+	author = {Aslam, Sufian Kaki},
+	urldate = {2025-05-06},
+	date = {2022-01-04},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\XGGXSC62\\lora-e5-communication-without-lorawan-9fbddc.html:text/html},
+}
+
+@online{noauthor_en_nodate-1,
+	title = {{EN} {APIs}},
+	url = {https://github.com/opendata-stuttgart/meta/wiki/EN-APIs},
+	abstract = {Opendata Stuttgart organisiert und reguliert. Contribute to opendata-stuttgart/meta development by creating an account on {GitHub}.},
+	titleaddon = {{GitHub}},
+	urldate = {2025-05-06},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\KNIS3I36\\EN-APIs.html:text/html},
+}
+
+@online{noauthor_unofficial_nodate,
+	title = {Unofficial sensor.community {API} documentation},
+	url = {https://api-sensor-community.bessarabov.com/},
+	urldate = {2025-05-06},
+	file = {Swagger UI:C\:\\Users\\Acarn\\Zotero\\storage\\MISXUTYK\\api-sensor-community.bessarabov.com.html:text/html},
+}
+
+@online{semtech_sx1276_nodate,
+	title = {{SX}1276},
+	url = {https://www.semtech.com/products/wireless-rf/lora-connect/sx1276},
+	abstract = {The {SX}1276 {LoRa} Connect transceiver features the {LoRa} long range modem that provides ultra-long range spread spectrum communication and high interference immunity.},
+	author = {{Semtech}},
+	urldate = {2025-03-04},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\ZLLNJWNF\\sx1276.html:text/html},
+}
+
+@online{gotronic_capteur_nodate,
+	title = {Capteur de T° et d'humidité {SHT}30 {SEN}0330 - Gotronic},
+	url = {https://www.gotronic.fr/art-capteur-de-t-et-d-humidite-sht30-sen0330-32253.htm},
+	abstract = {Module \&eacute;conomique de {DFRobot} bas\&eacute; sur un capteur Sensirion {SHT}30 autorisant la mesure de la temp\&eacute;rature ambiante et de l\&\#39;humidit\&eacute; relative. Ce capteur communique via le bus I2C avec une carte compatible Arduino\&reg;, micro:bit ou Raspberry Pi. - Gotronic},
+	type = {Site de vente},
+	author = {{Gotronic}},
+	urldate = {2025-03-04},
+	langid = {french},
+}
+
+@article{yong_digital_2016,
+	title = {Digital universal particle concentration sensor},
+	author = {Yong, Zhou and Haoxin, Zheng},
+	date = {2016},
+	langid = {english},
+	file = {PDF:C\:\\Users\\Acarn\\Zotero\\storage\\DP7H79VT\\Yong et Haoxin - 2016 - Digital universal particle concentration sensor.pdf:application/pdf},
+}
+
+@online{noauthor_esp32_nodate,
+	title = {{ESP}32 Alimenté par Batterie {\textbar} Protocole Réseau {RadioShuttle}},
+	url = {https://www.radioshuttle.de/fr/medias-fr/informations-techniques/esp32-alimente-par-batterie/},
+	urldate = {2025-03-04},
+	langid = {french},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\CBAWDSFD\\esp32-alimente-par-batterie.html:text/html},
+}
+
+@online{les_fabriques_du_ponant_categorietutos_nodate,
+	title = {Catégorie:Les tutos Penn Avel — Les Fabriques du Ponant},
+	url = {https://wiki.lesfabriquesduponant.net/index.php?title=Cat%C3%A9gorie:Les_tutos_Penn_Avel},
+	abstract = {Que ce soit pour terminer la configuration de votre détecteur chez vous ou bien en maîtriser de A à Z tous les aspects, les "Tutos Penn Avel" sont la ressource qu'il vous faut !
+
+Vous êtes sur un wiki, aussi n'hésitez pas à modifier les tutos pour faire des retours d'expérience, expliquer vos difficultés et comment vous avez résolus vos problèmes !
+
+Pour échanger vous avez également la liste de discussion : pennavel@ptitdeb.infini.fr},
+	titleaddon = {Les tutos Penn Avel},
+	type = {Wiki},
+	author = {{Les Fabriques du Ponant}},
+	urldate = {2025-03-04},
+	langid = {french},
+	file = {Catégorie\:Les tutos Penn Avel — Les Fabriques du Ponant:C\:\\Users\\Acarn\\Zotero\\storage\\BSLUAJMR\\index.html:text/html},
+}
+
+@online{bertrik_lorawandustsensor_2023,
+	title = {{LoraWanDustSensor} — {RevSpace}},
+	url = {https://revspace.nl/LoraWanDustSensor},
+	abstract = {This is a companion project of Sensor-data-bridge.
+
+The concept consists of:
+
+a sensor that measures airborne particulate matter and sends the measurement data using {LoRaWAN} to {TheThingsNetwork} ({TTN})
+a forwarder application that collects the data from {TTN} and forwards it to sensor.community (formerly luftdaten), opensensemap, mycayenne dashboard, etc.},
+	titleaddon = {{LoraWanDustSensor}},
+	type = {Wiki},
+	author = {{bertrik}},
+	urldate = {2025-03-04},
+	date = {2023-04-08},
+	langid = {english},
+	file = {LoraWanDustSensor — RevSpace:C\:\\Users\\Acarn\\Zotero\\storage\\VCN2HLFI\\LoraWanDustSensor.html:text/html},
+}
+
+@online{sensor_community_sensorcommunity_nodate,
+	title = {Sensor.Community 🌐 Build your own sensor and join the worldwide civic tech network},
+	url = {https://sensor.community/en/sensors/airrohr/},
+	abstract = {Build your {DIY} sensor and become part of the worldwide, opendata \& civictech network.
+With {airRohr} you can measure air pollution yourself.},
+	type = {Tutoriel},
+	author = {{Sensor Community}},
+	urldate = {2025-03-04},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\2UMH7MCZ\\airrohr.html:text/html},
+}
+
+@online{the_things_network_things_nodate,
+	title = {The Things Network},
+	url = {https://www.thethingsnetwork.org/},
+	abstract = {We are building a global open free crowdsourced long range low battery {IoT} data network.},
+	titleaddon = {The Things Network},
+	author = {{The Things Network}},
+	urldate = {2025-03-04},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\UGVU3VNW\\www.thethingsnetwork.org.html:text/html},
+}
+
+@online{carneiro-gillet_pronto_2025,
+	title = {Pronto 3 / Capteur autonome Penn Avel · {GitLab}},
+	url = {https://gitlab-df.imt-atlantique.fr/pronto-3/capteur-autonome-penn-avel},
+	abstract = {Instance de {GitLab} dédiée à l'enseignement},
+	titleaddon = {{GitLab}},
+	author = {Carneiro-Gillet, Alexandre and Cluzel, Julien and Slaoui, Idriss and Bentata, Hugo and Bouchana, Ahmed Yassine},
+	urldate = {2025-05-13},
+	date = {2025-05-13},
+	langid = {english},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\P2LSGXAF\\capteur-autonome-penn-avel.html:text/html},
+}
+
+@online{noauthor_nombre_nodate,
+	title = {Le nombre de décès prématurés dus à la pollution atmosphérique continue de diminuer dans l’{UE}, mais des efforts supplémentaires sont nécessaires pour parvenir à un environnement exempt de substances toxiques},
+	url = {https://www.eea.europa.eu/fr/highlights/le-nombre-de-deces-prematures},
+	abstract = {La qualité de l’air en Europe ne cesse de s’améliorer et le nombre de personnes qui meurent prématurément ou souffrent de maladies dues à la pollution atmosphérique est en baisse. Toutefois, selon l’analyse de l’Agence européenne pour l’environnement ({AEE}), publiée aujourd’hui, la pollution atmosphérique reste le principal risque sanitaire environnemental en Europe, et des mesures plus ambitieuses sont nécessaires pour respecter les lignes directrices sanitaires de l’Organisation mondiale de la santé ({OMS}).},
+	titleaddon = {European Environment Agency},
+	type = {Actualités},
+	urldate = {2025-05-15},
+	langid = {french},
+	file = {Snapshot:C\:\\Users\\Acarn\\Zotero\\storage\\MY3MNV4M\\le-nombre-de-deces-prematures.html:text/html},
+}
+
+@software{noauthor_dfrobotdfrobot_sht3x_2025,
+	title = {{DFRobot}/{DFRobot}\_SHT3x},
+	rights = {{MIT}},
+	url = {https://github.com/DFRobot/DFRobot_SHT3x},
+	publisher = {{DFRobot}},
+	urldate = {2025-05-15},
+	date = {2025-01-17},
+	note = {original-date: 2019-12-26T05:37:05Z},
+}
diff --git a/GW-custom/LoRa_homemade/main.py b/GW-custom/LoRa_homemade/main.py
index 9fe0782..4b1307f 100644
--- a/GW-custom/LoRa_homemade/main.py
+++ b/GW-custom/LoRa_homemade/main.py
@@ -43,10 +43,12 @@ def send_at_command(command):
         print(response)
 
 def blink_led(times, interval):
-    for _ in range(times):
-        led.value(1)  # Allumer la LED
+    current_led_value = led.value()  # Sauvegarder l'état actuel de la LED
+    other_led_value = 1 - current_led_value  # Inverser l'état de la LED
+    for i in range(times):
+        led.value(other_led_value)  # Inverser l'état de la LED
         time.sleep(interval)  # Attendre un certain temps
-        led.value(0)  # Eteindre la LED
+        led.value(current_led_value)  # Rétablir l'état de la LED
         time.sleep(interval)  # Attendre un certain temps
 
 def configure_lora():
@@ -115,6 +117,7 @@ def send_to_sensor_community(data):
     print(f"PM2.5: {pm25} µg/m³, PM10: {pm10} µg/m³, Temp: {temperature} °C, Humidity: {humidity} %")
     send_to_sensor_community_sds011(pm25, pm10)  # Envoi des données SDS011
     send_to_sensor_community_sht30(temperature, humidity)  # Envoi des données SHT30
+    print("\n")
 
 def try_receive():
     if uart.any():  # Si des données sont disponibles sur le port série
@@ -135,7 +138,7 @@ uart = UART(2, baudrate=9600, tx=17, rx=16)
 # Initialisation de la LED intégrée (souvent sur GPIO 2)
 led = Pin(2, Pin.OUT)  # GPIO 2 pour la LED bleue intégrée
 # Initialisation du module LoRa
-blink_led(3, 0.5)  # Clignoter la LED 3 fois au démarrage
+blink_led(3, 0.25)  # Clignoter la LED 3 fois au démarrage
 print("\n\nInitialisation du module LoRa-E5...\n")
 configure_lora()  # Configurer le module LoRa avec les paramètres souhaités
 send_at_command("+TEST=RXLRPKT")  # Commencer la réception des paquets LoRa
diff --git a/GW-custom/schema.png b/GW-custom/schema.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cba4509a3f647b8f7e9d7bbf09a8a649b9dfcca
GIT binary patch
literal 9269
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
L>gTe~DWM4fjUKqC

literal 0
HcmV?d00001

diff --git a/GW-custom/schema.puml b/GW-custom/schema.puml
new file mode 100644
index 0000000..259c2b5
--- /dev/null
+++ b/GW-custom/schema.puml
@@ -0,0 +1,35 @@
+@startmindmap
+
+<style>
+mindmapDiagram {
+    node {
+        BackgroundColor #00B8DE
+        Shadowing 0.1
+    }
+    rootNode {
+        BackgroundColor #99cc99
+        LineThickness 2.0
+        RoundCorner 2
+        Shadowing 3
+    }
+}
+</style>
+
++ Gateway Custom
+++_ HTTP via Wifi
++++ Sensor Community
+--_ LoRaMAC 
+--- Capteur Autonome
+
+
+
+
+
+
+
+
+
+
+
+
+@endmindmap
\ No newline at end of file
-- 
GitLab