Найти тему
Last memories

Метеостанция на ESP32/8266 и bme280

Оглавление

Всем привет! Сегодня в этом руководстве я бы хотел показать, как запросить показания с датчика BME280 и передать их на ESP32, или ESP8266 NodeMCU, или WeMos d1 mini с помощью Telegram бота. В конце примера мы сможем запрашивать показания температуры, влажности и давления с датчика BME280 из любой точки мира, где есть интернет. Для этого нужно просто отправить сообщение своему Telegram-боту и получить от него данные.

Что нужно для проекта?

(Все компоненты можно купить у китайцев на Aliexpress)

  • Плата WeMos d1 mini / NodeMCU / ESP32
  • Датчик температуры и влажности BME280
  • Среда для разработки Arduino IDE

Безусловно, вам нужен будет компьютер и паяльник, чтобы это всё дело собрать и прошить)

Сначала давайте создадим Telegram бота

Зайдите в Google Play или App Store, скачайте и установите Telegram.

-2

Откройте Telegram и выполните следующие действия: Сначала найдите “botfather” и нажмите на BotFather, как показано ниже. Или откройте эту ссылку t.me/botfather в вашем смартфоне

-3

Далее вам откроется следующее окно, и вам будет предложено нажать кнопку "/start".

-4

Введите /newbot и следуйте инструкциям, чтобы создать своего бота. Дайте ему имя и название.

-5

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

-6

Теперь нам нужно получить наш ID в Teleram

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

В своем аккаунте Telegram найдите “IDBot” или откройте эту ссылку t.me/myidbot в вашем смартфоне.

-7

Начните диалог с этим ботом и введите /getid. Вы получите ответ с вашим идентификатором пользователя. Сохраните этот идентификатор пользователя, потому что он понадобится вам позже.

-8

Приступаем к среде программирования

Если у вас не установлена Arduino IDE, то вы можете скачать её по ссылке - https://arduino-ide.com

Так как мы будем работать с платами ESP32 или ESP8266, то вам нужно установить их в среду разработки. Вот ссылки с подробным гайдом:

ESP8266 - https://wiki.iarduino.ru/page/WEMOS_start/

ESP32 - https://wiki.iarduino.ru/page/esp32-windows/

Далее нужно установить библиотеку для работы с ботом

  1. Зайдите в ArduinoIDE, потом Sketch > Include Library > Add.ZIP Library.
  2. Найдите и добавьте библиотеку, которую скачали.

Далее устанавливаем библиотеку ArduinoJson

  1. Зайдите в ArduinoIDE, потом Skech > Include Library > Manage Libraries.
  2. Найдите в поиске “ArduinoJson”.
  3. Установите библиотеку.
-9

Переходим к датчику. Для него также потребуется установить библиотеки.

  1. Зайдите в ArduinoIDE, потом Skech > Include Library > Manage Libraries.
  2. Найдите в поиске “adafruit bme280”.
  3. Установите библиотеку.
-10

И последняя библиотека:

  1. Зайдите в ArduinoIDE, потом Skech > Include Library > Manage Libraries.
  2. Найдите в поиске “Adafruit Unified Sensor”.
  3. Установите библиотеку.
-11

Готово! Все библиотеки установлены, пора приступить к подключению датчиков

Используемый нами модуль датчика BME280 взаимодействует по протоколу связи I2C, поэтому вам необходимо подключить его к выводам I2C на ESP32 или ESP8266.

-12

Приступим непосредственно к прошивке

  • Запустите Arduino IDE
  • Перейдите в Tools > Board > ESP8266 Boards (если используете wemos d1 mini, выбирайте LOLIN(WEMOS) D1 R2 & Mini)
  • Выберите ваш тип платы
-13
  • Опять перейдите в Tools > Port > выберите ваш порт
-14

Если портов несколько, то сделайте следующие 4 шага:

  1. Отключите плату от компьютера
  2. Посмотрите, какие порты присутствуют
  3. Подключите плату к компьютеру
  4. Выберите порт, который появится

Готово! Теперь можно загружать скетч

Для этого нажмите на стрелочку вверху, или используйте сочетание клавиш Ctrl + U.

А вот и сам скетч. Вам нужно его скопировать в Arduino IDE.

weatherstation.cpp

Как это должно работать.

После того, как мы загрузили прошивку и убедились, что плата подключилась к Wi-Fi, переходим по ссылке, которую ранее нам дал BotFather.

-15

Пишем нашему боту команду "/start". Он поприветствует нас и предложит ввести "/readings". После того, как мы напишем эту команду, бот ответит нам данными с датчиков.

-16

Вот и всё!

Ссылка на исходную статью: https://randomnerdtutorials.com/telegram-request-esp32-esp8266-nodemcu-sensor-readings/