Начало работы с RAK 831 Lora Gateway и RPi3
Этот проект проведет вас через все шаги, необходимые для установки и запуска модуля шлюза RAK 831 Lora с Wi-Fi в качестве транзитного соединения.
История
Введение
Это пошаговое руководство предназначено для разработчиков, которые хотят разработать свой собственный шлюз lora, используя великолепный интерфейсный радиомодуль RAK831 Lora от RAK Wireless. Руководство предполагает базовые знания экосистемы Raspberry pi, оборудования и соответствующей ОС Debian. Руководство также предполагает базовые знания GPIO и периферийных устройств, присутствующих на Raspberry Pi. Итак, приступим:
Что такое LoRA?
LoRa Технология Alliance ™. LoRaWAN ™ - это спецификация глобальной сети с низким энергопотреблением (LPWAN), предназначенная для беспроводных устройств с батарейным питанием в региональной, национальной или глобальной сети. LoRaWAN отвечает ключевым требованиям Интернета вещей, таким как безопасная двусторонняя связь, услуги мобильности и локализации.
любезно предоставлено Semtech
На схеме выше показаны различные части беспроводной архитектуры Lora. Некоторые из важных частей кратко описаны ниже:
Ключевые особенности технологии LoRa и протокола LoRaWAN
· ГЕОЛОКАЦИЯ:включает приложения для отслеживания с низким энергопотреблением без использования GPS
· НИЗКАЯ СТОИМОСТЬ:снижает затраты тремя способами:инвестиции в инфраструктуру, операционные расходы и датчики конечных узлов
· СТАНДАРТИЗИРОВАННЫЙ:улучшенная глобальная совместимость ускоряет внедрение и развертывание сетей на основе LoRaWAN и приложений IoT
· LOW POWER:протокол, разработанный специально для низкого энергопотребления, продлевающий срок службы батареи до 20 лет
· БОЛЬШОЙ ДИАПАЗОН:одна базовая станция обеспечивает глубокое проникновение в густонаселенные городские / внутренние районы, а также соединяет сельские районы на расстоянии до 30 миль
· БЕЗОПАСНЫЙ:встроенное сквозное шифрование AES128
· ВЫСОКАЯ МОЩНОСТЬ:поддерживает миллионы сообщений на базовую станцию, идеально подходит для операторов сетей общего пользования, обслуживающих множество клиентов.
RAK 831 - это интерфейс LorA Radio; то есть он действует как приемник входящих пакетов данных lora и пересылает их на хост программного / аппаратного обеспечения управления агрегатором. Он также может передавать пакеты данных LoRA на основе запроса платы хоста. В нашем случае raspberry pi 3 - это плата хоста, управляющая интерфейсом RAK 831.
Выбор транзитного рейса
Что такое обратный рейс? Backhaul относится к тому, как Raspberry Pi будет подключен к Интернету. В этом руководстве основное внимание уделяется использованию Wi-Fi в качестве транзитного соединения, но вы также можете использовать Ethernet или 3G / 4G. Если у вас есть Ethernet рядом со шлюзом, предпочтите его Wi-Fi или 3G / 4G. Это связано с тем, что дополнительный радиосигнал внутри корпуса вызывает шум. Программное обеспечение может справиться с шумной средой, так что это не большая проблема, но чем меньше шума, тем лучше. Вы можете комбинировать этот выбор с Power-over-Ethernet, чтобы минимизировать количество кабелей, идущих до шлюза.
С другой стороны, если вы выберете Wi-Fi вместо Ethernet, попробуйте использовать защитный ключ с внешней антенной и переместите антенну за пределы корпуса, чтобы внутри корпуса было меньше шума.
Настройте оборудование:
Прежде чем мы что-либо подключим и включим, давайте выполним следующие настройки для Raspberry Pi и модуля RAK 831:
МАЛИНОВЫЙ ПИ
1) Получите плату raspberry pi 3 и подготовьте карту micro sd емкостью 8 ГБ с программным обеспечением raspbian. Вы даже можете купить SD-карту noobs с предустановленным программным обеспечением. Чтобы узнать, как установить ОС на SD-карту, следуйте инструкциям здесь:https://www.raspberrypi.org/learning/hardware-guide/
2) Подключите raspberry pi к источнику питания 5 В, 2 ампера. ЭТО ОЧЕНЬ ВАЖНО. Модуль lora может потреблять пик 700 мА во время активных беспроводных транзакций и, следовательно, имеет хороший блок питания для питания raspberry pi
raspberry pi v3
RAK 831:
1) Прежде чем вы включите плату, возьмите антенны, которые входят в комплект, и подключите их к винтовой клемме антенны. ЭТО ВАЖНО.
Raspberry Pi v3, модуль RAK 831 и узел Lora
Сведения о подключении:
Вот таблица, показывающая, как подключить модуль rak831 к raspberry pi:
Подключение rpi v3 к контакту rak 831 Шелкотрафаретная карта rak 831 с контактом rak 831карта шелкографии rak 831 с контактом rak 831
Чтобы понять схему расположения выводов Raspberry Pi, перейдите по адресу:https://www.raspberrypi.org/documentation/usage/gpio/, чтобы узнать подробности
Примечания:
- Контакт сброса может быть подключен к любому GPIO на Raspberry Pi 3.
- Важно убедиться, что вы правильно подключили контакты блока питания, чтобы избежать повреждения платы RAK 831.
Включить SPI:
Периферийное устройство SPI не включено по умолчанию. Чтобы включить его, сделайте следующее.
- Запустите sudo raspi-config.
- Используйте стрелку вниз, чтобы выбрать 9 дополнительных параметров.
- Стрелка вниз к A6 SPI.
- Выберите "Да", когда вам будет предложено включить SPI . ,
- Также выберите "Да", когда появится запрос об автоматической загрузке модуля ядра.
- Используйте стрелку вправо, чтобы выбрать кнопку <Готово>.
- Выберите "Да" при запросе перезагрузки.
Raspi-config для SPI
Система перезагрузится. Когда он вернется, войдите в систему и введите следующую команду
> ls / dev / * spi *
Pi должен ответить
/dev/spidev0.0 /dev/spidev0.1
Они представляют устройства SPI на контактах включения микросхемы 0 и 1 соответственно. Эти контакты зашиты внутри Pi. Обычно это означает, что интерфейс поддерживает не более двух периферийных устройств, но бывают случаи, когда несколько устройств могут быть подключены гирляндой, совместно используя один сигнал включения микросхемы.
Подайте питание на плату:
Как и в случае с любыми другими беспроводными проектами, они, как правило, требуют большей мощности, чем основная плата может обеспечить через контакты питания. На двух схемах ниже показано, как можно подключить RAK 831 и raspberry pi 3.
1) Подайте питание на шину 5 В от Raspberry Pi
2) Подайте питание на шину 5 В на Raspberry Pi и RAK831 отдельно
Установка программного обеспечения:
На Raspberry pi давайте сделаем следующие шаги, чтобы установить необходимое программное обеспечение:
- Включить SPI:
Используйте утилиту raspi-config, чтобы включить SPI ([5] Параметры интерфейса -> P4 SPI), а также разверните файловую систему ([7] Дополнительные параметры -> A1 Расширьте файловую систему):
$ sudo raspi-config
- Убедитесь, что git установлен.
Обновление Sudo apt-get
Обновление Sudo apt-get
Установка git Sudo apt-get
- Управляйте своим Wi-Fi-соединением на Raspberry Pi
- Настройте учетные данные Wi-Fi (дополнительные сведения см. здесь).
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
И добавьте следующий блок в конец файла, заменив SSID и пароль в соответствии с вашей сетью:
network ={
ssid =«The_SSID_of_your_wifi»
psk =«Your_wifi_password»
}
- Клонируйте установщик и начните установку.
$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~ / ic880a-gateway
$ cd ~ / ic880a-gateway
$ sudo ./install.sh spi
- На этапе установки вас спросят, хотите ли вы включить удаленную конфигурацию. Введите «y» или «да» и продолжите установку. В начале установки из командной строки сценарий покажет вам EUI шлюза, который важен для следующих шагов. ЗАПОМНИТЕ ЭТО!
- Если вы хотите использовать опцию удаленной конфигурации, убедитесь, что вы создали файл JSON с именем EUI вашего шлюза (например, B827EBFFFE7B80CD.json) в репозитории Gateway Remote Config здесь:https://github.com/ttn -zh / шлюз-удаленный-конфиг. Разветвите репо, добавьте файл
.json с правильной конфигурацией, а затем зафиксируйте разветвленное репо. После этого отправьте запрос на перенос в главное репо, и файл должен появиться в репо на следующий день. Пример json показан ниже:
{
«gateway_conf»:{
«gateway_ID»:«идентификатор, указанный в выводе консоли install.sh»,
«серверы»:[
{
«Server_address»:«маршрутизатор, к которому вы хотите подключиться»,
«serv_port_up»:1700,
«serv_port_down»:1700,
«serv_enabled»:true
}
],
«ref_latitude»:широта шлюза rak 831,
«ref_longitude»:длина шлюза rak 831,
«ref_altitude»:40,
«contact_email»:«контактный адрес электронной почты владельца шлюза»,
«описание»:«краткое описание»
}
}
Примечание.
Список допустимых маршрутизаторов см. здесь:https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway
- По умолчанию установщик изменяет имя хоста вашего Raspeberry Pi на ttn-gateway (для предотвращения конфликтов с другими Raspberry Pi в вашей сети). Вы можете переопределить это в режиме настройки без удаленного доступа.
- УРА ваш шлюз должен заработать. Не забудьте перезапустить шлюз на следующий день, чтобы ваш файл json правильно загрузился в RPi3.
- Обратите внимание, что файл global_config.json в необходимо настроить в соответствии с:
https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
для тех, кто хочет использовать mp_pkt_fwd вместо старого пересылки пакетов poly, услышанный здесь, и установить его, следуя предоставленной инструкции:
https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd. Вы снова можете увидеть файл global_conf..json в корне проекта, просто убедитесь, что вы отредактировали файл (разделы imp, описанные ниже), и скопировали его в папку bin после компиляции.
Некоторые настраиваемые объекты в global_conf.json:
Файл global_conf.json можно найти в ./bin/global_conf.json из базы каталога вашего проекта после запуска сценария установки. Вот список некоторых объектов, которые вы, возможно, захотите отредактировать в файле global_conf.json для вашей конкретной конфигурации шлюза:
1) Конфигурация «radio_0» или «radio_1», особенно параметр Frequency и минимальные и максимальные параметры развертки частоты.
2) раздел «gateway_conf». В особенности идентификатор шлюза или EUI вашего шлюза.
3) порт вверх и вниз сервера в том же объекте gateway_conf вместе с адресом вашего TTN-сервера или адресом вашего собственного сервера приложений, если он доступен.
Сброс доски:
Когда мы запускаем raspberry pi, рекомендуется сбросить подключенный модуль lora RAK831. Сделать это можно двумя способами:
- С помощью сценария оболочки:
Можно написать небольшой сценарий оболочки для сброса RAK831 до того, как драйвер LoRa сможет получить доступ к оборудованию. Содержимое сценария оболочки может выглядеть как в следующем примере (который предполагает, что GPIO 17 (контакт 11) Raspberry Pi подключен к контакту сброса RAK831):
#! / bin / bash
echo «17»> / sys / class / gpio / export
echo «out»> / sys / class / gpio / gpio17 / direction
echo «1»> / sys / class / gpio / gpio17 / value
sleep 5
echo «0»> / sys / class / gpio / gpio17 / value
sleep 1
echo «0»> / sys / class / gpio / gpio17 / значение
Эти строки можно сохранить в файле с именем «rak831_reset.sh». Пользователь должен вызывать этот сценарий один раз после каждой загрузки, чтобы привести ИС концентратора в чистое состояние.
- Пи проводки:
Если хост-системой является Raspberry Pi, пользователь может написать небольшой C-Tool для сброса набора RAK831. Для доступа к контактам GPIO Raspberry Pi существует библиотека под названием «wiringPi», которая заботится о деталях низкого уровня. Библиотеку можно загрузить с http://wiringpi.com. Посетите этот сайт, чтобы получить инструкции по установке и использованию. Содержимое файла RAK831_reset.c может выглядеть следующим образом:
#include
#include
#define GPIO_RESET_PIN 0 // видим отображение wiringPi!
int main () {
wiringPiSetup ();
pinMode (GPIO_RESET_PIN, OUTPUT);
digitalWrite (GPIO_RESET_PIN, HIGH);
sleep (5);
digitalWrite (GPIO_RESET_PIN, LOW);
return;
}
Пользователь должен вызывать этот инструмент один раз после каждой загрузки, чтобы привести ИС концентратора в чистое состояние.
gcc -Wall -o blink blink.c -lwiringPi
sudo ./blink
Зарегистрируйте шлюз в сети TTN:
Чтобы заставить ваши узлы отправлять данные в облако, TheThingsNetwork предоставляет облачный сервис для анализа и хранения данных, отправленных узлами lora через lora
Подробнее:начало работы с шлюзом RAK 831 Lora и RPi3
Производственный процесс
- Мониторинг комнатной температуры с Raspberry Pi и Nagios
- Мониторинг комнатной температуры с помощью Moteino’s и Raspberry Pi
- Интеграция данных датчика с микропроцессором Raspberry Pi
- Контроллер умного дома 433 МГц с Sensorflare и RaspberryPi
- Отслеживание лица при панорамировании / наклоне с помощью raspberry pi
- Аэропоника с Raspberry Pi и датчиком влажности
- Использование импульсного радиолокационного датчика A111 с Raspberry Pi
- Начало работы с TJBot
- NanoPi K1 Plus за 35 долларов - это компьютер, похожий на Raspberry Pi, с вдвое большей оперативной памятью (и другим процесс…
- LoRa - Raspberry Pi - одноканальный шлюз - дешево!