Mir fiel ein, dass es Alternative zum Schutz des Garage Square für das Community Garage, ohne physische Trennungen installieren zu müssen, zu schützen. Es geht darum, sichtbar zu einer virtuellen Barriere zu machen, die Intrusionen erkennt und benachrichtigt.
In dieser ersten Iteration hat das Gerät nur einen Lichtsensor, um die Unterbrechung eines Laserstrahls zu erkennen, um vor dem Durchgang einer Person zu warnen. Später konnten wir andere Bewegungen wie einen PIR (passiver Infrarotsensor) einbeziehen. Oder die Verbindung sind beispielsweise ein Bildaufzeichnungssystem.

Der Sensor basiert auf einer Laser-LED und einer Fotoresistenz, die einen analogen/digitalen Konvertierungsport liest. Das Programm passt den Schwellenwertpegel an, wenn die Platte startet. Wenn das Licht blockiert ist, werden der akustische Warnprozess und die Warnmeldung von Lora ausgelöst.
Der BackFFice -Teil wird von den Ding Networs (auch bekannt als TTN) und IFTTT unterstützt. Die Informationen werden schließlich in Flows eines Programms in Node-Rred verarbeitet, das in einem Docker-Container auf einem Raspberry Pi 3B+ mit dem Raspbian-Betriebssystem ausgeführt wird. Das Foto dieser Architektur wäre Folgendes: 
Demonstration des vollständigen Prozesses: Erkennung und Benachrichtigung:



Wir werden die TTN -Dienste verwenden, mit denen die Nachricht vom Gateway ausgewiesen wird, dass das Datenpaket für den Endpunkt der Anwendung konsumiert wird, die Aktionen mit den im Diagramm enthaltenen Informationen ergriffen, die Daten enthalten.
Dieses Gerät ist vom ABP-Typ (Aktivierung von Persönlichkeit), was bedeutet, dass es im Netzwerk mit einer Rückgabe und einer vorkonfigurierten Schlüsselsitzung identifiziert wird. Dazu müssen wir die Registrierung einer Anwendung und eines Geräts abschließen. Dies sind die folgenden Schritte:
Geräte wie dieser Sensor kommunizieren mit der Anwendung, in der sie registriert wurden. Wenn Sie ein Gerät registrieren, müssen Sie zunächst eine Anwendung hinzufügen.

Wählen Sie in der Konsole die Anwendung aus und klicken Sie im folgenden Bildschirm auf Anwendung hinzufügen .
Jetzt werden wir mit der neuen hinzugefügten Anwendung auf die Seite umgeleitet, in der Sie die EUI -App und die generierten Zugriffsschlüssel finden können. 

In TTN repräsentiert ein Gerät (Devide) die Konfiguration dessen, was auch Knoten (Knoten) nennt, der letztendlich unser Schaltkreis ist. Bei dem Zugriff auf das Registrierungsformular müssen wir nur die Geräte -ID ausfüllen, die der eindeutige Name dieses Knotens ist. Es ist vorzuziehen, das im Bild markierte Symbol zu drücken, damit das EUI -Gerät automatisch generiert wird.

Schließlich drücken wir das Register und drücken das Symbol mit dem Namen unseres neuen Geräts, um Ihre Konfigurationsdaten anzuzeigen. Hier finden wir die Parameter, die wir für ein ABP -Gerät sein müssen. Und dass wir in die Konfigurationsdatei "Einstellungen" wechseln müssen, die in der Skizze der Arduino -IDE geladen werden. Aber das Format für Schlüssel ist anders. Sie finden ein Excel -Blatt (EnCOde_EUI.xlsx), das diese Aufgabe erleichtert.
// 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;

Wir müssen in den Bildschirm "Überbesserung des Anwendungen" zurückkehren, um eine letzte Konfiguration zu erstellen. Wenn Sie auf die Registerkarte Payload -Formate drücken, greifen wir auf das Formular zu, in dem ein Skript das Datendiagramm unserer LORA -Nachricht dekodieren darf. In unserem Fall ist dies das Format:

Die Architektur, die für die Rückseite und Front ausgewählt wurde, ist so konzipiert, dass sie minimale Betriebskosten und skalierbar sind. Durch die Verwendung von Containern können wir neue Geräte (TTN -Knoten) schnell mit einem eigenen Dashboard -Knoten hinzufügen, das auf demselben Server ausgeführt wird.
Der verwendete Server war ein Raspberry PI 3B+. Es ist derzeit nicht das leistungsstärkste, aber ausreichendste Modell, um mehrere Container auszuführen. Erste Konfigurationsaufgaben zur Installation des Raspbian -Betriebssystems und MySQL können leicht gefunden und Standard sind. Docker- und Knoten -Red -Container mit all ihren erforderlichen Zubehör, damit der vollständige Fluss ausgeführt werden kann. Ich beschreibe sie unten.
Für diese Konfigurationen habe ich basierend auf dem Dokument: Die einfache Möglichkeit, Docker auf einem Raspberry Pi einzurichten. Hier fasse ich die folgenden Schritte zusammen:
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
Die Knoten -Red -Anwendung enthält nicht standardmäßig die Knoten, die wir in TTN integrieren müssen, mit MySQL oder einer Benutzeroberfläche, dem Dashboard . Grundsätzlich können alle aus der Option Palette verwalten, auf die wir in der Typadresse zugreifen sollten: http: //192.168.1. ????: 1881
Dashboard -Knoten
Standardinstallation. Suchen Sie nach dem Modul "Node-Red-Dasscharde" in der Installation der Option Palette -Menü der Anwendung.
Integration mit TTN -Knoten
Wir müssen hier mit einer weiteren Info -SSH -Sitzung auf den Container zugreifen
docker exec -it domohome-garage /bin/bash
Wir werden nun die Knoten mit dem NPM -Paketmanager installieren:
npm install node-red-contrib-ttn
Mysql Knoten
Aus der vorherigen SSH -Sitzung führen wir aus:
npm install node-red-node-mysql
Um Informationen über die Verwendung und Beispiele zu erweitern, hat die TTN -Website diese Seite: https://www.thethingsnetwork.org/docs/applications/nodered/

Im Fluss von Knoten-RED werden die vom TTN-Dienst übermittelten Nachrichten behandelt und werden grafisch angezeigt. Die Nachrichtennutzlast enthält zwei verschiedene Werte: "Allert" Wenn der Laserstrahl unterbrochen wird und alle 10 Minuten "Alive" ist. Darüber hinaus ist eine Logik enthalten, um einen Status von nicht verfügbaren Zustand zu zeigen, wenn in 11 Minuten keine Nachricht eingetroffen ist.
Um den Fluss importieren zu können, müssen wir auf die knotenrote Anwendung zugreifen, die wir in eine Richtung des Typs http: //192.168.1 in den Docker zerrissen haben. ????: 1881. Wir werden die Importoption finden, indem wir die Menüstaste vom Hamburger -Typ drücken. Am einfachsten ist es, den Inhalt der Garage-Cerberus_Flows.json-Datei in den Team-Zwischenablage zu kopieren und auf den Bildschirm einzufügen: 
Nach dem Drücken der Taste "Import" haben Sie die Ansicht der Knoten und Flüsse. Es gibt jedoch drei von ihnen, die nicht korrekt konfiguriert sind.
Öffnen Sie die Eigenschaften des TTN Domehome_Sensor_Garage Uplink -Knotens und suchen Sie nach Namen und den Schlüssel auf der TTN -Konsole gemäß den folgenden Korrespondenzen: 


Die Integration mit IFTTT (falls dies der Fall ist) wird mit einem einfachen Aufruf in den Endpunkt -Ruhe mit dem HTTP -Anforderungstypknoten mit dem folgenden Format montiert.
https://maker.ifttt.com/trigger/domohome_garage_intruder/with/key/???????????

Wir müssen alle Informationen über die Verbindungskette auf unserem BBDD MySQL extern zum RPI -Server sammeln. Benutzer, Passwort, Port, Host ... und vervollständigen Sie die Konfiguration der MySQL -Knotendatenbank .

Das Endergebnis ist ein reaktionsschneller Bildschirm, auf dem uns das letzte Ereignis, die historische und die Möglichkeit der Deaktivierung der Mitteilungen, gezeigt wird. Wir werden auf die gleiche URL zugreifen wie für die Verwaltung, jedoch mit dem Suffix/UI: http://192.168.1.???:1881/ui
https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-andaa.html