Innholdsfortegnelse:

ESP8266 NodeMCU Access Point (AP) for webserver med DT11 temperatursensor og utskriftstemperatur og fuktighet i nettleseren: 5 trinn
ESP8266 NodeMCU Access Point (AP) for webserver med DT11 temperatursensor og utskriftstemperatur og fuktighet i nettleseren: 5 trinn

Video: ESP8266 NodeMCU Access Point (AP) for webserver med DT11 temperatursensor og utskriftstemperatur og fuktighet i nettleseren: 5 trinn

Video: ESP8266 NodeMCU Access Point (AP) for webserver med DT11 temperatursensor og utskriftstemperatur og fuktighet i nettleseren: 5 trinn
Video: NodeMCU ESP8266 Webserver in Access Point Mode 2024, Juli
Anonim
ESP8266 NodeMCU Access Point (AP) for webserver med DT11 temperatursensor og utskriftstemperatur og fuktighet i nettleser
ESP8266 NodeMCU Access Point (AP) for webserver med DT11 temperatursensor og utskriftstemperatur og fuktighet i nettleser

Hei folkens i de fleste prosjektene vi bruker ESP8266 og i de fleste prosjektene bruker vi ESP8266 som en webserver, slik at data kan nås på hvilken som helst enhet via wifi ved å få tilgang til webserveren som ESP8266 hoster, men det eneste problemet er at vi trenger en fungerende ruter for det og enheten vår må også kobles til ruteren, og vi må sette wifi -legitimasjonen vår i koden, så hvis du endrer wifi, må du endre legitimasjonen i kode, og du må laste den opp på nytt. Så i utgangspunktet har vi to problemer her: 1- Vi trenger en wifi-tilkobling for å være vert for webserveren (ruteren) 2- hver gang hvis wifi-tilkoblingen må endres, må vi legge inn legitimasjon og laste opp koden på nytt. Så for å unngå alt dette problemet er det vi kan gjøre i stedet for å gi en wifi -tilgang kan vi få ESP8266 til å opprette en egen wifi -tilkobling, så hvis vi kobler til den wifi -tilkoblingen kan vi få tilgang til webserveren til ESP8266. Så i utgangspunktet vil vi være vert for en webserver med ESP8266 med tilgangspunkt. Så i denne instruksen kan vi vil skape en webserver som bruker tilgangspunkt med ESP8266, og vi vil koble til en DHT11 -sensor og skrive ut temperatur og fuktighet på webserversiden.

Trinn 1: Ting du trenger

Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger

1x ESP 8266 Nodemcu: 1x DHT11: 1x brødbrett:.: Noen hoppere:

Trinn 2: Få DHT11 -bibliotekene

Skaff deg DHT11 Libraries
Skaff deg DHT11 Libraries
Skaff deg DHT11 Libraries
Skaff deg DHT11 Libraries

Åpne Arduino IDE og gå til Sketch> Include Library> Manage Libraries. Library Manager bør åpne. Søk etter "DHT" i søkeboksen og installer DHT -biblioteket fra Adafruit. Etter å ha installert DHT -biblioteket fra Adafruit, skriver du "Adafruit Unified Sensor" i søkeboksen. Rull helt ned for å finne biblioteket og installere det. Etter at du har installert bibliotekene, starter du Arduino IDE på nytt.

Trinn 3: Tilkoblinger

Tilkoblinger
Tilkoblinger

Kretsen er veldig enkel å koble alt i henhold til som vist i schmatics

Trinn 4: Tilgangspunktskode

Tilgangspunktskode
Tilgangspunktskode

Fra mine tidligere instrukser skal jeg endre webserverkoden til denne instruksen:

Og gjør den til tilgangspunktets webserverkode. Kopier koden nedenfor:

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

#inkludere "Hash.h"

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#inkludere "Adafruit_Sensor.h"

#inkludere "DHT.h"

const char* ssid = "ESP8266"; const char* password = "password";#definere DHTPIN 5 // Digital pin koblet til DHT -sensoren // Ikke kommenter typen sensor som er i bruk: //#define DHTTYPE DHT11 // DHT 11#definere DHTTYPE DHT22 // DHT 22 (AM2302) //#definere DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // gjeldende temperatur og fuktighet, oppdatert i loop () float t = 0.0; float h = 0.0; // Lag AsyncWebServer -objekt på port 80AsyncWebServer -server (80); // Generelt bør du bruke "usignert lang" for variabler som holder tid // Verdien vil raskt bli for stor for en int til å lagre signert lang foregående Millis = 0; // vil lagre forrige gang DHT ble oppdatert // Oppdaterer DHT -avlesninger hvert 10. sekund. lange intervaller = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT -server

Temperatur % TEMPERATUR % ° C

Fuktighet % HUMIDITY % %) rawliteral "; // Erstatter plassholder med DHT valuesString -prosessor (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} else if (var == "HUMIDITY") {return String (h);} return String ();} void setup () {// Seriell port for feilsøkingsformål Serial.begin (115200); dht.begin (); Serial.print ("Setting AP (Access Point)… "); // Fjern passordparameteren hvis du vil at AP (Access Point) skal være åpent WiFi.softAP (ssid, passord); IPAddress IP = WiFi.softAPIP (); Serial.print (" AP IP -adresse: "); Serial.println (IP); // Skriv ut ESP8266 lokal IP -adresse Serial.println (WiFi.localIP ()); // Rute for root / websideserver. På (" / ", HTTP_GET, (AsyncWebServerRequest *forespørsel) {request-> send_P (200, "text/html", index_html, prosessor);}); server.on ("/temperatur", HTTP_GET, (AsyncWebServerRequest *forespørsel) {request- > send_P (200, "text/plain", String (t).c_str ());}); server.on ("/fuktighet", HTTP_GET, (AsyncWebServerRequest *forespørsel) {request-> send_P (200, "tekst/vanlig", String (h).c_str ()); }); // Start server server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = interval) {// lagre den siste gangen du oppdaterte DHT -verdiene previousMillis = currentMillis; // Les temperaturen som Celsius (standard) float newT = dht.readTemperature (); // Les temperaturen som Fahrenheit (isFahrenheit = true) // float newT = dht.readTemperature (true); // hvis temperaturen som ble lest mislyktes, ikke endre t -verdien hvis (isnan (newT)) {Serial.println ("Mislyktes å lese fra DHT -sensor! "); } annet {t = newT; Serial.println (t); } // Les Luftfuktighet flyte newH = dht.readHumidity (); // hvis fuktighetsavlesning mislyktes, ikke endre h -verdi hvis (isnan (newH)) {Serial.println ("Kunne ikke lese fra DHT -sensor!"); } annet {h = nyttH; Serial.println (h); }}}} Før du laster opp koden, må du sette inn følgende ting: const char* ssid = "ESP8266"; // uansett hvilken ssid av wifi du vil ha konstant char* passord = "passord"; // pass for å koble til ssidSet ovenfor ESP8266 som et tilgangspunkt: For å sette esp8266 som et tilgangspunkt bruker vi softAP -kommandoen som vist nedenfor; for å opprette et tilgangspunkt. WiFi.softAP (ssid, passord); Det er også andre valgfrie parametere du kan overføre til softAP () -metoden. Her er alle parametrene: Hvis du åpner den serielle skjermen, kan du se IP -en for tilgangspunktet. Som gjøres ved å følge en del av koden. IPAddress IP = WiFi.softAPIP (); Serial.print ("AP IP -adresse:"); Serial.println (IP); Standard IP -adresse er: 192.168.4.1

Trinn 5: Siste trinn: Testing

Siste trinn: Testing
Siste trinn: Testing

Etter at du har lastet opp koden, åpner du din mobil/pc wifi og kobler til esp8266 wifi (uansett hvilken ssid og passord du skrev inn i koden, bruk den). Etter tilkobling åpner du bare IP -en i nettleseren din som vi fikk fra den serielle skjermen (https://192.168.4.1.) og du vil kunne se temperatur og fuktighet i nettleseren min. Og vi brukte ikke noe wifi -nettverk for å få dette gjort, så det er hvordan tilgangspunktet til esp8266 fungerer.

Anbefalt: