Речь пойдет о беспроводном сенсоре multi-touch с 2,13-дюймовым дисплеем для e-paper. Датчик может быть оснащен датчиком температуры и влажности SHT21, HTU21D, SI7021, датчиком температуры и влажности BME280, датчиком атмосферного давления BMP280 и датчиком освещенности MAX44009. Датчик питается от батареи CR2450. Но ничто не мешает припаять на датчик держатель для батареек CR2430 или CR2477.
Данное устройство работает с микроконтроллером nRF52840, используется радиомодуль MS88SF3 от MINEW. На боковой стороне модуля нет паяльных площадок, они расположены в нижней части радиомодуля. Эта функция немного «надоедала», но глаза пугаются, а руки это делают. В итоге модуль просто припаивается феном (я нагревал плату устройства, на которую был установлен радиомодуль, снизу).
Устройство имеет две модификации платы. В модификации «А» на датчике установлен сенсор BME280 на датчик установлен светодиодный диод, в модификации «Б» датчик освещенности, датчики температуры и влажности SHT21, HTU21D, SI7021, возможность установки датчика BMP280, добавлена защита от переполюсовки на транзисторе.
В варианте «В» место для пайки датчиков BME280 и BMP280 универсальное, BMP280 отлично монтируется на место BME280. Я внес это изменение в последней ревизии второй версии датчика. Причиной стал резкий рост цен на датчики BME (в среднем на 70% за последние два месяца). Теперь вы можете заменить функционал BME280, установив на плату BMP280 + SHT21 (цена на серию BMP пока не растет). Если кому-то известна причина такого роста цен на датчики BME, расскажите, пожалуйста, об этом в комментариях.
Корпус датчика был напечатан на 3D-принтере FDM. После печати корпус был дополнительно отшлифован и отполирован. Для светодиода в модификации «А» и светового датчика в модификации «Б» во внутренней части верхней части ящика предусмотрены выемки для последующего сверления. Я заполнил просверленные отверстия полимерной смолой для SLA-принтера.
Программа сенсора была написана для проекта с открытым исходным кодом MySensors. Датчик отображает данные с датчиков, заряд аккумулятора, уровень сигнала и прогноз погоды на ближайшие несколько часов. Помимо данных с датчиков, направление изменения значения также указывается стрелками. Было несколько вариантов дизайна интерфейса.
Можно перевернуть экран, нажав кнопку. К кнопке добавлено простое меню со следующими пунктами: инверсия цвета, конфигурация устройства, презентация устройства, сброс датчика. В режиме настройки датчик слушает эфир в течение 20 секунд, в это время можно отправлять команды настройки датчику от контроллера UD: изменение интервала отправки данных с датчиков (от 1 минуты до 1 часа с шагом 1 минута), изменяя интервал отправки данных о состоянии батареи и мощности сигнала (с 1 часа до 24 часов). В режиме презентации устройство отправляет данные о себе (имя, версия прошивки) и датчиках на контроллер UD, делает запрос о том, в какой системе (метрической или британской) работает сеть. Он также отправляет свои параметры конфигурации.
При работе в радиосети датчик передает данные:
- Температура,
- Влажность,
- Атмосферное давление,
- Уровень освещенности,
- Прогноз погоды,
- Уровень сигнала,
- Уровень заряда батарейки,
- Причина перезагрузки
Если сеть работает в метрической системе, данные о температуре будут отправляться и отображаться на экране в градусах Цельсия, а данные атмосферного давления — в миллиметрах ртутного столба (только при составлении RU-версии), в противном случае температура будет отображаться в Faringates. . и атмосферное давление в Паскалях.
Перед компиляцией программы необходимо внести изменения в конфигурационный файл aConfig.h.
Какая языковая версия будет скомпилирована (RU или ENG):
#define LANG_RU
Вывод дебага в сериал:
#define MY_DEBUG
Мощность радиопередатчика:
#define MY_NRF5_ESB_PA_LEVEL (0x8UL)
Скорость передачи данных:
Потребление устройства в режиме ожидания 5 мкА, в режиме считывания сенсора и обновления экрана 2-3 мА. В режиме передачи данных 8 мА, в режиме прослушивания 5 мА. Время обновления экрана 300 мс, время передачи сообщения с данными датчика 10 мс, время передачи сообщения о заряде аккумулятора с ожиданием эха 100-300 мс. Срок службы батареи CR2450 составляет один год или более (с настройкой датчиков опроса один раз в минуту и отправкой данных при изменении, опросом напряжения аккумулятора каждые 6 часов и обязательной отправкой без сравнения).