Smartmeter auslesen

Gast #3683969
Hallo,

ich versuche meinen Smartmeter auszulesen. Dazu habe ich diese Schaltung

http://gonium.net/blog/2010/10/24/smart-meter-datenkabel-selbst-gemacht--libehz/

mit dem BPW82 nachgebaut. Allerdings ist der R3 bei mit ein 5.5k statt 
4.7k wie in der Schaltung. Schaltung wird mit 3.3v versorgt und es hängt 
ein Arduino dran. Ganz simples Programm:
1
String inputString = ""; 
2
boolean stringComplete = false;
3

4
// the setup routine runs once when you press reset:
5
void setup() {  
6
  Serial.begin(9600);
7
  inputString.reserve(200);
8

9
 Serial.println("boot....");
10

11
}
12

13
void serialEvent() {
14
  while (Serial.available()) {
15
    char inChar = (char)Serial.read(); 
16
    inputString += inChar;
17
    if (inChar == '\n') {
18
      stringComplete = true;
19
    } 
20
  }
21
}
22

23
void loop() {
24
  if(stringComplete) {    
25
    Serial.println(inputString);                
26
    inputString = "";
27
    stringComplete = false;
28
  }
29
}

Ich kann zwar Daten empfangen, allerdings nur kryptische Zeichen.

Kann mir jemand helfen?

Danke!
Gast #3683997
Hallo Filth,

>Mit einem USB-TTL-Adapter kann man sich nun den Klartext in einer Terminal 
>anschauen. Ich verwende dafür einen Kermit mit folgenden Einstellungen (in der 
>.kermrc, 9600 7N1)

steht ein bisschen im Gegensatz zu :

>Serial.begin(9600);
Mit dem Standard 8N1

Probier mal: Serial.begin(9600, SERIAL_7N1);

Liebe Grüße

Helfer
Gast #3684036
Oh das hab ich überlesen - angepasst, in hterm auf 9600 7N1 umgestellt - 
leider trotzdem wie vorher.

Das "boot" kommt noch lesbar, danach nur noch Zeichensalat
Gast #3684040
Hallo Filth,
mit was ließt du nun die Daten aus? Mit dem obigen Arduino Programm (und 
nur einer seriellen Schnittstelle) oder HTERM ohne Arduino?


Gruß
Gast #3684042
Hallo Helfer,

mein Aufbau ist wie folgt:
Die obere Schaltung hängt am RX vom Arduino. Der Arduino per USB am 
Rechner, dort im hterm sehe ich Ausgabe von meinem Arduino.

Gruß
Gast #3684045
Bei den meisten Arduino Boards liest du die Serielle Schnittstelle über 
den USB Anschluss aus. Somit schreibt der Arduino gleichzeitig mit dem 
Smartmeter auf die Serielle Schnittstelle und du empfängst natürlich nur 
Blödsinn.
Versuche doch erstmal nur, wie auf der Projektseite beschrieben, das 
Smartmeter nur mit einem TTL-USB Wandler auszulesen. Wenn du damit die 
Funktion deines Aufbaus getestet, kannst du die Auswertung mittels eines 
Aurduinos übernehmen.

Gruß
Gast #3684081
Hmm gerade getestet: direkt an einem TTL-USB Wandler kommt nichts. Am 
Arduino zusammen mit dem Blinken der IR-LED (durch Handycam gesehen) 
kommt der Datensalat an.

Bist du sicher, dass der Arduino gleichzeitig mit dem Smartmeter 
schreibt? Die Schaltung der IR LED hängt ja am RX Pin des Arduino und 
dieser schreibt auf dem TX Pin (ist ein arduino micro, also ohne USB 
Port)
Gast #3684084
Achso, entschuldige, da habe ich gerade einen Knoten im Kopf gehabt.

So wie du es beschreibst ist es schon ok. Hast du auch die 7N1 
Einstellung im Arduino geändert?
Gast #3684088
Ja, das ist wirksam geändert - sehe ich daran, dass ohne passende 7N1 
Einstellung im Hterm das "boot" nicht lesbar ankommt.

Auf der Seite von der Schaltung steht, dass diese für 5v entworfen ist, 
kann das das Problem sein? Ich betreibe das Ganze ja mit 3.3v.

Ansonsten ist nur noch der R3 anders - ich habe 5.5k statt 4.7k, evtl 
hier das Problem?
#3684092
Filth schrieb:

> Ansonsten ist nur noch der R3 anders - ich habe 5.5k statt 4.7k, evtl
> hier das Problem?

Du solltest das Signal direkt am Eingang des Arduinos messen;
am besten mit einem Oszi. Wenn das Signal dort schon schlecht
ist, kann es durch den µC nicht besser werden. Übrigens, 5,5kOhm
Widerstände gibt es normalerweise nicht; vielleicht ist dort ein
völlig falscher Wert verbaut?
Gruss
Harald
Gast #3684098
Wenn "boot" ankommt und dies vom Smartmeter ist, läuft die 
Kommunikation! Nur das der Inhalt für Neugierige wohl verschlüsselt ist! 
Immerhin soll ja nur der Energieversorger wissen wann Du deinen Toast 
machst und nicht Du selber, weil Du ja keinen Nutzen von deinem eigenen 
Bewegungsprofil hast (PS: mein Energieversorger will deshalb die Anzahl 
der Mitbewohner wissen obwohl es nur ein Konto gibt ;-) ) Ich habe 
sicherheisthalber mal 10 Leute angegeben.
Gast #3684100
Hallo Harald,

hmm mein Multimeter zeigt mir 5.56kOhm an. Falsch?
Wie kann ich das Signal ohne Oszi messen? Habe nämlich leider keinen zur 
Verfügung.

Gruß
Alex
Gast #3684160
Ja, das "boot" kommt von mir selbt.

Habe R3 probehalber mal durch einen 2.6k Widerstand ersetzt, jetzt sieht 
man den Datensalat auch ohne Arduino, also direkt am TTL-USB Wandler. 
Aber immernoch keine lesbaren Daten
Persönliche Seite #3684176
Filth schrieb:
> Habe R3 probehalber mal durch einen 2.6k Widerstand ersetzt, jetzt sieht
> man den Datensalat auch ohne Arduino, also direkt am TTL-USB Wandler.
> Aber immernoch keine lesbaren Daten

Das spricht dafür, daß die Schaltung nicht sonderlich gut für 3.3V 
geeignet ist.

Unter 
http://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-ttl-ausgang 
findest Du eine Schaltung, die wohl auch für 3,3V geeignet ist.
Gast #3684191
Eigentlich kann man da auch fast eine Regelmäßigkeit erkennen. Jeder von 
den Blöcken enthält einen ähnlichen String:

<22>bww<7>
<22>cww<7>
<22>eww<7>

usw.

Warum fragst du?
Gast #3684261
Hab alle möglichen Konstellationen was die Baudrate angeht 
durchprobiert, ohne Erfolg. Man sieht wiederkehrende Zeichen, aber 
lesbar ist das Ganze nicht.
Persönliche Seite #3684287
Dann wird es schwierig mit derm Remote-Helfen.

Hier nochmal meine Tipps:

1. Laß den Ardunio erstmal weg
2. Finde heraus, welches die tatsächlichen Übertragungsparameter sind 
(Hersteller)
3. Schau Dir die Pegel an (Oszi)

Mehr können wir hier wohl nicht für Dich tun.

Einen Tipp habe ich noch: Eventuell ist noch der Pegel des TTL-Signals 
invertiert. Du kannst mal probieren, ob eine Invertierung des Signals 
Dich weiterbringt.

Ansonsten bleibt mir nur viel Erfolg zu wünschen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.