MotionSense: умная система обнаружения проникновения на Arduino и ESP8266
Компоненты и материалы
- Arduino Mega 2560 — 1 шт.
- Модуль ESP8266 ESP-01 — 1 шт.
- PIR-датчик HC-SR501 — 1 шт.
- Конденсатор 1000 мкФ — 1 шт.
- Набор резисторов и перемычек — 1 комплект
Инструменты
- Обрезатор проводов
Приложения и сервисы
- Pushbullet (для push-уведомлений на смартфон)
Описание проекта
Введение
В этом руководстве показано, как создать систему оповещения о несанкционированном проникновении. Arduino Mega обрабатывает сигнал от PIR-датчика, а ESP8266 обеспечивает Wi-Fi связь. Уведомления отправляются на смартфон через Pushbullet с использованием его HTTP API.
Необходимые знания
- Основы Arduino и работы с периферией (arduino.cc)
- AT-команды для ESP8266 (статья)
- Принцип работы PIR-датчика (Википедия)
Используемые компоненты
- Arduino Mega 2560
- ESP8266 ESP-01 (последовательный Wi-Fi модуль)
- PIR-датчик HC-SR501
- Конденсатор 1000 мкФ (для стабилизации питания ESP8266)
- Резисторы для согласования уровней (3.3 В)
- Провода 0.5 мм, перемычки «мама-мама»
- Смартфон (Sony Xperia Z1 или любой другой) с приложением Pushbullet
- Ноутбук с Arduino IDE (v1.6.4+)
Подключение PIR-датчика
- Настройте потенциометры PIR на максимальную чувствительность и минимальный цикл срабатывания.
- Снимите купол, увидите маркировку: GND | OUT | VCC.
- Подключите: GND → GND Arduino, VCC → 5V Arduino, OUT → цифровой пин 2 (можно изменить в коде).
- Проверьте работу тестовым скетчем из Arduino Playground.
Подключение ESP8266
Используется прошивка AT. Соединение (Arduino Mega — Serial2: RX2/TX2):
- ESP GND → Arduino GND
- ESP UXTX (TX) → Arduino RX2
- ESP CH_PD → 5V Arduino через стабилизатор 3.3В (или резистивный делитель)
- ESP URXD (RX) → Arduino TX2
- ESP VCC → 3.3V Arduino
- RST, GPIO0, GPIO2 — не подключены
Важно: ESP8266 потребляет много тока при передаче. Используйте внешний источник 3.3В или конденсатор 1000 мкФ между VCC и GND ESP (длинная нога к VCC, короткая к GND).
Настройка Pushbullet
- Зарегистрируйтесь на Pushbullet, установите приложение на телефон и расширение в Chrome.
- Получите Access Token в настройках аккаунта (Account → Access Token).
- Arduino не поддерживает HTTPS, поэтому используйте HTTP-шлюз: базовый URL
173.17.168.19, порт8181, путь/pushbullet/v2/pushes.
Программирование
Скачайте скетч MotionSense.ino из репозитория GitHub (ESP8266-experiments/Experiments). В коде замените:
#define SSID "ВАШ_SSID" #define PASS "ВАШ_ПАРОЛЬ" #define PIRPIN 2 #define AUTH_TOKEN "ВАШ_ACCESS_TOKEN"
Загрузите скетч, откройте монитор порта (9600 бод). После калибровки PIR и подключения к Wi-Fi будет выводиться «Everything fine | No intrusion». При движении перед датчиком придёт push-уведомление.
Краткое описание функций кода
sensor_calibration()— калибровка PIR (предварительно питание пина выключается)check_WiFi_radio()— проверка модуля Wi-Fireset_wifi()— сброс ESP8266set_wifi_mode()— установка режима клиента (station)check_wifi_stat()— проверка подключения к точке доступаconnect_ssid()— подключение к Wi-FipirRead()— чтение PIR (1 — движение, 0 — спокойствие)server_connect()— TCP-соединение с Pushbullet шлюзомpost()— отправка HTTP POST для push-уведомленияserver_disconnect()— закрытие соединения
Код
Полный код и пояснения в репозитории: github.com/anupam19/ESP8266-experiments
Схема подключения

Производственный процесс
- Визитка-PCB с игрой «Крестики-нолики» 4×4: руководство по проектированию, сборке и программированию
- Многопозиционная система датчиков температуры для интеграции в умный дом
- DIY-контроллер паяльника 862D+ — точность и надёжность
- Пожарная безопасность 3D-принтера: умная система обнаружения дыма
- Веб-управляемый IoT-индикатор на Arduino, Yaler и IFTTT
- Магнитная левитация на отталкивании с Arduino: Простая схема и DIY-руководство
- Продвинутый дистанционно управляемый манипулятор-робот для точной работы
- Высокопроизводительный регистратор данных для метеозонда на Arduino
- ArduFarmBot Часть 2: Удалённая IoT-станция управления фермой
- CoroFence: термический детектор на GridEye + PIR с IoT