![]()
![]()
ELV zum Beispiel bietet einen Energiemonitor an. Dieses Gerät
hat nur ein paar Schwachstellen. Erstens überwacht es nur den Stromzähler, was irgendwie zuwenig ist. Und zweitens
überträgt es seine Daten per Funk zu einer Station, wo man die Werte äugisch ablesen kann. Also nix PC. Nix gut.
Fangen wir mal von vorne an. So ein Zähler hat eine sich drehende Scheibe mit einer roten Markierung :
Da man als Stromkunde nicht ans innere herankommt muß man sich etwas anderes überlegen
und bedient sich natürlich der Ideen anderer Leute. Ein Test mit einem IR-Reflexkoppler (SFHxxx) brachte
einen Spannungshub von 2V und hat auf Anhieb funktioniert. So gehts.
Aber wie die Daten vom Stromdealer in den Rechner pumpen ? Kabel verlegen fällt aus. Trommeln ? Unkomfortionös.
Aber vielleicht per Stromkabel. Aus den dunklen 80ern des 20ten Jahrhunderts existiert ein Patent dafür. Aus
dem Firmennamen wurde ein Produktname. X10
120kHz-Burstpakete auf der Netzleitung. Klingt simpel. Von Microchip
existiert eine AppNote mit einer einfachen Schaltung dazu. Meine Schaltung
zum Testen beruht im wesentlichen darauf :
Die Platine arbeitete nur unter mechanischer Spannung, daher der Schraubenzieher und die Spannschrauben.
Am Empfänger tauchen dann auch brav die Daten wieder auf :
Das ganze funktioniert aber nur, solange sich Sender und Empfänger an der selben Steckdose und hinter einem
Trenntrafo befinden. Bereits ohne den Trenntrafo bedämpfen an der Phase angeschlossene Netzfilter diverser
Geräte das Signal so stark, das die Reichweite gleich Null ist. Trotz sorgfältigster Abstimmung der Schwingkreise
kam ich zu dem Ergebniss : vergiss es einfach.
Vielleicht könnte man mit besseren Filtern, höheren Signalpegeln und anderen Techniken bessere Ergebnisse erzielen,
aber irgendwie habe ich die Lust daran verloren. Wer sich damit noch weiter auseinandersetzen möchte, findet
hier den Schaltplan meiner Versuche und noch ein wenig
Hintergrundinfos.
Insgesamt ist das eine gute Gelegenheit, die Sache mit der
Gong-Fernsteuerung noch einmal
anzugehen. Das Ding stammte von Pollin und hatte wahnsinnige 5 Euronen
gekostet.
Gesendet wird auf 433 Mhz und auf Knopfdruck. Der Sender besteht aus einem Dekoder und einer kleinen Huckepackplatine,
die den eigentlichen Sender enthält.
Am Dekoder wird per Lötbrücken ein Bitmuster hergestellt und per AM in den Äther gepumpt.
Der Sender selbst besteht aus ca. 8 Bauteilen. Netterweise sind die Pins gekennzeichnet :
Am Empfänger findet sich das gleiche in Grün und fischt aus dem Datenmüll das Bitmuster wieder raus :
Der Empfänger selbst kommt tatsächlich mit nur einem Transistor aus :
Offenbar handelt es sich um einen primitives Pendel-Audion. Billiger geht es wirklich nicht mehr.
Nach einigen Versuchen kam ich dann zu vielversprechenden Ergebnissen. Als Modulationsgrad gehen nur 0 und 100%, also nur An und Aus.
Am Modulationseingang muß Wechselspannung anliegen, wobei ein ein Pegel von 10V, über einen Kondensator eingekoppelt, ausreicht.
Der Pendelempfänger benötigt laufende Signalwechsel um Einzuschwingen. Das macht es leider etwas Schwierig, einfach
einen UART anzuklemmen.
Für einen Reichweitentest habe ich mal ein paar Kilohertz auf den Eingang gegeben und die Spule am Sender durch eine
Lambda/4-Antenne von 16cm ersetzt. Die Antenne am Empfänger hatte schon die passende Länge. Mitsamt Sender und Akku
bin ich dann durch das Haus geschlichen. Das Signal am Sender blieb im ganzen Haus erstaunlich stabil :
Insgesamt scheint der China-Schrott für meine Zwecke geeignet zu sein. Später fiel mir dann noch auf, das das Aussenthermometer
offensichtlich auch auf 433 MHz sendet und von meinen Versuchen kaltgestellt wurde. Dauersenden fällt also flach.
Wahrscheinlich bekomme ich dann noch nicht einmal mehr das Auto auf.
Also kann jetzt der Versuch einer Datenübertragung gemacht werden. 2 Controller, einer als Sender und einer als Empfänger,
welcher die Daten über einen zweiten UART an einen PC weiterreicht.
Der Sender sendet forwährend den Text "FINGER". Direkt verbunden funktioniert das auch wunderbar :
Da der Pendelempfänger einen ständigen Signalwechsel benötigt um empfangsbereit zu bleiben, habe ich die Sendung im
Manchester-Code verpackt, um dies zu gewährleisten. Die Geschwindigkeit liegt bei 1200
Baud, so das ein nutzbarer Datenstrom von 600 BPS zustandekommen sollte.
Nach einiger Tüftelei kam ich darauf, das die Billiggurke verdammt lange braucht um Einzuschwingen, und zum anderen
kaum Signalpausen unter 10ms verdaut und dann sofort wieder in Starre verfällt. GRMPF.
Also den Sender so umgehäkelt, das er eine Präambel von 6 Bytes mit konstantem Bitwechsel sendet (0x55). Der
Empfänger schwingt dann ca. ab dem dritten Byte zuverlässig ein :
Das Ergebniss ist : ABSOLUTE SCHEISSE ! Die Empfangsroutine sieht etwa so aus :
Das Teil schafft etwa 50% Fehler bei jedem zehnten Empfang, der Rest weist 100% Fehler auf. Insgesamt also 100%
unbrauchbar. Genau überlegt kann das auch nur schwer zuverlässig funktionieren. Wenn der Empfänger in der Mitte
eines Bytes einschwingt oder schon vorher irgendetwas anderes empfängt, wird er nicht mehr korrekt einrasten am
Startbit. Damit ist der Rest der Übertragung so gut wie verloren.
Warum müssen so simple Dinge immer in einem tierischen Gefrickel ausarten ???
Na ja, muß ich mir das Signal wohl mal genauer zu Gemüte führen. Hier kann man sehen, dass der Empfänger
nach etwa 10 Signalwechseln stabil einschwingt. Oben ist das gesendete, unten das empfangene Signal. Alles vorher
ist komplett Gulasch :
Nach einer Präambel von mehreren gleichmaßigen Bitwechseln (0x55) bleibt der Empfänger bei einer Pause von maximal
5ms stabil (Bildmitte). Dann wird die Information gesendet. In diesem Fall ist das der Text "Finger" in nicht kodierter Form.
Hier sind mehrere Datenpakete in einem Abstand von 380ms zu sehen und was der Empfänger zwischendurch so treibt. Schätze,
hier empfange ich alle Rechner der Umgebung, Funkthermometer, Autofernbedienungen und was weiss ich noch alles.
So wie ich die Sache sehe, muß ich den UART auf diese kurze Pause von 5ms synchronisieren. An sich kein Problem. Nur
geht mir das erste Startbit verloren, wenn der UART nach der Messung eingeschaltet wird. Entweder muß der UART nach dem
ersten Nutzbyte eingeschaltet werden, oder ich muß diesen in Software nachbauen.
Also als Erstes mal der Versuch, die Pause im Datenstrom zu erwischen :
Ich bleibe bei 1200 Baud, also hat ein Bit eine Dauer von 833us. das lässt sich noch bequem per Timer realisieren und
damit ein UART in Software zusammenbauen.
Was wollte ich noch machen ? Jetzt bloß nicht das Ziel aus den Augen verlieren. Ach ja : Zähler überwachen.
Also weiter im Text.
Das Problem liegt jetzt eher darin, das ich vor zwei Rechner, zwei Compilern, 2 Brennern und 2 Schaltungen sitze und so langsam den
Überblick verliere, was ich hier eigentlich mache. Bitfrickelei auf Fußpilzebene.
Wenn das so weitergeht und ich nur spätabends
zum Basteln komme (GÄÄÄÄHN) bin ich bald reif für die Klapsmühle.
Etliche Abende später war es dann soweit, halbwegs stabile Datenübertragung, mit Prüfsummen bewehrt. Endlich.
Warum war das eigentlich so schwer ? Anders herum gefragt : warum sind diese Türklingeln eigentlich so
unzuverlässig ?
Egal. Die Schaltung steht im großen und ganzen, die übrige Software kommt jetzt nach und nach und ich habe den
Kopf wieder frei, um mir ein paar Gedanken über Sensorik zu machen. Warum sollte man nur Zählerstände überwachen ?
Für schmales Geld könnte man noch ein paar Dinge mehr aufzeichnen, z.B. Umweltdaten wie Licht, Temperaturen und ähnlich
sinnfreies Zeug. Oder man schaut sich an, was der Blechkasten an der Wand eigentlich so mit den ganzen Kubikmetern
der Reste kontinentaler Dinosaurierkacke so anstellt und die schöne Energie eigentlich lässt.
Oder ich schliesse mich vielleicht doch alternativen Umweltschutzkonzepten an :
Damit die Verkabelung später in überschaubarem Rahmen bleibt wollte ich auf I2C zurückgreifen. Da bietet
sich natürlich der Standardsensor LM75 an.
Er kommt mal testweise in ein kleines Weissblechgehäuse und wird mit einer Kombination aus 2K-Kleber und
Wärmeleitpaste am Blech befestigt :
Später kann das Teil dann mit Epoxydharz zugegloddert werden. Für die Optik schmeisse ich immer noch eine
Priese schwarzen Toner mit rein, dann sieht der Verguss etwas professioneller aus (vorausgesetzt die Pampe
läuft nicht vorher aus irgendeinem Loch wieder raus). Dieses erste Modell ist auch schon mit einem
Kurzschluss im Mülleimer gelandet. Grrrr.
Dieses Teil wird die rote Markierung auf der Scheibe des Stromzählers detektieren. Der IR-Reflexkoppler
wird über einen Komperator auf Linie getrimmt und mit einem Portexpander wird das Schätzchen busfähig :
Ein freundlicher Zeitgenosse hat mir ein paar Gehäuse gespendet, unter anderem auch welche mit Displayausschnitt
und Tastatur. Da kommt der Kram jetzt rein :
Unten sitzt ein Schaltnetzteil, was die Versorgung übernimmt (endlich werde ich die überlagerten Platinenreste
als Befestigungsmaterial los) und eine Etage höher werkelt ein PIC-Modul.
Unten waren gleich Verschraubungen für die Kabel dran, oben rein kommt noch der 433MHz-Kram.
So langsam wird es Zeit, die Sensorik auf die Praxis anzupassen. Nachdem ich ärgerlichweise feststellen musste,
das die Glasscheibe am Stromzähler die Detektion stark beeinflusst, musste erst einmal ein praxisnaher Zustand auf meinem
Tisch hergestellt werden :
Dem Bakelit des Zählerkastens bin ich mit Akkuschrauber und Feile zuleibe gerückt, so daß ein kleiner Motor mir
jetzt höchste Verbräuche über einen Riemenantrieb bescheren kann. Es hat sich gezeigt, das der Sensor ziemlich genau
auf der Scheibe positioniert werden muß. Erst dann kann die Referenzspannung eingestellt werden. Also zurück ans
Reißbrett und den Sensor in ein noch zu frickelndes Gehäuse gehäkelt.
Bis mir die dafür passenden Teile über den Weg stolpern kann ich mir ein paar Gedanken über das Anzapfen der
Wasseruhr machen. Meine hat ein kleines, gezacktes Rädchen, welches im Wasser schwimmt. Das müsste eigentlich
per Laser und Phototdiode angepeilt werden können. Damit wäre ein litergenauer Verbrauchsmesser machbar ("Ey, du hast schon
wieder 5 Liter zu viel geduscht! Für diese Woche ist Schluss!").
Dies hier ist eine Laserdiode (ausgeschlachtet aus einem Barcodescanner) kombiniert mit einer alten Photodiode.
Das Prinzip steckt in jedem CD-Player. Der Laserstrahl wird nur bei einer Höhe im richtigen Winkel auf die
Photodiode gelenkt. Kurbelt sich das kleine Rädchen in der Wasseruhr drunter weg wird der Strahl abgelenkt
und aus der Frequenz kann direkt auf die Drehzahl geschlossen werden :
Der rote Laser hat den ebenso simplen wie entscheidenden Vorteil, das man den Strahlverlauf sichtbar machen kann.
Bei einem Infrarotlaser weiss man (zumindest meiner Erfahrung nach) irgendwie nie so genau, wo das Moped nun
hinleuchtet.
Die Sensorik für Gas- und Stromzähler hat jetzt mittels 2K-Kleber und Fädeldraht seine finale Heimat in einem
kleinen Gehäuse gefunden :
Das Ding kann jetzt mittels Klebeband auf der Glasscheibe sauber plaziert werden. Die Klinkenbuchse erlaubt den
Anschluss eines Multimeters, um durch Ausrichtung größtmöglichen Störspannungsabstand einstellen zu können.
Für die Temperatursensoren musste ich etwas besonderes Frickeln. Da es die kleinen Scheisserchen nur im SO8-Gehäuse gibt und
die aktive Fläche oben liegt, müssen die Dinger irgendwie ein wenig aus ihrer Behausung herausragen. Eine U-Schiene
aus Plasitk, verschlossen mit Silikon und angefädelten ICs auf einem Stück Platinenrest brachte die Lösung :
Die Schienen werden anschliessend mit Vergussmasse aufgefüllt. Als besonderen Gag hatte ich von Peters
Wepuran besorgt (0,5 kg gibt es als kostenloses Muster). Mit Toner geschwärzt und mit Thixotropiermittel angedickt
habe ich die Sensoren lackiert. Das Ergbeniss war, das die Pampe erst nach 3 Tagen halbwegs ausgeärtet war und die Sensoren jetzt
absolut Scheisse aussehen. Aber da die sowieso alle im Heizungsraum verbastelt werden, bleiben die Dinger jetzt,
wie sie sind.
Zwischenzeitlich habe ich noch Informationen zu
den Dekoderchips in den Gongs bekommen. Offenbar können die noch ein bischen mehr, wie ihr oben nachlesen könnt.
- Fortsetzung folgt -
Die Idee begann eigentlich (wie so oft) ganz klein und niedlich. Energie wird immer unpreiswerter und deshalb
könnte es interessant werden, seinen Konsum ein wenig zu begutachten. Da es völlig induskutabel ist, laufend
zu den Zählern zu wetzen und den Sperrmüll davor wegzubaggern und man so auch nicht an die anderen relevanten
Werte wie z.B. die Aussentemperatur oder andere Klamotten rankommt, muß irgendeine Lösung her.




![]()






![]()



Der Empfänger sieht das allerdings völlig anders. Oben sieht man das gesendete Signal, unten den Ausgang vom
Empfänger :



















