import machine
import network
import urequests
import time
from machine import I2C, Pin
# Configuration des capteurs
voltage_sensor_pin = machine.ADC(0) # ADC pour tension
current_sensor_pin = machine.ADC(1) # ADC pour courant
lm35_pin = machine.ADC(2) # ADC pour LM35
ldr_pin = machine.ADC(3) # ADC pour LDR
# Configuration de l'afficheur LCD
i2c = I2C(0, scl=Pin(22), sda=Pin(21)) # Changez les pins selon votre configuration
lcd_address = 0x27 # Adresse I2C de l'afficheur LCD
lcd = machine.I2C(i2c)
# Constants
THINGSPEAK_API_KEY = 'V4XHOZE7W0N4PSCE'
THINGSPEAK_CHANNEL_ID = '2780312'
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
time.sleep(1)
print('Connexion Wi-Fi réussie:', wlan.ifconfig())
# Fonction pour envoyer les données à ThingSpeak
def send_to_thingspeak(voltage, current, temperature, light):
url = "https://api.thingspeak.com/update?api_key=VOTRE_API_KEY"
payload = {
'field1': voltage,
'field2': current,
'field3': temperature,
'field4': light
}
response = urequests.get(url, params=payload)
print('Données envoyées:', response.text)
# Fonction principale
def main():
connect_wifi()
while True:
voltage = voltage_sensor_pin.read() * (3.3 / 1024) # Ajustez selon votre configuration
current = current_sensor_pin.read() * (3.3 / 1024)
temperature = lm35_pin.read() * (3.3 / 1024) * 100 # LM35 en degrés Celsius
light = ldr_pin.read() # Valeur LDR
# Affichage sur LCD
lcd.clear()
lcd.write('V: {:.2f}V'.format(voltage))
lcd.write('I: {:.2f}A'.format(current))
lcd.write('T: {:.2f}C'.format(temperature))
lcd.write('L: {}'.format(light))
# Envoi des données
send_to_thingspeak(voltage, current, temperature, light)
time.sleep(60) # Envoyer toutes les minutes
# Exécution du programme
main()