IoT - Arduino-NodeMCU ESP-12 ESP8266 (2 / 2 steg)
Steg 2: Programa arduino
#include "ESP8266WiFi.h"
#include "WiFiClient.h"
#include "ESP8266WebServer.h"
#include "ESP8266mDNS.h"
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
CONST char * ssid = "UNE_7586";
CONST char * lösenord = "12345678";
ESP8266WebServer server(80);
CONST int ledde = 13.
void handleRoot() {
Sträng meddelande = "ESP8266 Server Nodemcu\n\n";
Läst temperatur eller fuktighet tar cirka 250 millisekunder!
Sensormätningar kan också vara upp till 2 sekunder "gamla" (det är en mycket långsam sensor)
flyta h = dht.readHumidity();
Läs temperatur som Celsius (standard)
flyta t = dht.readTemperature();
Läs temperatur som Fahrenheit (isFahrenheit = true)
flyta f = dht.readTemperature(true);
Kontrollera om någon läser misslyckades och avsluta tidigt (för att försöka igen).
om (isnan(h) || isnan(t) || isnan(f)) {
Serial.println ("kunde inte läsa från DHT sensorn!");
hemkomst.
}
Beräkna Värmeindex i Fahrenheit (standard)
flyta hif = dht.computeHeatIndex (f, h);
Beräkna Värmeindex i Celsius (isFahreheit = false)
flyta hic = dht.computeHeatIndex (t, h, false);
meddelande += "luftfuktighet:";
meddelande += h;
meddelande += "% \t";
meddelande += "temperatur:";
meddelande += t;
meddelande += "* C";
meddelande += f;
meddelande += "* F\t";
meddelande += "Värmeindex:";
meddelande += hic;
meddelande += "* C";
meddelande += hif;
meddelande += "* F \n";
digitalWrite (led, 1).
Server.send (200, "text/plain", meddelande);
digitalWrite (led, 0);
}
void handleNotFound() {
digitalWrite (led, 1).
Sträng meddelande = "Filen inte Found\n\n";
meddelande += "URI:";
meddelande += server.uri();
meddelande += "\nMethod:";
meddelande += (server.method() == HTTP_GET)? " FÅ":"POST";
meddelande += "\nArguments:";
meddelande += server.args();
meddelande += "\n";
för (uint8_t jag = 0; jag meddelande += "" + server.argName(i) + ":" + server.arg(i) + "\n";
}
Server.send (404, "text/plain", meddelande);
digitalWrite (led, 0);
}
void setup(void) {
pinMode ledde (, OUTPUT);
digitalWrite (led, 0);
Serial.BEGIN(115200);
DHT.BEGIN();
WiFi.begin (ssid, lösenord);
Serial.println("");
Vänta för anslutning
medan (WiFi.status()! = WL_CONNECTED) {
Delay(500);
Serial.Print(".");
}
Serial.println("");
Serial.Print ("ansluten till");
Serial.println(SSID);
Serial.Print ("IP-adress:");
Serial.println(WiFi.localIP());
om (MDNS.begin("esp8266")) {
Serial.println ("MDNS responder började");
}
Server.on ("/", handleRoot);
Server.on ("/ inline", [] () {
Server.send (200, "text/plain", "detta fungerar lika bra");
});
server.onNotFound(handleNotFound);
Server.BEGIN();
Serial.println ("HTTP server började");
}
void loop(void) {
server.handleClient();
}