Spannung 0-10V messen mit einem ESP8266

Begonnen von ritter_runkel, 05 November 2019, 21:35:19

Vorheriges Thema - Nächstes Thema

ritter_runkel

Hallo Gemeinde,
ich möchte eine Spannung messen 0-10V und diese per ESP8266 und MQTT ins FHEM bringen. Aktuell passiert das mit einem 1.wire Multisensor. Der ist allerdings problematisch in der Übertragung und soll abgelöst werden.
Knackpunkt aus meiner Sicht ist, dass die Spannungsversorgung des ESP unabhängig von der zu messenden Spannung sein soll (keine identische Masse). Weiterhin habe ich keine Ahnung ob am Messpunkt mit der Messpannung ein Strom fließt.
Ich habe es mit einem INA219 versucht. Irgendwie bin ich zu unfähig den INA219 zu schalten.

Hat jemand eine bessere Idee?

Lieben Dank vorab.
//Erik
FHEM auf Raspberry Pi 2B
2x eService 1WireHu, 7x DS1820, 2x Multisensoren Wiregate AMS 2.11 für Temperatur DS1820, relativer Luftfeuchte HIH4031, zwei IO-Ports DS2438, Analog-Eingang 0-10 V (bzw. 0-20 mA) DS2413
FritzDECT; HUE; 5xFibaro RollerShutter, Rauchmelder

Gisbert

#1
Hallo Eric,

kannst du dein Projekt im Detail beschreiben? Vielleicht ist dann eine andere Lösung sinnvoller bzw. einfacher als die Messung einer Spannung.

Ich hatte das Problem, dass ich eine Änderung der Spannung von 22 auf 18VDC registrieren wollte. Eine Spannungsmessung wäre sicher eine Lösung gewesen. Ich hab's mit einer 20V-Z-Diode in Kombination mit einem Optokoppler gelöst. An einem GPIO sehe ich dann, ob high (2V) oder low (0V) anliegt. Das ganze funktioniert sehr zuverlässig.

Viele​ Grüße​ Gisbert​

PS: Möglicherweise ist der Thread im Unterforum ESP8266 besser aufgehoben, da es sich bei deinem Anliegen in erster Linie um Hardware handelt.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

ritter_runkel

Hallo Gisbert @ Gemeinde,
hier ein paar mehr Details zur Infrastruktur die vielleicht helfen das Problem besser zu verstehen.

Quelle der Spannung ist ein Ultraschall Pegel Messer von Projet, die über die SPS-Box in eine Spannung 0...10V gewandelt wird (http://u-tronic.de/SPS-Box-II).

Aktuell greife ich diese Spannung mit einem 1wire Multisensor (https://shop.wiregate.de/sensoren-fuhler/nicht-mehr-lieferbar/1-wire-adv-multisensor-ams-ths-2io-a10-211-brk.html) was auch lange gut funktioniert.
nur die Übertragung hakelt irgendwie.
Deshalb die Frage nach Hilfe.

Die neue Lösung muss eine Spannung 0...10V über den Spannungsbereich komplett messen können.
Der Sensor sollte an einem ESP8266 mit ESPEasy (ist für mich einfachsten, weil ich nicht kompilieren möchte) arbeiten können --> deswegen die Wahl auf den INA219

PS:
Wie ich den Threat in das ESP8266 Unterforum selbst schieben kann, hab ich nicht gefunden.
Mach ich aber gern, macht ja auch Sinn  :o
FHEM auf Raspberry Pi 2B
2x eService 1WireHu, 7x DS1820, 2x Multisensoren Wiregate AMS 2.11 für Temperatur DS1820, relativer Luftfeuchte HIH4031, zwei IO-Ports DS2438, Analog-Eingang 0-10 V (bzw. 0-20 mA) DS2413
FritzDECT; HUE; 5xFibaro RollerShutter, Rauchmelder

Wuppi68

Du kannst ja an die SPS Box auch ein Drehspulinstrument anschließen, also kannst Du auch die Masse mit benutzen und dann einfach via Spannungsteiler im Verhältnis von 1:10 die 10V auf 1V linear reduzieren und an einen AD Eingang vom ESP legen. So aus dem Bauch raus, würde ich einen Gesamtwiderstand von ca. 10-20kR nehmen.
Wenn Du den 10V als Ausgang nicht über den traust - der ESP misst von 0-1V) dann kannst Du das Widerstandsverhältnis auch auf 1:11 oder auch bis 1:15 erhöhen und ggfls. einfach 2 mal 1N4148 in Reihe vom AD Input gegen Masse schalten, damit dort keine Spannungen über ~1,4V anliegen können.
Dann musst Du nur eine Tabelle/Formel bauen, welcher AD Wert die richtige Entfernung ist. Also in der Summe 4 mal Cent Bauteile + deinen ESP mit Umgebung
FHEM unter Proxmox als VM

Gisbert

Zitat von: Wuppi68 am 06 November 2019, 22:13:38
Du kannst ja an die SPS Box auch ein Drehspulinstrument anschließen, also kannst Du auch die Masse mit benutzen und dann einfach via Spannungsteiler im Verhältnis von 1:10 die 10V auf 1V linear reduzieren und an einen AD Eingang vom ESP legen. So aus dem Bauch raus, würde ich einen Gesamtwiderstand von ca. 10-20kR nehmen.
Wenn Du den 10V als Ausgang nicht über den traust - der ESP misst von 0-1V) dann kannst Du das Widerstandsverhältnis auch auf 1:11 oder auch bis 1:15 erhöhen und ggfls. einfach 2 mal 1N4148 in Reihe vom AD Input gegen Masse schalten, damit dort keine Spannungen über ~1,4V anliegen können.
Dann musst Du nur eine Tabelle/Formel bauen, welcher AD Wert die richtige Entfernung ist. Also in der Summe 4 mal Cent Bauteile + deinen ESP mit Umgebung
Spannungsteiler siehe hier: https://www.peacesoftware.de/einigewerte/spannungsteiler.html
R1 = 10 kOhm und R2 = 1.1 kOhm sollten gehen. Es wird zwar elektrische Energie in Wärme umgewandelt, aber es dürfte wohl kaum ins Gewicht fallen.

Ist der analoge Eingang beim ESP auf 1V beschränkt? Das ist für mich überraschend, ich hatte aber auch noch keine Schaltung dieser Art.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Frank_Huber

Der esp selbst hat max 1v in 1024 Schritten (4096 beim esp32)
Module wie nodemcu oder wemos haben schon nen 1 zu 3 Teiler und können 3v am adc Eingang.

Gesendet von meinem S60 mit Tapatalk


sash.sc

Da musst du auf jedenfall mit nem Spannungsteiler arbeiten. Espeasy auf den wemos bzw esp12 und dann sollte es klappen

Gesendet von meinem MI 9 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

ritter_runkel

Lieben Dank Euch Allen!!

Ich schau dann mal, was die Krabbelkiste an Widerständen so hergibt und bring mal die Spannung direkt an den WEMOS.
Bisher hab ich diese Variante ausgeschlossen, weil ich gelesen hatte, dass der AD Eingang des WEMOS sehr durch das WLAN gestört werden soll....
Mal sehn.

Beste Grüße aus Leipzig.
Erik
FHEM auf Raspberry Pi 2B
2x eService 1WireHu, 7x DS1820, 2x Multisensoren Wiregate AMS 2.11 für Temperatur DS1820, relativer Luftfeuchte HIH4031, zwei IO-Ports DS2438, Analog-Eingang 0-10 V (bzw. 0-20 mA) DS2413
FritzDECT; HUE; 5xFibaro RollerShutter, Rauchmelder