Spannungsmessung mit dem ESP 8266 (Nodemcu oder Witty) und ESP-Easy und Auswertung mit Fhem

fhemWieder eine Überschrift mit gefühlt 50 Abkürzungen. Doch der Reihe nach. Ich habe hier noch einige NodeMCUs und Witty-Boards (derzeitig mein Favorit) liegen. Ich möchte meine kleine Solar-Insellösung fortlaufend die Spannung am Akku messen. Ich hatte testweise ein Voltmeter / Amperemeter-Modul angeschlossen (amazon.de -> Vovotrade®Doppel-LED DC-Amperemeter-Voltmeter Digitale LCD-Anzeige Amp Volt-Messinstrument 2A 100V
), doch laufend auf das Modul zu schauen, habe ich irgendwie keine Lust drauf. Ideal wäre doch eine fortlaufende Messung mit einem Plot in Fhem.

Gesagt getan: Ich habe hier ein Witty-Board genommen (ein NodeMCU geht auch). Beim Witty-Board muss man den LDR und den Widerstand entfernen, der den Spannungsteiler beinhaltet. Beim NodeMCU kommt man direkt am ADC-Pin dran. Wichtig: Der A/D Wandler beim EPS-8266 darf nur mit 1 V belastet werden, deshalb muss man sich einen Spannungsteiler aus Widerständen bauen. Alternativ kann man auch ein Spannungs-/ Strommesser als Modul kaufen (-> amazon: 5xStandard Voltage Sensor Modul Test Electronic Bricks fuer Robot Arduino
). Habe ich auch gemacht, ist aber noch auf dem Versandweg.

Zurück zum Spannungsteiler: Für meine zu messende Spannung, welche ich in meinem Fall von 0 bis 15 V dimensioniert habe, habe ich ein Potentiometer und einen Festwiderstand von 10 kOhm genommen. Dann habe ich mein Spannungsquelle auf 15 V gesetzt und am Poti so lange gedreht, bis ich auf 1 V kam. D. h. die maximale Spannung, welche am ADC anliegen darf. Das wird später der Wert 1024 am ADC sein. Verbunden wird das Ganze mit 15 V – Poti – ADC (Board) – 10 kOhm – Masse.

witty board mit ADC beschaltung

Softwaremässig sieht die Sache so aus: Man flasht zunächst das Witty-Board oder den NodeMCU mit EasyESP (-> Infos in meinem Blog-Beitrag hier) und legt folgende Konfiguration im Menü fest:

batteriesolar fhem

Dann wählt man bei BattSolar die Edit-Schaltfläche und trägt in eine IndexID ein und fügt bei BattSolar ein: %value%*0.014570312  .  (15 V / 1024). Damit wird in den Values sofort die richtige Spannung übergeben. Bei mir wich die Spannung ungefähr um 0.2 V ab, ist aber noch Beta-Phase.

In Fhem kann man dann via MQTT (danke nochmal an das Fhem Forum) die Werte jede Minute abfragen
Wertewitty

In Fhem sieht das dann so aus:

# Device Batteriespannung am Solar-Regler Batterie-Ausgang
# Easy ESP Software
define WittyBoard MQTT_DEVICE WittyBoard
attr WittyBoard IODev MyBroker
attr WittyBoard autoSubscribeReadings /newdevice/#
attr WittyBoard devStateIcon 1:10px-kreis-rot 0:10px-kreis-gruen
attr WittyBoard publishSet_Blau 1 0 /newdevice/gpio/13
attr WittyBoard publishSet_Gruen 1 0 /newdevice/gpio/12
attr WittyBoard publishSet_Rot 1 0 /newdevice/gpio/15
attr WittyBoard room MQTT
attr WittyBoard stateFormat state
attr WittyBoard subscribeReading_ /newdevice/gpio/13
attr WittyBoard subscribeReading_BattSolar /newdevice/BattSolar
attr WittyBoard subscribeReading_RSSI /newdevice/RSSI
attr WittyBoard subscribeReading_Taster /newdevice/Taster
attr WittyBoard subscribeReading_Uptime /newdevice/Uptime
attr WittyBoard subscribeReading_blau /newdevice/Blau
attr WittyBoard subscribeReading_gruen /newdevice/Gruen
attr WittyBoard subscribeReading_rot /newdevice/Rot
define FileLog_WittyBoard FileLog ./log/WittyBoard-%Y.log WittyBoard:BattSolar:.*

define SVG_FileLog_WittyBoard_1 SVG FileLog_WittyBoard:SVG_FileLog_WittyBoard_1:CURRENT
attr SVG_FileLog_WittyBoard_1 label "Solarpanel 10W Akkuspannung"
attr SVG_FileLog_WittyBoard_1 room Stromverbrauch

define WittyBoard_taste notify WittyBoard:Taster.* {\
system ("wget -q -O - 'http://192.168.178.45/control?cmd=GPIO,13,0'");;\
system ("wget -q -O - 'http://192.168.178.45/control?cmd=GPIO,15,0'");;\
system ("wget -q -O - 'http://192.168.178.45/control?cmd=GPIO,12,0'");;\
if ( (ReadingsVal("WittyBoard", "Taster", "0")) == 1.00 ){\
system ("wget -q -O - 'http://192.168.178.45/control?cmd=GPIO,13,1'");;\
}\
else\
{\
system ("wget -q -O - 'http://192.168.178.45/control?cmd=GPIO,13,0'");;\
}\
}

Bemerkung: ich habe hier im Source-Code noch manches Spielzeug mit hinzu programmiert,

Fazit: Das Modul läuft mittlerweile einige Wochen stabil, hier ein Plot für Fhem über einen Tag. Natürlich kann man mit dem Modul auch andere Spannungen messen. Dabei sind natürlich die Spannungsteiler Widerstände wieder neu zu berechnen. Also erst mit dem abgeklemmten NodeMCU oder Witty-Board messen, das bei angelegter maximaler  Spannung am Spannungsteiler 1 V herauskommt und dann die Widerstände variieren.
Spannungsverlauf mit Fhem geplottet

[sgmb id=“1″]

Dieser Beitrag wurde unter Fhem-Hausautomation abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Responses to Spannungsmessung mit dem ESP 8266 (Nodemcu oder Witty) und ESP-Easy und Auswertung mit Fhem

  1. Jens sagt:

    Hallo,
    welchen Wiederstand muss ich beim Witty noch zusätzlich zm LDR entfernen?
    Danke

    Gruss
    Jens

  2. Robin sagt:

    Hallo Christoph,
    muss ich nachschauen. Projekt liegt derzeitig in der Schublade, aber ich plane es in nächster Zeit wiederzubeleben.

    LG
    /robin

  3. Christoph Bennemann sagt:

    Hallo,

    hast Du mal einen Schaltplan ? Auf welchem Pin wird gemessen. Welchen Wert hat der Poti. Das sollte doch ein Hochohmiger Spannungsteiler sein – 10k = 1V also müsste das Poti 140k haben – ist das richtig so ? Oder habe ich da einen Denkfehler?

    Gruß Christoph

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.