Inhaltsverzeichnis:

ESP8266 NodeMCU Access Point (AP) für Webserver mit DT11 Temperatursensor und Drucktemperatur & Luftfeuchtigkeit im Browser - Gunook
ESP8266 NodeMCU Access Point (AP) für Webserver mit DT11 Temperatursensor und Drucktemperatur & Luftfeuchtigkeit im Browser - Gunook

Video: ESP8266 NodeMCU Access Point (AP) für Webserver mit DT11 Temperatursensor und Drucktemperatur & Luftfeuchtigkeit im Browser - Gunook

Video: ESP8266 NodeMCU Access Point (AP) für Webserver mit DT11 Temperatursensor und Drucktemperatur & Luftfeuchtigkeit im Browser - Gunook
Video: Как запрограммировать WiFi-модуль ESP01 | Arduino IDE | Сделай сам 2024, November
Anonim
ESP8266 NodeMCU Access Point (AP) für Webserver mit DT11 Temperatursensor und Drucktemperatur & Luftfeuchtigkeit im Browser
ESP8266 NodeMCU Access Point (AP) für Webserver mit DT11 Temperatursensor und Drucktemperatur & Luftfeuchtigkeit im Browser

Hallo Leute, in den meisten Projekten verwenden wir ESP8266 und in den meisten Projekten verwenden wir ESP8266 als Webserver, sodass auf Daten von jedem Gerät über WLAN zugegriffen werden kann, indem auf den von ESP8266 gehosteten Webserver zugegriffen wird, aber das einzige Problem ist, dass wir einen funktionierenden Router dafür brauchen das und unser Gerät muss auch mit dem Router verbunden sein und wir müssen unsere WLAN-Anmeldeinformationen in den Code einfügen. Wenn Sie also das WLAN ändern, müssen Sie die Anmeldeinformationen im Code ändern und erneut hochladen. Im Grunde haben wir hier also zwei Probleme:1- Wir benötigen eine WLAN-Verbindung, um den Webserver (Router) zu hosten.2- Jedes Mal, wenn die WLAN-Verbindung geändert werden muss, müssen wir Anmeldeinformationen eingeben und den Code erneut hochladen WLAN-Zugang Wir können den ESP8266 dazu bringen, eine eigene WLAN-Verbindung herzustellen, so dass wir, wenn wir eine Verbindung zu dieser WLAN-Verbindung herstellen, auf den Webserver von ESP8266 zugreifen können. Im Grunde werden wir einen Webserver mit ESP8266 mit Zugangspunkt hosten werde erstellen einen Webserver mit Access Point mit ESP8266 und wir verbinden einen DHT11-Sensor und drucken Temperatur und Luftfeuchtigkeit auf der Webserver-Seite.

Schritt 1: Dinge, die Sie brauchen

Dinge, die du brauchst
Dinge, die du brauchst
Dinge, die du brauchst
Dinge, die du brauchst

1x ESP 8266 Nodemcu: 1x DHT11: 1x Steckbrett:.: Einige Jumper:

Schritt 2: Holen Sie sich die DHT11-Bibliotheken

Holen Sie sich die DHT11-Bibliotheken
Holen Sie sich die DHT11-Bibliotheken
Holen Sie sich die DHT11-Bibliotheken
Holen Sie sich die DHT11-Bibliotheken

Öffnen Sie Ihre Arduino IDE und gehen Sie zu Sketch> Include Library> Manage Libraries. Der Bibliotheksmanager sollte sich öffnen. Suchen Sie im Suchfeld nach „DHT“und installieren Sie die DHT-Bibliothek von Adafruit. Geben Sie nach der Installation der DHT-Bibliothek von Adafruit „Adafruit Unified Sensor“in das Suchfeld ein. Scrollen Sie ganz nach unten, um die Bibliothek zu finden und zu installieren. Starten Sie nach der Installation der Bibliotheken Ihre Arduino IDE neu.

Schritt 3: Verbindungen

Anschlüsse
Anschlüsse

Die Schaltung ist sehr einfach alles gemäß Schaltplan anschließen

Schritt 4: Zugangspunktcode

Zugangspunktcode
Zugangspunktcode

Von meinen vorherigen instructables werde ich den Webserver-Code dieser instructables ändern:

Und wandeln Sie es in einen Webserver-Code für den Zugangspunkt um. Bitte kopieren Sie den unten angegebenen Code:

#include "Arduino.h"#include "ESP8266WiFi.h"

#include "Hash.h"

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#include "Adafruit_Sensor.h"

#include "DHT.h"

const char* ssid = "ESP8266";const char* password = "password";#define DHTPIN 5 // Digitaler Pin mit dem DHT-Sensor verbunden // Kommentar des verwendeten Sensortyps://#define DHTTYPE DHT11 // DHT 11#define DHTTYPE DHT22 // DHT 22 (AM2302)//#define DHTTYPE DHT21 // DHT 21 (AM2301)DHT dht(DHTPIN, DHTTYPE); // aktuelle Temperatur und Luftfeuchtigkeit, aktualisiert in loop()float t = 0.0; float h = 0.0;// AsyncWebServer-Objekt auf Port 80 erstellenAsyncWebServer-Server(80);// Im Allgemeinen sollten Sie "unsigned long" für Variablen verwenden, die die Zeit halten // Der Wert wird schnell zu groß, um einen int zu speichernunsigned long previousMillis = 0; // speichert das letzte Mal, dass DHT aktualisiert wurde // Aktualisiert die DHT-Messwerte alle 10 Sekundenconst long interval = 10000; const char index_html PROGMEM = R"rawliteral(ESP8266 DHT Server

Temperatur %TEMPERATUR% °C

Luftfeuchtigkeit %FEUCHTIGKEIT% %)rawliteral"; // Ersetzt Platzhalter durch DHT-WerteString-Prozessor(const String& var){ //Serial.println(var); if(var == "TEMPERATURE"){ return String(t); } else if(var == "HUMIDITY") { Return String (h); } Return String ();}void setup () {// Serieller Port für Debugging-Zwecke Serial.begin (115200); dht.begin (); Serial.print ("Setting AP." (Access Point)…"); // Entfernen Sie den Passwort-Parameter, wenn der AP (Access Point) geöffnet sein soll WiFi.softAP(ssid, password); IPAddress IP = WiFi.softAPIP(); Serial.print(" AP-IP-Adresse: "); Serial.println (IP); // ESP8266 lokale IP-Adresse drucken Serial.println (WiFi.localIP ()); // Route für Root / Webseite server.on ("/", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, Prozessor); }); server.on("/temperature", HTTP_GET, (AsyncWebServerRequest *request){ request- >send_P(200, "text/plain", String(t).c_str()); }); server.on("/humidity", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "Text/einfach", String(h).c_str()); }); // Server starten server.begin();}void loop(){ unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // Speichern Sie das letzte Mal, als Sie die DHT-Werte aktualisiert haben previousMillis = currentMillis; // Temperatur als Celsius lesen (Standard) float newT = dht.readTemperature (); // Temperatur als Fahrenheit lesen (isFahrenheit = true) // float newT = dht.readTemperature (true); // Wenn das Lesen der Temperatur fehlgeschlagen ist, ändern Sie den t-Wert nicht if (isnan (newT)) { Serial.println ("Failed.") um vom DHT-Sensor zu lesen!"); } sonst { t = newT; Serial.println (t); } // Luftfeuchtigkeit lesen float newH = dht.readHumidity(); // Wenn das Lesen der Luftfeuchtigkeit fehlgeschlagen ist, ändern Sie den h-Wert nicht, wenn (isnan (newH)) { Serial.println ("Fehler beim Lesen vom DHT-Sensor!"); aufrechtzuerhalten. Sonst { h = newH; Serial.println (h); } }}Bevor Sie den Code hochladen, stellen Sie sicher, dass Sie folgende Dinge eingeben: const char* ssid = "ESP8266"; // Welche Ssid von WLAN Sie auch immer wollenconst char* password = "password"; // Pass zum Verbinden mit oben ssidSet Der ESP8266 als Zugangspunkt: Um esp8266 als Zugangspunkt festzulegen, verwenden wir den SoftAP-Befehl wie unten gezeigt; um einen Zugangspunkt zu erstellen. WiFi.softAP(ssid, password);Es gibt auch andere optionale Parameter, die Sie an die softAP()-Methode übergeben können. Hier sind alle Parameter: Wenn Sie den seriellen Monitor öffnen, können Sie die IP des Zugangspunkts sehen. Dies geschieht durch folgenden Teil des Codes. IPAddress IP = WiFi.softAPIP();Serial.print("AP IP address: ");Serial.println(IP);Standardmäßig lautet die IP-Adresse: 192.168.4.1

Schritt 5: Letzter Schritt: Testen

Letzter Schritt: Testen
Letzter Schritt: Testen

Nachdem Sie den Code hochgeladen haben, öffnen Sie Ihr Handy / PC-WLAN und verbinden Sie sich mit dem esp8266-WLAN (was auch immer Sie in den Code eingegeben haben, verwenden Sie dies). Nach dem Verbinden öffnen Sie einfach die IP in Ihrem Browser, die wir vom seriellen Monitor erhalten haben (https://192.168.4.1.) und Sie können Temperatur und Luftfeuchtigkeit in Ihrem Browser wie bei mir sehen.

Empfohlen: