- LiTime Speicher und Akkus         
Ergebnis 1 bis 2 von 2

Thema: Smartmeter über ESP8266 ESP-12E NodeMCU mit Optokopf via RS232 auslesen

  1. #1

    Frage Smartmeter über ESP8266 ESP-12E NodeMCU mit Optokopf via RS232 auslesen

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen!

    Ich verwende zur Programmierung die Arduino IDE und möchte gerne meinen Smartmeter Iskra eHZ-EDL MT681 über die IR-Schnittstelle auslesen.

    Hardware:
    - ESP8266 ESP-12E NodeMCU
    - Optokopf (RS232), RJ9 Stecker entfernt und die Kabel direkt angeklemmt (http://www.mysmartshop.de/co-met-magnet-…he-zaehler.html)
    - 5V 3.3V 4-Kanal Logic Level Converter (https://www.amazon.de/gp/product/B01MTUK…0?ie=UTF8&psc=1)

    Aufbau:

    Optokopf:
    -> Bezugspotential an GND vom NodeMCU
    -> pos. Betriebsspannung an VIN (5V) vom NodeMCU
    -> Tx (Kopf) an Rx (NodeMCU) GPIO 13 über den Logic Level Converter
    -> Rx (Kopf) an Tx (NodeMCU) GPIO 15 über den Logic Level Converter

    Da ich über mir noch Infos über den Serial ausgeben lasse, muss ich immer einen Serial.Swap() durchführen, um auf GPIO 13 und 15 und wieder zurück umzuswitchen ( https://github.com/esp8266/Arduino/blob/master/doc/reference.md#serial ).
    Mein Problem ist, dass manchmal ein paar Daten kommen, manchmal keine und manchmal auch ziemlich viele, die aber leider nicht dem SML Protokoll entsprechen.
    Kann es sein, dass über den 5V VIN des NodeMCU zu wenig Spannung bzw. Strom an den Optokopf (5V Betriebsspannung, 5 mA) geliefert werden? Oder benötige ich sonst noch irgendein Bauteil, was ich übersehen habe (evtl. MAX3323E oder so)?

    Hier mal den Codeschnipsel den ich zum Test geschrieben habe:

    Code:
    int inByte[1024];
    int icount=0;
    
    void setup() {   
        Serial.begin(9600); // initialize serial output  
        
        while (!Serial) {
          delay(100);  
        }
    
        Serial.swap();  
    }
    
    void loop(){   
      delay(500); 
    
      if(Serial.available()) {          
         while (Serial.available()>0){
            inByte[icount] = Serial.read();
            icount++;
         }    
    
        Serial.swap(); 
        delay(500); 
              
        for(int i=0; i<icount; i++){
            Serial.print(inByte[i], HEX);
        }
    
        icount=0;    
        Serial.println("");
        Serial.swap();     
      }
    Wäre sehr froh, wenn mich einer von Euch auf die richtige Fährte bringen könnte.

    Schonmal vielen Dank im Voraus und viele Grüsse aus Rheinland-Pfalz
    Geändert von GrafKoks (07.04.2017 um 13:08 Uhr)

  2. #2
    Guten Abend.
    Dein Projekt entspricht genau meinem Vorhaben, deshalb krame ich es mal wieder hervor. Hast du das Problem lösen können?

    Grüsse Toby
    "Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
    Albert Einstein

Ähnliche Themen

  1. NodeMCU - ESP8266 Starthilfe
    Von SuterB im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 15
    Letzter Beitrag: 13.01.2017, 12:58
  2. NodeMCU und ESP8266 – Einstieg in die Programmierung
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 1
    Letzter Beitrag: 13.01.2017, 09:37
  3. Um was geht es in diesem NodeMCU / ESP8266 Forum?
    Von Frank im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 0
    Letzter Beitrag: 12.01.2017, 14:48
  4. ESP8266/NodeMCU Kommunikationsprobleme
    Von thewulf00 im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 5
    Letzter Beitrag: 30.03.2016, 06:04
  5. Pinnacle IR-Empfänger über RS232 auslesen
    Von Illuminon im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 26.05.2006, 20:06

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test