Съдържание:

ESP8266 NodeMCU точка за достъп (AP) за уеб сървър с DT11 температурен сензор и температура и влажност на печат в браузъра: 5 стъпки
ESP8266 NodeMCU точка за достъп (AP) за уеб сървър с DT11 температурен сензор и температура и влажност на печат в браузъра: 5 стъпки

Видео: ESP8266 NodeMCU точка за достъп (AP) за уеб сървър с DT11 температурен сензор и температура и влажност на печат в браузъра: 5 стъпки

Видео: ESP8266 NodeMCU точка за достъп (AP) за уеб сървър с DT11 температурен сензор и температура и влажност на печат в браузъра: 5 стъпки
Видео: Как создать точку доступа на ESP8266 за 5 минут. Управление по WI-FI 2024, Ноември
Anonim
ESP8266 NodeMCU точка за достъп (AP) за уеб сървър с DT11 температурен сензор и температура и влажност на печат в браузъра
ESP8266 NodeMCU точка за достъп (AP) за уеб сървър с DT11 температурен сензор и температура и влажност на печат в браузъра

Здравейте момчета, в повечето проекти използваме ESP8266 и в повечето проекти използваме ESP8266 като уеб сървър, така че данните могат да бъдат достъпни на всяко устройство през wifi чрез достъп до уеб сървъра, хостван от ESP8266, но единственият проблем е, че се нуждаем от работещ рутер за това и нашето устройство също трябва да бъде свързано към рутера и трябва да поставим нашите идентификационни данни за wifi в кода, така че ако променяте wifi, трябва да промените идентификационните данни в кода и трябва да го изтеглите отново. Така че тук имаме два проблема: 1- ние се нуждаем от wifi връзка, за да хостваме уеб сървъра (рутера) 2- всеки път, когато wifi връзката трябва да бъде променена, трябва да въведем идентификационни данни и да презаредим кода. Така че, за да избегнем целия този проблем, ние можем да направим вместо wifi достъп, можем да направим ESP8266 да създаде своя собствена wifi връзка, така че ако се свържем с тази wifi връзка, можем да получим достъп до уеб сървъра на ESP8266. Така че по принцип ще хостваме уеб сървър с ESP8266 с точка за достъп. Така че в тази инструкция ние ще създава уеб сървър, използващ точка за достъп с ESP8266 и ние ще свържем сензор DHT11 и ще отпечатаме температурата и влажността на страницата на уеб сървъра.

Стъпка 1: Неща, от които се нуждаете

Нещата, от които се нуждаете
Нещата, от които се нуждаете
Нещата, от които се нуждаете
Нещата, от които се нуждаете

1x ESP 8266 Nodemcu: 1x DHT11: 1x макет:.: Малко джъмпери:

Стъпка 2: Вземете библиотеките на DHT11

Вземете библиотеките на DHT11
Вземете библиотеките на DHT11
Вземете библиотеките на DHT11
Вземете библиотеките на DHT11

Отворете вашата Arduino IDE и отидете на Sketch> Include Library> Manage Libraries. Библиотечният мениджър трябва да се отвори. Търсете „DHT“в полето за търсене и инсталирайте DHT библиотеката от Adafruit. След като инсталирате DHT библиотеката от Adafruit, въведете „Adafruit Unified Sensor“в полето за търсене. Превъртете докрай, за да намерите библиотеката и да я инсталирате. След като инсталирате библиотеките, рестартирайте вашата Arduino IDE.

Стъпка 3: Връзки

Връзки
Връзки

Схемата е много лесна за свързване на всичко според както е показано в схеми

Стъпка 4: Код на точката за достъп

Код на точката за достъп
Код на точката за достъп

От предишните ми инструкции ще променя кода на уеб сървъра на тези инструкции:

И го превърнете в код на уеб сървър на точка за достъп. Моля, копирайте кода, предоставен по -долу:

#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";#дефинирайте DHTPIN 5 // Цифров щифт, свързан към DHT сензора // Декомментирайте използвания тип сензор: //#дефинирайте DHTTYPE DHT11 // DHT 11#дефинирайте DHTTYPE DHT22 // DHT 22 (AM2302) //#дефинирайте DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // текуща температура и влажност, актуализирано в цикъл () float t = 0.0; float h = 0.0; // Създайте обект AsyncWebServer на порт 80AsyncWebServer сървър (80); // Като цяло трябва да използвате "unsigned long" за променливи, които държат времето // Стойността бързо ще стане твърде голяма за int за съхраняване на подписан дълъг предишенMillis = 0; // ще съхранява последния път, когато DHT е актуализиран // Актуализира показанията на DHT на всеки 10 секунди const дълъг интервал = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT сървър

Температура % TEMPERATURE % ° C

Влажност % HUMIDITY % %) rawliteral "; // Заменя заместителя с стойности на DHTString процесор (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {връща String (t);} else if (var == "HUMIDITY") {return String (h);} return String ();} void setup () {// Сериен порт за отстраняване на грешки Serial.begin (115200); dht.begin (); Serial.print ("Настройка на AP (Точка за достъп) … "); // Премахнете параметъра за парола, ако искате AP (Точка за достъп) да бъде отворена WiFi.softAP (ssid, парола); IPAddress IP = WiFi.softAPIP (); Serial.print (" AP IP адрес: "); Serial.println (IP); // Печат на ESP8266 Локален IP адрес Serial.println (WiFi.localIP ()); // Маршрут за root / уеб страница server.on (" / ", HTTP_GET, (AsyncWebServerRequest *заявка) {request-> send_P (200, "text/html", index_html, процесор);}); server.on ("/temperature", HTTP_GET, (AsyncWebServerRequest *заявка) {request- > send_P (200, "text/plain", String (t).c_str ());}); server.on ("/влажност", HTTP_GET, (AsyncWebServerRequest *заявка) {request-> send_P (200, "текст/обикновен", Низ (h).c_str ()); }); // Стартиране на сървър server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = interval) {// запишете последния път, когато сте актуализирали стойностите на DHT previousMillis = currentMillis; // Четене на температурата като Целзий (по подразбиране) float newT = dht.readTemperature (); // Четене на температурата като Фаренхайт (isFahrenheit = true) // плаващ newT = dht.readTemperature (true); // ако четенето на температурата е неуспешно, не променяйте t стойността if (isnan (newT)) {Serial.println ("Failed за четене от DHT сензор! "); } else {t = newT; Serial.println (t); } // Четене на влажност float newH = dht.readHumidity (); // ако четенето на влажност не е успешно, не променяйте h стойността if (isnan (newH)) {Serial.println ("Неуспешно четене от DHT сензора!"); } else {h = newH; Serial.println (h); }}} Преди да качите кода, не забравяйте да поставите следните неща: const char* ssid = "ESP8266"; // какъвто и да е ssid на wifi, който искате const char* password = "password"; // преминаваме за свързване към горепосочения ssidSet ESP8266 като точка за достъп: За да зададем esp8266 като точка за достъп, ще използваме softAP команда, както е показано по -долу; за създаване на точка за достъп. WiFi.softAP (ssid, парола); Има и други незадължителни параметри, които можете да предадете на метода softAP (). Ето всички параметри: Ако отворите серийния монитор, можете да видите IP на точката за достъп. Това става, като следвате част от кода. IPAddress IP = WiFi.softAPIP (); Serial.print ("IP IP адрес:"); Serial.println (IP); По подразбиране IP адресът е: 192.168.4.1

Стъпка 5: Последна стъпка: Тестване

Последна стъпка: Тестване
Последна стъпка: Тестване

След като качите кода, отворете своя мобилен/компютър wifi и се свържете с esp8266 wifi (независимо от ssid и паролата, които сте въвели в кода, използвайте това). След свързване просто отворете IP адреса в браузъра си, който получихме от серийния монитор (https://192.168.4.1.) и ще можете да виждате температурата и влажността в браузъра си като моя. И ние не използвахме никаква wifi мрежа, за да направим това, така че точката за достъп на esp8266 работи.

Препоръчано: