Paxcounter – Wir zählen Leute

Ein mittlerweile sehr beliebtes Spielzeug ist der Paxcounter geworden, welcher von immer mehr Leuten nachgebaut und eingesetzt wird. Der Paxcounter soll helfen Besucherzahlen zu erfassen, indem er Die WiFi und Bluetooth Signale der umliegenden Geräte erfasst und mengenmäßig auswertet. Das Projekt legt dabei sehr großen Wert auf Datenschutz und speicher z.B. keine MAC-Adressen. Als Hardware werden günstige ESP32 verwendet, welche es für rund 20€ zu kaufen gibt. Die Daten werden dabei per LoRaWAN an TTN übermittelt. Ich verwende ein TTGO LoRa32 V2.1 – 1.6

 

Vorab zu dem Board eine Warnung:

We used a fuse. The diode is energized in one direction, but the fuse is bidirectional, which causing the USB voltage directly access to the battery.
After a long time charged, the battery is hot or burned, so please don’t use this V2.1-1.6 version to charge the battery! ! !
(Note: The board can be powered by battery, but we mustn’t charge the battery when the battery is connected to the board, mustn’t charge! mustn’t charge! mustn’t charge!)
If you want to use this V2.1-1.6 version to charge the battery, you need to replace the fuse in the picture with a diode, then the charging function return to be normal.
It can be changed the model number of the diode : BS5819 SOD123 / 1A current

Also niemals mit dem Board einen Akku laden, außer ihr habt die Sicherung gegen die Diode ausgetauscht.

 

Vorbereitungen

Um die Software auf das Board zu bringen, müssen wir erst noch etwas Software installieren. Wir nutzen hier den Atom Editor und dazu die PlatformIO IDE. Also ladet euch und installiert Atom. Anschließend installieren wir das Paket PlatformIO-IDE. Dazu geht ihr unter Settings und wählt Install. Anschließend sucht ihr nach platform und wählt Install für das Paket platformio-ide.

 

Anschließend gehen wir zum GitHub Repository und laden uns die eigentliche Software herunter. Das ZIP-Archiv entpackt ihr danach.

 

Damit die Daten im TTN empfangen werden können, muss natürlich auch eine Applikation erzeugt werden. Ihr müsst nur darauf achten kein ABP zu verwenden, da nur OTAA unterstützt wird.

Um mit eurem Board sprechen zu können, benötigt ihr eventuell noch einen passenden Treiber füt die USB to UART Bridge. Für den CP210x gibt es diese hier.

 

Konfiguration

Nachdem nun alle Vorbereitungen getroffen sind, können wir endlich beginnen. Startet Atom und wählt unter Files, Open Folder. Danach wählt ihr euren Ordner mit der zuvor entpackten Software aus. Im Projektbaum wählt ihr nun die Datei platformio.ini aus. In dieser Datei legen wir fest auf welcher Hardware wir die Software installieren wollen. In meinem Falle ist es ttgov21new. Ihr müsst einfach nur das Semikolon vor dem Eintrag entfernen.

 

Anschließend die EUIs und den Key für die TTN Applikation eintragen. Wählt die Datei /src/loraconf.sample.h aus. Kopiert nun die EUIs und den Key aus der TTN Console und fügt sie hier ein. Wählt das MSB-Format und kopiert den Inhalt in die Zwischenablage.

Mit einem Rechtsclick auf den Dateinamen und der Auswahl Rename benennen wir die Datei nun in loraconf.h. Dieses machen wir ebenfalls mit der Datei ota.sample.conf in ota.conf. Damit wären wir hier fertig. Es gibt noch weitere Konfigurationsmöglichkeiten in der paxcounter.conf, aber darauf werde ich hier nicht weiter eingehen.

Jetzt brauch es noch drei einfache Schritte und die Software ist auf dem Modul.

  1. Clean – solltet ihr immer machen, wenn ihr etwas ändert
  2. Build  – dadurch die das Firmware-File erstellt
  3. Upload  – Lädt die Firmware auf euer Modul

 

Anschließend müssen wir noch in der TTN Console der Payload Decoder einrichten. Per Default ist im Paxcounter das Packed Format eingestellt. Kopiert euch den Inhalt dieses Decoders und und fügt dieses in der Console ein. Anschließend erhaltet ihr die Messungen im Klartext auf der Konsole.

Eine weitere, sehr gute, Anleitung zu dem Thema gibt es von Sebastian Müller. Es lohnt sich auch mal dort vorbeizuschauen. Im GitHub Repo selbst werden auch einige Fragen beantwortet und Dinge erklärt.

8 Gedanken zu „Paxcounter – Wir zählen Leute“

  1. Hallo,
    der Artikel ist zwar schon etwas älter, aber vielleicht kann mir jemand folgende Fragen zum Thema Paxcounter beantworten, zu denen ich in den genannten Quellen nichts finden konnte:

    In welchem Radius um den Counter kann man noch WLAN-Signale zählen (maximale Reichweite)?
    Wie sehr verändert sich die Reichweite zwischen Außen- und Innenbetrieb?

    Vielen Dank im Voraus

    Gruß

    Tim

    Antworten
    • Hallo Tim,
      bei der Software, die hier benutzt wird, kannst Du die Empfindlichkeit einstellen. Dadurch kannst Du beeinflussen, in welchem Radius noch Signale gezählt werden. Schau in der Anleitung uner dem Stichwort „set scan RSSI limit“.
      Naturgemäß ist die maximale Reichweite außen deutlich höher als in geschlossenen Räumen.
      Grüße
      Alex

      Antworten
  2. Hallo,
    ich hab mich genau an deine Anleitung gehalten.
    Ich habe allerdings einen TTGO V1.
    Das Display zeigt mir auch etwas an.
    Allerdings zeigt mir TTN Status never seen.
    Keys sind als MSB in der loraconf.h eingetragen.
    Danke

    Antworten
  3. Hallo,
    aktuell scheint das mit VisualStudioVode/Platformio oder auch ATOM/Platformio nicht zu funktionieren. Habe das auf 3 verschiedenen WIN10 PC’s versucht, bekomme aber immer wieder die Meldung:
    Can not remove temporary directory C:\Users\XXXXXXXXXXX\Documents\ESP32-Paxcounter-2.0.1\.pio\build. Please remove it manually to avoid build issues
    Processing usb (framework: arduino; board: esp32dev; platform: espressif32@1.12.4)

    Hardware ist ein TTGO T3_V1.6 Und ein T-Beam T22_V1.1 20191212

    ny Idea wo ich weiter veruche das zu lösen ?

    tnx Info
    -herbert-

    Antworten
    • Hallo,

      habe das gleiche Problem – habe auch beide Plattformen ausprobiert (Visual Studio & ATOM).

      Bei mir kommt dann noch:
      Library Manager: Installing git+https://github.com/SukkoPera/Arduino-Rokkit-Hash.git
      FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden:

      …dann kommen noch einige weitere Fehlermeldungen und dann endet das Ganze mit FAILED

      Habe leider auch noch keine Lösung gefunden – bin daher für jeden Hinweis dankbar…

      Beste Grüße
      Matthias

      Antworten
  4. Hallo Herbert,

    ich habe es jetzt geschafft das ganze zu compilieren und auf mein Device zu laden….
    Problem -> ich musste noch unzählige Libs dem Projekt in Platform.io zuordnen – u.a. die Rokkit Lib.
    In dieser Lib musste ich sogar den Code ändern um einen Fehler bzgl. „pgmspace.h“ zu eliminieren …

    Alles wesentlich komplizierter als hier und bei Make beschrieben … ich kann nicht sagen was wirklich bei mir falsch gelaufen ist … bin in diesem Umfeld ein Newbie …

    Vielleicht hilfts trotzdem weiter …

    Beste Grüße
    Matthias

    Antworten

Schreibe einen Kommentar