Pasem dades al telèfon
Servidor web simple
Anem a agafar el muntatge del DHT22 i el modifiquem lleugerament per fer que ESP32 dispose de més energia per emetre sense recurrer al cable USB de l'ordinador. El cable USB sols el posaré per passar el programa i després el trauré.
Hem canviat el cable i la font d'alimentació per posar 6V al pin de 5V que té un regulador de tensió que converteix el voltatge d'entrada a 3,3 V. No poseu voltatges molt elevats o acabareu fent petar la targeta ESP32.
Si agafem el codi de SimpleWifiServer que tens als exemples d'Arduino i el modifiquem una mica per traure el codi per apagar i engegar leds de forma remota podrem mostrar les dades del nostre sensor DHT22 pel telèfon si ens connectem de forma remota a la IP que hem esbrinat al programa anterior.
/*
WiFi Web Server send data from a DHT22
Circuit:
* WiFi shield attached
* DHT22
created for arduino 25 Nov 2012
by Tom Igoe
ported for sparkfun esp32
31.01.2017 by Jan Hendrik Berlin
Modificat per Carles per afegir un DHT22 , esborrar el codi del led
i arreglar una mida la presentacio de la pagina
*/
// Posem les llibreries i variables per la wifi
#include <WiFi.h>
const char* ssid = "La_teua_SSID";
const char* password = "La_teua_contrassenya";
WiFiServer server(80);
//Posem llibreries i variable per al sensor DHT22
#include <DHT.h>
DHT dht_19_DHT22(19,DHT22);
int TempC;
int Humitat;
void setup()
{
Serial.begin(115200);
dht_19_DHT22.begin(); // declarem el gpio del sensor de T i H
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Adreça Mac: ");
Serial.println(WiFi.macAddress());
server.begin();
}
int value = 0;
void loop(){
WiFiClient client = server.available(); // listen for incoming clients
if (client) { // if you get a client,
Serial.println("New Client."); // print a message out the serial port
String currentLine = ""; // make a String to hold incoming data from the client
while (client.connected()) { // loop while the client's connected
if (client.available()) { // if there's bytes to read from the client,
char c = client.read(); // read a byte, then
Serial.write(c); // print it out the serial monitor
if (c == '\n') { // if the byte is a newline character
// if the current line is blank, you got two newline characters in a row.
// that's the end of the client HTTP request, so send a response:
if (currentLine.length() == 0) {
// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
// and a content-type so the client knows what's coming, then a blank line:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
client.println("<BODY style='background-color:white'>");
client.println("<font style='color:green'>");
client.println("<font style='font-family:Liberation Serif'>");
client.println("<center>");
client.println("<H1 style='font-size:400%;'>Temperatura i Humitats remotes</H1>");
client.println("<br />");
client.println("<br />");
// Calculs del sensor DHT22
TempC = (int)(dht_19_DHT22.readTemperature());
Humitat = (int)(dht_19_DHT22.readHumidity());
// escrivim la Temperatura i Humitat a la web
client.print("<br><span style=font-size:4em> Temperatura C = ");
client.print(TempC);
client.print("</span>");
client.print("<br><span style=font-size:4em> Humitat % = ");
client.print(Humitat);
client.print("</span>");
client.println("</BODY>");
client.println("</HTML>");
// The HTTP response ends with another blank line:
client.println();
// break out of the while loop:
break;
} else { // if you got a newline, then clear currentLine:
currentLine = "";
}
} else if (c != '\r') { // if you got anything else but a carriage return character,
currentLine += c; // add it to the end of the currentLine
}
}
}
// close the connection:
client.stop();
Serial.println("Client Disconnected.");
}
}// final programa
Al telèfon veuràs quelcom semblant a:
Per suposat amb més sensors pots enviar més dades.
Llicenciat sota la Llicència Creative Commons Reconeixement CompartirIgual 4.0