import network
import urequests
import time
from machine import Pin
import dht
# WiFi Configuration (Wokwi)
SSID = "Wokwi-GUEST"
PASSWORD = ""
# ThingSpeak Configuration
API_KEY = "LOCKPH8BPRHEKR1A"
URL = "https://api.thingspeak.com/update"
# DHT22 Sensor on GPIO4 (essayez GPIO4 au lieu de GPIO15)
sensor = dht.DHT22(Pin(4))
# Attendre que le capteur soit pret
print("Initialisation du capteur DHT22...")
time.sleep(2)
# WiFi Connection
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(SSID, PASSWORD)
print("Connexion au WiFi...")
timeout = 0
while not wifi.isconnected() and timeout < 10:
time.sleep(1)
print(".", end="")
timeout += 1
if wifi.isconnected():
print("\nWiFi connecte!")
print("IP:", wifi.ifconfig()[0])
else:
print("\nEchec connexion WiFi!")
time.sleep(5)
# Main Loop
compteur = 0
while True:
try:
compteur += 1
print("\n========== Envoi #", compteur, "==========")
# Attendre un peu avant de lire le capteur
time.sleep(0.5)
sensor.measure()
time.sleep(0.5) # Attendre que la mesure soit complete
temp = sensor.temperature()
hum = sensor.humidity()
print("Temperature:", temp, "C")
print("Humidite:", hum, "%")
if wifi.isconnected():
# Build URL with GET parameters
params = "?api_key={}&field1={}&field2={}".format(API_KEY, temp, hum)
full_url = URL + params
print("URL:", full_url)
print("Envoi vers ThingSpeak...")
response = urequests.get(full_url)
print("Code HTTP:", response.status_code)
print("Reponse:", response.text)
if response.status_code == 200:
print(">>> SUCCES! Entry number:", response.text)
else:
print(">>> ERREUR HTTP:", response.status_code)
response.close()
else:
print(">>> WiFi deconnecte!")
except Exception as e:
print(">>> ERREUR:", e)
import sys
sys.print_exception(e)
print("Attente 20 secondes...")
time.sleep(20)