You are here

Projekt 1: Stationäres Sensor-Bundle (mit ESP32)

Einstieg

Als erste Informationen kann man sich folgende Artikel reinziehen:

Scope

Was soll dieses Projekt abdecken?

  • Sensordaten erfassen
    • Schadstoffe: Feinstaub, $NO_2$ etc.
    • Meteorologische Parameter: Temperatur, Feuchte, Luftdruck, Lichtstärke, UV
  • Sensordaten an eine Webseite schicken
  • Webseite trägt die Daten in eine DB ein
  • Webseite stellt die Daten graphisch dar (wochenweise, tageweise, mit vorwärts-/rückwärtsblättern)
  • Webseite erlaubt Export der Daten (z.B. im CSV-Format)
  • Wetterfestes Gehäuse (Sensorbox), Stromversorgung
  • Dokumentation
     
  • Und der Zuckerguss drauf?
    • Update over the air (ESP32 schaut nach, ob es eine neue Version für die Firmware gibt, wenn ja, holt diese und startet mit dieser neuen Version.
    • Falls der ESP32 das vordefinierte WLAN nicht findet, macht es für xxx Minuten einen eigenen AP mit Webserver auf, wo man die Zugangsdaten eintragen kann, danach Neustart mit neuen WLAN Zugangsdaten. Das erfordert das Speichern der WLAN-Daten an einer persistenten Stelle im Flash.
    • Zur Kalibrierung des Luftdrucksensors kann man das QNH aus dem METAR eines nahegelegenen Flughafens benutzen: z.B. für Frankfurt: https://aviationweather.gov/adds/dataserver_current/httpparam?dataSource...

 

Proof of Concept

Eine kleine Übersicht, welche Funktionalität schon getestet ist, bzw. wofür funktionierender Code existiert:

  • Webseite
    • (6.3.2018): eingerichtet, erfassen der Daten über eingehenden Request, Schreiben in Datei, anzeigen in Text-Form
    • (15.03.2018): Schreiben in DB, Lesen von DB, generieren und anzeigen Grafik, Navigation vorwärts/rückwärts
    • (17.04.2018): Schreiben aller Daten in DB, Generieren Graphik mit SVGGraph
  • Sensorbox
    • Programmierung mit Arduino-IDE
    • (7.3.2018): WiFi-Verbindung aufbauen, Daten an Webseite schicken
    • (7.3.2018): VEML6070, UV-Sensor, I2C, von 0x38 und 0x39 werden LSB und MSB des 16-bit UV-Wertes gelesen
    • (8.3.2018): TSL2561 Lichtsensor I2C: 0x29

Erforderliche Kenntnisse

  • Grundlagenkenntnisse Webseiten, HTML, PHP, SQL/mysql
  • Elektronik, Elektrizitätslehre, Aufbau von Schaltungen
  • Kenntnisse Programmieren, C/C++, ggfs. Versionierungskonzepte, GIT
  • Basteln einer wetterfesten Box, bohren, kleben, sägen, schrauben

 

Weitere allgemeine Links