«Arduino и Telegram» – Урок 9: датчик давления BMP180

Девятый урок из цикла «Arduino и Telegram».  В нём мы научимся получать информацию об атмосферном давлении при помощи telegram бота и датчика bmp180.
[vc_row][vc_column][vc_wp_text][intense_spacer type=»block» height=»30″]

Девятый урок из цикла «Arduino и Telegram».  В нём мы научимся получать информацию об атмосферном давлении при помощи telegram бота и датчика bmp180.[/vc_wp_text][intense_alert border_radius=»10px» close=»1″ close_memory=»2″ shadow=»0″ margin_bottom=»» tab_984862461=»» tab_411412670=»» tab_1479978263=»» tab_1595777515=»» tab_1376433241=»» tab_928372326=»» tab_629785658=»» tab_2101863514=»»]Для прохождения данного урока необходимо настроить ArduinoIDE и подключить телеграм бота, как показано в первом уроке. [/intense_alert][intense_alert color=»warning» border_radius=»10px» close=»1″ close_memory=»2″ shadow=»0″ margin_bottom=»» tab_984862461=»» tab_411412670=»» tab_1479978263=»» tab_1595777515=»» tab_1376433241=»» tab_928372326=»» tab_629785658=»» tab_2101863514=»»]Не забывайте о технике безопасности при работе с электрическими устройствами![/intense_alert][vc_tta_tour][vc_tta_section title=»Компоненты» tab_id=»1533052599223-87f8f29b-8836″][vc_wp_text]Для выполнения урока понадобятся: плата nodemcu, breadboard, соединительные провода, датчик давления bmp180.[/vc_wp_text][vc_gallery interval=»3″ images=»3378,2938,2935,2915″ img_size=»full»][/vc_tta_section][vc_tta_section title=»Схема подключения» tab_id=»1533052599255-3f48ffbd-5196″][vc_wp_text]Схема, которую предстоит собрать, представлена на рисунке. Датчик можно питать и от 3.3, и от 5 вольт. Советую подключать к VIN (5V).

[/vc_wp_text][/vc_tta_section][vc_tta_section title=»Подключение библиотеки» tab_id=»1533052726133-c1bf9a3e-d13b»][vc_wp_text]Для работы bmp180 c nodemcu понадобится библиотека. Вот ссылка на нужную.

Библиотека подключается в меню “Скетч” — “Подключить библиотеку” — “добавить .zip библиотеку”. В открывшемся окне выберите скачанный архив с библиотекой.

[/vc_wp_text][/vc_tta_section][vc_tta_section title=»Код прошивки» tab_id=»1533052764925-f1e94aea-256c»][vc_wp_text]Перед тем, как вы загрузите прошивку, обратите внимание, что  настройки wifi сети и бота лежат в файле secrets.h.

Прошивку можно скачать на github.

//файл с настройками сети и токеном бота
#include "secrets.h"

//подключение библиотек
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <TelegramBot.h>
#include <SFE_BMP180.h>
#include <Wire.h>

//объявление бота и датчика
WiFiClientSecure net_ssl;
TelegramBot bot (BotToken, net_ssl);
SFE_BMP180 pressure;

void setup() {
  //подключение wifi, бота, датчика
  Serial.begin(9600);
  wifiConnect();
  bot.begin(); 
  pressure.begin();
}

void loop() {
  //получение сообщения
  message m = bot.getUpdates(); 

  //если запрос давления
  if (m.text.equals("Pressure")){   
    //то отправляем данные  
    bot.sendMessage(m.chat_id, String(round(getPressure()))+" Pa");  
  }
}

//функция для подключения к wifi
void wifiConnect(){
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
     delay(500);
     Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println(WiFi.localIP());
}

//функция для получения давления
double getPressure() {
  char status;
  double T, P, p0, a;
  status = pressure.startTemperature();
  if (status != 0) {
    // ожидание замера температуры
    delay(status);
    status = pressure.getTemperature(T);
    if (status != 0) {
      status = pressure.startPressure(3);
      if (status != 0) {
        // ожидание замера давления
        delay(status);
        status = pressure.getPressure(P, T);
        if (status != 0) {
          return (P);
        }
      }
    }
  }
}
[/vc_wp_text][/vc_tta_section][vc_tta_section title=»Демонстрация работы» tab_id=»1533052885267-7d9f3c1d-aef8″][vc_wp_text]Демонстрация работающего устройства.[/vc_wp_text][vc_video link=»http://youtu.be/gXW5NbnSxmY»][/vc_tta_section][/vc_tta_tour][vc_wp_text]Если вы заметили какие-то ошибки или что-то показалось непонятным, буду очень рад если напишите об этом в комментариях. [/vc_wp_text][/vc_column][/vc_row]

Загрузка ...
The Robot
Adblock
detector