SmartLiving.ru

Обсуждение проекта
 
Текущее время: Чт дек 14, 2017 7:27 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Watch dog для внешних устройств
СообщениеДобавлено: Вс сен 17, 2017 4:58 pm 
Не в сети

Зарегистрирован: Сб окт 24, 2015 9:56 pm
Сообщения: 71
Благодарил (а): 4 раз.
Поблагодарили: 6 раз.
Пока что не очень разбираюсь в функционале majordomo, вынужден просить помощи в решении задачи..)
Идея следующая:
Majoromo каждые 30 сек получает сообщение по mqtt, например "Arduino online" , если сообщение не приходит, то majordomo дёргает gpio raspberry p3, к которому подключено реле и сбрасывает ардуину.

Направите в нужную сторону? ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Watch dog для внешних устройств
СообщениеДобавлено: Пн сен 18, 2017 10:54 am 
Не в сети

Зарегистрирован: Сб окт 24, 2015 9:56 pm
Сообщения: 71
Благодарил (а): 4 раз.
Поблагодарили: 6 раз.
Вроде что то наколхозил , правда есть подозрение, что это не самое элегантное решение :)

Хорошая статья по поводу raspberry gpio http://orangepi.su/content.php?p=112&c=OrangePi%20PC%20rabotaem%20s%20GPIO,%20UART%20i%20i2c

Реализация:

Объект MHCdata.Watch DOG - сюда ардуина каждые 30 сек записывает 1
Объект MHCdata.watchdog_status - статус реле, которая сбрасывает ардуину

При изменении MHCdata.Watch DOG вызывается метод watch dog control

watch dog control:
Код:

if 
($params['NEW_VALUE'] == 1)  //если ардуина откликнулась
 {
 setTimeOut("timer_1m", "sg('MHCdata.Watch DOG', 0);", 60*1); //ждём 1м и сбрасываем на 0
 }
else{
  setTimeOut("timer_1m", "sg('MHCdata.Watchdog_status', 1);", 60*1); //если в течении 1 минуты ардуина не ответила, то ставим стасус 1
}


При изменение MHCdata.watchdog_status вызывается метод refresh

refresh:
Код:


$status
=$this->getProperty("watchdog_status");

if ($status) {
 exec ("gpio -1 write 3 0"); //реле включили
 
setTimeOut("timer_5s", "sg('MHCdata.watchdog_status', 0);", 5);  //через 5 сек сбрасываем статус на 0 (вызывается метод, реле выключается
 
} else {
 exec ("gpio -1 write 3 1");//реле выключили
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Watch dog для внешних устройств
СообщениеДобавлено: Ср сен 27, 2017 7:14 pm 
Не в сети

Зарегистрирован: Чт июн 02, 2016 9:33 pm
Сообщения: 509
Благодарил (а): 104 раз.
Поблагодарили: 24 раз.
если я правильно понял, то основной вашей задачей было перегрузить ардуино если по какой-то причине она зависла. Но что если проблема будет с сетью (повис роутер, пропал инет, повредился кабель, шумы в эфире если это вайфай), а сама ардуино на самом деле исправно работает и её ребуты ни к чему не приведут. Думаю что вам не нужно слать данные в Мажордомо для этого. Лучше такую проблему решать на месте. Ардуино можно програмно перегружать. Я тоже как раз сегодня решал эту проблему, вот написал мини статью с примером исходного кода http://blog.gelezako.com/?p=69 как это сделать.

_________________
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: koloboc74 и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB