Надежность ардуино для 24-часового использования-без зависания?
- Войдите на сайт для отправки комментариев
Чт, 26/09/2013 - 10:52
Всем привет! Было бы интересно выслушать опыт людей... Суть вопроса такова: насколько ардуина надежна для обеспечения работы важных проектов - полива и т.д. Случаются ли зависания? Насколько часто?
P.S. в крайнем случае можно было бы конечно увеличить надежность-например 2 ардуины. Одна- выполняет функционал, а вторая- просто сколько то раз каждую секунду посылает запрос первой и ждет ответа. Есть ответ- значит не висит. Нет ответа- принудительно перезагружает ее.
А вот если контролирующая ардуина зависнет-тода да..бяда :-))))
Ну это так- измышления пока что...А на деле как? Есть зависы? Насколько критично много?
В любом современном микроконтроллере имеется ватчдог - не надо тут ничего городить из 2 ардуин
ок...поясните что он делает и как это работает в нештатной ситуации?
ок...поясните что он делает и как это работает в нештатной ситуации?
http://ru.wikipedia.org/wiki/Сторожевой_таймер
ок. спасибо:-). Но я так и не услышал по ардуине-бывает что виснет? сбоит?
Почему интересуюсь: для того, чтобы делать/не делать резервное сохранение текущего состояния системы-например на флешку-чтобы восстановилось автоматом после сбоя...
При нормальных условиях(нормальное электропитание и НЕкривой скетч и библиотеки) работает без сбоев.Чему там виснуть ?)
Сама по себе она виснуть/тупить не будет, если не будет рядом больших помех
А вот прикладная программа легко может таких висяков наделать, что ай-ай наступит быстро
>> резервное сохранение текущего состояния системы
можно сделать в eeprom. Только не очень часто.
>> А вот если контролирующая ардуина зависнет-тода да..бяда :-))))
Сделай кластер. Обе ардуины следят друг за другом. При одновременном старте проводят выборы "кто главная (master)". Мастер всё проверяет и работает, регулярно сообщает второй ардуине (slave, "раб") типа "всё ок". ... и так далее
Хотя если нужно действительно поливать можно сделать проще:
Две одинаковые системы поливают одну грядку. Каждая система имет датчик влажности, свой водопровод, электоропитание от разных электоростанций. Если одна сломается -будет работать вторая. Если обе активны - они не будут поливать, если рядка влажная.
Всем привет! Было бы интересно выслушать опыт людей... Суть вопроса такова: насколько ардуина надежна для обеспечения работы важных проектов - полива и т.д. Случаются ли зависания? Насколько часто?
Почему вы предполагаете, что дуино может зависнуть - она может просто выйти из строя по миллиону причин в любой момент времени с вероятностью 100%.
делал видеонаблюдение на IP камерах с подключением по WIfi. Камеры не проф, обычные домашние, пробовал разные - все как одна рано или поздно виснут (может не виснут, но их клинит и с них больше не идет запись). И ведь не важно когда это произойдет через день или месяц - все равно плохо. Решение нашел простейшее включил камеры в недельные таймеры (такие коробочки по 200р из леруа мерлен у которых програмируется включение-выключение). Запрограмировал выключение и включение (получается минутный интервал отключения) и все - с тех пор годами камеры работают работают и работают.
Вы точно также можете сделать в простом варианте с ардуиной - вне зависимости ни от чего перегружать ее в какое-то время когда от этого нет вреда.
А если конечно делать грамотно, то надо очень качественно прорабатывать 1. вопрос питания 2. вопрос экранирования от помех 3. вопрос качества ардуины/шилдов/соединений. 4. проверять и еще раз проверять свой скетч на предмет отсутствия накапливающихся ошибок. И поверх всего этого грамотно програмировать watchdog timer
зависнуть ардуина может в 99% по одной из трех причин 1. помехи (чаще всего по питанию, но могут и от датчиков придти если датчики с длинными проводами) 2. ошибки в скетче 3. сбои в электронной части - потеря контакта, замыкание, выход из строя электронного компонента
у меня мега отрубается когда начинаю шилдом с 8 релюшками играться... причем если коммутирует низкое напряжение, то все в порядке.... а если 220В то периодически вырубается... причем достаточно часто... пока не разбирался как побороть, делаю железную часть проекта. Если кто то разобрался, буду премного благодарен. :)
Что там разбираться - делать качественный блок питания, разделять фильтрами процессорную и силовую части схемы.
на ардуино и на релюшки вообще разные блоки питания стоят.... не все так просто (
у меня мега отрубается когда начинаю шилдом с 8 релюшками играться... причем если коммутирует низкое напряжение, то все в порядке.... а если 220В то периодически вырубается... причем достаточно часто... пока не разбирался как побороть, делаю железную часть проекта. Если кто то разобрался, буду премного благодарен. :)
Как "вырубается" ??
на ардуино и на релюшки вообще разные блоки питания стоят.... не все так просто (
"разные" - это "один китайский, а второй, тоже, китайкий?".
Виснет......
А что у нас не китайского сейчас ????? Своего то, не производим )
обычные блоки, с переключалкой напряжения и кучкой разъемов....
Виснет......
А что у нас не китайского сейчас ????? Своего то, не производим )
обычные блоки, с переключалкой напряжения и кучкой разъемов....
Т.е. тупо не желаем вникать в схемотехнику правильного питания, потому как "своего ничего не производим, а российский мосг не в состоянии проникнуть в чёрный ящик китайскога блока питания"?
ну не электронщик я ))) в чем могу разбираюсь по немногу... земля общая, блоки питания разные, по амперам мощности достаточно, джамперы на релюхах правильно стоят стоят.
релюхи вот такие.
http://www.sainsmart.com/arduino-compatibles-1/relay/8-channel-relay/8-c...
если подскажите в какую сторону рыть, и что значит правильное питание, буду признателен )
Если заметили, как устроено в более-менее нормальных блоках питания - блочно: сеть 220V -> сетевой фильтр -> преобразовательная часть блока питания -> снова фильтрующая схема(что бы не шли помехи в блок питания и отсекался мусор преобразования напряжения) -> далее: процессорное питание разделено от силового дросселями, на силовые контакты реле навешены конденсаторы для гашения переходных импульсов, при включении/выключении нагрузки, на катушку реле ставить диод...
здесь пытался не дать готовый вариант решения, но помочь выявить причину безобразия. http://arduino.ru/forum/programmirovanie/elektromagnitnye-navodki
понял, спасибо... будем рыть дальше...
Мммм.. дело не в блоке питания...
зависание происходит потому что проц уходит в бесконечный ресет-режим перепрошивки...
нужно ему ногу подвешивать воздухе которая ресет и тогды он начинает работать годами
сам над ентой фигней разбирался целый день :)
С ногой тоже попробую, но и от помех надо избавлятся... Кстати, ферритовые кольца, есть смысл одеть на сигнальные провода к релюшкам?
С ногой тоже попробую, но и от помех надо избавлятся... Кстати, ферритовые кольца, есть смысл одеть на сигнальные провода к релюшкам?
да не в помехах дело!
если вы не в курсе то эти же самые камни используются в сурьезных индустриальных решениях..
мне видится это так..
камни не предназначены для ардуино.. ардуино это попытка сделать из этих камней равивающую игрушку.. в честь чего вокруг них наворочили прошивальщики на базе других камней.. и все это дело глючит слегонца ибо не совсем предназначено для таких прошивок.. на DUE например отпаиваеш всего одну детальку и она начинает работать без всяких зависаний... тож самое с остальными дуинками.
Прошлую зиму жил на даче . Система отопления построена на Ардуино ,куча датчиков ,тиристорные ключи,насосы для антифриза и т.д. Всё что положено для отопления дома. Утром на работу ,вечером обратно. Ни одного сбоя , при кратковременном отключении энергии всё просто перезапускается с прежними параметрами (сохраняется что то в ЕЕРRОМ , а текущее в DS1307 в её памяти).
В моём представлении очень надёжно работает. Главное правильно всё построить и написать.
Система полива не такая ответственная система и предусмотреть можно всё.
Ни одного сбоя , при кратковременном отключении энергии всё просто перезапускается с прежними параметрами
отключения кратковременые случались раз в 2-3 недели или чаще? Ибо обычно дуинки виснут примерно после 3-4 недель.. в одном варианте временно приделали ей саморесет раз в 2 недели..
Нет никакого саморесета. Отключения раз в месяц,на 3-5 мин ,а в моё отсутствие даже не знаю. Просто не заметно. И ничего не виснет у меня.
Нет никакого саморесета. Отключения раз в месяц,на 3-5 мин ,а в моё отсутствие даже не знаю. Просто не заметно. И ничего не виснет у меня.
это у колеги мы само ресет приделали кк временое решение :)
а у вас оно само ресетилось методом краковременых отключений електричества :)
отключения кратковременые случались раз в 2-3 недели или чаще? Ибо обычно дуинки виснут примерно после 3-4 недель.
Покупать надо нормальные железки - тогда и виснуть раз в две недели не будут. :) У меня - не виснет, по крайней мере - я этого не вижу: uptime.value 980646 - выводится при запросе к шилду (в секундах). Питание - не от сети, а от АКБ через DC-DC преобразователь. От сети - бывали висы поначалу.
Покупать надо нормальные железки - тогда и виснуть раз в две недели не будут. :) У меня - не виснет, по крайней мере - я этого не вижу: uptime.value 980646 - выводится при запросе к шилду (в секундах). Питание - не от сети, а от АКБ через DC-DC преобразователь. От сети - бывали висы поначалу.
11 дней? да вы рекордсмент :) обсудим когда аптайма наберется полгода минимум :)
а железки сделаные Атмел считаются нормальными?
all, правда что if(millis()-time>=interval){ something; } работает с учётом переполнения и не нужно обнулять millis()/перезагружать каждые 49 суток, типа всё равно будет работать?
all, правда что if(millis()-time>=interval){ something; } работает с учётом переполнения и не нужно обнулять millis()/перезагружать каждые 49 суток, типа всё равно будет работать?
врятли оно работает с учетом. хотя нужно попробовать.. из моего опыта пока не видел проектов которые бы использовали миллис и не зависали через 4-5 недель :)
на всякий случай я бы строил логику не отталкиваясь от миллис как абсолютного времени от старта..
11 дней? да вы рекордсмент :) обсудим когда аптайма наберется полгода минимум :)
Как Вы это себе представляете? :) Какой должен быть тип переменной на полгода аптайма, если хранить его, как арюуина, в миллисекундах... Можно, конечно, специально озадачиться пересчетом и хранением отдельно в днях, но мне пока этого не требуется.
all, правда что if(millis()-time>=interval){ something; } работает с учётом переполнения и не нужно обнулять millis()/перезагружать каждые 49 суток, типа всё равно будет работать?
При правильном использовании - перезагружать не требуется.
При правильном использовании - перезагружать не требуется.
вы делаете мне смешно... то правильное железо нужно, то правильное использование?
как именно железо правильное? и какое использование правильное?
Правильное использование я себе представляю когда по назначению... в данном случае ардуино является макетной платой для разработчиков.. ее правильное использование это на столе затыканая проводками... а не в картонной коробке прбитой к стене с надписью ТЕРМОСТАТ :)
Да что вы спорите до хрипоты?) кто то в аруино проводки втыкает, кто то многослойные платы делает и сам все это паяет. Мы же о хобби говорим, тут бессмысленно спорить о вкусах и интересах. Если конечно кто то ардуино использует для коммерческих проектов, то это не серьезно. А для себя любимого все дозволено.
А почему в обсуждении обошли WDT?
А почему в обсуждении обошли WDT?
мы ждали вашего выхода) рассказывайте
да, но atmega328 на плате со всем что нужно (типа датчиков-экранчиков), без всяких висящих проводов, с программой скомпилированной в Arduino но без загрузчика - вполне себе допустимо, я считаю.
Ардуино это среда разработки и железо. Вы железо берете саое и используете только среду от ардуино
почему бы и нет, если излишки кода сделанные для удобства, но пожирающие ресурсы МК вам не мешают
за вычетом излишков между ардуино и атмел студио нет отличий, у них один и тот же toolchain
да, но atmega328 на плате со всем что нужно (типа датчиков-экранчиков),
Людей можно перевозить на машине с шашечками, а можно - на машине без шашечек. Это к вопросу: "шашечки или ехать?"
У кого-то и спутники падают - я далек от того, что они там внутри набиты ардуинами. :)
У меня больше месяца без зависаний и перерывов на улице работает. Но пока морозов не было.
Правильно мой начальник говорит - сделай и запусти, пусть хоть месяца 3 поработает без зависания, тогда и поговорим...
на DUE например отпаиваеш всего одну детальку и она начинает работать без всяких зависаний
можно подробнее?
Итак, у меня уже почти полгода висят две ардуины на улице. Выдержали мороз -30
Последнее время (месяц) произошло несколько сбоев, но не совсем понятно по чьей вине. Ардуины или еще какого либо обородования, т.к. ардуина продолжает работать, анимирует экран, но не реагирует на команды радиобрелков.
Возможно проблема в поднявшейся влажности, боксы не особо то и герметичны
Потеплеет - буду разбираться.
Правильно мой начальник говорит - сделай и запусти, пусть хоть месяца 3 поработает без зависания, тогда и поговорим...
Практика - критерий истины. :)
Очень интересная тема, насчёт ватчдога интересно, неужели он не может зависнуть?
Кстати, давно хочу попробовать в качестве фильтров поюзать ионисторы, они же будут как ИБП.
Очень интересная тема, насчёт ватчдога интересно, неужели он не может зависнуть?
Кстати, давно хочу попробовать в качестве фильтров поюзать ионисторы, они же будут как ИБП.
вачдог зависнуть не может, но если вы включите вачдог это не даст вам абсолютной гарантии бесперебойности в работе. Если по каким то причинам МК окажется в условиях отличных от допустимых то он не зависнет, а просто перестанет работать. Нельзя так же исключать ошибок при програмировании как источника зависаний даже с включенным вачдогом
Кстати, давно хочу попробовать в качестве фильтров поюзать ионисторы, они же будут как ИБП.
По моему опыту использования, а это 2 китайских ардуины Funduino в пластиковом боксе на улице, управляющие воротами многоквартирных домов, ардуины не виснут вообще
Под подвисанием я подразумеваю ситуацию, когда плата не работает абсолютно
Очень интересная тема, насчёт ватчдога интересно, неужели он не может зависнуть?
Кстати, давно хочу попробовать в качестве фильтров поюзать ионисторы, они же будут как ИБП.
Наши программисты могут и ватчдог завесить... :) Во, один уже рукава засучивает.
На это можно навесить внешний супервайзер с конденсатором: если в нужный момент конденсатор не подзарядися с какого-нибудь пина - супервайзер дернет питание.