Innehållsförteckning:

ESP8266 NodeMCU Access Point (AP) för webbserver med DT11 temperatursensor och utskriftstemperatur och luftfuktighet i webbläsare: 5 steg
ESP8266 NodeMCU Access Point (AP) för webbserver med DT11 temperatursensor och utskriftstemperatur och luftfuktighet i webbläsare: 5 steg

Video: ESP8266 NodeMCU Access Point (AP) för webbserver med DT11 temperatursensor och utskriftstemperatur och luftfuktighet i webbläsare: 5 steg

Video: ESP8266 NodeMCU Access Point (AP) för webbserver med DT11 temperatursensor och utskriftstemperatur och luftfuktighet i webbläsare: 5 steg
Video: How to Program the ESP8266 ESP01 Wi-Fi Relay Module | RemoteXY | FLProg 2024, December
Anonim
ESP8266 NodeMCU Access Point (AP) för webbserver med DT11 temperatursensor och utskriftstemperatur och luftfuktighet i webbläsare
ESP8266 NodeMCU Access Point (AP) för webbserver med DT11 temperatursensor och utskriftstemperatur och luftfuktighet i webbläsare

Hej killar i de flesta projekten använder vi ESP8266 och i de flesta projekten använder vi ESP8266 som en webbserver så att data kan nås på vilken enhet som helst via wifi genom att komma åt webbservern som ESP8266 är värd för, men det enda problemet är att vi behöver en fungerande router för det och vår enhet måste också anslutas till routern och vi måste sätta in våra wifi -uppgifter i koden, så om du byter wifi måste du ändra autentiseringsuppgifterna i koden och du måste ladda upp den igen. Så i princip har vi två problem här: 1- vi behöver en wifi-anslutning för att vara värd för webbservern (routern) 2- varje gång om wifi-anslutningen behöver ändras måste vi ange inloggningsuppgifter och ladda upp koden igen. Så för att undvika allt detta problem är det vi kan göra istället för att ge en wifi -åtkomst kan vi få ESP8266 att skapa en egen wifi -anslutning så om vi ansluter till den wifi -anslutningen kan vi komma åt ESP8266: s webbserver. Så i princip kommer vi att vara värd för en webbserver med ESP8266 med åtkomstpunkt. kommer att skapa en webbserver som använder åtkomstpunkt med ESP8266 och vi ansluter en DHT11 -sensor och skriver ut temperatur och luftfuktighet på webserversidan.

Steg 1: Saker du behöver

Saker du behöver
Saker du behöver
Saker du behöver
Saker du behöver

1x ESP 8266 Nodemcu: 1x DHT11: 1x brödbräda:.: Några hoppare:

Steg 2: Skaffa DHT11 -biblioteken

Skaffa DHT11 -biblioteken
Skaffa DHT11 -biblioteken
Skaffa DHT11 -biblioteken
Skaffa DHT11 -biblioteken

Öppna din Arduino IDE och gå till Sketch> Include Library> Manage Libraries. Library Manager ska öppna. Sök efter "DHT" i sökrutan och installera DHT -biblioteket från Adafruit. Efter att ha installerat DHT -biblioteket från Adafruit skriver du "Adafruit Unified Sensor" i sökrutan. Bläddra hela vägen ner för att hitta biblioteket och installera det. Efter att du har installerat biblioteken startar du om din Arduino IDE.

Steg 3: Anslutningar

Anslutningar
Anslutningar

Kretsen är mycket enkel att ansluta allt enligt som visas i schmatik

Steg 4: Kod för åtkomstpunkt

Kod för åtkomstpunkt
Kod för åtkomstpunkt

Från mina tidigare instruktioner kommer jag att ändra webbserverkoden för dessa instruktioner:

Och förvandla den till åtkomstpunktens webbserverkod. Kopiera koden nedan:

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

#inkludera "Hash.h"

#inkludera "ESPAsyncTCP.h"

#inkludera "ESPAsyncWebServer.h"

#inkludera "Adafruit_Sensor.h"

#inkludera "DHT.h"

const char* ssid = "ESP8266"; const char* password = "password";#definiera DHTPIN 5 // Digital pin ansluten till DHT -sensorn // Avmarkera den typ av sensor som används: //#define DHTTYPE DHT11 // DHT 11#definiera DHTTYPE DHT22 // DHT 22 (AM2302) //#definiera DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // nuvarande temperatur och luftfuktighet, uppdaterad i loop () float t = 0,0; float h = 0.0; // Skapa AsyncWebServer -objekt på port 80AsyncWebServer -server (80); // Generellt bör du använda "osignerad lång" för variabler som håller tid // Värdet blir snabbt för stort för en int för att lagra signerad lång tidigareMillis = 0; // kommer att lagra senast DHT uppdaterades // Uppdaterar DHT -avläsningar var 10: e sekund, långa intervall = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT -server

Temperatur % TEMPERATUR % ° C

Luftfuktighet % HUMIDITY % %) rawliteral "; // Ersätter platshållare med DHT -värdenString -processor (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} annars if (var == "HUMIDITY") {return String (h);} return String ();} void setup () {// Seriell port för felsökningsändamål Serial.begin (115200); dht.begin (); Serial.print ("Inställning av AP (Access Point)… "); // Ta bort lösenordsparametern om du vill att AP (Access Point) ska vara öppet WiFi.softAP (ssid, lösenord); IPAddress IP = WiFi.softAPIP (); Serial.print (" AP IP -adress: "); Serial.println (IP); // Skriv ut ESP8266 lokal IP -adress Serial.println (WiFi.localIP ()); // Rutt för root / webbserver.on (" / ", HTTP_GET, (AsyncWebServerRequest *begäran) {request-> send_P (200, "text/html", index_html, processor);}); server.on ("/temperatur", HTTP_GET, (AsyncWebServerRequest *begäran) {request- > send_P (200, "text/plain", String (t).c_str ());}); server.on ("/fuktighet", HTTP_GET, (AsyncWebServerRequest *begäran) {request-> send_P (200, "text/vanlig", Sträng (h).c_str ()); }); // Starta server server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = intervall) {// spara senaste gången du uppdaterade DHT -värdena previousMillis = currentMillis; // Läs temperaturen som Celsius (standard) float newT = dht.readTemperature (); // Läs temperaturen som Fahrenheit (isFahrenheit = true) // float newT = dht.readTemperature (true); // om temperaturen läst misslyckades, ändra inte t -värdet om (isnan (newT)) {Serial.println ("Misslyckades att läsa från DHT -sensor! "); } annat {t = newT; Serial.println (t); } // Läs Luftfuktighet float newH = dht.readHumidity (); // om luftfuktighetsavläsning misslyckades, ändra inte h -värdet om (isnan (newH)) {Serial.println ("Det gick inte att läsa från DHT -sensor!"); } annat {h = newH; Serial.println (h); }}} Innan du laddar upp koden, se till att du anger följande: const char* ssid = "ESP8266"; // oavsett vilken ssid av wifi du vill ha konstant char* password = "password"; // pass för att ansluta till ovanstående ssidSet ESP8266 som en åtkomstpunkt: För att ställa in esp8266 som en åtkomstpunkt använder vi softAP -kommandot enligt nedan; för att skapa en åtkomstpunkt. WiFi.softAP (ssid, lösenord); Det finns också andra valfria parametrar du kan skicka till softAP () -metoden. Här är alla parametrar: Om du öppnar den seriella bildskärmen kan du se åtkomstpunktens IP. Vilket görs genom att följa en del av koden. IPAddress IP = WiFi.softAPIP (); Serial.print ("AP IP -adress:"); Serial.println (IP); Som standard är IP -adressen: 192.168.4.1

Steg 5: Sista steget: Testning

Sista steget: Testning
Sista steget: Testning

När du har laddat upp koden öppnar du din mobil/pc wifi och ansluter till esp8266 wifi (oavsett vilken ssid och lösenord du har angett i koden använder den). Efter anslutning öppnar du bara IP: n i din webbläsare som vi fick från seriell bildskärm (https://192.168.4.1.) och du kommer att kunna se temperatur och luftfuktighet i din webbläsare som min. Och vi använde inte något wifi -nätverk för att få det gjort så det är hur åtkomstpunkten för esp8266 fungerar.

Rekommenderad: