🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


📟 Проект: веб-панель температуры и влажности на ESP8266 и KY-015

ESP8266 и датчик KY-015

ESP8266 и KY-015 вместе дают полноценную веб-панель погоды в комнате — оба значения обновляются на странице при каждой перезагрузке без установки отдельного приложения.

Как это работает

ESP8266 — это не просто контроллер вроде обычной Arduino, а полноценный модуль с Wi-Fi на борту, способный работать как собственный веб-сервер. Он подключается к домашней сети так же, как телефон или ноутбук, получает IP-адрес, и дальше любое устройство в этой же сети может открыть страницу по этому адресу в обычном браузере — без установки приложений и без привязки к облаку производителя.

KY-015 — это готовый модуль на основе датчика DHT11, который за один опрос отдаёт сразу два значения: температуру и влажность воздуха. Он подключается всего одним сигнальным проводом (упрощённый однопроводной протокол, похожий по духу на DS18B20, но свой у DHT-серии), поэтому вся логика его чтения уже реализована в стандартной библиотеке DHT.h — самим кодом протокола заниматься не нужно.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас нет тех контактов, которые указаны — сориентируйтесь по названиям на своей плате.

  1. Подключите KY-015: сигнал → D4 (это соответствует GPIO2 на плате ESP8266), VCC → 3.3-5V (в зависимости от платы), GND → GND.
  2. Впишите в скетч имя (SSID) и пароль своей домашней Wi-Fi сети в переменные `ssid` и `password`.
  3. Загрузите скетч и откройте монитор порта на скорости 9600 — после подключения к Wi-Fi ESP8266 выведет туда свой IP-адрес.
  4. Введите этот IP-адрес в адресную строку браузера на любом устройстве в той же Wi-Fi сети — откроется страница с текущими показаниями.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая модель,
// а не специализированный кодер, и могу что-то упустить. Основу и идею я накидал,
// но проверьте под свою схему. Если получите ошибку в Arduino IDE — пришлите её.

#include <ESP8266WiFi.h>
#include <DHT.h>

#define DHTPIN 2          // пин данных KY-015 (D4 = GPIO2)
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

const char* ssid = "your_wifi_name";         // имя вашей Wi-Fi сети
const char* password = "your_wifi_password"; // пароль от неё
WiFiServer server(80);                       // веб-сервер на стандартном 80 порту

void setup() {
  Serial.begin(9600);
  dht.begin();

  WiFi.begin(ssid, password);
  Serial.print(F("Подключение к Wi-Fi"));
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(F("."));
  }
  Serial.println();
  Serial.print(F("Подключено! IP-адрес: "));
  Serial.println(WiFi.localIP()); // этот адрес нужно ввести в браузере

  server.begin();
}

void loop() {
  WiFiClient client = server.available();
  if (!client) return; // пока никто не обращается — просто ждём дальше

  client.readStringUntil('\r');
  client.flush();

  float t = dht.readTemperature();
  float h = dht.readHumidity();

  // isnan — проверка, что датчик успешно прочитался, а не вернул "не число"
  if (isnan(t) || isnan(h)) {
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html; charset=utf-8");
    client.println();
    client.println("<html><body><h1>Ошибка чтения датчика</h1></body></html>");
    return;
  }

  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html; charset=utf-8");
  client.println();
  client.print("<html><body><h1>Температура: ");
  client.print(t);
  client.print(" &deg;C</h1><h1>Влажность: ");
  client.print(h);
  client.println("%</h1></body></html>");
}

KY-015 совместим с библиотекой DHT (тип DHT11) — та же библиотека уже использовалась в проектах теплицы, здесь она просто отдаёт оба значения сразу на веб-страницу.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🔆 автономная солнечная зарядная станция с жу…🚪 ворота с двойным управлением — кнопка и ве… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 325 ₽ 293 ₽ (экономия 32 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA