Den Testaufbau vom Beitrag „Arduino PCF8574 lesen und schreiben“ haben wir erweitert und den I2C-Funksender für 433 MHz Funksteckdosen (I2HFS) angeschlossen.
Das Beispiel soll zeigen wie leicht es ist mit dem I2HFS-Sendemodul Funksteckdosen zu schalten.
Hardware
das Funkmodul ist wie im Bild an einem Arduino-UNO angeschlossen.
- ws = 5V-Versorgung an Pin +5v
- bn = Masse an Pin GND
- gn = SDA an Pin A4
- ge = SCL an Pin A5
Verwendet werden die Pollin Funksteckdosen mit folgenden DIP-Schalter Einstellungen
Steckdose A
Steckdose B
Steckdose C
Protokoll
Auf dem I2HFS-Modul ist am DIP-Schalter das Protokoll „1“ für die Pollin Steckdosen eingestellt.
An dieser Stelle muss im Programm nichts mehr gemacht werden.
Systemcode
Der Systemcode muss in der Startroutine void loop() zum Funkmodul geschickt werden.
// Systemcode in Register 0 eintragen Wire.beginTransmission(I2C_FS_ADDR); // Start Übertragung zum Funksender Wire.write(0); // Register 0 Wire.write(0); // DIP1 = "ON" = 0 Wire.write(0); // DIP2 = "ON" = 0 Wire.write(0); // DIP3 = "ON" = 0 Wire.write(15); // DIP4 = "OFF" = 15 = 0F Wire.write(15); // DIP5 = "OFF" = 15 = 0F Wire.endTransmission(); // Ende
Schaltbefehle
Die Steckdose A schaltet EIN wenn in das Register 1 eine 129 eingetragen wird
Wire.beginTransmission(I2C_FS_ADDR); // Start Übertragung zum Funksender Wire.write(1); // Register 1 Wire.write(129); // Steckdose A EIN Wire.endTransmission(); // Ende
Die Steckdose A schaltet AUS wenn in das Register 1 eine 129 eingetragen wird
Wire.beginTransmission(I2C_FS_ADDR); // Start Übertragung zum Funksender Wire.write(1); // Register 1 Wire.write(1); // Steckdose A EIN Wire.endTransmission(); // Ende
Demo-Program
Das Demo-Programm habe ich so aufgebaut, dass die Steckdose im Serial-Monitor-Fenster eingegeben werden kann.
Viel Spaß beim Testen 🙂
/* ============================================== Test I2C-Funksender 433 MHz ============================================== Welche Steckdose schalten soll wird über die serielle Schnittstelle vorgegeben 1,1 schaltet Steckdose A EIN 1,0 schaltet Steckdose A AUS 2,1 schaltet Steckdose A EIN 2,0 schaltet Steckdose A AUS 4,1 schaltet Steckdose C EIN 4,0 schaltet Steckdose C AUS */ #include <Wire.h> #define I2C_FS_ADDR 48 >> 1 // I2C-Funksender Adresse als 7 Bit int SEL=32; // serielle Datenlänge char Empfang[32]; // Epfangsdaten der seriellen Schnittstelle int WERT; int KANAL; void setup() { Serial.begin(9600); // Serielle Schnittstelle konfigurieren Wire.begin(); // I2C-Pins definieren // Systemcode in Register 0 eintragen Wire.beginTransmission(I2C_FS_ADDR); // Start Übertragung zum Funksender Wire.write(0); // Register 0 Wire.write(0); // DIP1 = "ON" = 0 Wire.write(0); // DIP2 = "ON" = 0 Wire.write(0); // DIP3 = "ON" = 0 Wire.write(15); // DIP4 = "OFF" = 15 = 0F Wire.write(15); // DIP5 = "OFF" = 15 = 0F Wire.endTransmission(); // Ende Serial.println("Systemcode wurde eingestellt!"); } void loop() { int i=0; while (Serial.available() > 0) { KANAL =Serial.parseInt(); WERT = Serial.parseInt(); Serial.println(KANAL); Serial.println(WERT); if (WERT == 1) { Wire.beginTransmission(I2C_FS_ADDR); // Start Übertragung zum Funksender Wire.write(1); // Register 1 Wire.write(KANAL + 128); // Steckdose A EIN Wire.endTransmission(); // Ende Serial.print(KANAL); Serial.println(" EIN"); } if (WERT == 0) { Wire.beginTransmission(I2C_FS_ADDR); // Start Übertragung zum Funksender Wire.write(1); // Register 1 Wire.write(KANAL); // Steckdose A AUS Wire.endTransmission(); // Ende Serial.print(KANAL); Serial.println(" AUS"); } } }
Links
Der Bausatz kann im Onlineshop unter www.horter-shop im Bereich 433 MHz Funksender bestellt werden.
Hier noch Links zu den Datenblättern und zur Beschreibung
Datenblatt Schaltplan Beschreibung
Weitere Funksteckdosen-Typen
In diesem Blogbeitrag findet ihr Beschreibungen für andere Funksteckdosen-Typen
https://www.horter.de/blog/funksteckdosen-fuer-433-mhz-funkmodul/
Hallo,
habe gerade erfolgreich den I2C-Funksender 433 MHz mit Funksteckdosen von Brennenstuhl (RCS 1000N) und ELRO (AB440) mit dem gleichen Protokoll wie die Pollin Steckdosen angesteuert.
Funktioniert hervorragend. 🙂