Съдържание:

Бот за аларма за пламък на Telegram: 5 стъпки
Бот за аларма за пламък на Telegram: 5 стъпки

Видео: Бот за аларма за пламък на Telegram: 5 стъпки

Видео: Бот за аларма за пламък на Telegram: 5 стъпки
Видео: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Ноември
Anonim
Telegram Flam Alarm Bot
Telegram Flam Alarm Bot

В тази статия ще представя IoT проект, който позволява да се усети пламъкът и да се изпрати известие до Telegram на потребителя.

Какво ще ви трябва:

  • Модул на сензора за пламък
  • Микроконтролерен възелMCU ESP8266
  • Източник на захранване
  • WiFi
  • Изходно устройство с телеграма

Стъпка 1: Хардуер

Хардуер
Хардуер
Хардуер
Хардуер

Модул на сензора за пламък Този модул съдържа фототранзистор и електроника за кондициониране на сигнала. Фототранзисторът провежда повече електрически ток, когато е изложен на светлина. Физиката ни научи, че (видимата) светлина се състои от всички цветове, от червено до виолетово. Покривайки фототранзистора с черен епоксид, той става по -чувствителен към червено или дори невидим под червеното или инфрачервеното. Интересното е, че пламъкът излъчва инфрачервено лъчение. По този начин, когато този сензор види пламък, той провежда повече ток. NodeMCU е съвместима с Arduino платка, която в основата си разполага с ESP8266. Той стана популярен, защото сам по себе си е готов за WiFi микроконтролер - няма нужда от Arduino. Целта на тази статия е да покаже всички разклонения и платки на NodeMCU, които са налични в момента. Имайте предвид, че когато програмирате тези платки с помощта на ESP ядрото в Arduino IDE, се използват GPIO номерата вместо това, което е на дъската.

Стъпка 2: Свързване

Връзка
Връзка

Сензор, свързан към GPIO0 за прекъсвания.

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

Стъпка 3: Telegram Bot

Telegram бот
Telegram бот

Ботовете са приложения на трети страни, които се изпълняват в 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, отидете на „Sketch“, изберете „Include Library“и кликнете върху „Add. ZIP Library“.

#включва

#include #include // Инициализиране на Wifi връзка към рутера char ssid = "wifi"; // SSID (име) char парола = "12345678"; // вашият мрежов ключ int status = 0; // Инициализирайте Telegram BOT #дефинирайте BOTtoken "1234567890: AAEsdxDfSL57kpfZz1bduD9j4fddsiyfg" // токен от @BotFather #define BOTname "ESP8266 FireBot" // име на бот #дефинирайте BOTuser име "BOT_ име BOT_BOT6, BOTto6; int Bot_mtbs = 1000; // време за опресняване дълго Bot_lasttime; bool Start = false; bool isfire = false; bool hasid = false; int var = 0; Низов идентификатор; void Bot_EchoMessages () {for (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 = вярно; }

Препоръчано: