Skip to content
Snippets Groups Projects
Commit 9ec55bb3 authored by CARNEIRO--GILLET Alexandre's avatar CARNEIRO--GILLET Alexandre
Browse files

intégration 05/05

parent 3dd63f9e
No related branches found
No related tags found
No related merge requests found
import json
import time
import network
import requests
from machine import UART, Pin
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
def wifi_connect():
# Configuration du réseau Wi-Fi
ssid = "Redmi Note 8 (2021)"
password = "lemotdepassecestca"
# Initialisation de l'interface Wi-Fi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
# Connexion au réseau Wi-Fi
if not wlan.isconnected():
print("Connexion au réseau...")
wlan.connect(ssid, password)
# Attente de la connexion
timeout = 10 # secondes
while not wlan.isconnected() and timeout > 0:
time.sleep(1)
timeout -= 1
# Vérifie si la connexion est établie
if wlan.isconnected():
print("Connecté avec succès !")
print("Adresse IP :", wlan.ifconfig()[0])
else:
print("Échec de la connexion.")
raise Exception("Impossible de se connecter au réseau Wi-Fi.")
def send_at_command(command):
uart.write(("AT" + command + "\r\n").encode()) # Envoie la commande AT au module LoRa
......@@ -22,10 +50,11 @@ def blink_led(times, interval):
time.sleep(interval) # Attendre un certain temps
def configure_lora(frequency, sf, bw, TXPR, RXPR, TX_power):
send_at_command("")
send_at_command("+MODE=TEST")
# Configurer le module LoRa avec les paramètres donnés
# send_at_command(f"+TEST=RFCFG,{frequency},SF{sf},{bw},{TXPR},{RXPR},{TX_power}")
# send_at_command(f"AT+TEST=RFCFG,{frequency},SF{sf},{bw},{TXPR},{RXPR},{TX_power}")
def receive_uart():
'''Polls the uart until all data is dequeued'''
......@@ -35,6 +64,93 @@ def receive_uart():
time.sleep(0.002)
return rxData.decode('utf-8')
def send_to_sensor_community_sds011(value1, value2):
# Envoi des données pour le SDS011
url = "https://api.sensor.community/v1/push-sensor-data/"
headers = {
"Content-Type": "application/json",
"X-Pin": "1", # 1 = SDS011
"X-Sensor": "esp32-900881266"
}
data = {
"software_version": "0.1",
"sensordatavalues": [
{"value_type": "P1", "value": str(value1)},
{"value_type": "P2", "value": str(value2)}
]
}
response = requests.post(url, headers=headers, json=data, timeout=10)
print(response.status_code) # 201 = created
print(response.text)
def send_to_sensor_community_sht30(temp, humid):
# Envoi des données pour le SHT30
url = "https://api.sensor.community/v1/push-sensor-data/"
headers = {
"Content-Type": "application/json",
"X-Pin": "7", # 7 = SHT30
"X-Sensor": "esp32-900881266"
}
data = {
"software_version": "0.1",
"sensordatavalues": [
{"value_type": "temperature", "value": str(temp)},
{"value_type": "humidity", "value": str(humid)}
]
}
response = requests.post(url, headers=headers, json=data, timeout=10)
print(response.status_code) # 201 = created
print(response.text)
def send_to_sensor_community(data):
pm25 = float(int(data[:4], 16)) / 100
pm10 = float(int(data[4:8], 16)) / 100
temperature = float(int(data[8:12], 16)) / 100
humidity = float(int(data[12:], 16)) / 100
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
def try_receive():
if uart.any(): # Si des données sont disponibles sur le port série
message = receive_uart() # Lire le message reçu
print(f"Message reçu : {message}")
data = message.split("\"")[1]
print(f"Data : {data}\n")
send_to_sensor_community(data)
# Clignotement de la LED une fois pour indiquer la réception
blink_led(1, 0.2) # Clignoter la LED une fois
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)
# 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
print("\n\nInitialisation du module LoRa-E5...\n")
......@@ -42,15 +158,11 @@ configure_lora(868000000, 12, 125, 12, 15, 14) # Configurer le module LoRa avec
send_at_command("+TEST=RXLRPKT") # Commencer la réception des paquets LoRa
led.value(1) # Rallumer la LED après l'initialisation
print("Module LoRa-E5 initialisé. En attente de messages...\n")
print("Module LoRa-E5 initialisé. En attente de messages...")
while True:
if uart.any(): # Si des données sont disponibles sur le port série
message = receive_uart() # Lire le message reçu
print(f"Message reçu : {message}")
data = message.split("\"")[1]
print(f"Data : {data}\n")
try_receive() # Essayer de recevoir un message
time.sleep(0.1) # Attendre un peu avant de vérifier à nouveau
# Clignotement de la LED une fois pour indiquer la réception
blink_led(1, 0.2) # Clignoter la LED une fois
time.sleep(0.01)
import time
from machine import UART, Pin
import json
import requests
uart = UART(2, baudrate=9600, tx=17, rx=16)
......@@ -26,7 +25,7 @@ def configure_lora(frequency, sf, bw, TXPR, RXPR, TX_power):
send_at_command("")
send_at_command("+MODE=TEST")
# Configurer le module LoRa avec les paramètres donnés
# send_at_command(f"AT+TEST=RFCFG,{frequency},SF{sf},{bw},{TXPR},{RXPR},{TX_power}")
# send_at_command(f"+TEST=RFCFG,{frequency},SF{sf},{bw},{TXPR},{RXPR},{TX_power}")
def receive_uart():
'''Polls the uart until all data is dequeued'''
......@@ -36,38 +35,6 @@ def receive_uart():
time.sleep(0.002)
return rxData.decode('utf-8')
def send_to_sensor_community(value1, value2):
# Envoi des données sur sensor community
url = "https://api.sensor.community/v1/push-sensor-data/"
headers = {
"Content-Type": "application/json",
"X-Pin": "1", # 1 = SDS011
"X-Sensor": "esp32-900881266"
}
data = {
"software_version": "0.1",
"sensordatavalues": [
{"value_type": "P1", "value": str(value1)},
{"value_type": "P2", "value": str(value2)}
]
}
response = requests.post(url, headers=headers, data, timeout=10)
print(response.status_code) # 201 = created
print(response.text)
def try_receive():
if uart.any(): # Si des données sont disponibles sur le port série
message = receive_uart() # Lire le message reçu
print(f"Message reçu : {message}")
data = message.split("\"")[1]
print(f"Data : {data}\n")
# Clignotement de la LED une fois pour indiquer la réception
blink_led(1, 0.2) # Clignoter la LED une fois
# Initialisation du module LoRa
blink_led(3, 0.5) # Clignoter la LED 3 fois au démarrage
print("\n\nInitialisation du module LoRa-E5...\n")
......@@ -75,11 +42,15 @@ configure_lora(868000000, 12, 125, 12, 15, 14) # Configurer le module LoRa avec
send_at_command("+TEST=RXLRPKT") # Commencer la réception des paquets LoRa
led.value(1) # Rallumer la LED après l'initialisation
print("Module LoRa-E5 initialisé. En attente de messages...")
print("Module LoRa-E5 initialisé. En attente de messages...\n")
while True:
try_receive() # Essayer de recevoir un message
time.sleep(0.1) # Attendre un peu avant de vérifier à nouveau
if uart.any(): # Si des données sont disponibles sur le port série
message = receive_uart() # Lire le message reçu
print(f"Message reçu : {message}")
data = message.split("\"")[1]
print(f"Data : {data}\n")
# Clignotement de la LED une fois pour indiquer la réception
blink_led(1, 0.2) # Clignoter la LED une fois
time.sleep(0.01)
......@@ -17,7 +17,8 @@
"venv",
".python-version",
".micropy/",
"micropy.json"
"micropy.json",
"old_main.py"
],
"fast_upload": false
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment