Оглавление:

Telegram Flame Alarm Bot: 5 шагов
Telegram Flame Alarm Bot: 5 шагов

Видео: Telegram Flame Alarm Bot: 5 шагов

Видео: Telegram Flame Alarm Bot: 5 шагов
Видео: ЮЛЯ ФИНЕСС: Как я вышла с 8 этажа! Групповое изнасилование под мефедроном, психиатрическая больница 2024, Июль
Anonim
Telegram Flame Alarm Bot
Telegram Flame Alarm Bot

В этой статье я представлю проект IoT, который позволяет улавливать пламя и отправлять уведомление в Telegram пользователя.

Что вам понадобится:

  • Модуль датчика пламени
  • Микроконтроллер NodeMCU ESP8266
  • Источник питания
  • Вай фай
  • Устройство вывода с телеграммой

Шаг 1. Аппаратное обеспечение

Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение

Модуль датчика пламени Этот модуль содержит фототранзистор и электронику формирования сигнала. Фототранзистор проводит больше электрического тока под воздействием света. Физика научила нас, что (видимый) свет состоит из всех цветов, от красного до фиолетового. Покрывая фототранзистор черной эпоксидной смолой, он становится более чувствительным к красному цвету или даже становится невидимым ниже красного или инфракрасного. Интересно, что пламя излучает инфракрасное излучение. Таким образом, когда этот датчик видит пламя, он проводит больше тока. NodeMCU - это Arduino-совместимая плата, в основе которой лежит ESP8266. Он стал популярным, потому что сам по себе является микроконтроллером с поддержкой Wi-Fi - нет необходимости в Arduino. Цель этой статьи - показать всю распиновку и платы NodeMCU, которые доступны в настоящее время. Обратите внимание, что при программировании этих плат с использованием ядра ESP в Arduino IDE номера GPIO используются вместо того, что на плате.

Шаг 2: Подключение

Связь
Связь

Датчик подключен к GPIO0 для прерываний.

Прерывания полезны для того, чтобы что-то происходило автоматически в программах микроконтроллера, и могут помочь решить проблемы с синхронизацией. С прерываниями вам не нужно постоянно проверять текущее значение вывода. При обнаружении изменения запускается событие - вызывается функция. Эта функция называется процедурой обслуживания прерывания (ISR). Когда происходит прерывание, процессор останавливает выполнение основной программы для выполнения задачи, а затем возвращается к основной программе.

Шаг 3: Telegram Bot

Telegram Bot
Telegram Bot

Боты - это сторонние приложения, которые работают внутри Telegram. Пользователи могут взаимодействовать с ботами, отправляя сообщения, команды и встроенные запросы. Мы можем управлять нашими ботами через HTTP API, предоставляемые Telegram.

Бот Telegram - это приложение, размещенное на сервере (здесь это ESP8266), которое использует API бота Telegram для подключения к клиентам Telegram Messenger. Большим преимуществом ботов Telegram является то, что они не требуют установки и без проблем работают на всех компьютерах или мобильных платформах, на которых работает Telegram Messenger. Настройте Telegram Bot Установите Telegram на свой ноутбук или телефон и найдите BotFather. Через BotFather мы можем создать нового бота. После создания нового бота мы должны записать токен, который является ключом взаимодействия между устройством и API бота Telegram.

Шаг 4: Программное обеспечение

Загрузите библиотеку Telegram Bot

Откройте Arduino IDE, перейдите в «Эскиз», выберите «Включить библиотеку» и нажмите «Добавить. ZIP-библиотеку».

#включают

#include #include // Инициализировать Wi-Fi-соединение с маршрутизатором char ssid = "wifi"; // SSID (имя) char пароль = "12345678"; // ваш сетевой ключ int status = 0; // Инициализируем Telegram BOT #define BOTtoken "1234567890: AAEsdxDfSL57kpfZz1bduD9j4fddsiyfg" // токен от @BotFather #define BOTname "ESP8266 FireBot" // имя бота #define BOTusername (имя пользователя) BOTuserbot, имя пользователя Telegram, // имя пользователя бота int Bot_mtbs = 1000; // время обновления long Bot_lasttime; bool Start = false; bool isfire = false; bool haveid = false; int var = 0; String id; void Bot_EchoMessages () {для (int i = 1; i Bot_lasttime + Bot_mtbs) {bot.getUpdates (bot.message [0] [1]); Bot_EchoMessages (); // ответ на сообщение с помощью Echo Bot_lasttime = millis (); } alarm_if_fire (); } void handleInterrupt () {Serial.println ("Обнаружено прерывание"); isfire = true; }

Рекомендуемые: