Pull to refresh

Comments 31

Отличная курсовая работа. Для серверной конечно тоже пойдет, но как-то стрёмно. Чем не подошли датчики в серверах, дисках — не понятно. И почтой можно, и SMS, и голосом звонить в случае аварии. Конечно и выключать нужно оборудование.
Глянул нетпинг — отличный проект. Но зачем стрелять из пушки по воробьям? Цена данного данного устройства — 350 рублей, а сколько стоит нетпинг с необходимой мне минимальной функциональностью? Ну и все-таки тот проект закрытый, как я понимаю, там код никто не предоставляет.
Неплохо, но только вопрос, если приведен код стандартной либы, то зачем он здесь, если свой, то зачем использовать прерывания?
Ну и в догонку, а не проще использовать ds18b20, недорогие, 3 провода и до 127 штук на шину. Время опроса 700мс, хоть каждую секунду снимай показания.
DHT22 умеет еще и влажность мерять. Плюс в сравнении с DHT11 (тоже, кстати, недорог) заявлена хорошая точность измерений (почти на уровне SHT21).
Возможно поэтому.
Как я написал в статье, примеров кода на си (не скетчи) для датчика DHT11/22 не удалось найти, поэтому привожу здесь, естественно, свой код. Блокирую прерывания на период подсчета таймингов, чтобы те не вклинивались, если будут. В данном проекте работу прерываниями не использую, но, может, буду их использовать в следующем.
UFO just landed and posted this here
Отличный вариант, я его тоже рассматривал. Только именно серверную часть, написанную на С# пришлось бы перенести в МК. Научить МК отвечать клиентам. К сожалению, не нашел вовремя как можно подключить найденную для него ардуиновскую библиотеку к коду на Си в Atmel Studio. А сам, понял, что быстро не осилю написание библиотеки для работы с этим модулем, поэтому нашел другое решение. А вот по поводу «пара десятков строк кода в IDE» — вы не правы, для нормальной и надежной эксплуатации устройства 20ю строками кода не обойдешься.
Делал нечто подобное, только слал инфу в заббикс кроном через zabbix_sender с помощью самописной прожки, опрашивающей com
скрин

Если не хотите, чтобы третий раз, когда сгорел кондей, северной опять стало плохо. Внедрите в код проверку на максимальное время ожидания. Вот заглючет чего-нить и не выйдете больше из своего while()…
Вы про какой именно из while-ов? Если устройство не сможет адекватно ответить серверу, а сервер клиентам в сети, то клиенты сразу запаникуют сообщениями из трея. За пару месяцев работы пока таких прецедентов не было.
Ну например вот этот while ( !_PIN_DHT_GET ) _delay_us(1); в getDhtBit(). Если есть проверка в клиенте, то это конечно хорошо. А потом вам захочется сделать устройство автономным, а этот кусок так и останется опасным. У каждого из пульса есть задокументированная максимальная длительность. Вот это значение и надо ставить как выход из соответсвующих циклов.
Ага, только когда датчик молчит, то на пине данных наиболее вероятна 1, поэтому ваше замечание больше подойдет для цикла, где считаю длину паузы высокого уровня:
while ( _PIN_DHT_GET ) {… }
Но там дополнительные условия я бы добавлять не хотел, дабы не увеличивать время работы цикла подсчета таймингов. Пусть эта возможная ошибка отлавливается на уровне сервера и клиента. А если устройство будет автономным, то да, этот момент нужно будет отследить.
Дело ваше. Если что-то плохое может случится, то оно обязательно случится. Чтобы не парится с проверкой условия в цикле и не жалеть циклов процессора, можно все переделать на использование таймера в режиме capture и сделать все на прерываниях.
у DHT22 через пару лет в погребе поползла температура вверх. На 10+ градусов стал врать. Пока руки не дошли разобраться в чем причина…
У него в самом даташите перечислены все случаи при которых он начинает деградировать. В целом дешевая поделка не расчитаная на тяжелые условия эксплуатации.
Для более жестких условий можно использовать DHT21.
Да я бы не сказал, что условия жесткие — семенной картофель ведь сохраняется. Ну и банки с огурцами :)
Возможно, условия становятся жесткими на 2й год.
для серверной нужно нечто больше чем dht22 по uart.
нужна полноценная система мониторинга на выбор + смс всей команде в критических случаях. Вы не поверите сколько времени можно экономить на диагностике, поиске проблем, и, главное, на времени реакции имея zabbix/nagios/etc. Были случаи когда умирал кондей без электричества. и по той же причине уже не было тырнета вне серверной.
Продумайте апгрейд)) а температуру можно снимать с жестких дисков из смарта и датчиков с материнки в любой ОС.
А за поделку 5. симпатично вышло. ;)
Спасибо, за инфу о zabbix-е. Он тут уже упоминался. Глянул его сейчас, радует, что эта система мониторинга еще и бесплатна, на досуге нужно будет с ней познакомиться. Но в простом варианте установки системы мониторинга на сервере с настройкой уведомлений, получается, если уведомление по к-л причинам не доходит до меня, то я не узнаю о критической ситуации. В своем же проекте для мониторинга я применил связку клиент-сервер. Клиент постоянно опрашивает сервер и если тот вдруг пропал из сети, то клиент тут же начинает махать флажками и кричать, и я узнаю о критической ситуации точно так же как и при нормальном сообщении с сервера о критической Т, например.

Вы все это сможете настроить в любой системе мониторинга. Начните настраивать и вы все поймете, вон Заббикс 3.2 вышел. Любой USB свисток и симка в заббикс сервер (+ почта ессно) не дадут вам пропустить событие.
Безусловно проблема пропуска уведомления существует. Каждый решает по своему. Мне нравится почта + смс при очень важных событиях. Мы например сейчас меняем сервера, переключаем часто туда-сюда функционал, адреса и не мудрено что-то упустить. Дак вот система мониторинга позволяет ОЧЕНЬ оперативно понимать что не так в сети.
Пропал тырнет — смс. Повысилась температура на ХДД — смс, восстановилась температура — смс. Не пингуется полчаса основной сайт конторы на хостинге — смс.
У нас серверов не много, справляется и ПК на 775 сокете. У меня требования были только 2 ядра и поддрежка х64 (для бубунты 16.04). Ну и памяти отрыли 2 гига. все.
А вот к заббиксу уже интересно прикрутить сирену в кабинет с красно/желто/зеленой мигающей лампочкой))) Или вообще звуковые уведомления.


И еще. Я заббикс привожу как пример, потому что он мне нравится и работает у нас. Nagios ни чуть не хуже. Может он устроит вас больше.

Вопрос не в тему: где вы покупаете стойки? Те что используете для сборки "корпуса", что на последнем фото. Или это просто длинный болт с накрученной изолентой? :)

Это болты с термоусадкой.
Можно использовать встроенный светодиод на ардуине (D13) — минус 2 детали. DHT22 уже имеет резистор подтяжки (в отличие от DHT11) — еще минус деталь. Схема упрощается до трех проводков.
Минус DHT11 — только целые показания температуры и влажности, DHT22 выдает десятые доли. Ну и точность/разброс значений у разных экземпляров тоже в пользу DHT22
Я знаю, что на ардуино-модулях вместе с этим датчиком установлен подтягивающий резистор. А так DHT22 в схемах везде нарисован с добавлением резистора, так же как и DHT11. Вы точно не путаете?
В даташите https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf нарисовано подключение без подтяжки. На что намекает и пункт в особенностях датчика: *Extra components not needed (из того же даташита).
Как показала практика работы с несколькими такими датчиками, резистор не нужен (однако не проверял на длинных расстояниях, 1-2 м было всегда достаточно).
В конце статьи https://habrahabr.ru/company/flprog/blog/244083/ есть внутренности датчика, похоже, что резистор уже есть.
Я, честно говоря, как-то с сомнением отнесся к той схеме подключения DHT22 из даташита, подумав, что она просто является результатом его корявого оформления)
Каждый сисадмин знакомый с микроконтроллерами должен сделать свою железку для мониторинга серверной.
Я не исключение, только решил не городить ворох самодельных утилит и серверов, а докупил модуль для подключения в локальную сеть и добавил минимально необходимую поддержку snmp. Теперь смотрю за условиями среды через кактус.
Одна беда библиотека snmp отъела большой объем памяти контроллера.
Sign up to leave a comment.

Articles