Архив метки: умный дом

Хозяйке на заметку:

Температурные датчики (DS18B20, которые по технологии 1-wire) я проложил двумя типами проводов:

  • от щедрости – витой парой (2 датчика, в совокупности около 20 метров),
  • от жадности — 4х-жильным телефонным проводом (3 датчика, в совокупности около 40 метров).

Датчики, которые висят на витой паре (используя три провода из 8) – глючат – т.е. с некоторой регулярностью выдают ошибку (тот провод, который подлинее, выдает глючный результат в в ~20% замеров, тот который покороче – редко, но тоже бывает). Те датчики, которые висят на в разы более длинном телефонном проводе, работают, т-т-т, корректно и аккуратно.

Замена датчика на новый ни к чему не привела, при этом на стендовых испытаниях, когда датчики подключены напрямую к Raspberry (через макетную плату), все работает предельно правильно. Стало быть, собака порылась в проводе.

Попробую заменить все провода на телефонный провод, благо это недорохо (300 руб за 100 метров против 1000 руб. за 100 метров витой пары), да и осталось его вроде бы еще.

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

Не программисты мы, но кое-что мОгем…

… или о блок-схеме рефлекторных механизмов полоумного дома:

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

Чтобы привести   мысли в порядок — таки нарисовал схему программы (я понимаю, что с этого, по-хорошему, надо было начать, но я же не настоящий сварщик J)

Может, кому будет интересно посмотреть, покритиковать, дополнить. Каждый пункт – отдельно прописанная функция. То что курсивом – пока еще не написал.

Позже выложу код к кажной функции.

Запуск программы:

  • Определение времени старта
  • Чтение конфигурации из ini файла (целевые значения температуры, критические значения температуры, периодичность проверки, часы формирования email-отчета, список рассылки, etc)
  • Чтение температуры с датчиков
  • Чтение датчика наличия тока (датчика тока пока в наличии нет, планирую найти UPS, который может делится этой инфой с Raspberry)
  • Расчет времени следующего отчета
  • Отчет о запуске системы в консоль
  • Отчет о запуске системы на email
  • Запись показателей температуры в лог

Основной цикл (раз в минуту):

  • Чтение конфигурации из ini файла (чтобы можно было скармливать программе новые установки температуры без перезапуска программы)
  • Чтение температуры с датчиков
  • Чтение датчика наличия тока в сети
    • Если ток отсутствует => отправка email
  • Сравнение температур с критическими показателями
    • Если t < tcrit => отправка сообщения на email, отчет в консоль
  • Сравнение температур с показателями прошлой проверки
    • Если t > tlast +0.2, отчет в консоль, запись температуры в лог
    • Если t< tlast -0.2, отчет в консоль, запись температуры в лог
  • Сравнение температур с целевыми показателями
    • Если t < tnorm -1 and насос выключен => запуск соответствующего насоса, отчет в консоль, смена статуса насоса, определение времени старта насоса
    • Если t > tnorm +1 and насос включен => выключение соответствующего насоса, отчет в консоль, расчет времени работы насоса, запись времени работы насоса в лог
  • Сравнение текущего времени с временем следующего отчета
    • Если текущее время >времени отчета:
      • Отправка email
      • Отчет в консоль
      • Запись температуры в лог
      • Расчет времени следующего отчета

Новости с полей:

1. Прокатил детей на байдарке. Ответственно заявляю – сплавляться по Малой Истре в июле – глупое и бесперспективное занятие. Воды мало, много завалов. Попозже составлю отчетЪ

2. Проложил   часть сети по дому. С розетками для интернету вопросов вроде не возникло, все обжалось и коннектится. А вот с проводами для термодатчиков не все гладко.

Контрольное подключение   двух размещенных в нужных местах термодатчиков к распберри обнаружило необнаружение одного из них. Термодатчики подключались по трем проводкам из витой пары. На стенде все работало, а вот в боевых условиях — нетЪ. Печалька.

Есть подозрение, что не хватило 3.3 вольтового напряжения (датчик требует мин 3 Вольта), которое просело из-за длины провода, а также из-за наличия цепи двух датчиков. Вчера уже в ночи было недосуг проверять, но в след. выходные   попробую запитать их от 5 В. Если это не спасет отца русского Скайнета, буду прозванивать цепь.

Параллельно возникли сомнения в работоспособности управляющего контура. Предполагается, что 3.3 В сигнал с распберри будет переключать реле, которое, в свою очередь будет подавать 220 на насосы. На стенде все работало (я к настоящий пацан уже мигал не светодиодами, а нормальными 60-Ваттными лампочками, имитирующими насосы), но вот откроется ли реле от 3,3В сигнала с учетами потерь в 15 метрах витой пары – баальшой вопрос. Пока изучаю что такое транзистор и как с его помощью увеличить напряжение сигнала. Идет туго.

З.Ы. С работы пока не могу ответить всем поздравившим меня с ДР, но очень благодарен за поздравления всем к то поздравил и всем, кто хотел поздравить, но постеснялся.

О мирном искусственном разуме или (поло)умный дом

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

Вчерась выдрал из скучающего в в отстутствие хозяина робота евойные мозги в виде Raspberry Pi B и начал приспосабливать  их к мирным целям – а именно – к поумнению дома, который на даче.

Для начала присобачил к нему датчик температуры (какая замечательная, хочу сказть, штука, эта ваша технология 1-wire, позволяющая легко подрубать на один пин GPIO сразу несколько датчиков). Нужно это для того, чтобы не нервничать зимой по поводу того, работает ли котел на даче или нет. Соотвественно, первая задача – создание оповещателя о температуре. Читать далее