Seite wählen
Ein nodeMCU mit einem LUX-Messer zum Erfassen der Sonnenscheindauer

Daten eines Lux-Sensors mit Hilfe eines nodeMCU an den Azure IOT Hub übermitteln.

Das Nutzen der Sonnenenergie zur Produktion von Strom interessiert mich schon seit geraumer Zeit. In den letzten Wochen haben wir uns mit einigen Nachbarn ernsthaft mit der Idee auseinandergesetzt, auf unseren Dächern Solarzellen zu installieren.

Ich wollte schon länger der Azure IOT Hub ausprobieren. Dieser soll auch bei unserer Bewässerungsanlage in der Wurmfarm zum Einsatz kommen. Die Anbindung des IOT-Hubs und die Auswertung der Daten stehen für mich bei dem Projekt im Vordergrund. Als Mikrocomputer kommt daher ein nodeMCU zum Einsatz, da dort die WLAN-Fähigkeit bereits fix eingebaut ist.

Zielsetzung

Folgende Ziele verfolgt das Projekt

  • Erfassen der Lichtintensität
  • Speichern der Daten im Azure IOT Hub
  • Berechnen der Sonnenstunden pro Tag
  • Grafische Darstellung der Daten

Material

Aufbau der Hardware

Das ganze System ist in dem Projekt aus den bereits erwähnten Gründen einfach gehalten. Die wichtigsten Aspekte die es zu beachten gilt, ist der Einfluss des Wetters auf die Hardware. Ich hatte in der Werkstatt noch eine wasserdichte Steckdosenbox von DRi-Box herumliegen. Es war bereits ein Schalter eingebaut, das störte mich aber nicht weiter.

Um den TSL2591 Lux-Sensor einzubauen habe ich mir im Baumarkt eine durchsichtige Kunststoffkugel gekauft. Mit einem Zweikomponentenkleber und Dichtmasse wurde die Kugel als Kuppel in die Mitte der Sockitbox eingesetzt. Nach dem Trocknen sollte das ganze wasserdicht sein.

In der Kuppel ist der Lichtsensor auf einem Holzbrett montiert, darunter der nodeMCU sowie eine kleine Powerbank als Stromspeicher. Die Sockitbox ist zusammen mit der Solarzelle auf einem Brett festgeschraubt. Damti auch bei starken Wind die Messeinheit nicht vom Dach geweht wird, habe ich das Brett zusätzlich auf zwei Betonquadratsteinen aus dem Baumarkt festgeschraubt.

Die Software

 Beim Entwickeln von Software habe ich es mir zur Gewohnheit gemacht die Funtion eines Programms erst in kleiner Teilstück zu zerlegen und diese separat zu programmieren und auszutest. Erst am Schluss wird das ganze zu einem Programm zusammengesetzt. Oft lagere ich diese einzelnen Teilaufgaben in Funktionen aus, um möglichst Programmcode auch mehrmals verwenden zu können.

In dem Projekt sind die einzelnen Teilschritte die folgenden:

  • Verbindung mit dem WLAN
  • Azure IOT Hub einrichten
  • Daten an Azure senden
  • Sensordaten erfassen
  • Sensordaten ans Azure senden
  • Powermanagement mit DeepSleep
  • Datenauswertung
  • Grafische Darstellung der Daten