FS20 mit AVR-NET-IO

Hallo zusammen,

kann mal kurz vorstellen wie ich ein paar kleine FS20 Dosen seit einiger Zeit über den AVR-NET-IO (Standard-Firmware betreibe). Da das ganze seit einigen Monaten stabil ohne Reboot läuft kann ich das sicher als mögliche günstige Lösung erwähnen:

Ziel ist es einige FS20 Steckdosen (die ich schon hatte) per IPS ohne großen Aufwand zu steuern.

Komponenten:
1 x den AVR-NET IO von Pollin ~ 20 EUR
Das ist eine kleine Platine, die digitale und Analoge Ausgänge hat. Das Wesentliche dabei, sie hat auch einen EthernetPort mit dem man sie ans Netzwerk bekommt und die Eingänge schalten kann.

1 x FS20 S8M 4-/8-Kanal-Sendemodul ~ 20 EUR
Dieses Modul bauen wir an die Ausgänge des AVR-NET IO. - nicht direkt sondern mit Optokopplern, damit wir diese potentialfrei schalten können.

Vom Aufbau her so.
der AVR-NET IO hat 1-8 digitale Ausgänge - jew. zwei für eine FS20 Komponente (AN und AUS).
diese Ausgänge werden jetzt über Optokoppler an das FS20 Modul angebunden.

Und schon kann man mit einem kleinen Script von IPS diese Funksteckdosen an bzw. ausschalten.

Als kleines Gimmick kann man noch einen Temperatursensor für ein paar Euronen an den Analogen Eingang des AVR-NET-IO anschließen und man hat auch gleich noch einen günstigen Temperaturfühler (LM35).
Mehr unter: http://www.saschakimmel.de/2010/02/temperaturmessung-mit-lm35-mit-avr-net-io-und-php/

Eine Fertige Klasse für den AVR-NET-IO in PHP gibt’s auch - diese habe ich nat. verwendet:
http://www.saschakimmel.de/2010/02/avr-net-io-mit-php-ansteuern/

Der Rest ist ganz simpel:



 require_once ("avr-net-io.class.ips.php");
 $l_avr = new AvrNetIo("192.168.1.20"); // IP des AVR
 
 $l_avr->connect();
 $l_port = 1; // Port am AVR an dem zb. AN Gerät 1 des F20 senders ist.
 $l_avr->setport($l_port,1); // Signal an FS20 senden (Knopf drücken)
 usleep(300000);
 $l_avr->setport($l_port,0); // Knopf loslassen


Das war’s schon.
Läuft seit Monaten jetzt wirklich zuverlässig.
Damit man die Korrekte Temperatur bekommt (schwankung des LM35) muss man mehrmals lesen und einen Mittelwert bilden.

Es gibt sicher noch andere Wege zb. mit einem CUL - allerdings wollte ich mich mal mit dem AVR-NET-IO beschäftigen, da der ganz interessant ist.

Hallo

gute Idee mit dem Modul. Ich setze den AVR mit alternativer Firmware (OpenMCP) ein. Damit erfasse ich derzeit nur Temperaturen via OneWire. Die Temperaturwerte lese ich dann via PHP von IPS aus über eine entsprechende Webseite des AVR ein. Läuft super stabil, Dauerlauf mit 20 Onewire Sensoren seit April 2011.
Mein(e) derzeitigen Experimentierboards sollen noch S0 Zähler integrieren und via PWM die Steuerung meiner KWL übernehmen.
Auf die Idee mit dem FS20 bin ich gar nicht gekommen. Sowas wollte ich immer realisieren. Wäre eine gute und günstige Sache. Ab nächstem Jahr läuft sowieso ein AVR im Gartenhaus um die Bewässerung anzusteuern. Da könnte ich dann die Gartenbeleuchtung günstig automatisieren.

Nur, um die Sache vielleicht noch ein bischen zu vereinfachen:

Optokoppler braucht’s m.E. nicht. Wozu willst Du denn eine potenzialsichere Trennung, wenn Du eh zwei Geräte hast, die mit PELV betrieben werden und die im selben Gehäuse sitzen werden (nehme ich an)?

@mj04:
Mich würden Deine Erfahrungen (wie leicht aufspielbar, Deine Änderungen, Netzwerk-Fähigkeiten, Speicherbedarf bzw. freier Speicher etc.) mit OpenMCP interessieren, das steht bei mir weit oben auf der Liste. Hast Du das schon irgendwo beschrieben und mir ist’s durchgerutscht?

Weil das ElV Teil nur potentialfrei gut funktioniert.

Hallo jwka,

ich hoffe, dass es an dieser Stelle nicht Off Topic ist:

  • Im Einsatz habe ich einen USB Programmer (Typ muss ich nachgucken, ist aber stk500v2 kompatibel, 17,90EUR)
  • Software WinAVR, für mich mehr als ausreichend
  • Die config Datei ist leicht zu parametrieren, im AVR setze ich immer einen Atmel 1284p ein
  • Netzwerk (nach kleiner Änderung) sehr stabil, läuft bei mir im Dauerlauf
  • Einmal pro Minute werden dort Werte abgerufen

Zum Aufspielen:
In WinAVR kompilieren
ggf. Fuses setzen (in WinAVR vorbereitet)
Mit AvrDude (in WinAVR vorbereitet) mit dem Programmer aufspielen

Bootloader spare ich mir derzeit. Hat aber auch schon funktioniert. Aber ich habe einen „Test AVR“, dort werden Anpassungen getestet. Und der AVR der die Temperaturen aufnimmt, wird nur sehr selten upgedatet. Da ist es für mich am Ende komplizierter den Bootloader zu betreiben, als hin und wieder mit dem Laptop den AVR per Programmer zu brennen.

Für IPS habe ich halt ein Skript, was mir derzeit Onewire Sensoren liest und in IPS Variablen umsetzt. Bis dahin ist quasi alles OpenMCP und IPS PHP „Standard“.

Beschrieben hab ich es nur teilweise. Interessant Seite derzeite http://son.ffdf-clan.de/.
Kann dir gerne weitere Infos zukommen lassen.

Gruß