L'ESP01
seul avec un DHT11
L'ESP01 dispose d'une liaison UART (Rx et Tx) mais aussi de 2 GPIO (General Purpose Input/Output, littéralement Entrée-sortie à usage général)
On peut donc l'utiliser seul avec un capteur à une ou deux sorties numériques, par exemple le capteur de température et humidité DHT11 ou DHT22.
Cela permet d'avoir un capteur connecté minuscule... Il suffit d'alimenter ce bloc en 5 V, avec un panneau solaire par exemple...
Voici un exemple de programme
#include <ESP8266WiFi.h> #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); const char* ssid = "tpil"; const char* password = "12345678"; const char* host = "bts2m.free.fr"; // Adresse du serveur const int httpPort = 80; int value = 0; float t,h,pile; unsigned long t0; void setup() { dht.begin(); Serial.begin(115200); Serial.println(ssid); delay(2000); Serial.println(); Serial.print("Connexion a "); Serial.println(ssid); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) delay (500); Serial.println(WiFi.localIP()); Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); delay(500); } void loop() { t0=millis(); value++; WiFiClient client; if (!client.connect(host, httpPort))return; Serial.println(host); // Mise en forme et envoi de la requête GET au serveur t = dht.readTemperature(); h = dht.readHumidity(); if (isnan(t)) t=0; if (isnan(h)) h=0; pile=5+5*sin(2*3.1416/20*value); String url = "/Wifi/sql.php?table=1&M1="+String(t,1)+"&M2="+String(h,1) +"&M3="+String(pile); // This will send the request to the server client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); while (client.available() == 0) { if (millis() - t0 > 5000) { client.stop(); return; }} while (client.available()) { String line = client.readStringUntil('\r'); Serial.print(line);} // delay(30000); while (millis()-t0<30000) delay(10); // 30s entre 2 mesures }