Оглавление:

IOT с батарейным питанием: 7 шагов
IOT с батарейным питанием: 7 шагов

Видео: IOT с батарейным питанием: 7 шагов

Видео: IOT с батарейным питанием: 7 шагов
Видео: Элементная база современных логгеров. Простые проекты приносящие миллионы. IoT в реальных примерах. 2024, Июль
Anonim
IOT с батарейным питанием
IOT с батарейным питанием

Если ваш проект IOT с батарейным питанием работает с перебоями, эта схема потребляет только 250 нА (это 0,00000025 ампер!) В режиме ожидания. Обычно большая часть заряда батареи расходуется в перерывах между занятиями. Например, проект, который работает 30 секунд каждые 10 минут, расходует 95% емкости батареи!

Большинство микроконтроллеров имеют режим ожидания с низким энергопотреблением, но им по-прежнему требуется питание для поддержания работы процессора, а также любые периферийные устройства будут потреблять энергию. Чтобы получить ток в режиме ожидания ниже 20-30 мА, нужно приложить немало усилий. Этот проект был разработан для определения температуры и влажности в ульях. Из-за удаленного источника питания батареи и экрана ячейки для передачи данных, где единственный выбор.

Эта схема будет работать с любым контроллером и питанием 12, 5 или 3 В. В большинстве магазинов электроники есть компоненты, которые стоят всего несколько долларов.

Запасы

Резисторы: 2x1K, 3x10K, 1x470K, 2x1M, 5x10M

Диоды: 2x1N4148, 1xLED

МОП-транзистор: 3x2N7000

Часы: PCF8563 или эквивалент для микроконтроллера

Реле: EC2-12TNU для питания 12 В

EC2-5TNU на 5В

EC2-3TNU для 3В

Питание: OKI-78SR-5 / 1.5-W36-C преобразователь 12 В в 5 В или по требованию микроконтроллера

Переключатель: кратковременное нажатие для сброса, SPDT для проверки

Шаг 1: Как работает схема

Как работает схема
Как работает схема

Схема довольно проста:

- Срабатывает сигнализация с батарейным питанием и переключает переключатель

- Электропитание передается от батареи к контроллеру, который запускается и делает свое дело

-Контроллер сбрасывает сигнализацию

- Затем перекидывает выключатель на выключение.

Шаг 2: Часы

Часы
Часы

Большинство часов реального времени должны работать при условии, что они совместимы с вашим контроллером и имеют строку прерывания (Int), которая сообщает, когда срабатывает будильник.

В зависимости от конкретного контроллера и часов вам потребуется установить библиотеку программного обеспечения.

ПОЖАЛУЙСТА, настройте контроллер и часы на прототипной плате и убедитесь, что вы можете запрограммировать их, чтобы установить время, когда должно произойти следующее прерывание и как очистить прерывание после срабатывания будильника. Теперь гораздо проще заставить это работать, прежде чем строить окончательную доску. См. Последний шаг для примечаний по программированию.

Шаг 3: переключатель

Выключатель
Выключатель

В качестве переключателя мы используем реле с фиксацией с 2-мя катушками.

Пропускание тока через установленную катушку включает реле. Ток должен течь всего около 12 мс, а затем его можно отключить, оставив реле включенным.

Пропустите аналогичный импульс через катушку сброса, чтобы выключить реле.

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

Проект построен на батарее SLA 12В. Они дешевы (ноль, так как у меня уже был один!), И они хорошо справятся канадской зимой с небольшим солнечным зарядным устройством.

Схема могла быть построена с реле 3V, используя пару батареек AA. Поскольку реле будет работать с током 2 А при напряжении сети, оно может переключить небольшой настенный блок питания (или второе реле большей емкости) на оборудование с питанием от сети. Просто убедитесь, что все, что превышает 12 В, находится в правильно заземленной коробке и хорошо изолировано.

Шаг 4: МОП-транзистор 2N7000

2N7000 МОП-транзистор
2N7000 МОП-транзистор

В этой схеме используются 3 N-канальных полевых транзистора 2N7000 в расширенном режиме (полевой транзистор с металлическим оксидом и полупроводником), которые используются в качестве переключателей.

Стоят всего пару долларов, это весьма примечательные устройства. Ток протекает между стоком (+) и истоком (-), когда напряжение затвора превышает примерно 2 В. Когда "включен", сопротивление истока-стока составляет около Ом. Когда выключено много мегом. Это емкостные устройства, поэтому тока затвора достаточно, чтобы «зарядить» устройство.

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

Шаг 5: Схема

Схема
Схема

Линия прерывания от часов (INT) обычно плавает и соединяется (внутри часов) с землей, когда срабатывает будильник. Резистор 1M подтягивает эту линию к высокому уровню при ожидании сигнала тревоги.

U1 действует как инвертор, так как нам нужен активный высокий уровень для включения реле при срабатывании аварийного сигнала. Противоположно тактовому выходу. Это означает, что U1 всегда находится в режиме ожидания и постоянно разряжает аккумулятор. К счастью, мы можем использовать очень большой резистор R1, чтобы ограничить этот ток. Моделирование показало, что это может быть до нескольких Гомов! В моем местном магазине было всего 10 МОм резисторов, поэтому я использовал 5 последовательно. 250na в моей книге достаточно мало.

U2 - простой переключатель для питания установленной катушки реле.

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

Необработанные 12 В от батареи поступают на делитель напряжения R6 и R7. Центральная точка идет к одному из аналоговых выводов контроллера, поэтому напряжение батареи можно контролировать и сообщать.

U4 - это высокоэффективный преобразователь постоянного тока в постоянный, обеспечивающий напряжение 5 В для контроллера.

Когда контроллер завершает работу, он поднимает высокий уровень на линии Poff, что включает U3, который выключает реле. Резистор R4 обеспечивает заземление для затвора U3. MOSFET - это емкостное устройство, и R4 позволяет заряду течь на землю, чтобы переключатель мог отключиться.

Тестовый переключатель направляет питание от микроконтроллера на светодиод. Это полезно для тестирования этой схемы, но важно, когда контроллер подключен к компьютеру для программирования и тестирования кода. Извините, но с питанием от 2-х источников не тестировал!

Кнопка сброса была необходимой запоздалой мыслью. Без него невозможно установить будильник при первом включении системы !!!

Шаг 6: Моделирование схемы

Схемное моделирование
Схемное моделирование
Схемное моделирование
Схемное моделирование

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

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

Шаг 7: Построение и программирование

Строительство и программирование
Строительство и программирование

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

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

В зависимости от конкретного контроллера и часов вам потребуется установить библиотеку программного обеспечения. Эта библиотека будет включать образец кода.

Интерфейс и программирование часов должны быть протестированы на макетной плате перед подключением схемы. Для часов Arduino и H2-8563 SCL переходит в A5, а SDA - в A4. Прерывание переходит к INT, указанному в схеме.

Для Arduino тестовый код будет включать что-то вроде:

#включают

#include Rtc_Pcf8563 rtc;

rtc.initClock ();

// устанавливаем дату и время, чтобы начать. Необязательно, если вам нужны будильники только на час или минуту. rtc.setDate (день, день недели, месяц, век, год); rtc.setTime (час, мин, сек);

//Установить будильник

rtc.setAlarm (мм, чч, 99, 99); // Мин, час, день, день недели, 99 = игнорировать

// Сбросить сигнал тревоги rtc.clearAlarm (); }

Рекомендуемые: