Indholdsfortegnelse:

ESP8266 NodeMCU Access Point (AP) til webserver med DT11 temperatursensor og udskrivningstemperatur og fugtighed i browser: 5 trin
ESP8266 NodeMCU Access Point (AP) til webserver med DT11 temperatursensor og udskrivningstemperatur og fugtighed i browser: 5 trin

Video: ESP8266 NodeMCU Access Point (AP) til webserver med DT11 temperatursensor og udskrivningstemperatur og fugtighed i browser: 5 trin

Video: ESP8266 NodeMCU Access Point (AP) til webserver med DT11 temperatursensor og udskrivningstemperatur og fugtighed i browser: 5 trin
Video: Build a Webserver on NodeMCU ESP8266 in Station Mode 2024, November
Anonim
ESP8266 NodeMCU Access Point (AP) til webserver med DT11 temperatursensor og udskrivningstemperatur og fugtighed i browser
ESP8266 NodeMCU Access Point (AP) til webserver med DT11 temperatursensor og udskrivningstemperatur og fugtighed i browser

Hej fyre i de fleste projekter bruger vi ESP8266 og i de fleste projekter bruger vi ESP8266 som en webserver, så data kan tilgås på enhver enhed via wifi ved at få adgang til webserveren hostet af ESP8266, men det eneste problem er, at vi har brug for en fungerende router til det og vores enhed skal også tilsluttes routeren, og vi skal sætte vores wifi -legitimationsoplysninger i koden, så hvis du ændrer wifi, skal du ændre legitimationsoplysningerne i kode, og du skal uploade den. Så grundlæggende har vi to spørgsmål her: 1- vi har brug for en wifi-forbindelse til at være vært for webserveren (routeren) 2- hver gang, hvis wifi-forbindelsen skal ændres, skal vi indtaste legitimationsoplysninger og uploade koden igen. Så for at undgå alt dette problem er det, vi kan gøre, i stedet for at give en wifi -adgang kan vi få ESP8266 til at oprette en egen wifi -forbindelse, så hvis vi opretter forbindelse til den wifi -forbindelse, kan vi få adgang til webserveren til ESP8266. Så grundlæggende vil vi være vært for en webserver med ESP8266 med adgangspunkt. Så i denne instruks kan vi vil skabe en webserver, der bruger Access Point med ESP8266, og vi forbinder en DHT11 -sensor og udskriver temperatur og fugtighed på webserversiden.

Trin 1: Ting du har brug for

Ting du har brug for
Ting du har brug for
Ting du har brug for
Ting du har brug for

1x ESP 8266 Nodemcu: 1x DHT11: 1x brødbræt:.: Få springere:

Trin 2: Få DHT11 -bibliotekerne

Få DHT11 -bibliotekerne
Få DHT11 -bibliotekerne
Få DHT11 -bibliotekerne
Få DHT11 -bibliotekerne

Åbn din Arduino IDE og gå til Skitse> Inkluder bibliotek> Administrer biblioteker. Library Manager skal åbne. Søg efter "DHT" i søgefeltet og installer DHT -biblioteket fra Adafruit. Efter installation af DHT -biblioteket fra Adafruit skal du skrive "Adafruit Unified Sensor" i søgefeltet. Rul helt ned for at finde biblioteket og installere det. Efter installation af bibliotekerne skal du genstarte din Arduino IDE.

Trin 3: Forbindelser

Forbindelser
Forbindelser

Kredsløbet er meget let at forbinde alt Ifølge som vist i skmatik

Trin 4: Adgangskode

Adgangskode
Adgangskode

Fra mine tidligere instruktiver ændrer jeg webserverkoden for denne instruktør:

Og gør det til adgangspunktets webserverkode. Kopier venligst koden herunder:

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

#inkluder "Hash.h"

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#inkludere "Adafruit_Sensor.h"

#inklusiv "DHT.h"

const char* ssid = "ESP8266"; const char* password = "password";#definere DHTPIN 5 // Digital pin forbundet til DHT -sensoren // Kommenter den type sensor, der er i brug: //#define DHTTYPE DHT11 // DHT 11#definere DHTTYPE DHT22 // DHT 22 (AM2302) //#definere DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // aktuel temperatur og luftfugtighed, opdateret i loop () float t = 0,0; float h = 0.0; // Opret AsyncWebServer -objekt på port 80AsyncWebServer -server (80); // Generelt bør du bruge "usigneret lang" til variabler, der holder tid // Værdien bliver hurtigt for stor til en int til storeunsigned long previousMillis = 0; // vil gemme sidste gang DHT blev opdateret // Opdaterer DHT -aflæsninger hvert 10. sekundskonst lange interval = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT Server

Temperatur % TEMPERATUR % ° C

Fugtighed % HUMIDITY % %) rawliteral "; // Erstatter pladsholder med DHT -værdierString -processor (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} else if (var == "HUMIDITY") {return String (h);} return String ();} void setup () {// Seriel port til fejlfindingsformål Serial.begin (115200); dht.begin (); Serial.print ("Indstilling af AP (Access Point)… "); // Fjern password -parameteren, hvis du vil have AP (Access Point) til at være åbent WiFi.softAP (ssid, password); IPAddress IP = WiFi.softAPIP (); Serial.print (" AP IP -adresse: "); Serial.println (IP); // Udskriv ESP8266 Lokal IP -adresse Serial.println (WiFi.localIP ()); // Rute til rod- / websideserver.on (" / ", HTTP_GET, (AsyncWebServerRequest *anmodning) {request-> send_P (200, "text/html", index_html, processor);}); server.on ("/temperatur", HTTP_GET, (AsyncWebServerRequest *anmodning) {request- > send_P (200, "tekst/almindelig", streng (t).c_str ());}); server.on ("/fugtighed", HTTP_GET, (AsyncWebServerRequest *anmodning) {request-> send_P (200, "tekst/almindelig", String (h).c_str ()); }); // Start server server.begin ();} void loop () {unsigned long currentMillis = millis (); hvis (currentMillis - previousMillis> = interval) {// gem den sidste gang du opdaterede DHT -værdierne previousMillis = currentMillis; // Læs temperaturen som Celsius (standard) float newT = dht.readTemperature (); // Læs temperaturen som Fahrenheit (isFahrenheit = true) // float newT = dht.readTemperature (true); // hvis temperaturen aflæst mislykkedes, skal du ikke ændre t -værdien, hvis (isnan (newT)) {Serial.println ("mislykkedes at læse fra DHT -sensor! "); } andet {t = newT; Serial.println (t); } // Læs Luftfugtighed float newH = dht.readHumidity (); // hvis læsning af fugtighed mislykkedes, skal du ikke ændre h -værdien, hvis (isnan (newH)) {Serial.println ("Kunne ikke læse fra DHT -sensor!"); } andet {h = newH; Serial.println (h); }}}} Inden du uploader koden, skal du sørge for at sætte følgende ting: const char* ssid = "ESP8266"; // uanset hvilken ssid af wifi du vil have konstant char* password = "password"; // pass for at oprette forbindelse til ovenstående ssidSet ESP8266 som et adgangspunkt: For at indstille esp8266 som et adgangspunkt vil vi bruge softAP -kommando som vist nedenfor; at oprette et adgangspunkt. WiFi.softAP (ssid, adgangskode); Der er også andre valgfrie parametre, du kan overføre til softAP () -metoden. Her er alle parametrene: Hvis du åbner den serielle skærm, kan du se adgangspunktets IP. Hvilket gøres ved at følge en del af koden. IPAddress IP = WiFi.softAPIP (); Serial.print ("AP IP -adresse:"); Serial.println (IP); Standard Ip -adresse er: 192.168.4.1

Trin 5: Sidste trin: Test

Sidste trin: Test
Sidste trin: Test

Efter upload af koden skal du åbne din mobil/pc wifi og oprette forbindelse til esp8266 wifi (uanset hvilken ssid og adgangskode du har indtastet i koden, gør brug af det). Efter tilslutning skal du bare åbne IP'en i din browser, som vi fik fra den serielle skærm (https://192.168.4.1.) og du vil kunne se temperatur og luftfugtighed i din browser som min. Og vi brugte ikke noget wifi -netværk til at få dette gjort, så det er, hvordan access point for esp8266 fungerer.

Anbefalede: