Мне понадобилось отслеживать температуру на даче - в помещении и на улице.
Что для этого нужно?
2 датчика температуры, какой то контроллер, что б их опрашивать и сохранять данные, и дисплей, что б это все красиво показать.
В качестве контроллера была взята ATMEGA32, термодатчики – DS18B20. Дисплей….
У меня завалялся дисплей на контроллере ST7920. Мало того, что система команд и протокол обмена дурной, так еще и дисплей прикручен к огромной плате, которую особо и обрезать нельзя. А еще у некоторых экземпляров дисплея нормальный контраст получается только при питании от 5 вольт…
И лежал этот дисплей у меня достаточно долго, но настал и его черед.
А дальше я вспомнил, что у меня в закромах валяется датчик BME280 еще со времен часов TouchClock2. И, взяв этот датчик, можно получить не только температуру, а еще влажность и давление. Но BME280 не рассчитан на длинную линию между контроллером и самим датчиком. В результате параллельно родился проект OneWire-интерфейса для датчика BME280.
Прошу прощения за не совсем качественные фото дисплея здесь и далее.
Что устройство умеет:
- Часы со счетчиком дня недели
- Автоматическая коррекция хода часов
- 5 будильников с гибкой настройкой и поддержкой отложенного будильника (snooze)
- Ежечасный звуковой сигнал (отключаемый)
- Опрос OneWire-датчиков (встроенного и удаленного) 2 раза в минуту с обесточиванием датчиков между опросами
- Поддержка DS18B20 и OneWire BME280/BMP280 в качестве внешнего и внутреннего датчиков*
- Ежечасное сохранение усредненных показаний за последние 96 часов (4 суток)*
- Диапазон измерения и отображения температуры -40..+85°С, шаг 0,5°С
- Диапазон измерения и отображения давления 350..850 мм рт.ст. с шагом 1 мм
- Диапазон измерения и отображения влажности 0..100%, шаг 1%
- Настройка коррекции показаний температуры для внутреннего и внешнего датчиков в пределах ±5°С
- Построение графиков температуры, влажности, давления
- Поддержка работы от литиевого аккумулятора (заряд, отключение дисплея, полное отключение при низком напряжении)
- Автоматическая регулировка яркости подсветки дисплея
- Ограничение максимальной яркости дисплея при работе от батареи
- Автоотключение дисплея по таймауту при работе от батареи
- Потребление в активном режиме (без учета датчиков) – до 35 мА при напряжении 4 вольта
- Потребление в спящем режиме – 30 мкА (без учета датчиков)
- Потребление в выключенном режиме – до 10 мкА.
*Поддерживается подключение одного датчика BME280 и одного DS18B20 или двух датчиков DS18B20. Если подключить 2 датчика BME280 – данные о влажности и давлении от внутреннего датчика будут игнорироваться.