Спасибо, за инфу о zabbix-е. Он тут уже упоминался. Глянул его сейчас, радует, что эта система мониторинга еще и бесплатна, на досуге нужно будет с ней познакомиться. Но в простом варианте установки системы мониторинга на сервере с настройкой уведомлений, получается, если уведомление по к-л причинам не доходит до меня, то я не узнаю о критической ситуации. В своем же проекте для мониторинга я применил связку клиент-сервер. Клиент постоянно опрашивает сервер и если тот вдруг пропал из сети, то клиент тут же начинает махать флажками и кричать, и я узнаю о критической ситуации точно так же как и при нормальном сообщении с сервера о критической Т, например.
Ага, только когда датчик молчит, то на пине данных наиболее вероятна 1, поэтому ваше замечание больше подойдет для цикла, где считаю длину паузы высокого уровня:
while ( _PIN_DHT_GET ) {… }
Но там дополнительные условия я бы добавлять не хотел, дабы не увеличивать время работы цикла подсчета таймингов. Пусть эта возможная ошибка отлавливается на уровне сервера и клиента. А если устройство будет автономным, то да, этот момент нужно будет отследить.
Вы про какой именно из while-ов? Если устройство не сможет адекватно ответить серверу, а сервер клиентам в сети, то клиенты сразу запаникуют сообщениями из трея. За пару месяцев работы пока таких прецедентов не было.
Как я написал в статье, примеров кода на си (не скетчи) для датчика DHT11/22 не удалось найти, поэтому привожу здесь, естественно, свой код. Блокирую прерывания на период подсчета таймингов, чтобы те не вклинивались, если будут. В данном проекте работу прерываниями не использую, но, может, буду их использовать в следующем.
Глянул нетпинг — отличный проект. Но зачем стрелять из пушки по воробьям? Цена данного данного устройства — 350 рублей, а сколько стоит нетпинг с необходимой мне минимальной функциональностью? Ну и все-таки тот проект закрытый, как я понимаю, там код никто не предоставляет.
while ( _PIN_DHT_GET ) {… }
Но там дополнительные условия я бы добавлять не хотел, дабы не увеличивать время работы цикла подсчета таймингов. Пусть эта возможная ошибка отлавливается на уровне сервера и клиента. А если устройство будет автономным, то да, этот момент нужно будет отследить.