Для реализации нам понадобится:
esp32: http://ali.pub/5e1frn
Если хотите с экраном как в видео то m5stack можно приобрести тут: http://ali.pub/5afjjh
Датчик температуры, влажности и давления BME280: http://ali.pub/5j49ct
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
В этой статье разберем еще один способ получать информацию о температуре и влажности с esp32 или esp8266. А именно отправку показаний температуры и влажности в телеграмм канал по запросу.
Настройка телеграмм:
Для начала создадим телеграмм канал. Для этого введем в поиске “botfather” и начнем чат с данным ботом, нажав кнопку старт:
Данный бот позволяет создать собственного бота для своих нужд. Для этого ему в чат напишем покмнду “/newbot”
И сразу после ввода данной команды бот предложит придумать имя нашему боту:
Я назвал бота upavlatemp. Далее бот просит создать пользователя:
После ввода имени нам выдаст уникальный токен, его мы сохраняем. Его мы будем использовать в скетче.
токен закрашен красным.
Далее ищем еще одного бота под названием “idbot”
После чего вводим команду “/getid” и то что получим тоже сохраняем. Тоже понадобится для работы скетча.
Ну и все. Настройки с телеграммом закончены. Теперь давайте перейдем к самому скетчу.
Скачать скетч можно по ссылке: https://yadi.sk/d/7vDzLP_hgVSA6g
Для m5stack скетч можно скачать тут: https://yadi.sk/d/_BGeDAHfDGfp7w
Подготовка скетча:
Для начала нам нужно установить все необходимые библиотеки.
А именно:
#include <ArduinoJson.h>
Работает с версией данной библиотеки 6.15.2 (Если пройдет много лет и Вы наткнетесь на данную статью и скетч будет ругаться на эту библиотеку. То попробуйте установить именно эту версию).
#include <Adafruit_BME280.h>
#include <Adafruit_Sensor.h>
Все эти 3 библиотеки легко находятся в “управлении библиотекам
Ну и самая важная библиотека это:
#include <UniversalTelegramBot.h>
Ее можно скачать со страницы github: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
Теперь открываем скетч. Его можно скачать отсюда:
Нас интересуют строчки:
const char* ssid = “test”;
const char* password = “test”;
Тут мы вводим SSID и пароль нашей wi-fi сети.
#define CHAT_ID “XXXXXXXXX”
Тут вводим chatid который мы получили в телеграмме.
#define BOTtoken “XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXX”
А тут вводим токен который получили в телеграмме.
if (text == “/климат”) {
Ну а здесь задается команда которую при вводе в наш телеграмм канал микроконтроллер отправит значения температуры и влажности. В моем случае она называется “/климат”
По сути все. В скетче больше редактировать ничего не нужно.
Данный скетч может залиться как на ESP32, так и на esp8266.
Как подготовить среду разработки arduino ide под работу с esp32 можно посмотреть тут: https://psenyukov.ru/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0-esp32-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-arduino-ide/
Как подготовить среду разработки arduino ide под работу с esp8266 можно посмотреть тут: https://psenyukov.ru/%d0%b7%d0%bd%d0%b0%d0%ba%d0%be%d0%bc%d1%81%d1%82%d0%b2%d0%be-%d1%81-esp8266-%d0%b8-nodemcu/
Датчик Bme280 подключается к шине i2c. У микроконтроллеров esp32 и esp8266 разные пины.
Для подключения esp32 нужно подключиться к пинам (GPIO 21 = SDA, GPIO 22 = SCL)
Для подключения к esp8266 нужно подключиться к пинам (GPIO 4 = SDA, GPIO 5 = SCL)
Ну и собственно после заливки данного скетча и отправив в телеграмм канал команду “/климат” мы получим ответ с температурой и влажностью с датчика Bme280:
Видео: