Метеостанция на BME280 и ESP8266

Метеостанция на BME280 и ESP8266

В этой статье расскажу, как создать небольшую метеостанцию дома, используя BME280 и NodeMCU (ESP8266). Контроллер NodeMCU v.2 (ESP8266) будет считывать показания температуры, влажности, давления и высоту (рассчитанную) с датчика BME280 и полученные данный отобразить в WEB странице. В качестве среды разработки используем Arduino IDE

Необходимые детали:
► Контроллер NodeMCU v.2 (ESP8266) x 1 шт.
► Провода DuPont, 2,54 мм, 20 см x 1 шт.
► Датчик атмосферного давления, влажности и температуры BME280 x 1 шт.

Подключение
В примере используем контроллер NodeMCU v.2 (ESP8266) и датчик BME280, с последнего будем считывать показания температуры, влажности и давления. Для подключения BME280 к ESP8266, нужно контакты SDA и SCL подключить, как показано на принципиальной схеме ниже.

Метеостанция на BME280 и ESP8266

Установка библиотек
Для работы скетча необходимо две библиотеки «Adafruit_Sensor.h« и «Adafruit_BME280.h», которые не входят в в среду разработки IDE Arduino, нужно дополнительно установить их, скачать можно в конце статьи или воспользоваться «Менеджером Библиотек«, для этого перейдите в «Скетч» -> «Включить библиотеку» -> «Управлять библиотеками..».

Метеостанция на BME280 и ESP8266

Для установки «Adafruit_Sensor.h«, введите «Adafruit Unified Sensor » в поле поиска, прокрутите вниз, что бы найти и установите ее.

Метеостанция на BME280 и ESP8266

Для установки Adafruit_BME280.h , введите «Adafruit_BME280, она одна, установите ее.

Метеостанция на BME280 и ESP8266

Так же, не забываем что необходимо установить NodeMCU в среду разработки Arduino IDE, для этого воспользуйтесь этой статьей. После установки библиотек перезапустите, среду разработки Arduino IDE.

Программа
Теперь, у нас все готово, копируем скетч в Arduino IDE или скачайте готовый файл и загружаем его в NodeMCU, незабываем указать свои данные сети.

Скачать скетч

Определение IP (ESP8266):
Теперь необходимо узнать IP модуля, для этого открываем «Мониторинг порта» с выставленной скоростью «115200», в моем случаи сеть выдала «192.168.2.107».

Метеостанция на BME280 и ESP8266

Открываем любой браузер (компьютер должен находиться в той же сети, что и ESP8266 модуль), вводим IP-адрес (192.168.2.107) и нажимаем Enter.

Метеостанция на BME280 и ESP8266

Описание скетча:
Первым делом, включаем библиотеку работы с ESP8266 и необходимые библиотеки для работы с датчиком BME280.

Следующая строка определяет переменную для сохранения давления на уровне моря. 

Далее, создаем Adafruit_BME280 с именем bme, который по умолчанию устанавливает связь с датчиком по I2C.

В следующих строках указываем свою Wi-Fi сеть и пароль в внутри двойных кавычек.

Затем устанавливаете веб-сервер на порте 80 и создаем переменную для хранения заголовка HTTP-запроса.

В «setup ()» мы запускаем последовательную связь со скоростью 115200 бод.

В следующий строках, мы проверяет, инициализацию датчика BME280

Далее, начинаем Wi-Fi соединение с «WiFi.begin (ssid, пароль)», если соединение успешно, печатается IP-адрес.

В «void loop()»  прослушиваем входящих клиентов.

Когда запрос получен от клиента, мы сохраним входящие данные, цикл while будет работать до тех пор, пока подключен клиент.

Далее, мы будем отправлять клиенту данные с помощью выражения «client.println ()».

В конце, мы прекращаем соединение с клиентом.

Если есть вопросы пишите.

сылки
 Документация на BME280
 Библиотека Adafruit BME280 Library
 Библиотека Adafruit Unified Sensor
  Документация на ESP8266
  Документация на ESP-12F
  Драйвер CP2102

Купить на Aliexpress
  Плата NodeMCU V2
  Провода DuPont, 2,54 мм, 20 см
  Датчик атмосферного давления, влажности и температуры BME280

Купить в Самаре и области
  Плата NodeMCU V2
  Провода DuPont, 2,54 мм, 20 см
  Датчик атмосферного давления, влажности и температуры BME280

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *