Ocorreu -me essa alternativa para proteger o acesso à Praça da Garagem da Comunidade sem precisar instalar separações físicas. Trata -se de tornar visível uma barreira virtual que detecta e notifica intrusões.
Nesta primeira iteração, o dispositivo possui apenas um sensor de luz para detectar a interrupção de um feixe de laser para alertar a passagem de uma pessoa. Mais tarde, poderíamos incluir outros movimentos, como um PIR (sensor infravermelho passivo). Ou a conexão é um sistema de gravação de imagem, por exemplo.

O sensor é baseado em um LED a laser e em uma foto-resistência que lê uma porta de conversão analógica/digital. O programa ajusta os níveis de luz limite quando a placa inicia. Portanto, se a luz estiver bloqueada, o processo de aviso acústico e a mensagem de alerta da LORA serão acionados.
A parte do bastão é suportada pelas redes da coisa (também conhecida como TTN) e IFTTT. As informações são finalmente processadas nos fluxos de um programa no Node-Rred que é executado em um contêiner do Docker em um Raspberry Pi 3b+ com o sistema operacional Raspbian. A foto desta arquitetura seria a seguinte: 
Demonstração do processo completo: detecção e notificação:



Usaremos os serviços TTN que enroscarão a mensagem do gateway de que o pacote de dados para o endpoint que consumirá o aplicativo que toma medidas com as informações contidas na plotagem fornecem dados.
Este dispositivo é do tipo ABP (ativação por personalização), o que significa que ele será identificado na rede com um retorno e uma sessão de chave pré-configurada. Para isso, temos que concluir o registro de um aplicativo e um dispositivo. Estas são as etapas a seguir:
Dispositivos como esse sensor se comunicam com o aplicativo em que foram registrados. Para você registrar um dispositivo, você deve primeiro adicionar um aplicativo.

No console, selecione Aplicativo e clique em Adicionar aplicativo na tela a seguir.
Agora, seremos redirecionados para a página com o novo aplicativo adicionado, onde você pode encontrar o aplicativo EUI e as teclas de acesso geradas. 

No TTN, um dispositivo (Devide) representa a configuração do que também chama de nó (nó) que é o nosso circuito. Ao acessar o formulário de registro, precisamos apenas preencher o ID do dispositivo que será o nome exclusivo deste nó. É preferível pressionar o ícone marcado na imagem para que o dispositivo EUI seja gerado automaticamente.

Por fim, pressionaremos o registro e pressionaremos o ícone com o nome do nosso novo dispositivo para ver seus dados de configuração. Aqui, encontraremos os parâmetros que precisamos ser um dispositivo do tipo ABP. E que teremos que mudar para o arquivo de configuração do Configuração.h que será carregado no esboço do Arduino IDE. Mas o formato para chaves é diferente. Você encontrará uma planilha do Excel (Encode_EUI.XLSX) que facilitará esta tarefa.
// TTN Configuration
// LoRaWAN NwkSKey, network session key provided by TTN Console (https://console.thethingsnetwork.org) in Device settings form:
static const PROGMEM u1_t NWKSKEY[16] = {0x8F,0xDA,......};
// LoRaWAN AppSKey, application session key provided by TTN Console (https://console.thethingsnetwork.org) in Device settings form:
static const u1_t PROGMEM APPSKEY[16] = {0xE5,0x0A,......};
// LoRaWAN end-device address (DevAddr)
static const u4_t DEVADDR = 0x12345678 ; // <-- Change this address for every node!
// Other params
const int update_time_alive = 150000;
const int PhotoCell = 2;
const int Buzzer = 15;

Teremos que retornar à tela do aplicativo Overbiew para fazer uma última configuração. Pressionando na guia Formatos de carga útil, acessamos o formulário em que um script pode decodificar o gráfico de dados da nossa mensagem LORA. No nosso caso, este é o formato:

A arquitetura escolhida para as costas e a frente é projetada para ter custos operacionais mínimos e escaláveis. O uso de contêineres nos permitirá adicionar novos dispositivos (nós TTN) rapidamente com seu próprio nó de painel -RESD executado no mesmo servidor.
O servidor usado tem sido um Raspberry Pi 3b+. Atualmente, não é o modelo mais poderoso, mas suficiente, para executar vários recipientes. As tarefas iniciais de configuração para instalar o sistema operacional Raspbian e o MySQL podem ser facilmente encontradas e padrão. Docker e contêineres Red Node com todos os acessórios necessários para que o fluxo completo possa ser executado. Eu os descrevo abaixo.
Para essas configurações, baseei no documento: a maneira mais fácil de configurar o Docker em um Raspberry Pi. Aqui eu resumo as etapas a seguir:
sudo groupadd docker
sudo gpasswd -a $USER docker newgrp docker
docker run hello-world
docker run -d -it -p 1881:1880 --name domohome-garage nodered/node-red
O aplicativo nó -Rred não inclui por padrão os nós que precisamos integrar ao TTN, com MySQL ou para mostrar uma interface de usuário, o painel . Em princípio, tudo pode ser instalado a partir da opção Gerenciar paleta do aplicativo de administração que devemos acessar no endereço de tipo: http: //192.168.1. ????: 1881
Nós do painel
Instalação padrão. Procurando o módulo ¨Node-Red-Dashboardë na instalação da opção Gerenciar o menu da paleta do aplicativo.
Integração com nós TTN
Precisamos acessar o contêiner com uma sessão SSH mais informações aqui
docker exec -it domohome-garage /bin/bash
Agora instalaremos os nós com o NPM Package Manager:
npm install node-red-contrib-ttn
Nós MySQL
Da sessão anterior do SSH, executamos:
npm install node-red-node-mysql
Para expandir informações sobre o uso e exemplos, o site da TTN possui esta página: https://www.thethingsnetwork.org/docs/applications/nodered/

No fluxo de Node-Rred, as mensagens fornecidas pelo serviço TTN são tratadas e mostradas graficamente. A carga útil da mensagem contém dois valores diferentes: ¨Alert "quando o feixe de laser é interrompido e" Alive "a cada 10 minutos. Além disso, uma lógica é incluída para mostrar um estado de não disponível quando, em 11 minutos, nenhuma mensagem chegou.
Para importar o fluxo, devemos acessar o aplicativo Node-RED que rasgamos no docker em uma direção do tipo http: //192.168.1. ????: 1881. Encontraremos a opção de importação pressionando o botão Menu do tipo hambúrguer. O mais fácil é copiar para a equipe da equipe o conteúdo do arquivo Garage-Cerberus_Flows.json e colá-lo na tela: 
Depois de pressionar o botão "Importar", você terá a visão dos nós e fluxos. Mas há três deles que não estão configurados corretamente.
Abra as propriedades do ttn Domehome_sensor_garage Uplink Node e procure nomes e a chave no console TTN de acordo com as seguintes correspondências: 


A integração com ifttt (se for isso) é montada com uma chamada simples para o seu endpoint REST usando o nó do tipo de solicitação HTTP com o seguinte formato.
https://maker.ifttt.com/trigger/domohome_garage_intruder/with/key/???????????

Devemos coletar todas as informações na cadeia de conexão com nosso BBDD MySQL externo ao servidor RPI. Usuário, senha, porta, host ... e preencha a configuração do banco de dados do MySQL Node.

O resultado final é uma tela responsiva, onde somos mostrados o último evento, o histórico e a possibilidade de desativar os avisos. Acenderemos o mesmo URL que a administração, mas com o sufixo/UI: http://192.168.1.???:1881/ui
https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html