Эта установка используется для некоторых концентраторов Lorawan на основе небольших компьютеров, таких как Raspberry Pi или других. Например, он отлично работает с щитом RAK831 PI Zero
И для ic880a sield для Raspberry Pi V2 или V3.
Загрузите изображение Raspbian Lite и проведите его на SD -карту с помощью Etcher.
После прошивки вам нужно внести некоторые изменения в загрузочный раздел (пользователи Windows, удалить и затем заменить SD -карту)
Создайте фиктивный файл ssh в этом разделе. По умолчанию SSH теперь отключен, так что это необходимо для его включения. Пользователи Windows, убедитесь, что в вашем файле нет расширения, как .txt и т. Д.
Если вам нужно иметь возможность использовать OTG (консоль доступа к любому компьютеру, конфигурируя PI в компьютер USB -порт), открыть файл cmdline.txt . Будьте осторожны с этим файлом, он очень разборчив с его форматированием! Каждый параметр отделен одним пространством (он не использует новые линии). Вставьте modules-load=dwc2,g_ether после rootwait quiet .
Новый файл cmdline.txt должен выглядеть так
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=37665771-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet modules-load=dwc2,g_ether init=/usr/lib/raspi-config/init_resize.sh
Для OTG добавьте также нижнюю часть файла config.txt в новой строке
dtoverlay=dwc2
И так как мне не нравится функция SD Auto Resize (я предпочитаю делать это вручную из raspi-config ), удалить также из файла cmdline.txt auto reshize, удалив следующее
init=/usr/lib/raspi-config/init_resize.sh
Новый файл cmdline.txt должен выглядеть так
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=37665771-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet modules-load=dwc2,g_ether
Наконец, в том же разделе (загрузка), чтобы позволить вашему PI подключаться к вашему WiFi после первой загрузки, создайте файл с именем wpa_supplicant.conf , чтобы PI подключался в вашей сети WiFi.
country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YOUR-WIFI-SSID"
psk="YOUR-WIFI-PASSWORD"
}
Конечно, изменить страну, SSID и PSK с вашими собственными настройками Wi -Fi.
Вот и все, выбросите SD -карту с вашего компьютера, поместите ее в свой малиновый Pi Zero. Для загрузки займет до 90 -х (короче на последующих ботинках). Затем вы можете SSH, используя raspberrypi.local в качестве адреса. Если Wi -Fi не работает, подключите его через USB к вашему компьютеру, он должен появиться как устройство USB Ethernet.
Помните, что логин по умолчанию/Paswword (SSH или последовательная консоль) - PI/Raspberry.
Поэтому, пожалуйста , по соображениям безопасности, вы должны изменить этот пароль по умолчанию
passwd Этот скрипт 1_PI_CONFIG.SH подготовит вашу среду PI, создаст и настраивает пользователя LORAGW, добавит доступ к SPI, I2C, UART. Это уменьшит видео память до 16 МБ, чтобы разрешить максимальную память для материала для материала. Это также включает превосходное сохранение SD -карты Log2ram.
wget https://raw.githubusercontent.com/ch2i/LoraGW-Setup/master/1_Pi_Config.sh
chmod ug+x 1_Pi_Config.sh
sudo ./1_Pi_Config.sh Войдите обратно с пользователем loragw , и если вы изменили имя хоста на Loragw-xxyy, используйте эту команду
git clone https://github.com/ch2i/LoraGW-Setup
cd LoraGW-Setup
Теперь вам нужно зарегистрировать свой новый GW на TTN до следующего шага, см. Регистрацию Gateway, GW_ID и GW_KEY будут спросить сценарием
sudo ./2_Setup.shВот и все, если вы используете Pi Zero Shield, 2 светодиода должны быть зелеными, и вы сможете увидеть свои совершенно новые шлюзы на TTN
Проверьте, все в порядке также при запуске, перезагрузите ворота.
sudo reboot
Драйвер WS2812B Используйте канал DMA, а с новой Raspbian версией, используя DMA 5, повредит вашу SD -карту. Смотрите эту проблему. Теперь он решен, но если у вас есть старый GW со старыми сценариями, обязательно обновите линию Script /opt/loragw/monitor_ws2812.py от
strip = Adafruit_NeoPixel ( 2 , gpio_led , 800000 , 5 , False , 64 , 0 , ws . WS2811_STRIP_GRB )к (используя 10 -й канал 10 вместо 5)
strip = Adafruit_NeoPixel ( 2 , gpio_led , 800000 , 10 , False , 64 , 0 , ws . WS2811_STRIP_GRB ) - GPIO 4 (Blue) Blink => Internet access OK
- GPIO 18 (Yellow) Blink => local web server up & running
- GPIO 24 (Green)
- Blink => packet forwarder is running
- Fixed => Shutdown OK, can remove power
- GPIO 23 (Red)
- Blink every second, one of the previous service down (local web, internet, )
- Middle bink on every bad LoRaWAN packet received
- Lot of short blink => Activity on SD Card (seen a boot for example)
Вы можете изменить поведение светодиодного кода в конце Script /opt/loragw/monitor.py
Вы можете нажать (и пусть он нажал) кнопку переключателя, светодиоды хорошо становятся красными и после 2S начинают мигать синим. Если вы отпустите кнопку, когда они мигают синим, PI инициирует выключение. Так что дайте ему 30 -е годы перед удалением энергии.
Если у вас есть Raspberry Pi 3 с этим щитом IC880A, то файл /boot/config.txt был улучшен с помощью следующих строк:
# When system if Halted/OFF Light Green LED
dtoverlay=gpio-poweroff,gpiopin=24
Зеленый светодиод (GPIO24) останется, когда вы сможете удалить мощность шлюза. Это действительно отличный индикатор.
Вы также можете выбрать, какой светодиод GPIO используется для замены светодиода активности, если он вам нужен.
# Activity LED
dtoverlay=pi3-act-led,gpio=23
Красный светодиод (GPIO23) будет мигать на активности.
Если у вас есть Raspberry Pi Zero с этим RAK831, то вы можете изменить файл /boot/config.txt , чтобы выбрать одну из двух следующих функций:
# When system is Halted/OFF Light Green LED
dtoverlay=gpio-poweroff,gpiopin=26
Зеленый светодиод (GPIO26) останется, когда вы сможете удалить мощность шлюза. Это действительно отличный индикатор.
Вы также можете выбрать выберите этот светодиод, чтобы заменить светодиод активности, если вам это нужно.
# Activity LED
dtparam=act_led_gpio=26
Greend Led (GPIO26) будет мигать на активности.
Вы можете выбрать только один из 2 вариантов, а не оба одновременно.
Установленная SOFWARE находится на /opt/loragw , я изменил это имя (оригинал был TTN-Gateway) только потому, что не все мои шлюзы подключены к TTN, поэтому я хотел иметь более общую установку.
ls -al /opt/loragw/
total 344
drwxr-xr-x 3 root root 4096 Jan 21 03:15 .
drwxr-xr-x 5 root root 4096 Jan 21 01:01 ..
drwxr-xr-x 9 root root 4096 Jan 21 01:03 dev
-rw-r--r-- 1 root root 6568 Jan 21 01:15 global_conf.json
-rwxr-xr-- 1 root root 3974 Jan 21 01:15 monitor-gpio.py
-rwxr-xr-- 1 root root 3508 Jan 21 03:15 monitor.py
-rwxr-xr-- 1 root root 4327 Jan 21 01:15 monitor-ws2812.py
-rwxr-xr-x 1 root root 307680 Jan 21 01:14 mp_pkt_fwd
-rwxr-xr-- 1 root root 642 Jan 21 01:36 start.shФункции светодиодного мигания и кнопок выполняются с помощью службы мониторинга.py (запускается SystemD в Startup). Существует 2 версии этой услуги (с Symlink), одна с светодиодом WS2812B, а другая для классического светодиода GPIO, такого как на этом щите IC880A. Так что, если вы хотите изменить, вы можете сделать это так
sudo systemctl stop monitorВ этом случае у вас нет WS2812B RGB, приведенного на щите, но GPIO Classic One. Кнопка GPIO для выключения PI также не находится на одном GPIO, поэтому вам необходимо настроить правильную службу монитора.
sudo rm /opt/loragw/monitor.py
sudo ln -s /opt/loragw/monitor-gpio.py /opt/loragw/monitor.pysudo systemctl start monitorsudo journalctl -f -u loragw -- Logs begin at Sun 2018-01-21 14:57:08 CET. --
Jan 22 01:00:41 loragw loragw[240]: ### GPS IS DISABLED!
Jan 22 01:00:41 loragw loragw[240]: ### [PERFORMANCE] ###
Jan 22 01:00:41 loragw loragw[240]: # Upstream radio packet quality: 100.00%.
Jan 22 01:00:41 loragw loragw[240]: # Semtech status report send.
Jan 22 01:00:41 loragw loragw[240]: ##### END #####
Jan 22 01:00:41 loragw loragw[240]: 01:00:41 INFO: [TTN] bridge.eu.thethings.network RTT 52
Jan 22 01:00:41 loragw loragw[240]: 01:00:41 INFO: [TTN] send status success for bridge.eu.thethings.network
Jan 22 01:00:53 loragw loragw[240]: 01:00:53 INFO: Disabling GPS mode for concentrator's counter...
Jan 22 01:00:53 loragw loragw[240]: 01:00:53 INFO: host/sx1301 time offset=(1516578208s:159048µs) - drift=-55µs
Jan 22 01:00:53 loragw loragw[240]: 01:00:53 INFO: Enabling GPS mode for concentrator's counter.
Jan 22 01:01:11 loragw loragw[240]: ##### 2018-01-22 00:01:11 GMT #####
Jan 22 01:01:11 loragw loragw[240]: ### [UPSTREAM] ###
Jan 22 01:01:11 loragw loragw[240]: # RF packets received by concentrator: 0
Jan 22 01:01:11 loragw loragw[240]: # CRC_OK: 0.00%, CRC_FAIL: 0.00%, NO_CRC: 0.00%
Jan 22 01:01:11 loragw loragw[240]: # RF packets forwarded: 0 (0 bytes)
Jan 22 01:01:11 loragw loragw[240]: # PUSH_DATA datagrams sent: 0 (0 bytes)
Jan 22 01:01:11 loragw loragw[240]: # PUSH_DATA acknowledged: 0.00%
Jan 22 01:01:11 loragw loragw[240]: ### [DOWNSTREAM] ###
Jan 22 01:01:11 loragw loragw[240]: # PULL_DATA sent: 0 (0.00% acknowledged)
Jan 22 01:01:11 loragw loragw[240]: # PULL_RESP(onse) datagrams received: 0 (0 bytes)
Jan 22 01:01:11 loragw loragw[240]: # RF packets sent to concentrator: 0 (0 bytes)
Jan 22 01:01:11 loragw loragw[240]: # TX errors: 0
Jan 22 01:01:11 loragw loragw[240]: ### BEACON IS DISABLED!
Jan 22 01:01:11 loragw loragw[240]: ### [JIT] ###
Jan 22 01:01:11 loragw loragw[240]: # INFO: JIT queue contains 0 packets.
Jan 22 01:01:11 loragw loragw[240]: # INFO: JIT queue contains 0 beacons.
Jan 22 01:01:11 loragw loragw[240]: ### GPS IS DISABLED!
Jan 22 01:01:11 loragw loragw[240]: ### [PERFORMANCE] ###
Jan 22 01:01:11 loragw loragw[240]: # Upstream radio packet quality: 0.00%.
Jan 22 01:01:11 loragw loragw[240]: # Semtech status report send.
Jan 22 01:01:11 loragw loragw[240]: ##### END #####
Jan 22 01:01:11 loragw loragw[240]: 01:01:11 INFO: [TTN] bridge.eu.thethings.network RTT 53
Jan 22 01:01:11 loragw loragw[240]: 01:01:11 INFO: [TTN] send status success for bridge.eu.thethings.network
Сначала постройте это
./build_legacy.sh
Если вы хотите использовать Legacy Packet Foarder, вам нужно изменить файл /opt/loragw/start.sh start.sh, чтобы заменить последнюю строку
./mp_pkt_fwd.sh
к
./poly_pkt_fwd.sh
sudo systemctl stop loragw
sudo systemctl start loragwЕсли вы выбрали Log2ram для сокращения записи SD -карты, вам необходимо изменить северное разъяснение файлов журнала, чтобы избежать заполнения диска ОЗУ.
Для этого вам нужно отредактировать каждый файл в /etc/logrotate.d/ и в каждом файле:
delaycompress , это избегает несправедливого старого журнала)rotate n , вращается 12 (это история файла журнала Max)daily по hourly (повернуть журнал каждый час)monthly ( daily (roge log каждый день)В этом случае мы получили последние 12 часов с 1 файлом в час. Конечно, вы можете настроить эти параметры на ноги, которые вам нужны, это просто пример,
file /etc/logrotate.d/rsyslog
/var/log/syslog
{
rotate 12
hourly
missingok
notifempty
compress
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
rotate 12
hourly
missingok
notifempty
compress
sharedscripts
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
Нажмите на изображение, чтобы посмотреть видео
Вот другая функция, которую я использую когда -нибудь на своих шлюзах: