Перейти к содержанию

Работа с датчиками BMP280/BME280

connect

Рисунок 1. Модуль BMP280, подключённый к контроллеру Lavritech

В стандартную конфигурацию контроллеров Lavritech входит поддержка гибридного датчика температуры, влажности и давления воздуха BME280 (и урезанного варианта температура/давление BMP280). Это популярные датчики, которые часто используются в проектах по автоматизации.

Эти датчики для передачи данных используют интерфейс I2C и могут быть подключены к контроллеру Lavritech различными способами. Мы в этом руководстве рассмотрим типовой вариант подключения датчика BMP280 к выходной колодке контроллера при помощи модуля LTE2-DIO2-IO.

Процесс подключения и настройки работы датчика BMP280 разбит на несколько этапов:

  1. Подключение датчика BMP280
  2. Настройка I2C интерфейса
  3. I2C_Scanner
  4. Активация работы датчика BMP280
  5. Как использовать полученные данные
  6. Работа с MQTT

Подключение датчика BMP280

Для тестового подключения мы будем использовать датчик BMP280 в виде готового модуля HW-611, который содержит как сам чип, так и необходимую обвязку в виде резисторов и конденсаторов. Модуль имеет шесть выводов, из которых нам понадобятся четыре: две линии питания (GND и VCC) и две линии интерфейса I2C (SCL и SDA).

module

Рисунок 2. Модуль BMP280 (HW-611)

Для того, чтобы подключить датчик BMP280 к выходной колодке, нужно использовать модуль LTE2-DIO2-IO, который позволяет вывести необходимые GPIO контакты и линии земли и питания 3,3 В на выходные колодки контроллера.

Модуль LTE2-DIO2-IO устанавливается либо в разъём WB1.1, либо в разъём WB1.2. Дополнительно нужно учитывать, что разъёмы WB могут быть сконфигурированы либо как UART (RX, TX), либо как I2C (SDA, SCL). Поскольку датчик BMP280 для своей работы использует интерфейс I2C, то нужно устанавливать модуль LTE2-DIO2-IO именно в разъём, сконфигурированный как I2C.

socket1

Рисунок 3. Разъёмы WB1.1 и WB1.2 на плате контроллера

Конфигурация разъёма WB (UART/I2C) задаётся при помощи перемычек (SMD резисторов нулевого сопротивления) распаянных на плате. Как правило, контроллеры Lavritech поставляются с одним разъёмом WB сконфигурированным как UART, а другим — как I2C.

В нашем случае как I2C сконфигурирован разъём WB1.2, его мы и будем использовать для установки модуля LTE2-DIO2-IO.

Примечание. Если на вашей плате оба разъёма WB сконфигурированы как UART, то вы можете самостоятельно перепаять перемычки на плате в положение I2C.

conf

Рисунок 4. Конфигурационные резисторы UART/I2C разъёмов WB

Модули LTE2-DIO2-IO выпускаются как в вертикальном, так и в горизонтальном исполнении. Подробнее см. на странице модуля. Мы будем использовать горизонтальный модуль LTE2-DIO2-IO-H, устанавливаем его в разъём WB 1.2.

Обратите внимание: горизонтальные модули не имеют ключа, однозначно определяющего его положение при установке в материнскую плату, поэтому нужно быть особенно внимательным при его установке.

io

Рисунок 5. Установка модуля LTE2-DIO2-IO-H на материнскую плату

Распиновка разъёмов WB1.1 и WB1.2 для I2C конфигурации представлена ниже (мы используем разъём WB1.2). Для контроллеров Lavritech стандартной распиновкой интерфейса I2C является SCL:32 и SDA:33.

pinout

Рисунок 6. Распиновка WB1.1/WB1.2 для I2C конфигурации

Итоговый вариант подключения датчика BMP280 к контроллеру Lavritech при помощи модуля LTE2-DIO2-IO представлен ниже:

connect

Рисунок 7. Правильное подключение датчика 3V3, SCL, SDA, GND, согласно распиновки

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

Настройка I2C интерфейса

Поскольку датчик BMP280 для своей работы использует I2C интерфейс, то для работы с ним в первую очередь нужно настроить сам I2C интерфейс. Это можно сделать на странице «Hardware».

hardware

Рисунок 8. Пункт меню «Hardware»

Здесь нужно выставить номера GPIO, которые по умолчанию используются в контроллерах Lavritech (SDA:33, SCL:32). И затем нажать на кнопку «Set» для сохранения настроек.

i2c

Рисунок 9. Установка настроек интерфейса I2C_Scanner

I2C_Scanner

Для определения адресов подключённых на I2C шине устройств в прошивке Lavritech существует т. н. «I2C_Scanner» — это специальная страница (утилита) на которой показываются найденные на I2C шине компоненты (устройства).

scanner

Рисунок 10. Пункт меню «I2C_Scanner»

Если к вашему контроллеру (материнской плате) Lavritech подключён модуль (внутренний) или блок (внешний) с I2C интерфейсом, то I2C_Scanner покажет это на своей странице.

scan

Рисунок 11. Определение датчика BMP280 на I2C шине

В нашем случае определяется наличие на I2C шине датчика BMP280 на адресе 0x76. В Конструкторе прошивок можно при необходимости поменять I2C адрес на 0x77.

constructor

Рисунок 12. Настройки BMP280 в конструкторе прошивок

Активация работы BMP280

После проведённой предварительной настройки можно активировать работу датчика BMP280. Для этого нужно снова зайти на страницу «Hardware», установить соответствующую галочку и нажать на кнопку «Set».

on

Рисунок 13. Активация работы BMP280

Обратите внимание: для сохранения настроек нажимать нужно ближайшую к установленной галочке кнопку «Set».

В результате на главной странице мы можем видеть данные о температуре и атмосферном давлении, поступающие от датчика BMP280. Поскольку мы подключаем датчик BMP280, то имеем на выходе только два параметра, если бы мы подключили датчик BME280, то увидели бы и данные о влажности воздуха.

data

Рисунок 14. Данные с датчика BMP280 в веб-интерфейсе

Как использовать полученные данные

Программное обеспечение Lavritech помещает получаемые с аналоговых входов данные в так называемые «Метрики» («Metrics»), которые можно увидеть на соответствующей странице.

menu

Рисунок 15. Пункт меню «Metrics»

Здесь указано имя метрик («BME280(t)», «BME280(h)», «BME280(p)»), их статус («ON» — включено) и шаблоны для использования при программировании контроллера или вывода значений на экран.

metrics

Рисунок 16. Метрики датчиков BMP280/BME280

Для программирования в виде переменных:

bmet
bmeh
bmep

Для вывода на экран в виде текста:

_BMET_
_BMEH_
_BMEP_

Каждая из этих метрик будет содержать текущее значения параметров. В случае метрик-переменных (bmet, bmeh и т. д.) мы можем в Интерпретаторе использовать их для программирования своих задач, а в случае текстовых метрик — выводить данные о температуре, влажности и давлении на дисплей или в веб-интерфейс.

Работа с MQTT

Программное обеспечение Lavritech автоматически создаёт соответствующие MQTT топики и помещает в них получаемые с датчиков данные, которые можно использовать для интеграции контроллера с вашей IoT системой.

mqtt

Рисунок 17. Пример работы MQTT

В данном случае MQTT топики имеют следующий вид:

/название контроллера/bmet
/название контроллера/bmeh
/название контроллера/bmep

Связанные темы

Модуль LTE2-DIO2-IO
Разъём WB
Настройка опций

Где купить

Купить оборудование Lavritech можно в официальном интернет-магазине.