
В этом примере показано, как AVR64DD32 может использоваться для создания конечного узла Лоравана, который контролирует температуру, влажность, барометрическое давление и влажность почвы и передает эти данные каждые три минуты в приложение через сеть вещей (TTN). Узел может быть размещен где -то от десяти метров до пяти километров от шлюза Лоравана в городских условиях, но диапазон шире для пригородных мест. Дизайн демонстрирует, как конечный узел, даже на дальнем диапазоне, может быть настроен, чтобы потреблять очень низкую мощность/иметь длительное время автономной работы, в то же время надежно перемещая ценные данные. Эта конструкция может быть легко масштабирована, чтобы обеспечить захват данных изменчивости почвы путем размещения дополнительных узлов на сельскохозяйственном участке без необходимости добавления дополнительных шлюзов или инфраструктуры.
Эта демонстрация использует модуль RN2903A, который работает на диапазоне частот 915 МГц и подходит для проектов и Австралии, но проект легко адаптируется для работы в других регионах, выбирая альтернативную плату Click Board ™ и Gateway для вашего региона.
Добавьте компоненты в доску адаптера Nano.
Поместите LR2 нажмите на Mikrobus ™ 2, и погода нажмите на Mikrobus 1.
Подключите датчики влаги, как показано на рисунке 1.
Наконец, добавьте перемычку между (PA1) и PD1, чтобы позволить сброс щелчка LR2. (PA1) не подключается по умолчанию (поскольку он уже подключен к внешним часам), в результате этот проект позволяет контакту PD1 привести к управлению сигналом сброса.
| Джемпер -проволока | Приколоть |
|---|---|
| VCC - Красный провод от датчика влаги | Венчурной |
| GND - Черная проволока от датчика влаги | Гнездо |
| AOUT - Желтая проволока от датчика влаги | PD2 |
| (PA1) - Поместите перемычку между | PD1 |

Рисунок 1. Настройка оборудования

Рисунок 2. Откройте проект в MPLAB X
Как только проект открылся, начните с калибровки датчиков.
Чтобы калибровать датчик влаги, откройте файл application.c и измените начальное состояние на TEST_MOISTURE .

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

Рисунок 4. Датчик, расположенный в сухом воздухе
Запустите визуализатор данных со следующими настройками:
Скорость бода: 9600
Длина чара: 8 битов
Паритет: нет
Остановите биты: 1
Нажмите «Отправить» в терминал, затем сделайте и запрограммируйте устройство.

Рисунок 5. Визуализатор данных Отправка на терминал

Рисунок 6. Сделать и запрограммировать устройство
Как только программа начнется, вам будет предложено нажать кнопку, чтобы генерировать чтение аналого-цифрового преобразователя (ADC). Несколько раз нажмите кнопку с датчиком в сухой воздухе, затем поместите датчик чашку воды и нажмите кнопку еще несколько раз.
На рисунке 7 показаны два показания. При сборе образцов сухого воздуха показания АЦП составляют около 3000. При сборе образцов воды показания близко к 1400.

Рисунок 7. Значения АЦП в суховом воздухе и в чашке воды
Обратите внимание на свои результаты и откройте файл application.h . Замените определения для IN_MAX и IN_MIN , используя ваши результаты, затем используйте эти значения, чтобы вычислить CONVERSION_PERCENT , используя показанную формулу.

Рисунок 8. Определения влажности почвы
Требуется только одно небольшое изменение для калибровки щелчка погоды; О остальном заботится в программном обеспечении. Чтобы иметь точное показание давления, устройство должно использовать вашу текущую высоту над уровнем моря. Введите это значение в строке 24 файла bme.h

Рисунок 9. Высота для погодного клика
Затем установите сторону TTN проекта.
Если вы еще этого не сделали, настройте учетную запись с TTN; Общественное издание бесплатно для справедливого использования. Настройка учетной записи начинается с выбора регионального кластера, нажмите здесь, чтобы начать.
После настройки учетной записи перейдите в консоль и нажмите «Перейти к приложениям» .

Рисунок 10. Настройка приложения
Нажмите кнопку «Создать приложение» и следуйте инструкциям, чтобы создать приложение.

Рисунок 11. Создать приложение
Нажмите на форматер полезной нагрузки , затем на uplink .

Рисунок 12. Форматер полезной нагрузки при приложении
В разделе «Тип форматератирования»*Выберите «Пользовательский форматер JavaScript».

Рисунок 13. Выберите пользовательский форматер Javascript
Замените функцию decodeUplink по умолчанию следующим фрагментом:
function decodeUplink ( input ) {
var data = { } ;
data . temp = input . bytes [ 0 ] ;
data . humidity = input . bytes [ 1 ] ;
data . moisture = input . bytes [ 2 ] ;
data . pressure = ( input . bytes [ 3 ] + 900 ) ;
return {
data : data
} ;
}Рисунок 14. Декодировать фрагмент кода восходящей линии связи
Нажмите Сохранить и вернуться на страницу обзора.
На странице обзора приложений нажмите кнопку «Зарегистрировать окончание» .

Рисунок 15. Зарегистрирование конечного устройства для OTAA
Чтобы зарегистрировать устройство, необходимы несколько деталей из модуля. Откройте файл application.c еще раз и измените состояние для регистрации.

Рисунок 16. Изменение состояния на регистрацию
Запустите визуализатор данных и снова построить и запрограммировать устройство. Когда программа работает, скопируйте HWEUI и отметьте спецификацию Lorawan.

Рисунок 17. Детали конечного устройства в визуализаторе данных
Вернитесь в окно End End Device на TTN и выберите «Введите концентрацию устройства вручную». Выберите свой частотный план на основе вашего местоположения и выберите спецификацию Лоравана. В разделе «Предоставление информации» введите все нули для поля JOINEUI, затем нажмите «Подтвердить» .

Рисунок 18. Регистрация нового устройства
Вставьте Hweui, который вы скопировали ранее в поле DeVeui, затем нажмите Generate , чтобы сгенерировать новый Appkey.

Рисунок 19. Сгенерировать новое приложение
Конечное устройство теперь создано, и ему нужно будет иметь форматер полезной нагрузки.
Самый быстрый способ настройки форматера - это использовать кнопку «Вставка приложения» . Нажмите на кнопку «Форматерс» полезной нагрузки , затем выберите «Пользовательская опция форматератирования JavaScript» и нажмите форматера приложения вставки .

Рисунок 20. Вставьте форму приложения
На TTN откройте страницу обзора End Device, есть два поля для копирования и вставки в файл заголовка RN2XX3 для проекта. Нажмите на девеуи и вставьте его в поле HWEUI в определении RN2xx3.h . Скопируйте поле Appkey и вставьте его в определение Appkey.

Рисунок 21. Скопируйте Deveui и Appkey в буфер обмена

Рисунок 22. Обновите определения HWEUI и Appkey
Этот пример предполагает, что у вас есть публичный TTN Gateway рядом с вами, либо вы настроили его самостоятельно. Наличие собственного шлюза очень полезно для устранения неполадок, если вы столкнетесь с проблемами. Если вы хотите настроить свой собственный шлюз, можно найти два полезных руководства по адресу: Hackster Project и Rak Developer Gateway.
После того, как вы получите доступ к шлюзу, продолжите тест, снова открыв файл application.c и изменив состояние обратно на init.

Рисунок 23. Переключиться на init
Запустите визуализатор данных снова и перепрограммируйте устройство.

Рисунок 24. Запустите визуализатор данных
Когда приложение запускается, модули будут инициализированы. Нажмите кнопку, чтобы запустить процедуру соединения TTN.
Настройка плана частоты канала займет около десяти секунд. После этого, если запрос на присоединение будет принят, устройство отправит свою первую полезную нагрузку. Если устройство не подключается, будут даны некоторые предложения. Общие проблемы находятся слишком близко к шлюзу, неправильным ключам или шлюзу могут временно отключаться. Обычно вы должны увидеть выход, подобный тому, который на рисунке 25.

Рисунок 25. Вывод при принятии запроса на соединение
Для этого проекта узел отправляет новые данные каждые три минуты. Раз в день он отправляет данные в качестве подтвержденной полезной нагрузки, как в этой первой передаче. Подтвержденные сообщения требуют подтверждения от сети, но также потребляют эфирное время на шлюзе и дополнительное время автономной работы для узла. Таким образом, следующие 479 сообщений каждый день отправляются в виде неподтвержденных сообщений.
Этот проект отправляет все подтвержденные сообщения в порту 10 и неподтвержденные сообщения на порту 11. Вы можете увидеть на рисунке 26 ниже, показывающем окно в прямом эфире приложения, которое после присоединения и отправки первоначального подтвержденного сообщения впоследствии отправляет неподтвержденное сообщение в приложение каждые три минуты.

Рисунок 26. Подтвержденные сообщения на порту 10 и неподтвержденные сообщения в порту 11
В этом примере показано, как настроить конечный узел Lorawan, используя AVR64DD32 с кликом Mikroe LR2, щелчком Mikroe Weather и датчиком влажности почвы, чтобы разделить условия почвы на дальнем расстоянии, используя низкую мощность.