#375НовичокIoT

IoT-датчик двери на Pico W (геркон)

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

0.0(0)
IoT-датчик двери на Pico W (геркон)
Бывает, что уже за порогом закрадывается сомнение: а балконная дверь закрыта? Или хочется знать, не заходит ли младший брат в твою комнату? Этот проект для тебя. Маленький геркон клеится на дверную коробку, а магнит — на саму дверь; когда дверь открывается, магнит отходит, и приложение сразу показывает «Открыто». Код за тебя готовит приложение; ты только подключаешь два провода и загружаешь его. Не нужен даже резистор, хватает встроенной подтяжки платы: самый простой старт для первого IoT-датчика.
IoT · удалённое управлениеПервое устройство бесплатно

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

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

Шаблон в приложении: Дверь / окно

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

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

Схема

IoT-датчик двери на Pico W (геркон) - Circuit

Исходный код

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   IoT-датчик двери на Pico W (геркон)
4// ─────────────────────────────────────────
5// IoT-шаблон "Дверь / окно" из приложения BlueGrays: смотри на телефоне,
6// открыта или закрыта дверь или окно, с помощью геркона и магнита.
7// Настоящий код Ohmi готовит в приложении с твоим собственным ключом
8// устройства (Мастерская › Устройства › Добавить устройство); код здесь —
9// пример, ключ устройства и данные Wi-Fi — заглушки. Пакет платы:
10// Raspberry Pi Pico (Earle Philhower). Library Manager: BlueGraysIoT (с
11// зависимостями). Плата подключается только к сетям Wi-Fi 2.4 GHz. Когда
12// магнит рядом, геркон замыкается, и дверь считается закрытой.
13//
14// Пины:
15//   GP14 -> Одна ножка геркона
16//   GND -> Другая ножка геркона
17//   ESP32: геркон GPIO27
18
19/*
20 * Дверь / окно · BlueGrays IoT
21 * BlueGrays · bluegrays.com
22 * Не делись этим кодом: в нём ключ твоего устройства и пароль Wi-Fi.
23 */
24
25#include <BlueGraysIoT.h>
26
27const char *DEVICE_KEY = "YOUR_DEVICE_KEY";
28const char *WIFI_NAME = "YOUR_WIFI_NAME";
29const char *WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
30
31BlueGraysIoT bg(DEVICE_KEY);
32
33const int REED_PIN = 14;
34bool lastRaw = false, stableOpen = false;
35unsigned long changedAtMs = 0;
36
37void setup() {
38  Serial.begin(115200);
39  pinMode(REED_PIN, INPUT_PULLUP);
40  bg.setDebug(Serial);
41  bg.setLanguage(BG_LANG_EN);
42  bg.begin(WIFI_NAME, WIFI_PASSWORD);
43}
44
45void loop() {
46  bg.loop();  // избегай здесь долгих вызовов delay()
47  bool raw = digitalRead(REED_PIN) == HIGH;
48  if (raw != lastRaw) { lastRaw = raw; changedAtMs = millis(); }
49  if (millis() - changedAtMs > 50) stableOpen = raw;
50  bg.send("kapi", stableOpen ? "acik" : "kapali");
51}
52

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

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

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

Как загрузить код на Pico W? Это MicroPython?

Этот проект работает на Arduino C++, а не на MicroPython. В Arduino IDE установи из менеджера плат пакет «pico» (Raspberry Pi Pico/RP2040, Earle Philhower) и выбери Raspberry Pi Pico W в меню Инструменты (Tools) › Плата (Board). Если это первая загрузка на плату или порт не появляется, удерживай кнопку BOOTSEL, подключая USB-кабель; Arduino IDE увидит плату как диск и загрузит на неё код. Установи BlueGraysIoT со всеми зависимостями из менеджера библиотек.

Как установить геркон и магнит?

Приклей или прикрути геркон к дверной коробке, а магнит — к двери так, чтобы при закрытой двери он стоял точно напротив геркона; зазор держи меньше 1 см. Когда магнит рядом, геркон замыкается, и дверь показывается как «Закрыто»; когда дверь открывается и магнит отходит, показывается «Открыто». У двух выводов геркона нет полярности, так что неважно, какой из них идёт к GP14. Если нужны провода длиннее, хватит тонкого двухжильного кабеля. Стеклянные герконы хрупкие, поэтому не сгибай выводы вплотную к корпусу.

Работает ли это с ESP32?

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