Bei ClimArt geht es um Umwelt und Menschen, daher wollen wir auch wissen wie viele Menschen z.B. regelmäßig oder zu Veranstaltungen vor Ort sind. Diese Daten wollen wir automatisch und datenschutzkonform in der Datafarm speichern und mit (einem?) Pax-Counter erheben. PAX steht für “Persons ApproXimately”.
Code und (punktuell veraltete) Tutorials
-
Code – GitHub - cyberman54/ESP32-Paxcounter: Wifi & BLE driven passenger flow metering with cheap ESP32 boards
– Doku – (Inhaltverzeichnis über Hamburger-Menü, nicht über Nav-Menü rechts) Documentation - Tutorial für LoPy4 – How to Build a LoRaWAN Smartphone Counter with ESP32 - Hackster.io, das Tutorial wurde für eine ältere TTN-Version geschreiben, daher passen nicht mehr alle Schritte zum aktuellen Stand bei TTN. Als Orientierung aber immer noch hifreich.
Software aufspielen und konfigurieren
[Doku todo cg]
- Konfiguration – ESP32-Paxcounter/docs/configuration at master · cyberman54/ESP32-Paxcounter · GitHub
-
Empfindlichkeit einstellen über “set scan RSSI limit” via TTN downlinks oder
#define RSSILIMIT
inpaxcounter.conf
- bei Problemen mit (nachträglicher) BLE-Aktivierung BLE Scan not working · Issue #272 · cyberman54/ESP32-Paxcounter · GitHub
-
Vendor Filter, s. Vendor Filter ignores devices on filter · Issue #675 · cyberman54/ESP32-Paxcounter · GitHub
> The vendor list hasn’t been updated for a while and for the moment I suggest not to use it. - Wenn man bei TTN als Gerät den PAX-Counter auswählt, ist bereits ein payload-encoder hinterlegt, siehe zu
bytes
undport
und wie man sie auskommentiert TTS-/TTN-Daten an Kotori weiterleiten - #90 by clemens
Hardware
Material
- ein LoPy4 ist noch hier
- ebenfalls eine LoRa-Antenne 868 MHz dazu, siehe Was macht eine IP67-Antenne aus? und My approach to ip 65 solar power and lora housing - #2 by clemens
- und ein wasserdichtes Pycom-Gehäuse
- dazu Kabeldurchführung scharz
- 5 V- / USB-Netzteil
- im Außenbereich (auf Container / BauSchilderung) Steckdose “wasserdicht” machen, ggf mit so einer Abdeckungen für Verlängerungskabel (“safe-box”) machbar, s. Diskussion zum Einbau der Sensoren in die Beute - #3 by clemens,
- oder Solarversorgung (weiße BOB-Platine mit LiPo und Solarpanel)
- OLED, wie bei vielen countern, ist zwar schön fürs debuggen, brauchen wir später aber nicht
Hardware vorbereiten
LoRa-Antenne an LoPy / FiPy anschließen, gar nicht soo einfach, da der LoPy4 drei U.FL-Anschlüsse hat (einen für 868/915 MHz (LoRa und SigFox), einen für 433 MHz (LoRa) und einen für WiFi), wir brauchen den für 868 MHz LoRa:
Schnell gestrickten Bee Pax-Observer-Platine …
LoPy4 mit einem PyCase (Pycom Universal IP67 Case), zwei Kabeldurchführungen habe ich ausgebrochen, eine für das USB-Kabel (nur Stormversorgung), die andere für die Antenne:
TTN einrichten
Application und (end) device einrichten
[Doku todo cg]
Pax-Counter-Daten per TTN-webhook an eine Kotori-Instanz schicken
In der TTN-Console die Übersichtsseite Applications auswählen und dort die vom Pax-Counter verwendete Application – hier ist es Paxcounter Test aufrufen.
Dann im Menü links Integrations und als Unterpunkt Webhooks anklicken:
[ Zwischenschritt, nur nötig, falls schon ein webhook existiert auf der rechten Seite + Add webhook auswählen. ]
Nun sollte diese Seite mit der Auswahl der webhook templates erscheinen, wir benötigen “Custom webhook”:
Hier müssen wir eine frei wählbare Webhook ID angeben. Hinweis: Sie darf nur aus Kleinbuchstaben, Ziffern und Bindestrichen (“-”) bestehen, andere Zeichen sind nicht erläubt, das Eingabeformular meckert aber zuverlässig, wenn man was unerlaubtes eingibt.
Als Webhook format können wir das default eingestellte JSON stehen lassen.
Base-URL ist die URL auf dem Kotori läuft, hier https://swarm.hiveeyes.org, bitte entsprechend ändern, wenn ihr einen anderen Server nutzt.
Weiter unten auf der Seite müssen wir bei Filter event data in der sehr langen Liste recht weit nach unten und dort up.uplink_message.decoded_payload auswählen.
Nun noch im Abschnitt Enabled event types die checkbox vor Upload message anklicken und als Pfad /api/hiveeyes/<user>/<site>/<node>/data eingeben, dabei
- <user>
- <site> und
- <node>
mit den eigenen Angaben ersetzen!
todo payload encoder beschreiben, damit auch pax übertragen wird
Grafana dashbord einrichten
In Grafana kommen die Daten dann so an:
Vorüberlegung, mögliche(r) Standort(e)
Das ZK/U dehnt sich mit dem langen Gebäude und großen Freiflächen (ehem. Güterbahnhof) recht weit aus. Ggf. brauchen wir zwei oder drei counter im
- Außenbereich
- Veranstaltungsbereich
- Residencies / Büro
- Problem: wie vermeidet man dann Doppelzählungen?
Notizen
- “Fernbedienung” über TTN downlinks – ESP32-Paxcounter/remotecontrol.md at master · cyberman54/ESP32-Paxcounter · GitHub
Weitere Fragen und Probleme
- What is
bytes
andport
in the PAX counter’s payload:
Wifi/BLE Paxcounter Project with ESP32 boards - #507 by Clemens_G - End Devices (Nodes) - The Things Network - Counter mode cyclic and cumulative in parallel? · Issue #973 · cyberman54/ESP32-Paxcounter · GitHub
- Counting unique people with more than one pax counter? · Issue #972 · cyberman54/ESP32-Paxcounter · GitHub
- Supported LED Matrix display · Issue #969 · cyberman54/ESP32-Paxcounter · GitHub