Найти в Дзене

Мониторинг движения через Telegram: пошаговое руководство для ESP8266 и PIR-датчика

Приветствую всех! В последнее время я был немного занят, так как посвятил всё своё свободное время изучению создания скетчей для микроконтроллеров Ардуино в среде Arduino IDE. Теперь я готов поделиться с вами своими наработками и представить вам уникальный проект – IoT-устройство для отслеживания движения с интеграцией Telegram. Этот проект основан на использовании PIR-датчика (датчика движения) и позволяет создать систему мониторинга, которая будет оповещать вас о любых движениях через Telegram-бота. Ниже я подробно расскажу о том, как работает скетч и как вы можете создать его самостоятельно. Ещё для создания подобного проекта вам потребуется создать Телеграм-Бота, плата-микроконтроллер ESP8266, PIR-датчик, провода и немного времени. Создание Telegram-бота — это увлекательный процесс, который требует базовых знаний программирования и понимания API Telegram (если описание для вас не понятно, в сети вы найдете более подробные инструкции). 1. Подключение библиотек - ESP8266WiFi.h
Оглавление

Приветствую всех!

В последнее время я был немного занят, так как посвятил всё своё свободное время изучению создания скетчей для микроконтроллеров Ардуино в среде Arduino IDE. Теперь я готов поделиться с вами своими наработками и представить вам уникальный проект – IoT-устройство для отслеживания движения с интеграцией Telegram.

Этот проект основан на использовании PIR-датчика (датчика движения) и позволяет создать систему мониторинга, которая будет оповещать вас о любых движениях через Telegram-бота. Ниже я подробно расскажу о том, как работает скетч и как вы можете создать его самостоятельно.

Схема проекта:

"Проект: система безопасности с ESP8266 и Telegram-уведомлениями"
"Проект: система безопасности с ESP8266 и Telegram-уведомлениями"

Ещё для создания подобного проекта вам потребуется создать Телеграм-Бота, плата-микроконтроллер ESP8266, PIR-датчик, провода и немного времени.

Создание бота в Telegram:

Создание Telegram-бота — это увлекательный процесс, который требует базовых знаний программирования и понимания API Telegram (если описание для вас не понятно, в сети вы найдете более подробные инструкции).

  1. Откройте Telegram и найдите бота BotFather (@BotFather).
  2. Начните диалог с BotFather и используйте команду /newbot.
  3. Следуйте инструкциям:
    Укажите имя бота (например, MyTestBot).
    Укажите username бота (должен заканчиваться на bot, например, MyTestBot_bot).
  4. После создания бота BotFather предоставит вам токен доступа. Сохраните его, он понадобится для подключения к API Telegram.
Для создания бота используйте команду /newbot.
Для создания бота используйте команду /newbot.

Описание скетча для ESP8266

1. Подключение библиотек

- ESP8266WiFi.h: Библиотека для работы с Wi-Fi на микроконтроллере ESP8266.

- WiFiClientSecure.h: Библиотека для безопасного подключения к интернету через SSL/TLS.

- UniversalTelegramBot.h: Библиотека для взаимодействия с Telegram API, позволяющая отправлять и получать сообщения через Telegram-бота.

2. Настройка параметров сети и Telegram-бота

- WIFI_SSID и WIFI_PASSWORD: Указываются имя и пароль вашей Wi-Fi сети.

- BOT_TOKEN: Токен вашего Telegram-бота, который вы получаете при создании бота через BotFather (описано выше).

- CHAT_ID: ID вашего чата в Telegram, куда будут отправляться уведомления. Это должен быть ID пользователя, а не группы.

* Получите ID пользователя: Напишите боту напрямую в Telegram, а затем получите свой ID, используя бота @userinfobot. Замените CHAT_ID на свой ID пользователя.

- BOT_MTBS: Время (в миллисекундах) между проверками новых сообщений от Telegram.

3. Инициализация переменных и объектов

- cert(TELEGRAM_CERTIFICATE_ROOT): Сертификат для безопасного подключения к Telegram API.

- secured_client: Объект для безопасного подключения к интернету.

- bot: Объект Telegram-бота, который будет использоваться для отправки и получения сообщений.

- PIR_PIN: Пин, к которому подключен PIR-датчик (в данном случае D5).

- previousPirState: Переменная для хранения предыдущего состояния PIR-датчика.

4. Функция `handleNewMessages`

Эта функция обрабатывает входящие сообщения от пользователя в Telegram:

- Если получена команда `/status`, бот проверяет текущее состояние PIR-датчика и отправляет сообщение о наличии или отсутствии движения.

- Если получена команда `/start`, бот отправляет приветственное сообщение с инструкциями по использованию.

5. Функция `setup`

- Инициализация последовательного порта для отладки.

- Настройка пина PIR-датчика как входного.

- Подключение к Wi-Fi сети с использованием указанных SSID и пароля.

- Настройка времени через NTP-сервер (для корректной работы SSL/TLS).

- Ожидание стабилизации PIR-датчика (1 минута).

6. Функция `loop`

- Проверка новых сообщений от Telegram каждую секунду (BOT_MTBS).

- Если соединение с Wi-Fi потеряно, происходит попытка переподключения.

- Постоянное чтение состояния PIR-датчика.

- Если состояние PIR-датчика изменилось (обнаружено движение), бот отправляет уведомление в Telegram.

7. Логика работы PIR-датчика

- PIR-датчик подключен к пину D5. Когда датчик обнаруживает движение, он меняет свое состояние с LOW на HIGH.

- Если состояние изменилось, бот отправляет сообщение в Telegram о том, что движение обнаружено.

- Состояние датчика сохраняется в переменной `previousPirState`, чтобы избежать повторных уведомлений при непрерывном движении.

8. Обработка ошибок

- Если не удается подключиться к Wi-Fi, программа зависает в бесконечном цикле.

- Если не удается получить время с NTP-сервера, программа также зависает.

- В случае ошибки отправки сообщения в Telegram, информация об этом выводится в Serial Monitor.

9. Отправка уведомлений

- Когда PIR-датчик обнаруживает движение, бот отправляет сообщение в Telegram с текстом "Движение обнаружено!".

- Пользователь также может запросить текущий статус движения, отправив команду `/status`.

10. Задержка и стабилизация

- После включения устройства PIR-датчик требует времени для стабилизации (около 1 минуты), чтобы избежать ложных срабатываний.

11. Отладка

- Вся информация о состоянии устройства, подключении к Wi-Fi, отправке сообщений и состоянии PIR-датчика выводится в Serial Monitor (при желании режим отладки можно убрать).

12. Использование

- После загрузки скетча на ESP8266 с помощью Arduino IDE, устройство подключается к Wi-Fi и начинает мониторить движение.

- Пользователь может взаимодействовать с ботом через Telegram, отправляя команды `/start` и `/status`.

Заключение

Этот скетч позволяет создать простую систему мониторинга движения с уведомлениями через Telegram.

Он может быть использован для домашней автоматизации, безопасности или других проектов, где требуется отслеживание движения и удаленное уведомление. Если нужно этот скетч можно модернизировать и добавить дополнительные средства визуального контроля (светодиоды, пищалку).

Фрагмент кода "Мониторинг движения через Telegram", весь скетч можно скачать по ссылке (Смотри ниже)!
Фрагмент кода "Мониторинг движения через Telegram", весь скетч можно скачать по ссылке (Смотри ниже)!

Ссылка на готовый скетч с фото и описанием:

Скачать архив Яндекс Диск ...

Скачать с GitHub ...

Готовая программа в Телеграм отображается так:

Telegram-бот для мониторинга движения: проект на ESP8266
Telegram-бот для мониторинга движения: проект на ESP8266

Вот и все, о чем сегодня я хотел рассказать. Надеюсь, что у вас все получилось и вы смогли создать своего телеграм-бота. Если у вас возникли трудности или вопросы в процессе, не стесняйтесь искать дополнительную информацию или обращаться за помощью.

Помните, что программирование — это путь постоянного обучения и экспериментов. Ваш первый бот — это лишь начало. Возможно, в будущем вы создадите что-то еще более удивительное и полезное.

И ещё, если Вы решили всерьез погрузиться в мир Arduino, я настоятельно рекомендую приобрести:

Набор для начинающих Starter Kit Arduino с Arduino Uno R3 — это идеальный старт для тех, кто хочет погрузиться в мир электроники и программирования. Включающий всё необходимое для первых шагов, он содержит Arduino Uno — микроконтроллер, USB-кабель для подключения к компьютеру, макетную плату на 830 контактов, светодиоды разного цвета, набор резисторов и множество других компонентов.

Этот набор создан для обучения через практику, помогая быстро освоить работу с Arduino. Он минимизирует сложность, предлагая только самые необходимые компоненты для успешного старта, и при этом оставляет возможность для расширения и добавления новых элементов по мере роста ваших знаний и интересов.

С Набором для начинающих с Arduino Uno R3 вы сможете создавать разнообразные проекты, от простых визуальных эффектов до сложных интерактивных систем, и получить базовые знания по работе с Arduino.

Спасибо за внимание и до новых встреч! Желаю вам успехов в ваших начинаниях и новых творческих побед.

Ставьте 👍, если считаете, что статья была полезна.

Подписывайтесь на канал, будете оперативно узнавать о выходе нового материала.

Подписывайтесь на Телеграм-канал, чтобы не пропустить выход новой статьи.

Помочь автору:

Визитка для сбора денег — ЮMoney