Inhoudsopgave:

ESP8266 NodeMCU Access Point (AP) voor webserver met DT11-temperatuursensor en afdruktemperatuur en -vochtigheid in browser - Ajarnpa
ESP8266 NodeMCU Access Point (AP) voor webserver met DT11-temperatuursensor en afdruktemperatuur en -vochtigheid in browser - Ajarnpa

Video: ESP8266 NodeMCU Access Point (AP) voor webserver met DT11-temperatuursensor en afdruktemperatuur en -vochtigheid in browser - Ajarnpa

Video: ESP8266 NodeMCU Access Point (AP) voor webserver met DT11-temperatuursensor en afdruktemperatuur en -vochtigheid in browser - Ajarnpa
Video: Accessing Web Pages using Web Address - ESP8266 mDNS 2024, November
Anonim
ESP8266 NodeMCU Access Point (AP) voor webserver met DT11-temperatuursensor en afdruktemperatuur en -vochtigheid in browser
ESP8266 NodeMCU Access Point (AP) voor webserver met DT11-temperatuursensor en afdruktemperatuur en -vochtigheid in browser

Hallo allemaal, in de meeste projecten gebruiken we ESP8266 en in de meeste projecten gebruiken we ESP8266 als een webserver, zodat gegevens op elk apparaat via wifi toegankelijk zijn door toegang te krijgen tot de webserver die wordt gehost door ESP8266, maar het enige probleem is dat we een werkende router nodig hebben voor dat en ons apparaat moet ook verbonden zijn met de router en we moeten onze wifi-inloggegevens in de code plaatsen, dus als je wifi wijzigt, moet je de inloggegevens in code wijzigen en moet je het opnieuw uploaden. Dus eigenlijk hebben we hier twee problemen: 1- we hebben een wifi-verbinding nodig om de webserver (router) te hosten 2- elke keer als de wifi-verbinding moet worden gewijzigd, moeten we inloggegevens invoeren en de code opnieuw uploaden. Dus om al dit probleem te voorkomen, kunnen we in plaats van een wifi-toegang we kunnen de ESP8266 een eigen wifi-verbinding maken, dus als we verbinding maken met die wifi-verbinding, hebben we toegang tot de webserver van ESP8266. Dus in principe zullen we een webserver hosten met ESP8266 met toegangspunt. zal creëren een webserver die Access Point gebruikt met ESP8266 en we zullen een DHT11-sensor aansluiten en de temperatuur en vochtigheid op de webserverpagina afdrukken.

Stap 1: Dingen die je nodig hebt

Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt

1x ESP 8266 Nodemcu: 1x DHT11: 1x breadboard:.: Enkele springers:

Stap 2: Download de DHT11-bibliotheken

Download de DHT11-bibliotheken
Download de DHT11-bibliotheken
Download de DHT11-bibliotheken
Download de DHT11-bibliotheken

Open uw Arduino IDE en ga naar Sketch > Bibliotheek opnemen > Bibliotheken beheren. De bibliotheekmanager zou moeten openen. Zoek naar "DHT" in het zoekvak en installeer de DHT-bibliotheek van Adafruit. Na het installeren van de DHT-bibliotheek van Adafruit, typt u "Adafruit Unified Sensor" in het zoekvak. Scroll helemaal naar beneden om de bibliotheek te vinden en te installeren. Nadat u de bibliotheken hebt geïnstalleerd, start u uw Arduino IDE opnieuw op.

Stap 3: Aansluitingen

Verbindingen
Verbindingen

Het circuit is heel eenvoudig sluit alles aan Volgens zoals getoond in schmatics

Stap 4: Toegangspuntcode

Toegangspuntcode
Toegangspuntcode

Van mijn vorige instructables ga ik de webservercode van deze instructables wijzigen:

En verander het in toegangspunt-webservercode. Kopieer de onderstaande 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 // Digitale pin aangesloten op de DHT-sensor// Maak opmerkingen over het gebruikte type sensor://#define DHTTYPE DHT11 // DHT 11#define DHTTYPE DHT22 // DHT 22 (AM2302)//#define DHTTYPE DHT21 // DHT 21 (AM2301)DHT dht(DHTPIN, DHTTYPE);// huidige temperatuur en vochtigheid, bijgewerkt in loop()float t = 0.0; float h = 0.0;// Maak een AsyncWebServer-object op poort 80AsyncWebServer-server (80);// Over het algemeen moet u "unsigned long" gebruiken voor variabelen die tijd bevatten// De waarde zal snel te groot worden voor een int om unsigned long previousMillis op te slaan = 0; // slaat de laatste keer op dat DHT werd bijgewerkt// Updates DHT-metingen elke 10 seconden constant lang interval = 10000; const char index_html PROGMEM = R"rawliteral(ESP8266 DHT-server)

Temperatuur %TEMPERATUUR% °C

Vochtigheid %VOCHTHEID% %)rawliteral";// Vervangt tijdelijke aanduiding door DHT-waardenString processor(const String& var){ //Serial.println(var); if(var == "TEMPERATURE"){ return String(t); } else if(var == "VOCHTIGHEID"){ return String(h);} return String();}void setup(){ // Seriële poort voor foutopsporingsdoeleinden Serial.begin(115200); dht.begin(); Serial.print("Instelling AP (Access Point)…"); // Verwijder de wachtwoordparameter als u wilt dat het AP (Access Point) open is WiFi.softAP (ssid, wachtwoord); IPAddress IP = WiFi.softAPIP(); Serial.print(" AP IP-adres: "); Serial.println(IP); // Print ESP8266 Lokaal IP-adres Serial.println(WiFi.localIP()); // Route voor root / webpagina server.on ("/", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); }); 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, "tekst/plat", String(h).c_str()); }); // Start server server.begin();}void loop(){ unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) {// bewaar de laatste keer dat u de DHT-waarden hebt bijgewerkt previousMillis = currentMillis; // Lees temperatuur als Celsius (de standaard) float newT = dht.readTemperature(); // Lees temperatuur als Fahrenheit (isFahrenheit = true) //float newT = dht.readTemperature (true);// als temperatuur lezen mislukt, verander de t-waarde niet if (isnan (newT)) {Serial.println("Mislukt om van de DHT-sensor te lezen!"); } anders { t = nieuweT; Serieel.println(t); } // Lezen Vochtigheid float newH = dht.readHumidity (); // als het lezen van vochtigheid is mislukt, verander de h-waarde niet if (isnan (newH)) { Serial.println ("Kan niet lezen van DHT-sensor!"); } anders { h = nieuweH; Serieel.println(h); } }} Voordat u de code uploadt, moet u ervoor zorgen dat u de volgende dingen invoert: const char* ssid = "ESP8266"; // welke ssid van wifi je ook wiltconst char* password = "password"; // pass om verbinding te maken met bovenstaande ssidSet De ESP8266 als een toegangspunt: Om esp8266 als een toegangspunt in te stellen, gebruiken we het softAP-commando zoals hieronder getoond; om een toegangspunt te maken. WiFi.softAP(ssid, wachtwoord);Er zijn ook andere optionele parameters die u kunt doorgeven aan de softAP()-methode. Hier zijn alle parameters: Als u de seriële monitor opent, kunt u het IP-adres van het toegangspunt zien. Dit wordt gedaan door een deel van de code te volgen. IPAddress IP = WiFi.softAPIP();Serial.print("AP IP-adres: ");Serial.println(IP);Standaard is het IP-adres: 192.168.4.1

Stap 5: Laatste stap: testen

Laatste stap: testen
Laatste stap: testen

Na het uploaden van de code opent u vervolgens uw mobiel / pc wifi en maakt u verbinding met de esp8266 wifi (welke ssid en wachtwoord u ook in de code hebt ingevoerd, maak daar gebruik van). Open na het verbinden gewoon het IP-adres in uw browser dat we van de seriële monitor hebben gekregen (https://192.168.4.1.) en je kunt de temperatuur en vochtigheid in je browser zien als de mijne. En we hebben geen wifi-netwerk gebruikt om dit voor elkaar te krijgen, dus zo werkt het toegangspunt van esp8266.

Aanbevolen: