#377НовичокIoT

IoT-счётчик движения на Pico W (PIR)

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

0.0(0)
IoT-счётчик движения на Pico W (PIR)
Если интересно, сколько людей проходит мимо твоей двери за день или как часто кошка ночью пробирается на кухню, этот проект для тебя. Инфракрасный датчик движения замечает, когда мимо проходит что-то тёплое, плата считает каждое новое движение, а на телефоне из счётчика складывается график. Ты также видишь момент движения вживую и сбрасываешь счётчик одним касанием. Всего с тремя проводами это отличный первый шаг в интернет вещей.
IoT · удалённое управлениеПервое устройство бесплатно

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

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

Шаблон в приложении: Датчик движения

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

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

Схема

IoT-счётчик движения на Pico W (PIR) - Circuit

Исходный код

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   IoT-счётчик движения на Pico W (PIR)
4// ─────────────────────────────────────────
5// IoT-шаблон "Датчик движения" из приложения BlueGrays: когда датчик PIR
6// видит движение, плата сразу сообщает приложению, считает каждое новое
7// движение, а счётчик складывается в график в приложении; кнопка "Сбросить
8// счётчик" возвращает его к 0. Настоящий код Ohmi готовит в приложении с
9// твоим собственным ключом устройства (Мастерская › Устройства › Добавить
10// устройство); код здесь — пример, ключ устройства и данные Wi-Fi —
11// заглушки. Library Manager: BlueGraysIoT (с зависимостями). В Arduino IDE
12// выбери плату Raspberry Pi Pico W (пакет pico). Плата подключается только
13// к сетям Wi-Fi 2.4 GHz. Датчику PIR нужно около 1 минуты на прогрев после
14// включения; в это время он может считать неверно.
15//
16// Пины:
17//   GP13 -> OUT датчика PIR
18//   VBUS (5V), GND -> Датчик PIR VCC, GND
19//   ESP32: PIR OUT GPIO33, VCC 5V
20
21/*
22 * Датчик движения · BlueGrays IoT
23 * BlueGrays · bluegrays.com
24 * Не делись этим кодом: в нём ключ твоего устройства и пароль Wi-Fi.
25 */
26
27#include <BlueGraysIoT.h>
28
29const char *DEVICE_KEY = "YOUR_DEVICE_KEY";
30const char *WIFI_NAME = "YOUR_WIFI_NAME";
31const char *WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
32
33BlueGraysIoT bg(DEVICE_KEY);
34
35const int PIR_PIN = 13;
36bool lastMotion = false; long counter = 0;
37
38void setup() {
39  Serial.begin(115200);
40  pinMode(PIR_PIN, INPUT);
41  bg.onSwitch("sifirla", [](bool on) { if (!on) return; counter = 0; bg.send("sifirla", false); });
42  bg.setDebug(Serial);
43  bg.setLanguage(BG_LANG_EN);
44  bg.begin(WIFI_NAME, WIFI_PASSWORD);
45}
46
47void loop() {
48  bg.loop();  // избегай здесь долгих вызовов delay()
49  bool motion = digitalRead(PIR_PIN) == HIGH;
50  if (motion && !lastMotion) counter++;
51  lastMotion = motion;
52  bg.send("hareket", motion);
53  bg.send("sayac", counter);
54}
55

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

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

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

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

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

Сбрасывается ли счётчик после отключения питания?

Да. Счётчик хранится в памяти платы, поэтому после перезапуска платы снова начинается с 0. График в приложении хранится на сервере, так что прошлые значения не теряются; с 0 начинается только новый счёт. Чтобы сбросить счётчик самому, нажми в приложении кнопку «Сбросить счётчик».

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

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