Мои вкусняхи

Сводный список записей блога

--->>>> Сводный список записей блога <<<<---

Показаны сообщения с ярлыком Термометр. Показать все сообщения
Показаны сообщения с ярлыком Термометр. Показать все сообщения

27 ноября 2024

Часы-метеорегистратор


 

Мне понадобилось отслеживать температуру на даче - в помещении и на улице.
Что для этого нужно?
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 – данные о влажности и давлении от внутреннего датчика будут игнорироваться.

10 ноября 2024

BME280 и 1-Wire

 

Есть очень хороший (если не поддельный) датчик BME280. Он умеет мерять температуру, давление и влажность  (есть его собрат в "бомж"-комплектации - BMP280 - он влажность не умеет).

Датчик - 8-ногая букашка, умеет общаться с внешним миром как по SPI-интерфейсу, так и по I2C.
Сам датчик мелкий, не очень паябельный. Но китайские бизнесмены просекли фишку и продают этот датчик уже припаянный к плате. Причем в двух вариантах:


Платка об 6 выводах - там сразу 2 интерфейса доступны - SPI и I2C. Но нет стабилизатора напряжения. А у датчика напряжение питания - 3.3 вольта.
А на 4-выводной плате выведен только I2C-интерфейс. Но на плате сразу есть подтягивающие резисторы, LDO и преобразователь уровней для I2C. Т.е. его можно гонять при любом напряжении питания от 3 до 5 вольт.

Очень удобный датчик для построения всяких термометров, барометров и прочих показометров.
Но используемые интерфейсы не предусматривают вынос датчика от управляющего микроконтроллера на сколь-либо значимое расстояние. 

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

Вариант такого датчика я уже делал, там используется радиоканал на капризных JDY-40. И памятуя пляски с бубном вокруг этого радиоканала, в этот раз я остановился на варианте 1-Wire.

1-Wire - или OneWire - достаточно прикольный протокол подключения устройств, в т.ч. и отнесенных от головного устройства на значительное расстояние - десятки метров.

Вопреки названию минимально для работы 1-Wire-устройства нужно два провода: сигнальный и общий. "Один Провод" тут означает, что и питание, и данные могут передаваться по одному и тому же проводу. 

Хотя часть 1-Wire-устройств поддерживает трехпроводное подключение - питание, данные и общий провод. 

К таким устройствам относится и термометр DS18B20, а так же его клоны. DS18B20 прекрасно общается с головным устройством по двум проводам, однако для непосредственного измерения температуры (и для еще пары операций) ему не хватает того паразитного питания, которое он может получить от линии питания/данных. И термометр требует либо усиленную подтяжку к питанию линии питания/данных, либо питание по отдельному проводу - трехпроводная схема.

Вот, взяв за основу принцип DS18B20, я сделал на ATMEGA8A "обертку" для ВМЕ/ВМР280, реализующую общение с головным устройством по 2/3-проводному интерфейсу 1-Wire.

  • 4-проводной модуль BME/BMP280 (со встроенным LDO)
  • Потребление в ждущем режиме до 10 мка
  • 256 вариантов адреса 
  • необходимость усиленной подтяжки в 2-проводном режиме на время преобразования
  • время преобразования - не менее 200 мс
  • контрольный светодиод (работает только в трехпроводном режиме)
  • Температура -40..+85°С, при этом наилучшая точность обеспечивается в диапазоне 0..60°С
  • Давление 225..825 мм рт.ст.
  • Влажность 0..100%

05 октября 2023

Matrix clock

 

Были у меня еще с советских времен спаянные из конструктора часы на вакуумном индикаторе ИВЛ1-7/5 и МС К145ИК1901. 
Эти часы пережили переезд из разных корпусов, индикатор и микросхема сменили 2 платы..

Но в какой то момент часы сказали что всё, дальше они не хотят, упали на пол и у индикатора отломался штенгель. И жидкий вакуум вылился из индикатора. 
Увы, канистры с жидким вакуумом у меня не было, а без него индикатор не показывает.
Так что пришлось думать, чего сделать. 

Вариантов было немного. 
1. Купить такой же ИВЛ
2. Сделать на больших семисегментниках
3. Купить комплект матричных индикаторов и сделать на них.

Выбор пал на матричные индикаторы зеленого цвета.

02 ноября 2022

Проводной/беспроводной метеодатчик (2 х T°C, RH%, P mmHg) с дисплеем (или беспроводная версия без дисплея)

Это проект 2019 года, он уже давно опубликован на РадиоКоте.
Но только сейчас дошли руки перетянуть его к себе в блог.


Что умеет метеодатчик:

  • Поддержка датчика DS18B20 (температура)
  • Поддержка датчика ВМЕ280 (температура/влажность/давление) или BMР280 (температура/давление)
  • Отображение напряжения питания и информации с датчиков на ЖК-дисплее 84*48 пикселей (NOKIA 3310/5110) - для возможности использования модуля в автономном режиме
  • регулировка контрастности дисплея (кнопки "+" и "-")
  • Отправка информации с датчиков и напряжения питания по последовательному порту (9600,8,N,1), выход Тх - открытый сток (открытый коллектор)
  • Отправка информации с датчиков и напряжения питания по радиоканалу с применением модулей JDY-40 (UART-удлиннитель).
  • Посадочное место под JDY-40
  • Диапазон питания 2.5..5 вольт (в случае применения DS18B20 - 3..5 вольт)
  • Встроенный LDO-стабилизатор (для возможности питания 3.6 вольтовых ВМЕ/ВМР и JDY-40) при питании выше 3.6 вольт...
  • Программная калибровка измерителя напряжения батарейки, выполняется при питании от стабилизированных 3.30 вольт.
  • Подсветка дисплея
  • Поддержка Li-Ion-аккумуляторов без встроенной защиты
  • Режим дополнительного датчика, его показания принудительно заменяют показания встроенных в часы датчиков - это для часов TouchClock-2

03 марта 2021

Часы с радиоприемником и метеодатчиками TouchClock - II

Версия прошивки - от 8 февраля 2021 года.

 



 

Часы построены на базе микроконтроллера ATMEGA128A и 3.2" цветного TFT-дисплея 320*240 точек на базе контроллера ILI9341 с резистивной тач-панелью.

Что часы умеют:

  • Часы, календарь
    • Помесячное перелистывание календаря
    • Ежечасный звуковой сигнал (с 23 до 7 отключен принудительно)
    • Таймер, до 9ч 59мин 59сек, дискретность установки 1сек
    • 5 будильников (3 мелодии или FM приемник, выбор громкости, выбор дней недели)
    • 4 выхода типа "открытый сток", управляемых из будильников, с несколькими режимами управления
    • Прямое управление выходами
    • Три языка интерфейса
    • Несколько шрифтов отображения данных
    • Несколько цветовых схем (переключение вручную или по рандому)
    • 7 уровней яркости подсветки
    • Авторегулировка яркости подсветки по внешнему фотодатчику и/или по времени
    • FM - приемник RDA5807, с возможностью его использования в качестве будильника
    • Память на 48 станций приемника с возможностью задания названия станции
    • Отдельный блок отображения метеоданных
    • Почасовая история метеоданных за 5 дней с графиками этих метеоданных
    • Поддержка датчика температуры/давления/влажности ВМЕ280 (ВМР280) и двух датчиков DS18B20
    • Возможность подключения по UART / беспроводному каналу двух внешних модулей с датчиками ВМЕ280 и DS18B20.
    • При использовании двух внешних модулей данные второго модуля принудительно заменяют показания встроенной ВМЕ280 и первого DS18B20.
    • Отключаемые звуковые сигналы при изменении количества метеодатчиков (с 23 до 7 отключены принудительно)
    • Отключаемый звуковой сигнал при резком изменении данных от метеодатчиков (изменение влажности на 10%, давления на 8мм или темпераутры на 12° в течении часа, с 23 до 7 отключен принудительно)
    • Отображение другим цветом резко изменившихся метеопоказаний
    • Выбор корректирующих констант влажности (+/-50%) и температуры (+/-10°) для каждого физического датчика
    • Выбор для каждого физического датчика его расположения - дом/улица, отображение символа "домика" или "елочки" на графиках и в кратком отображении метеоданных
    • Напоминания о важных датах (до 64 напоминаний).
    • Фильтрация некорректных данных от внешнего модуля
    • Отображение предупреждения о критичном разряде батарейки внешнего датчика
    • Selftest при включении, вывод фатальных ошибок
    • Таймер автоотключения приемника - 5, 10, 15, 20, 30, 45, 60, 90 минут
    • Поддержка физической кнопки отключения будильника/таймера

      28 февраля 2021

      Термометр на DS18B20

      Так сложилось, что один хороший человек собрал чей то термометр на ATMEGA8, датчике DS18B20 и OLED-дисплее 128*64 на контроллере SSD1306. Но исходная прошивка ему не нравилась и я предложил написать новую прошивку под собранную им схему.



      Термометр рассчитан на периодическое включение выключателем и отображение температур с обнаруженных датчиков, соответственно, никаких режимов энергосбережения или сна не предусмотрено.