#371СреднийIoT

IoT-комнатная станция на ESP32 (реле + DHT22)

Включай лампу с телефона и следи за температурой и влажностью в комнате вживую откуда угодно. Этот проект — пошаговое руководство к IoT-шаблону «Комнатная станция» в приложении, собранному на ESP32, модуле реле и DHT22. Открой Мастерская › Устройства › Добавить устройство и выбери «Комнатная станция»; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

0.0(0)
1 собрано
IoT-комнатная станция на ESP32 (реле + DHT22)
Если хочешь включить лампу, не вставая с дивана, или проверить, тепло ли в комнате, пока тебя нет, этот проект для тебя. Плата включает лампу через реле, а датчик температуры и влажности каждые несколько секунд отправляет показания на телефон, где из них складывается график. Код за тебя готовит приложение; ты подключаешь провода и загружаешь его. Начинаешь со светодиода вместо лампы, так что осваиваешь подключение и безопасность, прежде чем касаться сетевого напряжения.
IoT · удалённое управлениеПервое устройство бесплатно

Управляй этим устройством из приложения

Подключи ESP32 или Raspberry Pi Pico W к Wi-Fi — и включай, выключай и смотри показания в реальном времени с телефона. Код готовит Ohmi, тебе остаётся ввести данные Wi-Fi и загрузить его.

Шаблон в приложении: Комнатная станция

  • Где это в приложении?Добавь новое устройство на вкладке «Утилиты» или в разделе «Мастерская › Устройства» и выбери этот шаблон.
  • Библиотека ArduinoОткрой менеджер библиотек в Arduino IDE, найди BlueGraysIoT и установи её.
Скачать приложение бесплатно

В бесплатном плане — 1 устройство, 1 график и история за 24 часа. С Premium — больше устройств и графиков и более длинная история.

Схема

IoT-комнатная станция на ESP32 (реле + DHT22) - Circuit

Исходный код

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   IoT-комнатная станция на ESP32 (реле + DHT22)
4// ─────────────────────────────────────────
5// IoT-шаблон "Комнатная станция" из приложения BlueGrays: включай лампу с
6// телефона через реле, а DHT22 каждые 2 секунды отправляет в приложение
7// температуру и влажность в комнате. Настоящий код Ohmi готовит в
8// приложении с твоим собственным ключом устройства (Мастерская ›
9// Устройства › Добавить устройство); код здесь — пример, ключ устройства и
10// данные Wi-Fi — заглушки. Library Manager: BlueGraysIoT (с
11// зависимостями). Плата подключается только к сетям Wi-Fi 2.4 GHz. Реле
12// срабатывает по LOW. Подключай сетевую лампу только вместе с опытным
13// человеком; сначала попробуй со светодиодом.
14//
15// Пины:
16//   GPIO26 -> IN модуля реле
17//   5V, GND -> Модуль реле VCC, GND
18//   Реле COM -> 5V, NO -> 220 ohm -> анод светодиода, катод светодиода -> GND
19//   GPIO4 -> DHT22 OUT (данные)
20//   3V3, GND -> DHT22 VCC, GND
21//   Pico W: реле IN GP15, DHT22 OUT GP16
22
23/*
24 * Комнатная станция · BlueGrays IoT
25 * BlueGrays · bluegrays.com
26 * Не делись этим кодом: в нём ключ твоего устройства и пароль Wi-Fi.
27 */
28
29#include <BlueGraysIoT.h>
30#include <DHT.h>
31
32const char *DEVICE_KEY = "YOUR_DEVICE_KEY";
33const char *WIFI_NAME = "YOUR_WIFI_NAME";
34const char *WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
35
36BlueGraysIoT bg(DEVICE_KEY);
37
38const int RELAY_PIN = 26;
39const bool RELAY_ACTIVE_LOW = true;  // большинство модулей реле включаются по LOW
40void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
41DHT dht(4, DHT22);
42unsigned long lastReadMs = 0;
43
44void setup() {
45  Serial.begin(115200);
46  pinMode(RELAY_PIN, OUTPUT);
47  setRelay(false);
48  bg.onSwitch("lamba", setRelay);
49  dht.begin();
50  bg.setDeadband("sicaklik", 0.1);
51  bg.setDeadband("nem", 1.0);
52  bg.setDebug(Serial);
53  bg.setLanguage(BG_LANG_EN);
54  bg.begin(WIFI_NAME, WIFI_PASSWORD);
55}
56
57void loop() {
58  bg.loop();  // избегай здесь долгих вызовов delay()
59  if (millis() - lastReadMs >= 2000) {
60    lastReadMs = millis();
61    bg.send("sicaklik", dht.readTemperature());
62    bg.send("nem", dht.readHumidity());
63  }
64}
65

Частые вопросы

Можно ли загрузить код с этой страницы прямо на плату?

Можно, но подключения не будет: ключ устройства и данные Wi-Fi в нём — заглушки. В приложении открой Мастерская › Устройства › Добавить устройство и выбери «Комнатная станция»; Ohmi подготовит код с твоим ключом, именем сети и паролем. Скопируй этот код и загрузи его. Полный код позже можно посмотреть в разделе Устройство › Код и ключ.

Работает ли это с Pico W?

Да. При добавлении устройства выбери плату Pico W; код остаётся тем же, меняются только пины: реле идёт к GP15, а DHT22 — к GP16. В Arduino IDE установи пакет «pico» из менеджера плат. Схема и фото на этой странице сделаны с ESP32.

Можно ли подключить настоящую сетевую лампу?

Сетевое напряжение (230 V или 120 V) может убить и вызвать пожар. Сначала попробуй со светодиодом, как показано на этой странице. Если переходишь на настоящую лампу, делай это вместе с тем, кто разбирается в электрике: вилка вынута из розетки, через клеммы COM и NO реле проходит только фазный провод, нигде нет оголённых проводов, схема находится в закрытом корпусе, а мощность лампы не превышает предел, указанный на модуле.

В безопасности ли мой пароль от Wi-Fi и ключ устройства?

Пароль от Wi-Fi остаётся на твоём телефоне и никогда не отправляется на наш сервер; он добавляется в код прямо на телефоне. Ключ устройства передаётся только в заголовке защищённого соединения и никогда не выводится в монитор порта. Но оба всё равно находятся внутри кода, поэтому не делись кодом, скопированным из приложения. Если кто-то видел твой ключ, получи новый через «Обновить ключ» и загрузи новый код.