#include // Wire Bibliothek einbinden #include // LiquidCrystal_I2C Bibliothek einbinden LiquidCrystal_I2C lcd(0x3E, 16, 2); // Display angaben: 16 Zeichen - 2 Zeilen -HEX-Adresse 0x3E #include // Damit die 433 MhZ Funkbefehle empfangen werden können RCSwitch mySwitch = RCSwitch(); #define DATA_PIN 2 // Datapin des Funkempfängers an PIN 2 void setup() { lcd.init(); // Im Setup wird das LCD gestartet lcd.backlight(); // Hintergrundbeleuchtung einschalten (lcd.noBacklight(); schaltet die Beleuchtung aus) pinMode(DATA_PIN, INPUT); // Pin 2 wird Eingang Serial.begin(9600); // Ausgabe Sereiell für den Monitor mySwitch.enableReceive(0); // Receiver an Digital 2 } static unsigned long count = 0; static unsigned long Merker1 = 0; static unsigned long Merker2 = 0; float Merker3 = 0.000; void loop() { if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (value == 0) { Serial.print("Unknown encoding"); } else { Serial.print("Received "); Serial.print( mySwitch.getReceivedValue() ); Serial.print(" / "); Serial.print( mySwitch.getReceivedBitlength() ); Serial.print("bit "); Serial.print("Protocol: "); Serial.println( mySwitch.getReceivedProtocol() ); } if (mySwitch.getReceivedValue() == 12345678) // Funkcode vom Gaszähler { Merker1 = 1; Serial.print("OK"); Merker2 = Merker2+1; delay (1000); } mySwitch.resetAvailable(); count = 0; } else { if (++count == 0) Serial.println("no activity"); } if (Merker1 >= 1) { Merker1 = 0; Serial.print(Merker2); Merker3=(Merker2*0.9702*9.807)/100; // ein Impuls = 0,01 m³, Umrechnung auf kWh lcd.setCursor(0, 0);//Hier wird die Position des ersten Zeichens festgelegt. In diesem Fall bedeutet (0, 0) das erste Zeichen in der ersten Zeile. lcd.print("Gas : "); lcd.print(Merker3); lcd.print(" kWh"); } }