Сенсорный концентратор сверхмалого энергопотребления с использованием модулей nRF24L01
Сенсорный концентратор сверхмалого энергопотребления с использованием модулей nRF24L01
Здесь представлен Сенсорный концентратор сверхмалого энергопотребления на базе микроконтроллера ATmega328P с использованием радиочастотных (RF) приемопередатчиков nRF24L01+, имеющих блоки передатчика и приемника.
Передатчик отправляет значения влажности и температуры в удаленном приемнике для отображения на модуле OLED.
Модуль nRF24L01+, используемый в блоке приемника, представляет собой приемопередатчик 2,4 ГГц, подходящий для беспроводных приложений со сверхнизким энергопотреблением. Он предназначен для работы в диапазоне ISM (промышленный, научный и медицинский радиодиапазон) 2,400–2,4835 ГГц.
Модуль nRF24L01+PA и LNA, используемый в блоке передатчика, аналогичен nRF24L01+, но имеет встроенные схемы усилителя мощности (PA) и малошумящего усилителя (LNA), которые помогают передавать сигнал на большее расстояние и достигать более стабильной работы для приложений, соответствующих отраслевым стандартам.
Поиск системы с низким энергопотреблением начался, когда некоторые читатели EFY задали вопрос о моей самодельной работе, заявив, что процессор ATmega328P не выдерживает напряжение 3,3/5 В. Но это работало хорошо из-за крайне низкого энергопотребления процессора ATmega. Более подробная информация представлена в подразделе «Экстремально низкое энергопотребление» этой статьи.
Схема датчика сверхмалой мощности
Сердцем сенсорного концентратора является маломощный ATmega328P, работающий на внутренней частоте 4 МГц. Датчик DHT22 используется для измерения относительной влажности и температуры в помещении. Передатчик радиопередатчика маломощного радиоприемопередатчика модуля nRF24L01+PA LNA (рис. 1).
Рис. 1: модуль nRF24L01+PA LNA
Вы можете добавить больше датчиков, так как многие контакты GPIO модуля приемопередатчика не используются. Конденсатор емкостью 470 мкФ действует как стабилизатор, while модуль датчика (радио) потребляет мощность при импульсном режиме.
Параметры радиомодулей как в передатчике, так и в приемнике устанавливаются следующим образом:
Скорость передачи данных = 250 кбит/с.
RF_CH = 0x6c [108]
Модель = nRF24L01+
CRC Длина = 16 бит
Мощность PA = PA_MAX
RF_CH = 0x6c — 108-й канал. Обычно диапазон 2,4 ГГц делится на несколько каналов, как показано в таблице.
108-й канал имеет частоту около 2,508 ГГц, что значительно превышает частоту Wi-Fi локальной сети и его использование разрешено. Вы можете настроить модуль на работу со скоростью передачи данных 250 кбит/с и на разных каналах. Вероятность распространения довольно высока при скорости передачи данных 250 кбит/с. Интересно, что почти все микроволновые печи работают на частоте 2,4 ГГц. Поэтому каналы 0-82 очень шумные. Сценарий этого проекта разработан таким образом, что сначала все сведения о радиостанции печатаются на последовательном терминале, а затем начинают появляться данные.
Принцип работы
Процессор ATmega328P представляет собой маломощную версию чипа ATmega328. График зависимости тока питания от частоты согласно даташиту показан на рис. 2. Как видно, процессор вполне терпим к напряжению от 1,8 В до 5,5 В при 1 МГц, 1,8 В, 25°C.
Рис. 2: Зависимость тока питания от частоты
Процессор работает в активном режиме при токе 0,2 мкА, в режиме пониженного энергопотребления при токе 0,1 мкА и в режиме энергосбережения при токе 0,75 мкА (включая RTC 32 кГц). Однако получить ток 0,2 мкА для режима глубокого сна с отключением питания непросто. В то же время получить ток около 1 мкА в режиме глубокого сна легко с помощью сторожевого таймера микросхемы (WDT) и предохранителя обнаружения падения напряжения.
Сначала отключите предохранитель обнаружения падения напряжения, чтобы можно было работать при низком напряжении без перезапуска. По мере уменьшения напряжения снижается и ток (см. график на рис. 2).
Интересно, что с уменьшением частоты снижается и энергопотребление. Это означает, что if микросхема рассчитана на работу на более низкой резонансной частоте, при этом энергопотребление еще больше снизится. Для уменьшения частоты работы мы делим частоту 8МГц внутри по командам. При работе с напряжением 3,3 В энергопотребление снижается следующим образом:
clock_div_1–3,1 мА clock_div_2 – 1,8 мА
clock_div_4-1,1 мА clock_div_8 – 750 мкА
lock_div_16-550 мкА Cock_div_32 – 393 мкА
lock_div_64-351 мкА clock_div_128 – 296 мкА
lock_div_256 – 288 мкА
Чтобы уменьшить частоту операций, используйте очень простую команду внутри setup():
медленные часы делятся на 256
clock_prescale_set (lock_div_256);
Как показано на рис. 2, при частоте 4 МГц чип будет continue работать от источника питания 1,8 В.
Если WDT выключен, микросхема получит ток в спящем режиме величиной 1 мкА, но не проснется сама по себе — если только вы не нанесете на нее разряд через прерыватель (0) от контакта 4 ATmega328P, мгновенно заземлив его.
Однако в этом проекте мы хотим, чтобы сигналы отправлялись периодически (раз в 42 минуты). Поэтому мы не выключаем WDT. Ток сна будет более 30 мкА, но работа будет периодической сама по себе. Часы WDT не очень точны по сравнению с другими методами измерения времени. Однако при малом энергопотреблении часы WDT мало чем отличаются от часов реального времени. Вся операция выполняется с помощью файла библиотеки lowpower.h, который можно загрузить по следующей ссылке
Передатчик
Рис. 3 показана схема передатчика. Он может питаться от литий-ионного элемента на 3,7 В или от двух карандашных элементов по 1,5 В. Теоретически используемые здесь устройства способны работать при напряжении до 1,8 В, но при напряжении менее 2 В радиостанция nRF24L01+PA&LNA перестает работать, а при напряжении менее 2,8 В не будет работать датчик DHT22. Для стабильности на шине питания DHT22 и nRF24L01 добавлены конденсаторы небольшого размера. Питание Vcc для DHT22 берется из порта PD4 (контакт 6) ATmega328P, тогда как nRF24L01+ напрямую подключен к источнику питания 3,7 В. Чтобы снизить энергопотребление радиомодуля в состоянии ожидания, мы используем в коде команду радиомодуля powerDown().
Рис. 3: Схема передатчика
Прежде чем записать код (nrf24l01_tx6.ino) в новый чип ATmega328P, запишите код загрузчика для встроенной внутренней тактовой частоты 8 МГц. Подробную информацию см. в подразделе «Программатор AVR».
Приемник
Рис. 4 показана схема приемника. Радиостанция nRF24L01+ рассчитана на работу только при напряжении 1,9–3,6 В. Подключение модуля к 5 В может привести к его необратимому повреждению; перегревается в case обратного подключения или высоковольтного подключения. Подключите небольшой конденсатор (скажем, 10 мкФ) между выводами Vcc и GND радиомодуля nRF24L01+. Детали контактов модулей nRF24L01+ (показаны на рис. 5) и nRF24L01+PA и LNA одинаковы.
Рис. 4: Схема приемника
Модуль nRF24L01+ подключен к I2C 64×128 OLED через ATmega328P. Данные о влажности и температуре, полученные модулем, отображаются на OLED. Вы также можете увидеть эти данные на последовательном мониторе Arduino IDE. Все радиостанции nRF24L01+ способны передавать шесть каналов одновременно. Уникальные адреса каналов или идентификаторы, выбранные здесь для модулей передатчика и приемника: 0xE8E8F0F0E1LL.
Рис. 5: Информация о контактах модуля nRF24L01+
Программист AVR
Чтобы этот проект заработал, вам понадобится AVR-программист. Вы можете сделать его самостоятельно, как описано в разделе «Arduino как программист AVR».
Для этой небольшой установки требуется плата Arduino, разъем ZIF (нулевое усилие вставки), пустой ATmega328P и несколько пассивных компонентов. С их помощью вы можете на лету создавать столько Arduino, сколько захотите.
Сначала запишите загрузчик внутреннего генератора 8 МГц чипа ATmega328P. Для этого в любой последней версии Arduino IDE выберите Инструменты → Платы → Arduino LilyPad и затем запишите загрузчик Arduino на чип ATmega328P. LilyPad — простейшая плата Arduino с внутренней тактовой частотой 8 МГц. В case чип уже записан как Arduino Uno (тактовая частота 16 МГц), он не будет сжигать внутренний загрузчик тактовой частоты 8 МГц, если к нему не подключен кварц 16 МГц. Как только внутренний загрузчик часов 8 МГц будет записан, удалите кварц 16 МГц и приступайте к записи основного скетча.
Очень малое энергопотребление
Небольшого литий-ионного кнопочного элемента достаточно для работы небольшого сенсорного концентратора и передачи сигналов на расстояние до 500 метров в течение более 25 дней без перерыва. На элементе 3,7 В передатчик потребляет ток всего 6–7 мА в течение двух секунд, а затем в течение 40 секунд бездействует, потребляя ток 30 мкА. Аккумулятор работает неделями.
Приемник потребляет ток 32 мА в течение десяти секунд, а затем в течение 32 секунд переходит в режим ожидания при токе 8 мА.
Вот расчет:
Потребление тока (передатчик)=(2×7)+(40×0,030)=15,2 мА секунды за 42 секунды
За 24 часа = 0,3619×60×60× 24 мА секунды
=(0,3619×60×60×24)/3600 мА·ч
=8,68571 мАч
При использовании аккумулятора напряжением 3,7 В и емкостью 150 мАч его хватает на 150/8,68571 = 17 дней
Ток потребления (приемник) составляет {(10×32)+(32×8,0)}/42 = 13,714 мА секунды
=(13,714×60×60×24)/3600
=329,143 мАч
На таблеточном элементе напряжением 3,7 В и емкостью 150 мАч он прослужит около 150/329 = 27 минут.
Дисплей потребляет больше тока.
Обратите внимание, что радиостанции nRF24L01 работают при напряжении не более 3,6 В. Иногда, когда литий-ионный аккумулятор полностью заряжен, напряжение может достигать 4,01 В, поэтому радиостанция может не работать. Поставьте диод последовательно с разъемом аккумулятора, чтобы напряжение упало на 0,7 В и радиостанция снова заработала.
Создание и тестирование
Схема PCB в реальном размере для схемы передатчика показана на рис. 6, а компоновка ее компонентов - на рис. 7. Компоновка PCB для схемы приемника показана на рис. 8, а компоновка ее компонентов - на рис. 9. После сборки схем на соответствующих печатных платах поместите их в подходящие шкафы и разместите на некотором расстоянии друг от друга.
Рис. 6: PCB расположение передатчикаРис. 7. Расположение компонентов PCB на рис. 6Рис. 8: PCB расположение приемникаРис. 9: Расположение компонентов PCB на рис. 8
Загрузите PCB и PDF-файлы компоновки компонентов: нажмите здесь
Подключите аккумулятор к передатчику и измерьте силу тока. Потребляемый ток составляет 6–7 мА while при передаче в течение двух секунд и 30 мкА в течение оставшихся 40 секунд. Для периодичности мы использовали WDT MCU, который не очень точен. Он обеспечивает пять шагов приращения по 250 мс, 500 мс, 2, 4 и 8 секунд. Это означает, что он будет передаваться каждые 5×8+2=42 секунды. Для работы датчика DHT22 требуется минимум 2,8 В. Поэтому установите довольно большой конденсатор (100–470 мкФ) на контакты Vcc и GND. В противном случае вы получите значения температуры и относительной влажности равные нулю. Между показаниями датчика проходит две секунды.
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба