Может ли Arduino работать круглосуточно?

Я делаю простой веб-сервер Arduino и хочу, чтобы он был включен постоянно. Поэтому он должен выдерживать непрерывную работу.

Я использую Arduino Uno с Ethernet Shield. Питание осуществляется от простого блока питания 5 В при 1 А.

Мои вопросы:

  • Возникнут ли проблемы, если оставить Arduino постоянно включенным?
  • Есть ли какая-то другая плата Arduino, которая лучше подойдет для этого?
  • Существуют ли какие-либо меры предосторожности, которые мне следует соблюдать в связи с этим?

, 👍49


11 ответов


Лучший ответ:

61

У вас не должно возникнуть никаких проблем с его постоянным включением, однако следует учитывать наличие счетчиков, например использование millis().

Из документации Arduino по millis:

Это число переполнится (вернется к нулю) примерно через 50 дней.

Таким образом, в проектах, которые выполняются в течение длительного времени, вы можете не заметить проблему сразу, но что-то подобное может возникнуть и привести к ошибкам в будущем.

,

34

Пару вещей, которые следует иметь в виду (помимо упоминания @Sachleen о millis()):

  • Как и любая электроника, тепло может быть разрушительным. Сам микроконтроллер вряд ли будет большой проблемой с точки зрения тепла, но другие компоненты, такие как блок питания, могут вызывать проблемы.

  • Если ваш код использует EEPROM.write(), имейте в виду, что EEPROM в ATmega328P вашего Uno рассчитана только на 100 000 записей.

,

12

Работа Arduino 24/7 не должна быть проблемой.

Но убедитесь, что у вас есть корпус, который обеспечивает вентиляцию, и вы держите его в хорошо проветриваемом месте. Так же, как и компьютеры, если вы не держите их в среде, которая может поддерживать их прохладу, они не будут оставаться прохладными.

Также следует учитывать нагрузку на сервер: чем больше нагрузка на сервер, тем больше обработки ему приходится выполнять и тем больше тепла он будет выделять.

,

6

Arduino может работать без проблем в течение очень долгого времени, хотя в зависимости от местных условий и интенсивности вычислений вам, возможно, придется прикрепить радиаторы.

Кроме того, хорошо проветривайте помещение.

Это также зависит от используемой программы: если ваш сервер время от времени обслуживает страницу, это не должно быть проблемой, но если вы ожидаете постоянный трафик, то Arduino может быстро нагреваться.

Вам также следует обеспечить стабильность электропитания. При проведении настольных экспериментов с Arduino это не является большой проблемой, но может стать проблемой при преобразовании питания из сети в постоянное устройство.

,

12

Помните, что флэш-память и EEPROM имеют ограниченный срок службы (около 10 000 и 100 000 циклов записи соответственно), поэтому если вы много записываете в них, они могут быть повреждены. В моем тесте внешнему EEPROM потребовалось около 3 дней, чтобы начать портиться.

,

4

Я никогда не запускал Arduino так долго, но проблем быть не должно. Единственное, на что следует обратить внимание, — это входное напряжение.

Хотя Arduino может обрабатывать 7-20 В в качестве входного напряжения, все, что выше 12 В, может перегреться через более длительные периоды времени и привести к повреждению платы. В качестве краткой рекомендации, чтобы избежать перегрева Arduino, я бы рекомендовал поддерживать напряжение как можно ближе к 7 В.

,

4

Я хотел бы упомянуть проблему, которая возникает нечасто, но может вызвать долгосрочные проблемы. Утечки памяти и фрагментация кучи. Почти никто не делает malloc во встроенных вещах, но если вы это делаете, делайте это правильно.

,

4

Я построил простой монитор питания с моим первым Arduino. Он питается через USB от веб-сервера, который в свою очередь питается от довольно мощной резервной батареи (которая не имеет возможности оповещения).

Он также подключен к зарядному устройству мобильного телефона, подключенному к розетке, не являющейся источником бесперебойного питания.

Так что если отключается питание, Arduino отправляет сообщение небольшой программе, работающей на сервере. Серверная программа в свою очередь отправляет мне уведомление по электронной почте.

Он был установлен в конце сентября 2013 года, а 23 марта 2014 года я получил свое первое электронное письмо!

Поэтому я не увидел проблемы (он не использует millis()), но он делает выборку мощности каждые 5 секунд.

,

9

Мы используем нашу систему доступа RFID на базе Arduino в Bloominglabs Hackerspace в Блумингтоне, штат Индиана, с конца 2011 года, и, за исключением пары отключений электроэнергии и обновлений программного обеспечения, она работает круглосуточно, без проблем. Совсем недавно мы добавили сетевой термостат, то же самое — она работает круглосуточно.

,

2

Может ли Arduino работать круглосуточно?

Это вопрос надежности. В надежности нужно учитывать множество факторов.

  1. Программное обеспечение. Есть более надежное программное обеспечение. Есть менее надежное программное обеспечение. Например, для критических приложений, динамических Распределение памяти не рекомендуется, так как это может привести к потере памяти фрагментация. К сожалению, Arduino в значительной степени полагается на динамические Распределение памяти. Эта проблема усугубляется тем, что большинство Плата Arduino имеет очень ограниченный объем оперативной памяти.
  2. Библиотеки. Во многих библиотеках Arduino есть ошибки (даже в тех, встроенный в пакет Arduino, такой же простой, как WString!). В обычном режиме эксплуатации, такие ошибки могут вообще не проявиться. Однако, вы не можете надеяться что «все будет хорошо» и что «пользователь» (или подсистема) будет действовать так, как и предсказывалось. Библиотеки также могут иметь свои ограничения (т.е. не совсем ошибки). Например, многие пользователи уже ссылались на Функция millis(), которая сбрасывается через 50 дней. Это, если не обработано правильно, может привести к серьезным ошибкам.
  3. Надежность оборудования (даже не говоря о дешевом Клоны Arduino...). Здесь открывается новый класс подвопросов. Я буду цитируют лишь очень ограниченную подгруппу.
    • Разработаны ли платы Arduino с расчетом на надежность? (например, что такое
      надежность используемых конденсаторов? и других компонентов?)
    • Устойчивость к электромагнитным помехам? Я бы не стал на это полагаться: большинство плат Arduino имеют всего два слоя и не имеют надлежащего заземления/питания.
    • EEPROM (это и программное, и аппаратное обеспечение). Использует ли ваше программное обеспечение EEPROM? Реализует ли какой-либо алгоритм для предотвращения цикличности (повторной записи/стирания в одних и тех же ячейках)?
    • Время хранения флэш-памяти. Время хранения уменьшается с температурой, а также с количеством циклов программирования.
    • Ионизирующее излучение. Да, даже если вероятность ОЧЕНЬ мала, по крайней мере на уровне моря, вероятность единичного сбоя, вызванного радиацией, не равна нулю, и в критических приложениях следует принимать адекватные контрмеры (особенно учитывая, что ОЗУ не имеет аппаратного обнаружения ошибок).
    • Качество электропитания.
    • Операционная среда. Контролируемая среда с температурой 25°C или черный ящик над крышей (70°C под солнцем летом)? Чем выше температура, тем быстрее все механизмы деградации.
    • ...

Тем не менее, вы не должны удивляться, если ваш arduino будет работать безупречно в течение многих лет. Но это не гарантирует, что каждый arduino будет работать так же.

Некоторые контрмеры повысят надежность:

  • Используйте сторожевой таймер: лучше сбросить неотзывчивую систему, чем имея застрявшего/нехорошо себя ведущего.
  • Избегайте использования любых библиотек, использующих выделение памяти.
  • Реализуйте (если вы используете EEPROM) алгоритм для его сохранения!
  • Хороший блок питания.
  • Избегайте суровых условий (высокая температура, высокая влажность, большие и непрерывные тепловые циклы и т. д.).
,

0

Он, конечно, может работать 24/7. Я использую либо 5 В на выводе 5 В, либо 7808 на выводе Vin, чтобы разгрузить vreg. В идеале это было бы 6,5 В, но у меня нет таких источников. Вам может понадобиться развязывающий конденсатор на 5 В, чтобы смягчить любые незначительные скачки при включении питания.

Любое подключенное оборудование, работающее от 5 В, я питаю от 7805. Вы можете использовать LM317 или LM350 вместо 78XX, но для них вам понадобятся несколько резисторов, возможно, подстроечные резисторы.

,