Работа с датчиками BMP280/BME280
Рисунок 1. Модуль BMP280, подключённый к контроллеру Lavritech
В стандартную конфигурацию контроллеров Lavritech входит поддержка гибридного датчика температуры, влажности и давления воздуха BME280 (и урезанного варианта температура/давление BMP280). Это популярные датчики, которые часто используются в проектах по автоматизации.
Эти датчики для передачи данных используют интерфейс I2C и могут быть подключены к контроллеру Lavritech различными способами. Мы в этом руководстве рассмотрим типовой вариант подключения датчика BMP280 к выходной колодке контроллера при помощи модуля LTE2-DIO2-IO.
Процесс подключения и настройки работы датчика BMP280 разбит на несколько этапов:
- Подключение датчика BMP280
- Настройка I2C интерфейса
- I2C_Scanner
- Активация работы датчика BMP280
- Как использовать полученные данные
- Работа с MQTT
Подключение датчика BMP280
Для тестового подключения мы будем использовать датчик BMP280 в виде готового модуля HW-611, который содержит как сам чип, так и необходимую обвязку в виде резисторов и конденсаторов. Модуль имеет шесть выводов, из которых нам понадобятся четыре: две линии питания (GND и VCC) и две линии интерфейса I2C (SCL и SDA).
Рисунок 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.
Рисунок 3. Разъёмы WB1.1 и WB1.2 на плате контроллера
Конфигурация разъёма WB (UART/I2C) задаётся при помощи перемычек (SMD резисторов нулевого сопротивления) распаянных на плате. Как правило, контроллеры Lavritech поставляются с одним разъёмом WB сконфигурированным как UART, а другим — как I2C.
В нашем случае как I2C сконфигурирован разъём WB1.2, его мы и будем использовать для установки модуля LTE2-DIO2-IO.
Примечание. Если на вашей плате оба разъёма WB сконфигурированы как UART, то вы можете самостоятельно перепаять перемычки на плате в положение I2C.
Рисунок 4. Конфигурационные резисторы UART/I2C разъёмов WB
Модули LTE2-DIO2-IO выпускаются как в вертикальном, так и в горизонтальном исполнении. Подробнее см. на странице модуля. Мы будем использовать горизонтальный модуль LTE2-DIO2-IO-H, устанавливаем его в разъём WB 1.2.
Обратите внимание: горизонтальные модули не имеют ключа, однозначно определяющего его положение при установке в материнскую плату, поэтому нужно быть особенно внимательным при его установке.
Рисунок 5. Установка модуля LTE2-DIO2-IO-H на материнскую плату
Распиновка разъёмов WB1.1 и WB1.2 для I2C конфигурации представлена ниже (мы используем разъём WB1.2). Для контроллеров Lavritech стандартной распиновкой интерфейса I2C является SCL:32 и SDA:33.
Рисунок 6. Распиновка WB1.1/WB1.2 для I2C конфигурации
Итоговый вариант подключения датчика BMP280 к контроллеру Lavritech при помощи модуля LTE2-DIO2-IO представлен ниже:
Рисунок 7. Правильное подключение датчика 3V3, SCL, SDA, GND, согласно распиновки
После физического подключения датчика к контроллеру, можно переходить к программным настройкам.
Настройка I2C интерфейса
Поскольку датчик BMP280 для своей работы использует I2C интерфейс, то для работы с ним в первую очередь нужно настроить сам I2C интерфейс. Это можно сделать на странице «Hardware».
Рисунок 8. Пункт меню «Hardware»
Здесь нужно выставить номера GPIO, которые по умолчанию используются в контроллерах Lavritech (SDA:33, SCL:32). И затем нажать на кнопку «Set» для сохранения настроек.
Рисунок 9. Установка настроек интерфейса I2C_Scanner
I2C_Scanner
Для определения адресов подключённых на I2C шине устройств в прошивке Lavritech существует т. н. «I2C_Scanner» — это специальная страница (утилита) на которой показываются найденные на I2C шине компоненты (устройства).
Рисунок 10. Пункт меню «I2C_Scanner»
Если к вашему контроллеру (материнской плате) Lavritech подключён модуль (внутренний) или блок (внешний) с I2C интерфейсом, то I2C_Scanner покажет это на своей странице.
Рисунок 11. Определение датчика BMP280 на I2C шине
В нашем случае определяется наличие на I2C шине датчика BMP280 на адресе 0x76. В Конструкторе прошивок можно при необходимости поменять I2C адрес на 0x77.
Рисунок 12. Настройки BMP280 в конструкторе прошивок
Активация работы BMP280
После проведённой предварительной настройки можно активировать работу датчика BMP280. Для этого нужно снова зайти на страницу «Hardware», установить соответствующую галочку и нажать на кнопку «Set».
Рисунок 13. Активация работы BMP280
Обратите внимание: для сохранения настроек нажимать нужно ближайшую к установленной галочке кнопку «Set».
В результате на главной странице мы можем видеть данные о температуре и атмосферном давлении, поступающие от датчика BMP280. Поскольку мы подключаем датчик BMP280, то имеем на выходе только два параметра, если бы мы подключили датчик BME280, то увидели бы и данные о влажности воздуха.
Рисунок 14. Данные с датчика BMP280 в веб-интерфейсе
Как использовать полученные данные
Программное обеспечение Lavritech помещает получаемые с аналоговых входов данные в так называемые «Метрики» («Metrics»), которые можно увидеть на соответствующей странице.
Рисунок 15. Пункт меню «Metrics»
Здесь указано имя метрик («BME280(t)», «BME280(h)», «BME280(p)»), их статус («ON» — включено) и шаблоны для использования при программировании контроллера или вывода значений на экран.
Рисунок 16. Метрики датчиков BMP280/BME280
Для программирования в виде переменных:
bmet bmeh bmep
Для вывода на экран в виде текста:
_BMET_ _BMEH_ _BMEP_
Каждая из этих метрик будет содержать текущее значения параметров. В случае метрик-переменных (bmet, bmeh и т. д.) мы можем в Интерпретаторе использовать их для программирования своих задач, а в случае текстовых метрик — выводить данные о температуре, влажности и давлении на дисплей или в веб-интерфейс.
Работа с MQTT
Программное обеспечение Lavritech автоматически создаёт соответствующие MQTT топики и помещает в них получаемые с датчиков данные, которые можно использовать для интеграции контроллера с вашей IoT системой.
Рисунок 17. Пример работы MQTT
В данном случае MQTT топики имеют следующий вид:
/название контроллера/bmet /название контроллера/bmeh /название контроллера/bmep
Связанные темы
Модуль LTE2-DIO2-IO
Разъём WB
Настройка опций
Где купить
Купить оборудование Lavritech можно в официальном интернет-магазине.