Как в заголовке и было сказано..
Наш дружный коллектив из двоих человек однажны тяжёлым рабочим
днём внезапно решил, что мы могли бы сделать прибор для мониторинга давления и
температуры рабочей жидкости в системе отопления загородного дома.. небольшой
чёрныйсерый удобный и хороший. После чего сделав небольшие деньговложения были
закуплены датчики давления и температуры, прочие детальки, спаяны. На них в состоянии
"only hardcore" мы приступили к разработке прошивки.
В первую очередь хотелось чтобы устройство всегда было готово
сообщить, что в системе отопления и водоснабжения произошёл сбой. Не важно какого рода:
критический сбой - немедленно, статистический сбой - по накоплению критической массы сбоев.
Что именно должно обеспечивать устройство:
- Питаться от сети переменного тока: 220в.
- Питаться от резервной батареи Li-Ion: 7.4 вольт.
- Управляться и настраиваться с помощью SMS.
- Иметь по-возможности компактные размеры.
- Работать из любого подвала: внешняя GSM антенна.
- Иметь буфер для накопления статистики максимально возможной длины (под вопросом).
- Контролировать выход параметров за установленные допуски.
- Сообщать о внештатных ситуациях.
Принципиальная схема:
пока не представлена.
Составляющие
- Думать о происходящем будет LPC1768, в последствии LPC4078.
- Управляться, настраиваться и оповещать с помощью Quectel M95.
Внешний вид
Примерно так выглядит опытная плата:
Алгоритм работы
Алгоритм общий:
- проверка выполнения условия отсутствия аварии за указанный промежуток времени
- если аварийное условие обнаружено, о нём сообщается посредством SMS с указанием времени
возникновения аварии и её продолжительности, а так же указанием аварийного датчика
- контроль основного питания и резервной батареи
- если аварийное напряжение батареи или источника питания обнаружено и продолжается в течении
указанного периода времени, сообщить о нём посредством SMS.
- при прекращении действия аварийной ситуации, сообщить об этом при помощи SMS с
указанием длительности воздействияи индикатора
Контроль дискретного датчика давления (p1d=5):
- каждую секунду проверяем замкнут ли датчик (нормальное состояние)
- считаем количества замкнутых и разомкнутых состояний датчика
(задаётся настройкой 0 - сообщить немедленно,
1..60 минут - анализ ситуации в течении указанного времени)
- 1..60: если датчик за период времени контроля оказывается в аварийном состоянии
большее число раз чем в безаварийном - сообщаем об аварии посредством индикатора и SMS
- 0: если датчик хотя бы раз находился в аварийном состоянии в течении двух
периодов времени контроля (настройкой: да/нет) - сообщаем об аварии посредством
индикатора и SMS
Контроль аналогового датчика давления или температуры:
- каждую секунду проверяем значение по датчику
- считаем выходы показаний за пределы нормальных
- если датчик за период времени контроля (задаётся настройкой 1..60 минут)
оказывается в аварийном состоянии большее число раз чем в безаварийном - сообщаем
об аварии посредством индикатора и SMS
- если датчик хотя бы раз (задаётся настройкой 0 минут) находился в аварийном
состоянии в течении двух периодов времени контроля - сообщаем об аварии
посредством индикатора и SMS
Контроль основного питания:
- каждую секунду проверяем наличие напряжения
- считаем выходы показаний за пределы нормальных
- если питание хотя бы раз находилось в аварийном состоянии в течении двух
"периодов времени контроля питания" (настройка: 1..3600 минут) - сообщаем
об аварии посредством индикатора и SMS
Контроль резервного питания:
- каждую секунду проверяем наличие напряжения
- при достижении напряжения на резервной батарее 6,4В сообщаем SMS о близком
разряде батареи.
- при достижении напряжения на резервной батарее 6,2В сообщаем SMS о практически
полном истощении батареи.
- при достижении напряжения на резервной батарее 6,0В сообщаем SMS о полном
истощении батареи и прекращаем всякую активность.
|