Использование двух Arduino для снижения энергопотребления

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

Я думал, сработает ли это?

Что, если я использую два Arduino для управления питанием? Первый Arduino будет управлять подачей питания на второй Arduino, на котором установлен датчик, используя таймер (RTC) для отключения питания на 30 минут и включения на 30 секунд для считывания данных датчика.

Может ли это работать? Как будет выглядеть схема?

Для изолятора я думал использовать Tentacle Shield, и в документации говорится, что сам изолятор потребляет около 150 мА плюс цепь датчика. https://www.whiteboxes.ch/docs/tentacle/t1/#/

Спасибо за помощь.

, 👍2

Обсуждение

Скажите, пожалуйста, какой «изолятор сигнала» вы имеете в виду. Некоторые Arduino (возможно, все они) могут быть переведены в спящий режим, что может сэкономить много «энергии». Хорошее место, чтобы начать изучать, как это сделать, — использовать панель поиска в верхней части страницы. В среде разработки Arduino IDE доступна библиотека LowPower., @VE7JRO

Во-первых, вам не нужны два arduino. Вы можете перевести ардуино в глубокий сон. Во-вторых, если у вас потребляемая мощность 250 мА, она, скорее всего, исходит от всех имеющихся у вас сенсорных плат, поэтому вам нужна схема (например, полевой МОП-транзистор), чтобы отключить питание этих плат до того, как Arduino выйдет из строя. в спящий режим., @hcheung

Добавил детали по изолятору, @JSK

Ардуино с его светодиодами и линейными регуляторами мощности не оптимизировано для минимального энергопотребления. Кстати: Как вы сигнализируете о результатах ваших датчиков и измерений?, @DataFiddler


3 ответа


0

На самом деле, вы можете просто запустить 1 Arduino и использовать его для

  • Все необходимые измерения.
  • Управление питанием датчиков (отключение питания, когда оно не требуется)
  • Дополнительно: используйте маломощные режимы микроконтроллера, установленного в Arduino

Обновление: О втором варианте: Вы можете использовать электрическое реле или транзистор для управления питанием датчика. Часто датчики имеют несколько соединений: земля (-), Vin(+) и несколько сигнальных соединений. Так между питанием и Vin(+) датчика можно поставить электрическое реле. Управляющий контакт электрического реле подключается к любому свободному контакту на Arduino. Следовательно, Arduino может включать и отключать подачу питания на датчик, просто установив 1 или 0 для этого контакта. Я рекомендую вам использовать электрическое реле, потому что это проще, но если вы хотите попробовать транзистор, вы можете обратиться к этому вопросу & ответы: https://electronics.stackexchange.com/ questions/95089/switching-9v-using-npn-transistor-and-arduino

Насчет 3-го варианта: Ардуино основаны на каком-то MCU (часто AVR, не всегда). Эти микроконтроллеры имеют несколько режимов пониженного энергопотребления. Вы можете напрямую управлять режимом питания MCU для повышения энергоэффективности.

Итак, вы можете сделать 1-й и 2-й варианты и попробовать сделать 3-й:

  • Узнайте, какой микроконтроллер установлен в Arduino.
  • Узнайте, какие режимы питания он поддерживает.
  • Реализовать управление питанием в соответствии со спецификацией этого MCU.

Например, если у вас Arduino Mega 2560, то она основана на микроконтроллере ATmega2560, см. техническое описание (https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640- 1280-1281-2560-2561_datasheet.pdf) и найти там информацию о режимах питания/сна (стр. 50) и способах "пробуждения" из этих режимов.

Также вы можете прочитать об этом здесь: https://microchipdeveloper.com/8avr:avrsleep

Также вы можете попробовать найти какие-нибудь удобные библиотеки для Arduino, например "Low-Power" и просто используйте их, не углубляясь в микроконтроллеры, таблицы данных и т. д.

,

Как бы я поступил по второму варианту?, @JSK

@JSK, я обновил ответ: добавил дополнительную информацию о втором варианте, @Ihor Drachuk


2

Я бы сделал следующее:

Программное обеспечение:

  • Arduino находится в спящем режиме

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

  • затем снова ложитесь спать

Оборудование:

  • поскольку у вас есть 4 датчика, вы можете подключить их выходы к аналоговым входам Arduino (или цифровым...)
  • вам понадобятся 4 электронных переключателя, желательно МОП-транзисторов, подключенных к 4 цифровым выходам для независимого переключения питания каждого датчика.

Это должно снизить потребление до минимума.

После того, как ваша система заработает, вы также можете подумать об использовании только микрочипа AVR, а не всего Arduino, например, если вам не нужно USB-соединение. Кроме того, вы можете еще больше снизить энергопотребление, установив более низкую тактовую частоту микросхемы AVR, если не используете Arduino.

,

2

На самом деле, для такого проекта вы должны использовать два Arduino, один как ПОДЧИНЕННЫЙ, а другой как ГЛАВНЫЙ.

Вы упомянули 4 датчика для измерения качества воды, но у вас будет больше модулей, таких как RTC и MicroSD, для хранения данных. Итак, я думаю, вам следует использовать Slave для сбора данных с датчиков с помощью Tentacle Shield, а другой Arduino в качестве Master для УПРАВЛЕНИЯ другими модулями и SLAVE.

Для этого вы можете настроить связь между ними по протоколу I2C. Для моего крупного квалификационного проекта я представил полный прототип датчика удаленной платформы параметров поверхностных вод, используя как Arduino Uno (SLAVE), так и Mega (MASTER). В качестве источника питания я использовал мотоциклетный аккумулятор 12В 8А.

Все данные, собранные датчиками, сохранялись локально SDModulo и отправлялись SIM-модулем на сервер RaspberryPi.

Для низкого энергопотребления вам следует использовать режим DeepSleep для ардуино. Вы можете настроить этот режим с помощью модуля RTC. Arduino LowPowerDeepSleep.

Что касается трассы, думаю, у вас все будет хорошо, если вы воспользуетесь щупальцевым щитом. Это уже сделано.

,