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

Управляй этим устройством из приложения
Подключи ESP32 или Raspberry Pi Pico W к Wi-Fi — и включай, выключай и смотри показания в реальном времени с телефона. Код готовит Ohmi, тебе остаётся ввести данные Wi-Fi и загрузить его.
Шаблон в приложении: Дверь / окно
- Где это в приложении?Добавь новое устройство на вкладке «Утилиты» или в разделе «Мастерская › Устройства» и выбери этот шаблон.
- Библиотека ArduinoОткрой менеджер библиотек в Arduino IDE, найди BlueGraysIoT и установи её.
В бесплатном плане — 1 устройство, 1 график и история за 24 часа. С Premium — больше устройств и графиков и более длинная история.
Схема

Исходный код
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.
