Мои вкусняхи

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

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

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 – данные о влажности и давлении от внутреннего датчика будут игнорироваться.

22 ноября 2024

Эмулятор домофонных ключей

 

Картинка из интернета


Эта статья 2020 года,
была опубликована 
на РадиоКоте.

Если долго смотреть на дверь с домофоном - она откроется.

Так сложилось, что в моем подъезде появился домофон. Вещь хорошая. Удобная. Создающая иллюзию безопасности. Препятствующая (иногда) проникновению бомжей и асоциальных элементов. Что, в общем, не мешает рекламщикам распихивать свой спам по ящикам, пользуясь мантрой "Откройте, это сантехник....".

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

Всё было бы хорошо, но через некоторое время было принято решение вход во двор дома закрыть воротами. И проход во двор возможен только через 2 калитки - одна с улицы, вторая из соседнего двора. При этом никто не озаботился тем, что бы прописать в замок на воротах ключи от подъездных домофонов. Просто выдали всем еще ключей-брелков. Мне перепал еще и ключик от второй калитки (Ибо мы ходим в соседний двор кормить местных котов). В результате на ключах появилось 2 дополнительные висюльки, аналогичные первой. Одна синяя, как и от подъезда, вторая желтая. Надписи маркером с брелков стирались. Приклеенные скотчем этикеточки отклеивались. Брелоки мешались. Вообщем одни неудобства. Хорошо хоть, что все ключи оказались одного стандарта - EMMarine EM-4100.

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

Данные исследования привели к появлению на свет нижеописанного устройства.

Внимание! Описанные в данной статье устройства не предназначены для взлома домофонных и иных замков, систем контроля доступа, несанкционированного прохода в зоны с ограниченным доступом и т.д.! Устройства позволяют всего лишь заменить имеющиеся в наличии горсти ключей одним мультиключом, эмулирующим данные ключи.

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

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%

09 ноября 2024

Недельный таймер, версия 2

Ранее я уже публиковал описание недельного таймера. Тот таймер был представлен в двух вариантах - в большом корпусе с вилкой и розеткой и в корпусе на DIN-рейку.

Как показал опыт его эксплуатации - половина функционала там не используется. И таймер может быть гораздо проще. Установить с интервалом в час периоды для каждого дня недели, настроить время и день недели - и ... всё... 

И решение в корпусе вилка-розетка не самое удобное. 

Соответственно, был разработан и изготовлен новый вариант таймера, на ATMEGA8, размещенный в корпусе двухрозеточной колодки. Вот такой:

В пространстве одной из розеток и места для кабельного ввода ставятся 2 платы - одна с дисплеем, МК и кнопками, вторая отдельно - силовая с реле, симистором и блоком питания.



Что таймер умеет:

  • отсчет времени
  • учет дней недели
  • автоматическая коррекция точности хода часов
  • встроенная литиевая батарейка (CR2032) для резервирования хода часов
  • включение и отключение нагрузки по графику с дискретностью 1 час
  • отключение нагрузки по сигналу от датчика внешней нагрузки (предусмотрена точка для подключения трансформатора тока)
  • максимальный коммутируемый ток - 10А
  • комбинированное управление нагрузкой - симистор + реле
  • светодиодная индикация включенной нагрузки

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