NodeMCU и Telegram: управление с помощью чат-бота

09 июня 2018

Интернет вещей давно ворвался в повседневную жизнь – умный дом, умный телевизор и даже умный чайник. В этом курсе статей я помогу вам войти в мир интернета вещей и сэкономить при создании девайсов для дома. Встречайте первую статью из цикла уроков.

В данной статье мы подготовим Arduino IDE, бота в telegram и саму плату к работе. Для повторения урока вам понадобится плата Nodemcu, а также светодиод, пара соединительных проводов, breadboard на котором будет собрана схема. Для общения с компьютером воспользуемся micro usb проводом.

Схема подключения:

Схема абсолютно простая, главное не забыть про особенности распиновки nodemcu. Короткая нога светодиода в землю, длинная в пин D3.

Добавление nodemcu в Arduino IDE (подключение esp8266 пакета)

Esp8266 понадобится нам для работы с nodemcu в среде разработки Arduino IDE.

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

1. Запустите среду разработки - Arduino IDE

2. Откройте настройки

3. В поле «Дополнительные ссылки для Менеджера плат» вставьте ссылку на esp8266 пакет: http:/ /arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json

4. Перейдите в Инструменты – Плата – Менеджер плат

5. Прокрутите вниз. Найдите esp8266. Выберите версию 2.3.0. (или другую более новую). Установите.

6. В Инструменты – Плата выберите nodemcu. Остальные настройки платы выставятся автоматически.

Установка библиотеки Telegram

Для обработки полученных сообщений и отправки ответных реакций нам понадобится библиотека https://github.com/witnessmenow/Universal-Arduino-... . Советую установить ее вручную, так как могут возникнуть ошибки.

Создание бота telegram

Настало время создать нашего цифрового друга, который верно и покорно будет обрабатывать все наши команды. Откройте бота @BotFather. Для создания нового бота напишите /newbot. Следуйте инструкциям, выберите ему имя и логин и в конце скопируйте bot token, он понадобится при прошивке платы nodemcu.

Прошивка

В первом уроке рассмотрим все части прошивки детально.

Подключаем нужные библиотеки.

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <TelegramBot.h>

Указываем пин светодиода, wifi сеть и токен бота.

#define LED 0 //D3
const char* ssid = "yura";
const char* password = "0987654321s";
const char BotToken[] = "xxx";

Объявляем бота.

WiFiClientSecure net_ssl;
TelegramBot bot (BotToken, net_ssl);

В void setup устанавливаем скорость общения с компьютером, пытаемся подключиться к wifi, выводим ip адрес устройства в сети, запускаем бота и pinmode для светодиода .

void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println(WiFi.localIP());
bot.begin();
pinMode(LED, OUTPUT);
}

Переходим в void loop. Здесь надо сначала проверить наличие новых сообщений.

message m = bot.getUpdates();

Теперь проверяем какое сообщение пришло, выполняем соответствующее действие, и отправляем ответную реакцию.

if (m.text.equals("on")){
digitalWrite(LED, HIGH);
bot.sendMessage(m.chat_id, "The Led 1 is now ON");
}else if (m.text.equals("off")){
digitalWrite(LED, LOW);
bot.sendMessage(m.chat_id, "The Led 1 is now OFF");
}

Скетч целиком можно скачать здесь: https://yadi.sk/d/R8TIz_t73XQcvG

Настало время прошивать микроконтроллер. Сначала меняем в скетче название и пароль от вашей Wi-Fi сети, потом меняем токен бота и пин к которому подключен светодиод. Загружаем скетч на плату.

Тестируем

Теперь, когда все установлено и прошито, можно посмотреть на работу устройства. Для включения и выключения светодиода используются команды on и off соответственно. Их надо просто отправить боту в сообщении. При подключении nodemcu к компьютеру, можно увидеть некоторую отладочную информацию в мониторе порта.


Заключение

Поздравляем! Первый шаг к интернету вещей сделан! Но это всего лишь светодиод. А в следующих статьях будут рассмотрены датчики температуры, влажности, движения. Подписывайтесь!


Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.


Поделиться: