Introdução ao RAK 831 Lora Gateway e RPi3
Este projeto conduz você por todas as etapas necessárias para que o módulo RAK 831 Lora Gateway esteja pronto e funcionando com wi-fi como backhaul.
História
Introdução
Este guia passo a passo é direcionado a desenvolvedores que desejam desenvolver seu próprio gateway Lora usando o incrível módulo front-end de rádio RAK831 Lora da RAK Wireless. O guia pressupõe conhecimento básico do ecossistema Raspberry pi, o hardware e o sistema operacional Debian associado. O Guia também pressupõe conhecimento básico do GPIO e dos periféricos presentes no Raspberry Pi. Então vamos começar:
O que é LoRA?
LoRa Tecnologia Alliance ™. LoRaWAN ™ é uma especificação de rede de longa distância de baixa potência (LPWAN) destinada a dispositivos operados por bateria sem fio em uma rede regional, nacional ou global. O LoRaWAN atende aos principais requisitos da Internet das Coisas, como comunicação bidirecional segura, mobilidade e serviços de localização.
cortesia Semtech
O diagrama acima mostra as várias partes da arquitetura sem fio Lora. Algumas das partes importantes são explicadas resumidamente a seguir:
Principais recursos da tecnologia LoRa e do protocolo LoRaWAN
· GEOLOCATION:Ativa aplicativos de rastreamento de baixo consumo de energia e sem GPS
· BAIXO CUSTO:Reduz os custos de três maneiras:investimento em infraestrutura, despesas operacionais e sensores de nó final
· PADRONIZADO:A interoperabilidade global aprimorada acelera a adoção e implementação de redes baseadas em LoRaWAN e aplicativos IoT
· BAIXA POTÊNCIA:protocolo projetado especificamente para baixo consumo de energia, estendendo a vida útil da bateria em até 20 anos
· LONG RANGE:Estação base única fornece penetração profunda em densas regiões urbanas / internas, além de conectar áreas rurais a até 30 milhas de distância
· SEGURO:criptografia AES128 integrada de ponta a ponta
· ALTA CAPACIDADE:Suporta milhões de mensagens por estação base, ideal para operadoras de rede pública que atendem a muitos clientes
O RAK 831 é um frontend do LorA Radio; ou seja, ele atua como um receptor de pacotes de dados lora de entrada e os encaminha para um host de software / hardware de gerenciamento de agregador. Ele também pode transmitir pacotes de dados LoRA com base na solicitação de placas host. Em nosso caso, um raspberry pi 3 é a placa host que controla o frontend RAK 831.
Escolha do backhaul
O que é um backhaul? Backhaul refere-se a como o Raspberry Pi será conectado à Internet. Este guia se concentra no uso de Wi-Fi como backhaul, mas você também pode usar Ethernet ou 3G / 4G. Se você tiver Ethernet disponível perto do gateway, prefira-a em vez de WiFi ou 3G / 4G. Isso ocorre porque ter um sinal de rádio adicional dentro do gabinete causará ruído. O software pode lidar com o ambiente barulhento, então não é um grande problema, mas quanto menos barulhento, melhor. Você pode combinar esta escolha com Power-over-Ethernet para minimizar o cabeamento que vai até o gateway.
Por outro lado, se você escolher WiFi em vez de Ethernet, tente usar um dongle com antena externa e mova a antena para fora do gabinete para ter menos ruído dentro da caixa.
Configure o hardware:
Antes de conectar qualquer coisa e ligar, vamos fazer as seguintes configurações no raspberry pi e no módulo RAK 831:
RASPBERRY PI
1) Pegue a placa raspberry pi 3 e um cartão micro SD de 8 gb pronto com o software raspbian. Você pode até comprar um cartão SD noobs com o software pré-carregado. Para saber como fazer o flash do sistema operacional no cartão SD, siga as instruções aqui:https://www.raspberrypi.org/learning/hardware-guide/
2) Conecte o raspberry pi a uma fonte de alimentação 5v 2 ampères. ISTO É MUITO IMPORTANTE. O módulo lora pode obter um pico de 700 mA durante as transações sem fio ativas e, portanto, ter um bom bloco de energia para alimentar o pi de framboesa
raspberry pi v3
RAK 831:
1) Antes mesmo de ligar a placa, pegue as antenas que vieram em seu kit e conecte-as ao terminal de parafuso da antena. ISTO É ESSENCIAL.
Raspberry Pi v3, módulo RAK 831 e um nó Lora
Detalhes da conexão:
Aqui está uma tabela que mostra como conectar o módulo rak831 com o raspberry pi:
conexão rpi v3 para rak 831 pin O rak 831 silk screen mapeia para rak 831 pins.
rak 831 silk screen mapa para rak 831 pins
Para entender o layout do pino Raspberry Pi, acesse:https://www.raspberrypi.org/documentation/usage/gpio/ para obter detalhes
Observações:
- O pino de reinicialização pode ser conectado a qualquer GPIO no raspberry pi 3.
- É essencial ter certeza de conectar os pinos da fonte de alimentação corretamente para evitar danos à placa RAK 831.
Ativar SPI:
O periférico SPI não é ativado por padrão. Para habilitá-lo, faça o seguinte.
- Execute sudo raspi-config.
- Use a seta para baixo para selecionar 9 opções avançadas
- Seta para baixo para A6 SPI.
- Selecione sim quando for solicitado que você ative o SPI ,
- Selecione também sim quando for perguntado sobre o carregamento automático do módulo do kernel.
- Use a seta para a direita para selecionar o botão
.
- Selecione sim quando solicitar a reinicialização.
Raspi-config para SPI
O sistema será reinicializado. Quando ele voltar, faça login e digite o seguinte comando
> ls / dev / * spi *
O Pi deve responder com
/dev/spidev0.0 /dev/spidev0.1
Eles representam os dispositivos SPI nos pinos 0 e 1 de ativação do chip, respectivamente. Esses pinos são conectados dentro do Pi. Normalmente, isso significa que a interface suporta no máximo dois periféricos, mas há casos em que vários dispositivos podem ser encadeados, compartilhando um único sinal de habilitação de chip.
Fornecer energia para a placa:
Como acontece com qualquer projeto sem fio, eles tendem a exigir mais energia do que a placa host pode fornecer por meio dos pinos de alimentação. Os dois esquemas abaixo enumeram como você pode alimentar o RAK 831 e o raspberry pi 3.
1) Alimente o trilho de 5v do Raspberry Pi
2) Alimente o trilho de 5 V no Raspberry Pi e no RAK831 separadamente
Instalação do software:
No Raspberry pi vamos seguir os seguintes passos para instalar o software essencial:
- Ative o SPI:
Use o utilitário raspi-config para habilitar SPI ([5] Opções de interface -> P4 SPI) e também expandir o sistema de arquivos ([7] Opções avançadas -> A1 Expandir sistema de arquivos):
$ sudo raspi-config
- Certifique-se de que o git esteja instalado
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install git
- Gerenciar sua conexão wi-fi no Raspberry Pi
- Configure as credenciais de wi-fi (verifique aqui para obter detalhes adicionais)
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
E adicione o seguinte bloco no final do arquivo, substituindo o SSID e a senha para corresponder à sua rede:
rede ={
ssid =“The_SSID_of_your_wifi”
psk =“Your_wifi_password”
}
- Clone o instalador e inicie a instalação
$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~ / ic880a-gateway
$ cd ~ / ic880a-gateway
$ sudo ./install.sh spi
- A etapa de instalação perguntará se você deseja habilitar a configuração remota. Digite 'y' ou 'sim' e continue com a instalação. No início da instalação da linha de comando, o script mostraria o gateway EUI que é importante para as próximas etapas. ANOTE!
- Se desejar usar a opção de configuração remota, certifique-se de ter criado um arquivo JSON denominado como seu gateway EUI (por exemplo, B827EBFFFE7B80CD.json) no repositório do Gateway Remote Config aqui:https://github.com/ttn -zh / gateway-remote-config. Bifurque o repo, adicione seu arquivo
.json com a configuração apropriada e, em seguida, comprometa o repo bifurcado. Uma vez feito isso, envie uma solicitação pull para o repo master e o arquivo deve aparecer no repo no dia seguinte. Um exemplo de json é mostrado abaixo:
{
“gateway_conf”:{
“gateway_ID”:“o id conforme anotado na saída do console install.sh”,
“servidores”:[
{
“Server_address”:“o roteador ao qual você deseja se conectar”,
“serv_port_up”:1700,
“serv_port_down”:1700,
“serv_enabled”:true
}
],
“ref_latitude”:o lat do gateway rak 831,
“ref_longitude”:o comprimento do gateway rak 831,
“ref_altitude”:40,
“contact_email”:“email de contato do proprietário do gateway”,
“descrição”:“uma breve descrição”
}
}
Observação:
Para obter uma lista de roteadores válidos, verifique o link aqui:https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway
- Por padrão, o instalador altera o nome do host do seu Raspeberry Pi para ttn-gateway (para evitar colisões com outros Raspberry Pis na sua rede). Você pode substituir isso no modo de configuração não remoto.
- HURRAY seu gateway deve funcionar agora. Certifique-se de reiniciar o gateway no dia seguinte para que seu arquivo json seja baixado corretamente para o RPi3.
- Observe que global_config.json em precisa ser ajustado de acordo com:
https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
para aqueles que desejam usar o mp_pkt_fwd em vez do antigo encaminhador de pacote poli ouvido aqui e instale o mesmo com a instrução fornecida:
https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd. Novamente você pode ver o arquivo global_conf..json na raiz do projeto, apenas certifique-se de editar o arquivo (seções imp descritas abaixo) e copiar o mesmo para a pasta bin após a compilação.
Algumas entidades configuráveis no global_conf.json:
O arquivo global_conf.json pode ser encontrado em ./bin/global_conf.json na base do diretório do seu projeto após a execução do script de instalação. Aqui está uma lista de algumas entidades que você pode querer editar no arquivo global_conf.json para sua configuração de gateway particular:
1) Configuração “radio_0” ou “radio_1”, especialmente o parâmetro Frequency e os parâmetros de varredura de frequência mínima e máxima.
2) seção “gateway_conf”., Especialmente o ID do gateway ou o EUI do seu gateway.
3) porta de ativação e desativação do servidor no mesmo objeto gateway_conf junto com o endereço do servidor TTN do endereço do seu próprio servidor de aplicativos, se estiver disponível.
Reinicialização do tabuleiro:
Sempre que iniciamos o raspberry pi, é uma boa prática reiniciar o módulo RAK831 lora anexado. Existem duas maneiras de fazer isso:
- Via script Shell:
Um pequeno script de shell pode ser escrito para redefinir o RAK831 antes que o driver LoRa possa acessar o hardware. O conteúdo do script de shell pode ser semelhante ao seguinte exemplo (que assume que o GPIO 17 (pino 11) do Raspberry Pi está conectado ao pino de reinicialização do RAK831):
#! / bin / bash
echo “17”> / sys / class / gpio / export
echo “out”> / sys / class / gpio / gpio17 / direção
echo “1”> / sys / class / gpio / gpio17 / value
sleep 5
echo “0”> / sys / class / gpio / gpio17 / value
sleep 1
echo “0”> / sys / class / gpio / gpio17 / valor
Essas linhas podem ser armazenadas em um arquivo chamado “rak831_reset.sh”. O usuário deve chamar este script uma vez após cada inicialização para colocar o IC concentrador em um estado limpo.
- Via fiação pi:
Se o sistema host for um Raspberry Pi, o usuário pode escrever um pequeno C-Tool para redefinir o conjunto RAK831. Para acessar os pinos GPIO do Raspberry Pi existe uma biblioteca chamada “wiringPi” que cuida dos detalhes de baixo nível. A biblioteca pode ser baixada em http://wiringpi.com. Consulte este site para obter instruções de instalação e uso. O conteúdo do arquivo RAK831_reset.c pode ser semelhante ao seguinte: O usuário deve chamar esta ferramenta uma vez após cada inicialização para colocar o IC concentrador em um estado limpo. Para fazer com que seus nós enviem dados para a nuvem, TheThingsNetwork fornece um serviço de nuvem para analisar e armazenar os dados enviados por nós lora por meio de um lora
#include
#include
#define GPIO_RESET_PIN 0 // veja mapeamento wiringPi!
int main () {
wiringPiSetup ();
pinMode (GPIO_RESET_PIN, OUTPUT);
digitalWrite (GPIO_RESET_PIN, HIGH);
sleep (5);
digitalWrite (GPIO_RESET_PIN, LOW);
retornar;
}
gcc -Wall -o blink blink.c -lwiringPi
sudo ./blink
Registre o gateway para a rede TTN:
Leia mais detalhes:Introdução ao RAK 831 Lora Gateway e RPi3
Processo de manufatura
- Monitoramento da temperatura ambiente com Raspberry Pi e Nagios
- Monitoramento da temperatura ambiente com Moteino e Raspberry Pi
- A integração dos dados do sensor com o microprocessador Raspberry Pi
- Controlador Smart Home de 433 MHz com Sensorflare e RaspberryPi
- Acompanhamento de rotação horizontal / vertical com o pi de framboesa
- Aeroponia com Raspberry Pi e sensor de umidade
- Usando o sensor de radar pulsado A111 com um Raspberry Pi
- Introdução ao TJBot
- $ 35 NanoPi K1 Plus é um computador semelhante ao Raspberry Pi com duas vezes a RAM (e uma CPU diferente)
- LoRa - Raspberry Pi - Gateway de canal único - Barato!