L’ESP32 est une carte de développement électronique basée sur un microcontrôleur ESP32 produit par Espressif Systems. Elle est conçue pour faciliter la création de projets IoT (Internet des objets) en offrant une plateforme de développement facile à utiliser et abordable.
L’ESP32 peut être utilisée pour créer des projets WiFi et Bluetooth, tels que des capteurs de température et d’humidité, des contrôleurs de maison intelligente et des robots. Elle est également utilisée pour la création de projets de réalité augmentée et de réalité virtuelle grâce à ses capacités de communication en temps réel.
Un serveur Web pour ESP32 est un programme qui fait tourner une carte de développement ESP32 en tant que serveur Web. Il permet à la carte ESP32 de recevoir des requêtes HTTP (Hypertext Transfer Protocol) via un réseau local ou Internet et de répondre avec des données telles que du texte, des images ou du code HTML.
Les serveurs Web pour ESP32 sont souvent utilisés dans les projets de domotique, de suivi météorologique et de contrôle de l’environnement, car ils permettent de collecter et de transmettre des données à partir de capteurs distants de façon fiable et sécurisée. Ils peuvent également être utilisés pour créer des interfaces Web pour contrôler ou configurer des dispositifs connectés, comme des lumières, des thermostats et des appareils électroménagers.
Dans ce didacticiel, vous allez apprendre à créer un serveur Web simple avec l’ESP32 pour afficher les lectures des capteurs de température et d’humidité du capteur DHT11.
carte ESP32
La carte ESP32 est une carte de microcontrôleur basée sur le microcontrôleur ESP32 d’Espressif Systems. C’est une puce système à faible coût et à faible consommation d’énergie conçue pour les applications de l’Internet des objets (IoT).
capteur DHT11
Le capteur DHT11 est un capteur de température et d’humidité qui permet de mesurer l’humidité relative et la température de l’air. Il est souvent utilisé dans les projets de domotique, de suivi météorologique et de contrôle de l’environnement.
des fils de connexion
Les fils de connexion sont des fils électriques utilisés pour connecter des composants électroniques à une carte de développement Arduino. Ils sont généralement utilisés pour connecter des capteurs, des actionneurs, des afficheurs et d’autres composants à la carte Arduino afin de créer des circuits électroniques.
une plaque d’essai
Une plaque d’essai est un type de carte de développement électronique qui permet aux développeurs de tester et de prototyper facilement des circuits électroniques. Elles sont souvent utilisées par les développeurs pour tester rapidement des idées et des conceptions avant de les intégrer à un projet plus important ou de les intégrer dans une carte de développement plus permanente.
Pour réaliser le montage
Pour la capteur DTH11, on connecte:
Copiez le code suivant dans le fichier ESP32 boot.py.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
try: import usocket as socket except: import socket from machine import Pin import network import esp esp.osdebug(None) import gc gc.collect() ssid = “************” #ssid du wifi password = “************” #mot de passe du wifi station = network.WLAN(network.STA_IF) station.active(True) station.connect(ssid, password) while station.isconnected() == False: pass print(‘Connection successful’) print(station.ifconfig()) p23=Pin(23, Pin.IN) sensor = dht.DHT11(p23) |
Copiez le code suivant dans le fichier ESP32 main.py.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
def read_sensor(): global temp, hum temp = hum = 0 try: sensor.measure() temp = sensor.temperature() hum = sensor.humidity() if (isinstance(temp, float) and isinstance(hum, float)) or (isinstance(temp, int) and isinstance(hum, int)): msg = (b'{0:3.1f},{1:3.1f}'.format(temp, hum)) # uncomment for Fahrenheit #temp = temp * (9/5) + 32.0 hum = round(hum, 2) return(msg) else: return('Invalid sensor readings.') except OSError as e: return('Failed to read sensor.') def web_page(): html = """<!DOCTYPE HTML><html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous"> <style> html { font-family: Arial; display: inline-block; margin: 0px auto; text-align: center; } h2 { font-size: 3.0rem; } p { font-size: 3.0rem; } .units { font-size: 1.2rem; } .dht-labels{ font-size: 1.5rem; vertical-align:middle; padding-bottom: 15px; } </style> </head> <body> <h2>ESP DHT Server</h2> <p> <i class="fas fa-thermometer-half" style="color:#059e8a;"></i> <span class="dht-labels">Temperature</span> <span>"""+str(temp)+"""</span> <sup class="units">°C</sup> </p> <p> <i class="fas fa-tint" style="color:#00add6;"></i> <span class="dht-labels">Humidity</span> <span>"""+str(hum)+"""</span> <sup class="units">%</sup> </p> </body> </html>""" return html s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 80)) s.listen(5) while True: conn, addr = s.accept() print('Got a connection from %s' % str(addr)) request = conn.recv(1024) print('Content = %s' % str(request)) sensor_readings = read_sensor() print(sensor_readings) response = web_page() conn.send('HTTP/1.1 200 OK\n') conn.send('Content-Type: text/html\n') conn.send('Connection: close\n\n') conn.sendall(response) conn.close() |