Меню

Hdc1080 температуры и влажности bmp280 давления датчик esp8266 wifi

Домашняя метеостанция на ESP8266 и датчике BME280

Оживляя цикл публикаций про Raspberry Pi и Arduino, хочу написать статью о сборке домашней метеостанции на основе ESP8266 и цифрового датчика BME280.

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

Себестоимость используемых компонентов составляет меньше $10, а процесс сборки устройства займет не более 1 – 1.5 часов.

Что нам понадобится

Для реализации описываемого в статье проекта понадобится:

Продавцы, ссылки на которых я привел выше, проверены мной лично. Я сам заказывал у них эти товары и остался доволен качеством и скоростью выполнения заказа.

Датчик BME280 (как и многие другие подключаемые модули для Arduino / ESP8266) поставляется с нераспаянными ножками. Они идут в комплекте, но подпаивать их придется самостоятельно. Для пайки могу порекомендовать вот эту паяльную пасту.

Подключение ESP8266 к ПК

Изначально я хотел написать отдельную статью о подключении плат на основе ESP8266 к компьютеру и видах прошивок для них чтобы ссылаться на эту статью в дальнейшем. Но статья “не пошла”, поэтому напишу здесь вкратце, а более подробную информацию по любому из непонятных моментов можно найти в интернете.

Для того, чтобы компьютер увидел плату, нужно установить драйвер для USB-UART (USB -> COM TTL) моста. Используемые для этого моста контроллеры могут различаться в зависимости от версии платы, соответственно, будут различаться и устанавливаемые драйвера. Например, в моем случае используется модуль CH340G, но также могут использоваться модули CP2102. Хорошие, ответственные производители обычно пишут название используемого контроллера на самой плате, но их можно отличить и на глаз: CH340G – маленькая прямоугольная микросхема, а CP2102 имеет квадратную форму.

Если драйвер подобран и установлен правильно, то после подключения ESP8266 к компьютеру USB-кабелем в разделе “Порты (COM и LPT)” диспетчера устройств Windows появится новый виртуальный COM-порт, через который будет проходить обмен данными с платой.

Затем нужно загрузить на ESP8266 Arduino-совместимую прошивку от Ai-Thinker (легко находится и скачивается в интернете) через программу ESP8266Flasher.

Финальный шаг – запустить Arduino IDE и добавить поддержку ESP-модулей. После этого ESP8266 можно программировать как обычную плату Arduino.

Важный момент: не рекомендуется прикасаться к ESP8266 во включенном состоянии, особенно – если плата подключена к USB-порту компьютера. Очень легко случайно замкнуть пальцами контакты на плате, от чего в самом неудачном раскладе может сгореть как сам модуль, так и USB-порт.

Читайте также:  На рисунке изображены графики зависимости давления паров для двух

Сборка схемы

Для удобства сборки следует использовать макетные платы и DuPont-провода. И то и другое можно найти как на AliExpress, так и в оффлайновых магазинах с радиодеталями.

Подключение BME280 к ESP8266:
3V — VIN
G — GND
D5 — SCL
D6 — SDA

Подключение OLED-дисплея:
G — GND
3V — VDD
D5 — SCK
D6 — SDA

И дисплей, и датчик BME280 используют I2C-шину и потому подключаются к одним и тем же пинам.

Скетч 1: метеостанция с OLED-дисплеем

Для компиляции и загрузки скетча нужно установить в Arduino дополнительные библиотеки:

После установки в файле библиотеки BME280 нужно вручную поправить адрес с 0x77 на 0x76:

(Установленные библиотеки Arduino IDE хранит в папке \Documents\Arduino\libraries текущего пользователя Windows)

После чего остается только скомпилировать и загрузить в память ESP8266 следующий скетч:

Вот так будет выглядеть собранное устройство в работе:

Датчик меряет все доступные ему показатели (температура, влажность, давление) и они выводятся на экран. Показатели обновляются – обновляется информация на экране. Все.

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

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

Скетч 2: метеостанция с веб-сервером

Еще один хороший вариант использование датчика BME280 – метеостанция с возможностью удаленного мониторинга через браузер.

В данном случае дисплейный модуль не задействован. ESP8266 подключается к Wi-Fi сети и поднимает веб-сервер, содержащий обновляемую показателями датчика страницу, которую можно открыть в браузере.

Хорошая статья на эту тему находится на англоязычном блоге Embedded Lab и там же можно скачать архив с готовым скетчем. Хочу только обратить внимание, что:

  • У автора той статьи задействованы пины D3 и D4, тогда как у меня D5 и D6. Можно переподключить провода как предлагает он, а можно собрать устройство по моей схеме и переправить пины в скетче.
  • Перед компиляцией скетча нужно ввести в него SSID и пароль своей Wi-Fi сети

Заключение

Вот так на основе ESP8266 и нескольких недорогих модулей можно собрать метеостанцию для домашнего использования.

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

Читайте также:  Давление подпора воздуха в лифтовую шахту

Еще один вариант развития идеи – настроить отсылку данных с датчиков по MQTT-протоколу, благодаря чему устройство можно интегрировать в любую платформу умного дома и использовать получаемые данные для управления другими умными девайсами.

Источник

BME280 — датчик атмосферного давления, влажности и температуры

Автор: Сергей · Опубликовано 23.05.2019 · Обновлено 13.04.2020

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

Технические параметры

► Напряжение питания: 3.3 В – 5 В
► Рабочий ток: 1 мA
► Диапазон измерения давления: 300 гПа – 1100 гПа (точность ±1.0 гПа)
► Диапазон измерения температуры: -40 °C до +85 °C (точность ±0.5 °C)
►Диапазон измерения влажности: 20 % до 80 % (точность ±3 %)
► Интерфейс: I2C
► Габариты: 12 мм х 10 мм

Общие сведения

Рассмотрим модуль поближе, в правой части расположен датчик BME280 фирмы Bosch (это приемник таких датчиков, как BMP180, BMP085). Данный датчик измеряет влажность, температуру и давление с помощью данных показаний осуществляется расчет высоты, но эти показания не точные, подробно о датчике можно посмотреть в документации. На обратной стороне установлен стабилизатор напряжения LM6206 на 3.3 В и преобразователь уровней I2C, поэтому можно подключить модуль к микроконтроллерам с 3.3 В или 5 В логикой, не боясь.

Назначение контактов:
► VCC, GND — питание модуля 3.3 В или 5 В
► SCL — линия тактирования (Serial CLock)
► SDA — линия данных (Serial Data)

Данный модуль работает по двухпроводному интерфейсу I2C, адрес по умолчанию 0x76, но есть возможность изменить на адрес 0x77. Если присмотреться на модуль, рядом с датчиком расположены контакты, по умолчанию левый и средний контакт замкнуты проводником. Необходимо острым предметом перерезать проводник и установить припоем перемычку между центральный и правым контактом,тем самым установив адрес 0x77. При необходимости можно вернуть адрес 0x76.

Подключение датчика давления BME280 к Arduino

Необходимые детали:
► BME280 — датчик атмосферного давления, влажности и температуры x 1 шт.
► Arduino UNO R3 (DCCduino, CH340G)x 1 шт.
► Провод DuPont 10x, 2,54 мм, 20 см, F-F (Female — Female) x 1 шт.

Подключение:
В данном примере используем датчик BME280 и плату Arduino UNO R3, все получение показание отправлять в «Мониторинг порта», принципе и все, осталось собрать схему по рисунку ниже. Для интерфейса I2C на плате arduino предусмотрено только два вывода A4 и A5, другие вывода не поддерживают I2C, так что учтите при проектирование.

Читайте также:  Давление в легких больше атмосферного при

Программа:
Для датчика BME280 разработана библиотека «Adafruit BME280 Library» с помощью которой можно упростить работу с датчиком. Так же, для работы датчика необходима дополнительная библиотека «Adafruit Unified Sensor«. Скачать библиотеки можно в конце статьи или можно скачать через «Менеджер библиотек» в среде разработки IDE Arduino.

Источник

Все в одном, BME280(BMP280). Датчик температуры, влажности и давления.

Очередная забавная штучка с АлиЭкспрес. Встречайте мега комбайн от BOSCH, цифровой датчик температуры,влажности,давления BME280 . По мнению некоторых один из самых точных датчиков по недорогой цене. Имеет SPI (поддерживает 3-4-провода SPI) и I2C интерфейс. Есть у него брат близнец BMP280 , единственное отличие в нем нету датчика влажности. Но давайте по порядку и подробней.

Характеристики :

  • Диапазон измерения давления: 300 – 1100 hPa (±1.0 hPa, 0 . . . 65 °C )
  • Диапазон измерения температуры: от -40 до 85 °C ( ±0.5 °C)
  • Диапазон измерения влажности: 0 — 100 % (20…80 %, 25 °C, ± 3%) в BMP280 отсутствует!
  • Напряжение питания 3.3 В. Но в готовом модуле из Китая уже стоит стабилизатор и согласование уровней логики.
  • Пиковое потребление 714 µA, в режиме сна 0.3 µA
  • Время старта модуля: 2 ms

Датчик имеет три режима работы : Sleep mode, Forced mode, Normal mode .

  • SLEEP – режим сна,
  • FORCED – режим аналогичен BMP085 и BMP180. То есть, дали команду на измерение, подождали, считали значения, датчик перешел в спящий режим.
  • NORMAL – этот режим наиболее интересен и загоняет датчик в циклическую работу. То есть, он самостоятельно через определенное время, которое можно задать, выходит из режима сна и выполняет измерения, сохраняет данные в регистры памяти и вновь засыпает на указанное время.

Более подробно все это написано в Datasheet(BMP280) и Datasheet(BME280).

Подключение, библиотека, код.

Мне совершенно не хочется разбираться во всех тонкостях работы с этим датчиком. По этому скачаем уже готовую библиотеку ( Adafruit_BMP280_Library ) GitHub или с нашего сайта и BME280 c GitHub , наш сайта.

Подключение к шине I2C (SCL и SDA контакты).

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

  • VIN к контакту Arduino 3.3V или 5V
  • GND к контакту Arduino GND
  • SCK к контакту Arduino Nano SCL (A5)
  • SDA к контакту Arduino Nano SDA (A4)

Тестовый скетч для BMP280 будет выглядеть так:

Для BME280 тестовый скетч будет таким :

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Adblock
detector