Esse aplicativo IOT2050 tem a tarefa de coletar dados descentralizados e transmiti -lo via rádio. A tecnologia LPWAN Long Range (LORA) é usada para esse fim. O IOT2050 serve como um portal de Lorawan. A Lorawan Global Free (rede de área de largura de longo alcance) da rede Coisas ou da edição da Comunidade Stack é usada como servidor de rede. Este manual descreve a estrutura de software e hardware do gateway (a configuração e função dos dispositivos finais (por exemplo, sensores) não é explicada neste manual, porque depende do objetivo individual do aplicativo):

Os seguintes componentes de hardware são necessários para o aplicativo:
Você também pode ver todas as peças individuais na lista de pedidos.
A interface Arduino UNO do IOT2050 SIMATIC é usada para integrar o concentrador IC880A. Um escudo adaptador é necessário para esse fim, que combina as atribuições de pinos. O concentrador é fornecido com 5V.
O escudo adaptador usado neste aplicativo foi construído. Os componentes necessários podem ser retirados da lista de pedidos. Informações adicionais sobre a estrutura podem ser encontradas no arquivo do projeto (.pro), no arquivo esquemático (.sch) e no arquivo de layout (.kicad_pcb).
O Lorawan Concentrator IC880A é um módulo de transmissor/receptor de alto desempenho multicanal projetado para receber vários pacotes LORA simultaneamente usando diferentes fatores de espalhamento em vários canais. O módulo concentrador IC880A pode ser integrado a um gateway como uma extremidade frontal completa da RF deste gateway.
A figura a seguir mostra a estrutura completa do hardware do gateway de Lorawan. Para conectar a antena (2 dBi Dipolo Antenna 863-870MHz com RP SMA) ao módulo IC880A, é usado um U.FL para reverter o adaptador SMA. O concentrador está conectado à interface Arduino UNO do IOT2050 juntamente com o escudo adaptador.

O software a seguir é usado para este manual:
Para o primeiro comissionamento do IOT2050, consulte a configuração. Você pode obter mais ajuda no fórum Simatic IOT2050.
Depois de trabalhar na configuração, uma atualização deve ser executada para o sistema e o Git deve ser instalado. Os seguintes comandos são executados para isso:
sudo apt-get update
sudo apt-get install git
Estabeleça uma conexão SHH via Putty e use os seguintes comandos:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable SPI on IO10-IO13" -> "Enable"
Use ESC to exit the iot2050setup


Para clonar a versão mais recente da estação Lora Basics ™ do GitHub, use os seguintes comandos:
cd /home
git clone https://github.com/lorabasics/basicstation.git
Agora, o arquivo setup.gmk , que faz parte do clone, deve ser adaptado para o IOT2050 armazenar os diretórios corretos para a cadeia de ferramentas. Para fazer isso, abra o arquivo em um editor usando os seguintes comandos:
cd /home/basicstation/
nano setup.gmk
Com a combinação de chave CTRL+C a especificação de linha pode ser mostrada no nano-editor:

As linhas 55 - 66 devem ser comentadas com # e linhas 68 - 72 devem ser alteradas para o seguinte:
CC=/usr/bin/gcc
LD=/usr/bin/ld
AR=/usr/bin/ar
OD=/usr/bin/objdump
OC=/usr/bin/objcopy
Além disso, a linha 76 deve ser editada da seguinte maneira:
export LD_LIBRARY_PATH=/usr/local/lib
Salve e feche o arquivo com os seguintes comandos:
CTRL+X -> to exit editing
Y -> to save the changes
Enter -> to confirm the filename
Para construir a estação do pacote, use o seguinte comando no diretório /home/basicstation/ :
make platform=rpi variant=std
Depois que a estação básica foi compilada, uma nova pasta chamada build-rpi-std com quatro subpastas apareceu. Você pode encontrar a station binária compilada no bin da subpasta.
Salvo indicação em contrário, os seguintes comandos e ações são sempre executados neste diretório ( /home/basicstation/build-rpi-std/bin/ ).
Algumas configurações são necessárias para a estação básica, que são especificadas na station.conf de arquivos.conf. Copie a estação de arquivo pronta.conf no diretório (dica: a ferramenta winscp pode ser usada para transferir os arquivos).
A estação Lora Basics ™ precisa ser fornecida com o LAWAN® Network Server (LNS) para se conectar. Para este exemplo, o servidor de edição da Comunidade Stack com a porta 8887 é usada. Isso é especificado no arquivo tc.uri . Copie o arquivo pronta TC.uri no diretório.
Isso requer um certificado raiz. O comando a seguir pode ser usado para obter um certificado e criar o arquivo tc.trust diretamente:
curl https://letsencrypt.org/certs/isrgrootx1.pem.txt -o tc.trust
Você também pode usar outro certificado raiz, que precisa ser inserido no arquivo tc.trust sem os caracteres <> :
-----BEGIN CERTIFICATE-----
<insert root certificate here>
-----END CERTIFICATE-----
O módulo IC880A com o chip de banda base SX1301 deve ser redefinido toda vez que for ligado. No entanto, esta redefinição não é realizada pela HAL do chip. Portanto, um script python é escrito para realizá -lo externamente. Copie o script python ic880a_reset.py no diretório. Posteriormente, o pino de E/S digital 4 deve ser definido como saída, porque isso é usado como pino de redefinição:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable GPIO" -> Set PIN 4 as output
Use ESC to exit the iot2050setup

O próximo passo é adicionar um script de shell que executa o script python. Este script será posteriormente executado com o início do binário station . Copie o arquivo pronto reset_gw.sh no diretório. Neste script de shell, o script Python criado anteriormente para a redefinição de hardware do concentrador é chamado. O script precisa agora receber direitos executáveis com o seguinte comando:
chmod 755 reset_gw.sh
Para obter a EUI do Gateway para registro no servidor, a station de programa precisa ser iniciada uma vez (a execução ainda não está totalmente funcional):
./station
A EUI do gateway é composta pelo endereço MAC do IOT2050 e é exibida na saída do console após o início da estação:

O aplicativo pode ser interrompido com a combinação de teclas CTRL+C .
Finalmente, para autorizar o gateway com o Things Stack Community Edition, uma chave da API deve ser armazenada em um arquivo chamado tc.key . Para fazer isso, o gateway deve ser registrado no The Things Stack Community Edition. Isso é explicado nas etapas seguintes: Após o login na página da web, a região é selecionada. Depois disso, um novo gateway pode ser adicionado. Para isso, um ID de gateway exclusivo deve ser inserido, bem como o Gateway EUI da figura anterior. Além disso, o plano de frequência para a região é selecionado. Além disso, pode -se selecionar se o status do gateway é visível publicamente. Todas as configurações necessárias são mostradas na figura a seguir:

Depois de registrar o novo gateway, uma chave da API deve ser gerada para autorização. Antes que a chave seja gerada, ela recebe um nome. Além disso, recebe os direitos individuais para vincular como um gateway a um servidor de gateway para troca de dados. Após a criação da chave da API, ela deve ser copiada e armazenada com urgência, porque é criptografada depois e, portanto, não é mais visível.


Use os seguintes comandos para criar o arquivo tc.key e use a tecla API copiada anteriormente em vez de xxx :
export LNS_KEY="xxx"
echo "Authorization: Bearer $LNS_KEY" | perl -p -e 's/rn|n|r/rn/g' > tc.key
Isso completa a instalação e configuração da estação básica. Agora a estação pode ser iniciada manualmente com o comando:
./station
Se a instalação e a autenticação forem bem -sucedidas, a estação inicia e o gateway será exibido como connected no console das coisas que Stack Community Edition:

Você pode receber mais informações no site da Pilha das Coisas - adicionando gateways.
Copie o script de shell pronto Start.sh, que chama o binário station , no diretório. O script deve então receber direitos executáveis:
chmod 755 start.sh
Copie o arquivo de serviço Systemd pronto para o IOT-2050-Lora-gateway.service no diretório /etc/systemd/system . Para mudar para esse diretório, use o seguinte comando:
cd /etc/systemd/system
O arquivo de serviço agora pode ser iniciado manualmente e testado com o seguinte comando:
sudo systemctl start iot2050-lora-gateway.service
Após o início bem -sucedido do serviço e da estação, ele pode ser encerrado com o seguinte comando:
sudo systemctl stop iot2050-lora-gateway.service
Para ativar a AutoStart do serviço, use o comando
sudo systemctl enable iot2050-lora-gateway.service
Após a próxima reinicialização, o gateway será iniciado a cada inicialização.
O gateway agora está pronto para uso. Agora, os dispositivos finais podem ser adicionados ao aplicativo por meio da edição da Comunidade do Stack, que transmitem dados através do gateway para o servidor. Aqui você pode encontrar alguns dispositivos finais possíveis. Como adicionar dispositivos finais no servidor é descrito aqui
O Node-RED é usado para visualizar os dados coletados. O editor da Web é acessível através do endereço IP do IOT2050 e da porta 1880. O Node-Red está no AutoStart por padrão na imagem de exemplo. Para acessá -lo, abra um navegador no seu PC conectado ao IOT2050 e abra o URL http://<IP of the IOT2050>:1880/ .
Agora, o arquivo Flows.json pode ser importado para o Node-Red:
Menu -> Import -> Select file for Upload

Os nós devem ser ajustados da seguinte forma:
MQTT: Insira o endereço do servidor e a porta da pilha das coisas na guia Connection. Para assinar todas as mensagens, defina o tópico como # .

Digite seu nome de usuário e o MQTT-Api-Key como a senha . Você pode gerar essa chave de API nas configurações de integrações do seu aplicativo:



Nó de análise: Na função Parse Node , os diferentes device_id devem ser ajustados (dependendo do aplicativo):

Descrição do fluxo: Para processar as mensagens recebidas, um objeto JavaScript é criado primeiro. Em seguida, os uplinks são analisados no nó de análise da função para extrair as mensagens individuais de cada dispositivo final. Além disso, o nó é estendido a três saídas. Assim, cada mensagem é atribuída a uma saída e significa um dispositivo final. Usando a biblioteca do painel e o nó do medidor, eles podem ser incorporados individualmente em um painel.
O fluxo pré-construção mostra um exemplo da combinação de três dispositivos finais no nó de análise. Os IDs devem ser ajustados, dependendo do aplicativo e da configuração na rede de coisas.
Painel: Para exibir os dados, a paleta de painel agora pode ser instalada e configurada individualmente:
Menu -> Manage Palette -> Install Tab -> Search and install the given libraries
Conclusão: Para baixar o fluxo para o IOT2050, clique no botão Deploy
Para abrir o painel de Node-Red, abra o URL http://<IP of the IOT2050>:1880/ui
Obrigado pelo seu interesse em contribuir. Qualquer pessoa é livre para relatar bugs, documentação pouco clara e outros problemas sobre esse repositório na seção de problemas. Além disso, todo mundo está livre para propor quaisquer alterações neste repositório usando solicitações de puxar.
Se você não assinou anteriormente o Contrato de Licença de Colaborador da Siemens (CLA), o sistema solicitará automaticamente que você faça isso quando enviar sua solicitação de tração. Isso pode ser feito convenientemente através da plataforma on -line do assistente do CLA. Depois que o CLA for assinado, sua solicitação de tração será liberada automaticamente e preparada para a fusão se todos os outros estágios de teste forem bem -sucedidos.
Leia as informações legais.