Skip to content
Snippets Groups Projects
Commit 20db7376 authored by CLUZEL Julien's avatar CLUZEL Julien
Browse files
parents b0b10489 3406deb6
No related branches found
No related tags found
No related merge requests found
from network import WLAN
import time import time
import machine import machine
from machine import RTC
import pycom import pycom
from machine import RTC
from network import WLAN
print('\nStarting LoRaWAN concentrator') print('\nStarting LoRaWAN concentrator')
# Disable Hearbeat # Disable Hearbeat
...@@ -27,12 +28,14 @@ machine.callback(trigger = (machine.PYGATE_START_EVT | machine.PYGATE_STOP_EVT | ...@@ -27,12 +28,14 @@ machine.callback(trigger = (machine.PYGATE_START_EVT | machine.PYGATE_STOP_EVT |
print('Connecting to WiFi...', end='') print('Connecting to WiFi...', end='')
# Connect to a Wifi Network # Connect to a Wifi Network
wlan = WLAN(mode=WLAN.STA) wlan = WLAN(mode=WLAN.STA)
wlan.connect(ssid='ObjetsConnectes', auth=(WLAN.WPA2, 'Pandemie2021')) wlan.connect(ssid='Redmi Note 8 (2021)', auth=(WLAN.WPA2, 'lemotdepassecestca'))
#wlan.connect(ssid='iPhone de Charlotte', auth=(WLAN.WPA2, 'azilisenoraalan')) #wlan.connect(ssid='iPhone de Charlotte', auth=(WLAN.WPA2, 'azilisenoraalan'))
while not wlan.isconnected(): timout = 10 # seconds
while not wlan.isconnected() and timout > 0:
print('.', end='') print('.', end='')
time.sleep(1) time.sleep(1)
timout -= 1
print(" OK") print(" OK")
# Sync time via NTP server for GW timestamps on Events # Sync time via NTP server for GW timestamps on Events
......
...@@ -49,7 +49,7 @@ def blink_led(times, interval): ...@@ -49,7 +49,7 @@ def blink_led(times, interval):
led.value(0) # Eteindre la LED led.value(0) # Eteindre la LED
time.sleep(interval) # Attendre un certain temps time.sleep(interval) # Attendre un certain temps
def configure_lora(frequency, sf, bw, TXPR, RXPR, TX_power): def configure_lora():
send_at_command("") send_at_command("")
send_at_command("+MODE=TEST") send_at_command("+MODE=TEST")
...@@ -90,7 +90,7 @@ def send_to_sensor_community_sht30(temp, humid): ...@@ -90,7 +90,7 @@ def send_to_sensor_community_sht30(temp, humid):
url = "https://api.sensor.community/v1/push-sensor-data/" url = "https://api.sensor.community/v1/push-sensor-data/"
headers = { headers = {
"Content-Type": "application/json", "Content-Type": "application/json",
"X-Pin": "7", # 7 = SHT30 "X-Pin": "7", # 7 = SHT30 ou DHT22
"X-Sensor": "esp32-900881266" "X-Sensor": "esp32-900881266"
} }
data = { data = {
...@@ -129,23 +129,6 @@ def try_receive(): ...@@ -129,23 +129,6 @@ def try_receive():
wifi_connect() # Connexion au Wi-Fi wifi_connect() # Connexion au Wi-Fi
wlan = network.WLAN(network.STA_IF)
print(wlan.ifconfig())
import urequests
try:
r = urequests.post("http://httpbin.org/post", json={"test": 123})
print("Réponse HTTP:", r.status_code)
print(r.text)
r.close()
except Exception as e:
print("Erreur:", e)
uart = UART(2, baudrate=9600, tx=17, rx=16) uart = UART(2, baudrate=9600, tx=17, rx=16)
...@@ -154,7 +137,7 @@ led = Pin(2, Pin.OUT) # GPIO 2 pour la LED bleue intégrée ...@@ -154,7 +137,7 @@ led = Pin(2, Pin.OUT) # GPIO 2 pour la LED bleue intégrée
# Initialisation du module LoRa # Initialisation du module LoRa
blink_led(3, 0.5) # Clignoter la LED 3 fois au démarrage blink_led(3, 0.5) # Clignoter la LED 3 fois au démarrage
print("\n\nInitialisation du module LoRa-E5...\n") print("\n\nInitialisation du module LoRa-E5...\n")
configure_lora(868000000, 12, 125, 12, 15, 14) # Configurer le module LoRa avec les paramètres souhaités configure_lora() # Configurer le module LoRa avec les paramètres souhaités
send_at_command("+TEST=RXLRPKT") # Commencer la réception des paquets LoRa send_at_command("+TEST=RXLRPKT") # Commencer la réception des paquets LoRa
led.value(1) # Rallumer la LED après l'initialisation led.value(1) # Rallumer la LED après l'initialisation
......
...@@ -2,14 +2,46 @@ ...@@ -2,14 +2,46 @@
## Description du projet ## Description du projet
Ce projet étudiant a été créé par IMT Atlantique dans le cadre de l'unité d'enseignement Projet d'ingénieur dans un monde en transitions (PRONTO). Il a pour objectif de rendre autonome le capteur de qualité de l'air Penn Avel. Ce capteur fonctionne actuellement sur secteur et est connecté au wifi. L'objectif est de le rendre autonome en énergie en utilisant un panneau solaire et une batterie. De plus, il est nécessaire de le rendre autonome en communication en utilisant le réseau LoRa. Ce projet étudiant a été créé par IMT Atlantique dans le cadre de l'unité d'enseignement Projet d'ingénieur dans un monde en transitions (PRONTO). Il a pour objectif de rendre autonome le capteur de qualité de l'air Penn Avel. Ce capteur fonctionne actuellement sur secteur et est connecté au wifi. L'objectif est de le rendre autonome en énergie en utilisant une batterie et en communication en utilisant le réseau LoRa.
## Description du repo GitLab ## Description du repo GitLab
Ce repo contient l'ensemble des documents nécessaires à la réalisation du projet. Il est organisé de la manière suivante : Ce repo contient l'ensemble des documents nécessaires à la réalisation du projet. Il est organisé de la manière suivante :
- *Capteur-autonome* : contient les fichiers de code liés au lot "Capteur autonome", qui consiste à réaliser un capteur Penn Avel autonome en énergie et en communication. - *Capteur-autonome* : contient les fichiers de code liés au lot "Capteur autonome". Celui-ci consiste à relier tous les capteurs à une carte programmable, qui envoie ensuite les données aux deux passerelles.
- *GW-custom* : contient les fichiers de code liés au lot "Gateway custom", qui consiste à réaliser une passerelle LoRa personnalisée pour le capteur Penn Avel, connectée au capteur par LoRaMAC et à Sensor Community par Wifi. - *GW-custom* : contient les fichiers de code liés au lot "Gateway custom", qui consiste à réaliser une passerelle LoRa personnalisée pour le capteur Penn Avel, connectée au capteur par LoRaMAC et à Sensor Community par Wifi.
- *GW-V2* : contient les fichiers de code liés au lot "Gateway V2", qui consiste à réaliser une passerelle LoRa personnalisée pour le capteur Penn Avel, qui prend les données envoyées par le capteur sur TTN, qui qui les retransmet à Sensor Community. - *GW-V2* : contient les fichiers de code liés au lot "Gateway V2", qui consiste à réaliser une passerelle LoRa personnalisée pour le capteur Penn Avel, qui prend les données envoyées par le capteur sur TTN, qui qui les retransmet à Sensor Community.
- *Autre* : contient les fichiers de code qui n'appartiennent pas aux lots précédents, mais qui sont nécessaires au bon fonctionnement du projet. Il s'agit, entre autres, du code de la passerelle LoRa originale et du code pour le diagramme de Gantt.
## Mise en oeuvre
### Matériel
- 1 SHT30
- 1 SDS011
- 1 NodeMCU V3
- 1 ESP32
- 1 Module LoRa E5
- 1 plaque de prototypage
- 1 batterie 13000 mAh
- fils de connexion
### Logiciel
- VSCode avec PlatformIO et PyMakr
- Cloner le repo GitLab
#### Capteur autonome
#### Gateway custom
- Installer MicroPython sur l'ESP32 (tutoriel : <https://docs.micropython.org/en/latest/esp32/tutorial/intro.html>)
- Connecter l'ESP32 à PyMakr
- Uploader le code sur l'ESP32
- Appuyer sur le bouton de l'ESP32 pour le relancer
- Votre Gateway est maintenant prête à être utilisée
#### Gateway V2
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment