Оглавление:

ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере: 5 шагов
ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере: 5 шагов

Видео: ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере: 5 шагов

Видео: ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере: 5 шагов
Видео: Arduino | NodeMCU ESP8266 DHT11 Live Monitoring Sensor (NodeMCU ESP8266 as an Access Point) 2024, Ноябрь
Anonim
ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере
ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере

Привет, ребята, в большинстве проектов мы используем ESP8266, и в большинстве проектов мы используем ESP8266 в качестве веб-сервера, поэтому данные могут быть доступны на любом устройстве через Wi-Fi, подключившись к веб-серверу, размещенному на ESP8266, но единственная проблема в том, что нам нужен рабочий маршрутизатор для это и наше устройство также должны быть подключены к маршрутизатору, и нам нужно поместить наши учетные данные Wi-Fi в код, поэтому, если вы меняете Wi-Fi, вам нужно изменить учетные данные в коде, и вам нужно перезагрузить его, Таким образом, в основном у нас есть две проблемы здесь: 1- нам нужно соединение Wi-Fi для размещения веб-сервера (маршрутизатора) 2- каждый раз, если соединение Wi-Fi необходимо изменить, нам нужно ввести учетные данные и повторно загрузить код. Поэтому, чтобы избежать всей этой проблемы, мы можем вместо того, чтобы дать доступ к Wi-Fi, мы можем настроить ESP8266 для создания собственного Wi-Fi-соединения, поэтому, если мы подключимся к этому Wi-Fi-соединению, мы сможем получить доступ к веб-серверу 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"; # define DHTPIN 5 // Цифровой вывод, подключенный к датчику DHT // Раскомментируйте тип используемого датчика: // # define DHTTYPE DHT11 // DHT 11 # define DHTTYPE DHT22 // DHT 22 (AM2302) // # define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // текущая температура и влажность, обновляются в loop () float t = 0.0; float h = 0.0; // Создаем объект AsyncWebServer на порту 80AsyncWebServer server (80); // Как правило, вы должны использовать "unsigned long" для переменных, которые удерживают время // Значение быстро станет слишком большим для хранения int без знака long previousMillis = 0; // сохранит время последнего обновления DHT // Обновляет показания DHT каждые 10 секундconst long interval = 10000; const char index_html PROGMEM = R "rawliteral (сервер ESP8266 DHT

Температура% ТЕМПЕРАТУРА% ° C

Влажность% ВЛАЖНОСТЬ%%) rawliteral "; // Заменяет заполнитель на DHT valuesString processor (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} else if (var == "ВЛАЖНОСТЬ") {return String (h);} return String ();} void setup () {// Последовательный порт для целей отладки Serial.begin (115200); dht.begin (); Serial.print ("Настройка точки доступа (Access Point)… "); // Удаляем параметр пароля, если вы хотите, чтобы AP (точка доступа) была открыта WiFi.softAP (ssid, password); IPAddress IP = WiFi.softAPIP (); Serial.print (" IP-адрес точки доступа: "); Serial.println (IP); // Печать локального IP-адреса ESP8266 Serial.println (WiFi.localIP ()); // Маршрут для корневого сервера / веб-страницы server.on (" / ", HTTP_GET, (AsyncWebServerRequest * запрос) {request-> send_P (200, "text / html", index_html, processor);}); server.on ("/ temperature", HTTP_GET, (AsyncWebServerRequest * request) {request- > send_P (200, «текст / простой», String (t).c_str ());}); server.on («/ влажность», HTTP_GET, (AsyncWebServerRequest * запрос) {запрос-> 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) // float newT = dht.readTemperature (true); // если считывание температуры не удалось, не изменяйте значение t if (isnan (newT)) {Serial.println ("Failed читать с датчика DHT! »); } else {t = newT; Serial.println (t); } // Считываем значение влажности с плавающей запятой newH = dht.readHumidity (); // если не удалось прочитать влажность, не меняйте значение h if (isnan (newH)) {Serial.println ("Не удалось прочитать с датчика DHT!"); } else {h = newH; Serial.println (h); }}} Перед загрузкой кода убедитесь, что вы указали следующее: const char * ssid = "ESP8266"; // любой ssid Wi-Fi, который вам нуженconst char * password = "password"; // переход для подключения к указанному выше ssidSet ESP8266 в качестве точки доступа: чтобы установить esp8266 в качестве точки доступа, мы будем использовать команду softAP, как показано ниже; для создания точки доступа. Wi-Fi.softAP (ssid, пароль); Есть также другие необязательные параметры, которые вы можете передать методу softAP (). Вот все параметры: Если вы откроете монитор последовательного порта, вы увидите IP-адрес точки доступа. Для этого используется следующая часть кода. IPAddress IP = WiFi.softAPIP (); Serial.print ("IP-адрес точки доступа:"); Serial.println (IP); IP-адрес по умолчанию: 192.168.4.1

Шаг 5: Заключительный шаг: тестирование

Заключительный этап: тестирование
Заключительный этап: тестирование

После загрузки кода откройте свой мобильный / компьютерный Wi-Fi и подключитесь к Wi-Fi esp8266 (независимо от того, какой ssid и пароль вы ввели в код, используйте это). После подключения просто откройте IP-адрес в своем браузере, который мы получили от последовательного монитора (https://192.168.4.1.), и вы сможете видеть температуру и влажность в своем браузере, как в моем. И мы не использовали для этого никакую сеть Wi-Fi, так что вот как работает точка доступа esp8266.

Рекомендуемые: