Setup

Download and unpack the latest release from GitHub ( https://github.com/ecocurious/MultiGeiger/releases ) as source code (zip) or source code (tar.gz). In the new directory, open the directory multigeiger and load the file multigeiger.ino with the Arduino IDE.

Die Platine unterstützt zwei verschiedene Heltec-Bausteine, verschiedene Zählrohre und optional einen Temperatur/Luftdruck/Luftfeuchtigkeits-Sensor (BME280 oder BME680). Die Software kann via Netzwerk Daten zu verschiedenen Services senden.

  • Heltec WiFi Kit 32 Diese MCU hat ein großes Display und WiFi. Auf dem Board wird dieser Baustein in die längeren Buchsenleisten gesteckt.
  • Heltec Wireless Stick Diese MCU hat ein sehr kleines Display, dafür aber zusätzlich zu WiFi noch LoRa. Es wird in die kürzeren Buchsenleisten gesteckt.

Um die Heltec-Boards in der Arduino IDE auswählen zu können, müssen die folgenden Schritte unternommen werden:

  • Die Datei: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json muss in Preferences->Zusätzliche Boardverwalter-URLs hinzugefügt werden.
  • Danach können unter Werkzeuge->Board:->Boardverwalter… die ESP32 Boards (Name „esp32 by Espressif Systems“) installiert und anschließend unter Werkzeuge->Board das richtige Heltec Board ausgewählt werden.
  • Für beide Boards muss hier der Heltec wireless Stick ausgewählt werden.
  • Wenn Du arduino-esp32 >= 1.0.5 benutzt, musst Du ggf. einen Patch anwenden, um das „partition scheme“-Menü, das im nächsten Schritt gebraucht wird, wieder zurück zu bekommen - siehe die Dateien misc/arduino-esp32/paritition-menu-*.* in unserem git-Repo.
  • Unter Tools muss noch Flash size: „4MB(32Mb)“ und Partition Scheme: „Minimal SPIFFS (Large APPS with OTA)“ eingestellt werden. Die Software erkennt selbstständig, welches Board bestückt ist.

Diverse Software-Einstellungen kann man über folgende Dateien machen (siehe Kommentare dort):

  • ./multigeiger/userdefines.h (immer notwendig, ein Beispiel hierzu wird in userdefines-example.h mitgeliefert)
  • ./platformio.ini (nur bei platformio, ein Beispiel hierzu wird in platformio-example.ini mitgeliefert)

Es werden alle externen Libraries benötigt, die aufgelistet sind in der Datei

platformio-example.ini

unter dem Abschnitt

lib-deps =

Bitte die aktuellste Version über platform.io / Libraries installieren.

Achtung: Wenn die Arduino-IDE verwendet wird, dann bitte prüfen, dass in der Datei project_config/lmic_project_config.h (in der obersten Ebene in dieser Library) die richtigen Einstellungen gesetzt sind. Die Datei muss so aussehen:

// project-specific definitions
#define CFG_eu868 1
//#define CFG_us915 1
//#define CFG_au921 1
//#define CFG_as923 1
// #define LMIC_COUNTRY_CODE LMIC_COUNTRY_CODE_JP /* for as923-JP */
//#define CFG_in866 1
#define CFG_sx1276_radio 1
//#define LMIC_USE_INTERRUPTS

Die angegebenen Versionen der Libraries sind die Mindestanforderungen. Wir testen immer auch mit den neuesten Versionen, deshalb bitte immer die aktuellen Versionen installieren und verwenden. Falls der Compiler andere Libraries anmahnt, diese bitte in der Arduino IDE per Sketch -> Include Library -> Manage Libraries .. installieren.

 Ablauf nach dem Start

Das Gerät baut einen eigenen WLAN-Accesspoint (AP) auf. Die SSID des AP lautet ESP32-xxxxxxxx, wobei die xxx die Chip-ID (bzw. die MAC-Adresse) des WLAN-Chips sind (Beispiel: ESP32-51564452). Bitte diese Nummer notieren, sie wird später noch gebraucht. Dieser Access-Point bleibt für 30sec aktiv. Danach versucht das Gerät, sich mit dem (früher) eingestellten WLAN zu verbinden. Dieser Verbindungsversuch dauert ebenfalls 30sec. Kommt keine Verbindung zu Stande, wird wieder der eigene AP erzeugt und der Vorgang fängt wieder und wieder von vorne an.

Einstellung des WLAN

Nachdem der WLAN-AP des Geräts auf Deinem Handy oder PC erscheint, verbinde Dich mit diesem. Die Verbindung fragt nach einem Passwort, es ist ESP32Geiger. Normalerweise öffnet sich automatisch die Startseite des Gerätes. Falls die Startseite nicht erscheint, so muss mit dem Browser die Adresse 192.168.4.1 aufgerufen werden. Die Startseite erscheint und dort findet man einen Link zur configure page - dort drauf klicken und man kommt zur Einstellungsseite.

Die Einstellungs-Seite hat die folgenden Zeilen:

  • Geiger accesspoint SSID Dies ist die SSID des eingebauten APs und kann geändert werden. Wenn der Sensor bereits mit dieser Nummer bei sensor.community registriert war, muss eine neue Registrierung erfolgen.
  • Geiger accesspoint password Dies ist das Passwort für den eingebauten AP. Dieses MUSS beim ersten Mal geändert werden. Wenn gewünscht, kann natürlich auch das gleiche Passwort ESP32Geiger wieder verwendet werden. Das Eingabefeld darf nicht leer gelassen werden. Sichere das Passwort in Deinem bevorzugten Passwort-Manager.
  • WiFi client SSID Hier muss die SSID des WLANs für den Netzwerk/Internet-Zugang eingegeben werden.
  • WiFi client password Und hier das zugehörige Passwort.

Für bessere Sicherheit wird empfohlen, ein separates WLAN-Netzwerk zu verwenden (z.B. das Gast-Netzwerk), um die Kommunikation vom normalen Netzwerk zu abzutrennen.

Ist alles eingegeben, auf Apply klicken. Dann werden die eingestellten Daten übernommen und in das interne EEPROM gespeichert. Dann bitte diese Seite über Cancel verlassen, weil nur dann das Programm den Config-Mode schliesst und sich mit dem heimischen WLAN verbindet. Wenn es kein Cancel-Knopf gibt, dann gehe zurück zu den WLAN-Einstellungen des Geräts und tippe dort die normalen Heim-Netzwerk-Parameter wieder ein.

ACHTUNG, Beim Update auf die Version 1.13 müssen die WLAN-Daten noch einmal neu eingegeben werden. Bei zukünftigen Versionen wird das nicht mehr nötig sein.

Weiter können über die Einstell-Seite einige verschiedene Definitionen festgelegt werden:

  • Start-Melodie, Lautsprecher-Tick, LED-Tick und Anzeige jeweils an oder aus
  • Daten senden zu sensor.community oder/und zu madavi.de
  • bei LoRa-Hardware können hier auch die LoRa-Parameter (DEVEUI, APPEUI und APPKEY) eingegeben werden.

Am Ende der Einstellungsseite gibt es einen Link Firmware update - hiermit kann man die Firmware auf dem MultiGeiger aktualisieren. Die .bin-Datei runterladen, dann diese über Browse.. auswählen und Update klicken. Es dauert ca. 30sec für das Hochladen und Flashen der Firmware. Wenn Du dann Update Success! Rebooting… siehst, startet der MultiGeiger neu und die neue Firmware ist dann aktiv.

Erscheint Update error: …, dann hat das Update nicht geklappt - es ist dann die seitherige Firmware weiter aktiv.

Die Einstellseite kann zu jeder Zeit aus dem eigenen WLAN heraus aufgerufen werden. Dazu wird in der Adresszeile des Browsers http://esp32-xxxxxxx eingegeben (xxxxxxx ist die Chip-ID - siehe oben). Sollte es mit diesem Hostnamen nicht klappen, dann muss die IP-Adresse des Geigerzählers verwendet werden. Diese kann aus dem Router ausgelesen werden. Bei Erfolg erscheint zunächt eine Login-Seite. Hier ist als Username admin und als Passwort das ausgewählte Passwort (siehe oben) einzugeben. Dann erscheint die gleiche Einstellseite wie beschrieben.

Server für die Messdaten

Es werden jeweils einen Messzyklus lang die Impulse gezählt und dann die „Counts per Minute“ (cpm) berechnet. Jeweils nach diesem Zyklus werden die Daten zu den Servern bei sensor.community und bei madavi.de gesendet.

Bei sensor.community werden die Daten gespeichert und stehen am nächsten Tag zum Abruf als CSV-Datei bereit. Diese Datei findet man unter http://archive.sensor.community/DATE/DATE_radiation_si22g_sensor_SID.csv) wobei DATE = Datum im Format YYYY-MM-DD ist (beides mal gleich) und SID die Sensornummer des Sensors (nicht die ChipID). Für andere Sensoren ist der Zählrohr-Name si22g durch den entsprechenden Namen zu ersetzen (z.B.: sbm-20 oder sbm-19).

Bei madavi werden die Daten in einer RRD-Datenbank abgelegt und können direkt als Grafik über diesen Link aufgerufen werden: https://www.madavi.de/sensor/graph.php?sensor=esp32-CHIPID-si22g Hier ist dann CHIPID die ChipId (also die Ziffern der SSID des internen Accesspoints).

Während der Übertragung der Daten zu den Servern wird in der Statuszeile (unterste Zeile) des Displays kurz der Name des Servers eingeblendet.

Anmelden bei sensor.community

Um Mess-Daten an sensor.community zu senden, muss man dort ein gültiges Konto haben und der Sensor muss registriert sein. Beides kann man auf https://devices.sensor.community erledigen. Wenn man noch kein Konto hat, über „Register“ eins anlegen und sich einloggen. Um einen neuen Sensor zu registrieren, auf „Register new sensor“ klicken und das Formular ausfüllen:

  • Erste Zeile, Sensor ID: Hier die Nummer (nur die Zahlen) der SSID des Sensors eingeben (z.B. bei dem Sensor ESP-51564452 dann nur 51564452 eingeben).
  • Zweite Zeile, Sensor Board: esp32 auswählen (über die kleinen Pfeile rechts)
  • Basisinformation: Hier die Adresse mit Land eingeben. Der interne Name des Sensors kann beliebig vergeben werden, muss aber eingegeben werden. Bitte den Haken bei Indoor-Sensor setzen, solange der Sensor nicht draussen aufgestellt ist.
  • Zusätzliche Informationen: Kann leer gelassen werden, es ist aber nett, um zusätzliche Informationen anzugeben.
  • Hardware-Konfiguration: Hier als Sensor-Typ den Eintrag Radiation Si22G (oder ggf. entsprechend) auswählen. Für den zweiten Sensor kann DHT22 stehen bleiben, das ist für uns irrelevant.
  • Position: Hier bitte so genau wie möglich die Koordinaten eingeben. Man kann den rechten Knopf benutzen, um die Koordinaten berechnen lassen. Diese werden benötigt, um den Sensor auf der Karte anzuzeigen.

Nun mit „Save settings“ die Einstellungen beenden. Auf der Übersichts-Seite für diesen Sensor auf Data klicken. Hier kann man u.a. die Sensor ID sehen. Immer dran denken: die ID wird für Abfragen auf sensor.community oder multigeiger.citysensor.de zwingend benötigt.