Архив за месяц: Июль 2015

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

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

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

Чтобы привести   мысли в порядок — таки нарисовал схему программы (я понимаю, что с этого, по-хорошему, надо было начать, но я же не настоящий сварщик 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 метрах витой пары – баальшой вопрос. Пока изучаю что такое транзистор и как с его помощью увеличить напряжение сигнала. Идет туго.

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

А вот еще электронубства вопрос:

Извините, что к вама обращаюсь, сами мы не местные физику подзабыли 🙁

Максимальный ток, который может перенести порт GPIO на Raspberry – 16mA/

Реле для управления насосами, которое я купил в количестве аж четырех штук имеет номинальную мощность катушки 0,2Вт. Получается, что сила тока, которая пойдет на ейное питание от Raspberry = 0.2Вт/5V = 40mA (питание осуществляется от пятивольтного пина). Незадача-с. Несмотря на то, что тестовое подключение и управление реле прошло успешно, поселилось в моей душе боязнь, что в процессе долгой эксплуатации Малинка прикажет долго жить.

Правильно же я понимаю, что ограничить силу тока доп резистором можно, но это может отрицательно сказаться на способности реле срабатывать?

Реле вот такое вот (которое на 5 V):

 

Информационной экологии и нубства вопрос

А вот вопрос у меня созрел к тем, кто поднаторел в делах компутерных и программировании:

Вот, допустим, есть относительно простой скрипт, который раз в минуту проверяет состояние датчиков и, в зависимости от их показаний, включает-выключает исполнительные механизмы, ну и после каждого цикла выводит на экран пять-шесть строчек о статусе системы. Предполагается, что работает он днями и даже месяцами. Кроме этого скрипта (и ОS Raspbian, конечно же) ничего на этом компе не работает

Имеет ли практический смысл периодически производить принудительную профилактическую перезагрузку компа? Ну, допустим раз в неделю? После перезагрузки  скрипт, конечно, автоматически запускается заново.

 

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

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

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

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

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