Недавно я построил полнофункциональный IoT GPS / GSM трекер с Pi Zero для проекта колледжа, и теперь, когда он закончен и завершен, я хотел бы минимизировать текущее потребление всей системы, так как две батареи 2500 мАч могут питать только ее максимум на один-два дня. Тем не менее, я все еще новичок в этих устройствах, и я хотел бы получить некоторую помощь в отношении аппаратных изменений и методов.
Моя цель: устройство, способное запускать скрипты на Python, которое имеет минималистский форм-фактор (особенно высоту) с минимально возможной потребляемой мощностью.
Моя текущая настройка использует:
- Raspberry Pi Zero
- Adafruit Fona 808 GPS и GSM
- Adafruit LSM303 Акселерометр и Магнитометр
Я знаю о мощных Arduinos и MSP430, но я не знаю, возможно ли сделать то, что мне нужно, с этими микроконтроллерами.
Мои вопросы:
- Насколько крутой путь обучения можно пройти от Raspberry Pi до более простых досок?
- Могут ли эти другие платы одновременно работать с GSM / GPS / акселерометром?
- Существуют ли другие модули, которые предоставляют такую же функциональность, но потребляют меньше энергии? (Я не могу найти конкретные номера мощности для этих модулей)
- Будут ли мои текущие модули работать с MSP430, например?
- Любые рекомендации / комментарии?
hardware
sensors
microcontrollers
raspberry-pi
power-consumption
Раньше я был смешным
источник
источник
Ответы:
Я предполагаю, что требования к обработке устройства достаточно близки к нулю. Похоже, вы используете какой-то вход для ускорения, чтобы определить, как часто следует активировать устройство GSM.
В идеале вы хотите, чтобы микроконтроллер, запускаемый акселерометром, выходил из спящего режима, а затем определял, когда отправлять пинг местоположения. Любое устройство на основе микропитона должно быть хорошей отправной точкой.
В качестве примера отключения питания небольшой платы микробит BBC, кажется, использует пару миллиампер, когда дисплей выключен (работает на частоте 16 МГц и при включенном встроенном акселерометре / магнетометре).
Micropython поддерживает «сон», но от того, сколько энергии это экономит, зависит от целевой платформы. Реально для такого рода приложений встроенная операционная система C ++ будет не сложнее в кодировании и обеспечивает большую гибкость для экономии энергии.
Первым этапом расчета вашей потребляемой мощности является определение различных режимов и распределение затрат энергии для каждой задачи. Это позволяет сравнивать стоимость сообщений GPS / GSM с базовой суточной мощностью холостого хода (без работы). Затем вы можете увидеть, что доступно для каждого компонента. Если ваш GSM-модуль активен только в течение нескольких минут в день, его энергопотребление может быть незначительным.
источник
По моему опыту модули GSM и GPS потребляют гораздо больше энергии, чем процессор. Этого следует ожидать, так как оба они содержат много радиочастотных схем, и модуль GSM должен передавать, а также принимать.
Первым шагом будет перенастройка вашего прототипа, чтобы вы могли контролировать мощность, потребляемую каждой деталью. После того, как вы это охарактеризовали, вам, вероятно, потребуется реализовать схему управления питанием, чтобы модули GPS и GSM включались только тогда, когда это необходимо. Чем дольше вы можете позволить себе отключить их, тем дольше будет работать батарея.
Одна из проблем, связанных с протоколами GSM и GPS, заключается в том, что, если устройство отключается в течение значительного периода времени, потребуется более длительное время для восстановления соединений, и это увеличит время для первого исправления доступности GPS и канала передачи данных для GSM.
источник
Используя MicroPython, вы можете переключиться с потребляющего Pi Zero на другую платформу. Официальная плата PyBoard - это STM32F405RG, которая может быть достаточно хорошей, но есть поддержка и для серии STM32L4 с низким энергопотреблением.
В настоящее время вы используете Pi Zero с частотой 1 ГГц для использования UART и периферийного устройства I2C для сопряжения SIM808 и LSM303. Пи потребляет около 80 мА в режиме ожидания, не говоря о том, когда это не так.
Если бы вы могли снизить тактовую частоту вашего процессора, вы могли бы также снизить потребление энергии. Для этой задачи достаточно пары МГц.
Таким образом, вы можете перейти на PyBoard, который потребляет всего пару мА при 10 МГц в режиме работы с включенной периферией.
Гораздо меньше 0,4 мА в режиме остановки и 2,4 мА в режиме ожидания.
Возможно, вам придется перенести свои скрипты на MicroPython, но это будет проще, чем перенести их на C.
источник