Bme280 sensor: BME280 Environmental Sensor, Датчик влажности, температуры и давления для Arduino проектов, Waveshare

Мультисенсорный беспроводной датчик с E-Ink дисплеем / Хабр

Приветствую всех читателей Хабра и особенно читателей раздела «DIY или Сделай сам»! В сегодняшней статье я расскажу о своем очередном DIY проекте из серии устройств с дисплеями на электронных чернилах(e-ink). Устройство о котором пойдет речь это беспроводной мультисенсорный датчик с e-paper дисплеем 2.13 дюймов. На датчик можно установить сенсор температуры и влажности SHT21, HTU21D, SI7021, сенсор температуры влажности и давления BME280, сенсор атмосферного давления BMP280, сенсор освещенности MAX44009. Датчик работает от одной батарейки CR2450. Но ничего не мешает напаять на датчик держатель под батарейки CR2430 или CR2477.


Проект датчика с e-ink дисплеем размером 2.13 дюймов начинался достаточно давно. Первый прототип был сделан более года назад. Та первая версия работала на двух батарейках cr2450, имела стабилизированное питание. Со временем проект изменялся и оптимизировался, уменьшались размеры, менялись радио модули и сенсоры.

Плата окончательной версии датчика имеет размеры 72 mm * 31 mm, толщина текстолита 1.2mm. Размеры датчика в корпусе 76mm * 35mm * 12mm.

Устройство работает на микроконтроллере nRF52840, используется радио модуль MS88SF3 от компании MINEW. Модуль не имеет боковых падов для пайки, они расположены снизу радио модуля. Эта особенность немного «напрягала», но глаза боятся, а руки делают. В итоге модуль достаточно просто напаивается феном (плату устройства, на которую устанавливался радио модуль я грел снизу).

Устройство имеет две модификации платы. В модификации «А» на датчике установлен сенсор BME280, светодиод, в модификации «B» добавлен датчик освещенности, датчики температуры и влажности SHT21, HTU21D, SI7021, добавлена возможность установки сенсора BMP280, добавлена защита от переполюсовки на транзисторе.

В модификации «B» место под пайку сенсоров BME280 и BMP280 сделал универсальным, BMP280 отлично устанавливается на место BME280. Это изменение я сделал уже в крайней ревизии второй версии датчика. Причиной стало резкое удорожание сенсоров BME (в среднем на 70% на последние два месяца). Теперь появилась возможность заменить функционал BME280 установив на плату BMP280 + SHT21 (серия BMP пока не поднимается в цене). Если кому-то известна причина такого роста цен на сенсоры BME, расскажите об этом в комментариях.

Корпус датчика был напечатан на FDM 3D принтере. После печати корпус дополнительно шлифовался и полировался. Для светодиода в модификации «А» и сенсора освещенности в модификации «B» в верхней части корпуса на внутренней стороне имеются углубления для последующего сверления отверстий. Просверленные отверстия я заливал полимерной смолой для SLA принтера.

Программа датчика написана под опенсорс проект MySensors. Датчик выводит на дисплей данные с сенсоров, заряд батарейки, уровень сигнала, прогноз изменения погоды на ближайшие часы. Рядом с данными с сенсоров так же выводится стрелками направление изменения значений. Было несколько вариантов дизайна интерфейса, варианты 2 и 3 доступны на моем гитхаб.

Есть возможность по нажатию кнопки инвертировать экран. На кнопку добавлен функционал простого меню с пунктами: инвертирование цвета, конфигурация устройства, презентация устройства, сброс датчика. В режиме конфигурации датчик в течение 20 секунд слушает эфир, в это время можно с контроллера УД отправить на датчик конфигурационные команды: изменение интервала отправки данных с сенсоров(от 1 минуты до 1 часа с шагом в 1 минуту), изменение интервала отправки данных о состояния батареи и уровне сигнала(от 1 часа до 24 часов). В режиме презентации устройство отправляет на контроллер УД данные о себе(название, версия прошивки) и о сенсорах, делает запрос о том в какой системе(метрическая или имперская) работает сеть. Так же отправляет свои конфигурационные настройки.

При работе в радиосети датчик передает данные:

  • Температура,
  • Влажность,
  • Атмосферное давление,
  • Уровень освещенности,
  • Прогноз погоды,
  • Уровень сигнала,
  • Уровень заряда батарейки,
  • Причина перезагрузки


Если сеть работает в метрической системе, то данные о температуре отправляются и выводятся на экран в Цельсиях, а данные об атмосферном давлении в миллиметрах ртутного столба(только при компиляции RU версии), иначе температура выводится в Фарингейтах, а атмосферное давление в Паскалях.

Перед компиляцией программы необходимо внести изменения в конфигурационный файл aConfig.h.

Какая языковая версия будет скомпилирована (RU или ENG):

#define LANG_RU


Вывод дебага в сериал:

#define MY_DEBUG


Мощность радиопередатчика:

#define MY_NRF5_ESB_PA_LEVEL (0x8UL)


Скорость передачи данных:

#define MY_NRF5_ESB_MODE (NRF5_1MBPS)


Потребление устройства в режиме сна — 5 мкА, в режиме чтения сенсоров и обновления экрана 2-3 мА. В режиме передачи данных 8 мА, в режиме прослушивания 5мА. Время обновления экрана 300мс, время передачи одного сообщения с данными сенсоров 10мс, время передачи сообщения о заряде батареи с ожиданием эхо 100-300мс. Срок работы на одной батарейке CR2450 год и более(с конфигурацией опроса сенсоров раз в минуту и отправкой данных при изменении, опросе напряжения батарейки один раз в 6 часов и обязательной отправкой без сравнения).

Видео с демонстрацией работы датчика:


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

Фото датчика:

GitHub проекта — github.com/smartboxchannel/

В файле readme находится инструкция по установке и настройке среды для редактирования и компиляции ПО для датчика.

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

Всем, кто хочет делать устройства, начать строить автоматизацию своего дома, я предлагаю познакомиться с простым в освоении протоколом Mysensors — телеграм-чат MySensors

А тем кто ищет достаточно взрослые решения для домашней автоматизации приглашаю в телеграм-чат Open Thread. (что такое Thread?)

Спасибо за внимание, всем добра!

Датчик влажности BME280 | Bosch Sensortec

3-в-1. Доставка 10 лет.

BME280 — это датчик влажности, специально разработанный для мобильных приложений и носимых устройств, где размер и низкое энергопотребление являются ключевыми параметрами конструкции. Устройство сочетает в себе высокую линейность и высокую точность датчиков и идеально подходит для низкого потребления тока, долговременной стабильности и высокой устойчивости к ЭМС. Датчик влажности обеспечивает чрезвычайно быстрое время отклика и, следовательно, соответствует требованиям к производительности для новых приложений, таких как контекстная осведомленность и высокая точность в широком диапазоне температур.

Параметр

Технические данные

Параметр

Рабочий диапазон

Технические данные

Давление: 300…1100 гПа
Температура: -40…85°C

Параметр

Напряжение питания VDDIO
Напряжение питания VDD

Технические данные

1,2. ..3,6 В
1,71…3,6 В

Параметр

Интерфейс

Технические данные

I²C и SPI

Параметр

Среднее потребление тока (тип.) (частота обновления данных 1 Гц)

Технические данные

1,8 мкА при 1 Гц (H, T)
2,8 мкА при 1 Гц (P, T)
3,6 мкА при 1 Гц (H, P, T)
T = температура

Параметр

Среднее потребление тока в спящем режиме

Технические данные

0,1 мкА

Параметр

Датчик влажности
Время отклика (τ63%)
Допуск погрешности
Гистерезис

Технические данные

1 с
±3% относительной влажности
≤2% относительной влажности

Параметр

Датчик давления
Среднеквадратичное значение шума
Ошибка чувствительности

Смещение температурного коэффициента

Технические данные

0,2 Па (эквивалентно 1,7 см)
±0,25% (эквивалентно 1 м при изменении высоты на 400 м)

±1,5 Па/К (эквивалентно ±12,6 см при изменении температуры на 1 °C)

Параметр

Соответствует RoHS, без галогенов, MSL1

Технические данные

Параметр

Размеры упаковки

Технические данные

8-контактный LGA с металлом
2,5 x 2,5 x 0,93 мм³

Нет в наличии

Нажмите здесь, чтобы заказать

Нет в наличии

Нажмите здесь, чтобы заказать

Нет в наличии

Нажмите здесь, чтобы заказать

Нет в наличии

Нажмите здесь, чтобы заказать

Нет в наличии

Нажмите здесь, чтобы заказать

Программное обеспечение BSEC доступно для загрузки только после принятия лицензионного соглашения на программное обеспечение:

Лицензионное соглашение ЧЭС

 Частная   Коммерческая

 Подтверждаю, что мне исполнилось 18 лет

 Я прочитал и согласен с условиями лицензионного соглашения

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

* Эти поля обязательны для заполнения

Вскоре вы получите электронное письмо со ссылкой для скачивания.

Датчик температуры+давления+влажности BME280 — ESPHome

Сенсорная платформа bme280 позволяет использовать BME280
(техническая спецификация,
Adafruit) датчики температуры, давления и влажности с ESPHome. I²C это
необходимо настроить в вашей конфигурации для работы этого датчика.

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

 # Пример записи конфигурации
датчик:
  - платформа: bme280
    температура:
      имя: "Температура BME280"
      передискретизация: 16x
    давление:
      Название: "BME280 Давление"
    влажность:
      имя: "Влажность BME280"
    адрес: 0x77
    update_interval: 60 сек.
 

Переменные конфигурации:

  • температура ( Дополнительно ): информация о температуре.
    датчик

    • name ( Required , string): Название температуры
      датчик.

    • передискретизация ( Дополнительно ): Параметр передискретизации для датчика температуры.
      См. Параметры передискретизации.

    • id ( Дополнительно , ID): Установите ID этого датчика для использования в лямбда-зондах.

    • Все остальные опции от Sensor.

  • давление ( Дополнительный ): информация для датчика давления.

    • имя ( Обязательный , строка): Имя датчика давления.

    • передискретизация ( Дополнительно ): Параметр передискретизации для датчика температуры.
      См. Параметры передискретизации.

    • id ( Дополнительный , ID): установите идентификатор этого датчика для использования в лямбда-зондах.

    • Все остальные опции от Sensor.

  • влажность ( Дополнительный ): информация для датчика давления.

    • name ( Required , string): Имя датчика влажности.

    • передискретизация ( Дополнительно ): Параметр передискретизации для датчика температуры.
      См. Параметры передискретизации.

    • id ( Дополнительный , ID): установите идентификатор этого датчика для использования в лямбда-зондах.

    • Все остальные опции от Sensor.

  • адрес ( Дополнительно , целое число): вручную укажите адрес I²C
    датчик. По умолчанию 0x77 . Другой адрес может быть 0x76 .

  • iir_filter ( Дополнительный ): Установите фильтр с бесконечной импульсной характеристикой для повышения точности. Один из
    ВЫКЛ , 2x , 4x , 16x . По умолчанию ВЫКЛ. .

  • update_interval ( Дополнительно , Время): интервал проверки
    датчик.

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

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