Il m'est venu à l'esprit cette alternative pour protéger l'accès au carré de garage communautaire sans avoir à installer des séparations physiques. Il s'agit de rendre visible une barrière virtuelle qui détecte et avertit les intrusions.
Dans cette première itération, l'appareil n'a qu'un capteur de lumière pour détecter l'interruption d'un faisceau laser afin d'avertir le passage d'une personne. Plus tard, nous pourrions inclure d'autres mouvements tels qu'un PIR (capteur infrarouge passif). Ou la connexion est un système d'enregistrement d'image, par exemple.

Le capteur est basé sur une LED laser et une séance photo qui lit un port de conversion analogique / numérique. Le programme ajuste les niveaux de lumière seuil lorsque la plaque démarre. Donc, si la lumière est bloquée, le processus d'alerte acoustique et le message d'alerte par LORA sont déclenchés.
La partie Backffice est prise en charge par la chose Networs (aka TTN) et IFTTT. Les informations sont finalement traitées dans les flux d'un programme dans Node-Rred qui s'exécute dans un conteneur Docker sur un Raspberry Pi 3B + avec le système d'exploitation Raspbian. La photo de cette architecture serait la suivante: 
Démonstration du processus complet: détection et notification:



Nous allons utiliser les services TTN qui enrutarra le message de la passerelle que le package de données au point final qui consommera l'application qui prend des mesures avec les informations contenues dans le tracé donne des données.
Cet appareil est du type ABP (activation par personne), ce qui signifie qu'il sera identifié sur le réseau avec un retour et une session de clé préconfigurée. Pour cela, nous devons terminer l'enregistrement d'une demande et d'un appareil. Ce sont les étapes à suivre:
Des appareils tels que ce capteur communiquent avec l'application dans laquelle ils ont été enregistrés. Pour vous enregistrer un appareil, vous devez d'abord ajouter une application.

Dans la console, sélectionnez l'application et cliquez sur Ajouter l'application sur l'écran suivant.
Maintenant, nous serons redirigés vers la page avec la nouvelle application ajoutée où vous pouvez trouver l' application EUI et les clés d'accès générées. 

Dans TTN, un périphérique (Devid) représente la configuration de ce qui appelle également le nœud (nœud) qui est finalement notre circuit. Lorsque vous accédez au formulaire d'enregistrement, nous n'avons qu'à remplir l' ID de périphérique qui sera le nom unique de ce nœud. Il est préférable d'appuyer sur l'icône marquée dans l'image afin que le périphérique EUI soit généré automatiquement.

Enfin, nous appuyerons sur Registre et appuyerons sur l'icône avec le nom de notre nouvel appareil pour voir vos données de configuration. Ici, nous trouverons les paramètres dont nous avons besoin pour être un appareil de type ABP. Et que nous devrons passer au fichier de configuration Settings.H qui sera chargé dans l' esquisse de l'ide Arduino. Mais le format pour les clés est différent. Vous trouverez une feuille Excel (encode_eui.xlsx) qui facilitera cette tâche.
// 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;

Nous devrons revenir à l'écran Overbiew de l'application pour effectuer une dernière configuration. En appuyant sur l'onglet Formats de charge utile , nous accédons au formulaire où un script est autorisé à décoder le tracé de données de notre message LORA. Dans notre cas, c'est le format:

L'architecture choisie pour l'arrière et l'avant est conçue pour avoir des coûts d'exploitation minimaux et évolutifs. L'utilisation de conteneurs nous permettra d'ajouter rapidement de nouveaux périphériques (nœuds TTN) avec son propre nœud de tableau de bord -Red exécuté sur le même serveur.
Le serveur utilisé a été un Raspberry Pi 3B +. Ce n'est actuellement pas le modèle le plus puissant mais suffisant pour exécuter plusieurs conteneurs. Tâches de configuration initiales pour installer le système d'exploitation Raspbian, et MySQL peut être facilement trouvé et standard. Conteneurs Docker et Node-Red avec tous leurs accessoires nécessaires afin que le flux complet puisse être exécuté. Je les décris ci-dessous.
Pour ces configurations, j'ai basé sur le document: le moyen facile de configurer Docker sur un Raspberry Pi. Ici, je résume les étapes à suivre:
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
L'application Node -red n'inclut pas par défaut les nœuds dont nous aurons besoin pour intégrer avec TTN, avec MySQL ou pour afficher une interface utilisateur, le tableau de bord . En principe, tout pourrait être installé à partir de l'option Gérer la palette de l'application d'administration auquel nous devons accéder dans l'adresse de type: http: //192.168.1. ????: 1881
Nœuds de tableau de bord
Installation standard. À la recherche du module ¨Node-red-dashboard¨ dans l'installation à partir de l'option de menu Gérer la palette de l'application.
Intégration avec les nœuds TTN
Nous devrons accéder au conteneur avec une session SSH plus d'informations ici
docker exec -it domohome-garage /bin/bash
Nous allons maintenant installer les nœuds avec le gestionnaire de packages NPM:
npm install node-red-contrib-ttn
Nœuds mysql
De la session SSH précédente, nous exécutons:
npm install node-red-node-mysql
Pour développer des informations sur l'utilisation et les exemples, le site Web TTN a cette page: https://www.thethingsnetwork.org/docs/applications/nodered/

Dans le flux de Node-Rred, les messages livrés par le service TTN sont traités et affichent graphiquement. La charge utile du message contient deux valeurs différentes: ¨Alert¨ Lorsque le faisceau laser est interrompu et ¨alive¨ toutes les 10 minutes. De plus, une logique est incluse pour montrer un état de non disponible alors qu'en 11 minutes, aucun message n'est arrivé.
Pour importer le flux, nous devons accéder à l'application Node-Red que nous avons déchiré dans le Docker dans une direction du type http: //192.168.1. ????: 1881. Nous trouverons l'option d'importation en appuyant sur le bouton du menu de type hamburger. La chose la plus simple est de copier dans le presse-papiers de l'équipe le contenu du fichier Garage-Cerberus_flows.json et collez-le à l'écran: 
Après avoir appuyé sur le bouton "Importer", vous aurez la vue des nœuds et des flux. Mais il y en a trois qui ne sont pas correctement configurés.
Ouvrez les propriétés du nœud de liaison montante TTN DomeHome_Sensor_Garage et recherchez les noms et la clé de la console TTN en fonction des correspondances suivantes: 


L'intégration avec IFTTT (si c'est ce qui) est montée avec un appel simple à son repos de terminal à l'aide du nœud de type de demande HTTP avec le format suivant.
https://maker.ifttt.com/trigger/domohome_garage_intruder/with/key/???????????

Nous devons collecter toutes les informations de la chaîne de connexion à notre serveur BBDD MySQL sur le serveur RPI. Utilisateur, mot de passe, port, hôte ... et complétez la configuration de la base de données du nœud MySQL.

Le résultat final est un écran réactif où on nous montre le dernier événement, l'historique et la possibilité de désactiver les avis. Nous accéderons à la même URL que pour l'administration mais avec le suffixe / ui: http://192.168.1.???:1881/UI
https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html