+21622886281
capteur DHT11 ESP32 Projet

Envoie les valeurs de la température et de l’humidité mesurées par le capteur DHT11 au smartphone via WIFI avec la carte ESP32

But de ce tutoriel:

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é DHT11.

Composants nécessaires

  • carte ESP32
  • capteur DTH11
  • des fils de connexion

Montage

Pour réaliser le montage

Pour la capteur DTH11, on connecte:

  • la broche DATA à la broche D23 de la carte ESP32
  • la broche VCC à la broche 3.3V de la carte ESP32
  • la broche GND à la broche GND de la carte ESP32

Programme en micropython

boot.py

Copiez le code suivant dans le fichier ESP32 boot.py.

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)

 

main.py

Copiez le code suivant dans le fichier ESP32 main.py.

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”>&deg;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()




0 commentaire


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top