E2000 - alternative Firmware für das AVR-NET-IO
(zur Erstellung autarker Mess- und Steuerungselektronik)
(Eine Unterseite von http://www.oliver-schlenker.dyndns.org)

Beschreibung:

Diese Seite baut auf meinen bisherigen Projekten mit dem AVR-NET-IO-Board der Fa. Pollin auf. In der Grundausstattung ist das AVR-NET-IO-Board nur eine passive Elektronik. D. h. man kann im internen Netzwerk oder über das Internet auf das Board zugreifen und Kontakte schalten oder Zustände/Eingangswerte abfragen. Diese Werte werden von dem Board nur bei einer aktiven Abfrage durch einen Client-Rechner zurückgeschickt. Ansonsten verhält sich die Platine passiv und macht von selbst aus erstmal gar nichts. Hierzu könnt Ihr Euch mal meine Steuersoftware, die ich für das original AVR-NET-IO von Pollin erstellt habe, unter folgendem Link anschauen:

AVR-NET-IO-Programme von Oliver Schlenker für das AVR-NET-IO-Board

Auch eine Steuerung von Funksteckdosen habe ich mit dem passiven AVR-NET-IO-Board realisiert. D. h. man kann über das Netzwerk oder das Internet bis zu 16 Funksteckdosen schalten. Das könnt Ihr unter folgendem Link nachlesen:

"OliFUNK"-Programm von Oliver Schlenker für das AVR-NET-IO-Board

Was lag nun näher langsam in die Programmierung des Micro-Controllers auf dem Board einzusteigen. Allerdings habe ich hier nie so richtig den Einstieg gefunden, da Programme für diese Controller meist in C oder einer andern Hochsprache geschrieben werden und anschließend daraus eine Hex-Datei compiliert wird (Stichwort: Makefile), welche dann mit einem Programmiergerät auf den Controller übertragen wird. Generell stellt das Übertragen eines Programmes oder einer Firmware auf den Controller kein Problem dar (Ich habe schon mehrfach das Pollin-Board mit einer neuen Firmware geflasht). Allerdings muss man (je nach Anwendung) noch diverse Parameter im Quellcode ändern um diesen an die eigenen Erfordernisse anzupassen und beim Schreiben auf den Controller die "Fusebits" richtig setzen. Bei falsch gesetzten "Fusebits" kann es sein, dass man sich aus dem MicroController komplett ausgesperrt hat. Vor diesem Hintergrund kann das "Flashen" eines MicroControllers doch schon manchmal eine wahre Herausforderung für den ein oder anderen Benutzer sein.

Hier habe ich dann über einen User meiner Therm-O(li)-Meter-Software (siehe "Therm-(O)li-Meter"), bei einem Rückfrage-Telefonat, den Tipp bekommen sich mal die Webseite von Elektronik2000.de anzuschauen. (siehe http://www.elektronik2000.de). Und was soll ich sagen: "Das was diese Jungs da gemacht haben, ist wirklich große Klasse". Hier wird man in die Lage versetzt mit einer grafischen Oberfläche logische Verknüpfungen der einzelnen Eingänge mit den Ausgängen herzustellen. Anschließend läuft die Elektronik autark und erledigt die definierten Mess- und Steuerungsaufgaben vollkommen eigenständig. Das ist aber nicht Alles. Auch per Telnet oder per HTTP kommt man im internen Netzwerk oder über das Internet auf das Board um zur automatisierten Steuerung noch manuelle Schaltbefehle auszulösen. Dies ist dann über einen PC oder auch über ein Android-Handy oder einen Android-Tablet-PC möglich. Diese Firmware lässt wirklich keine Wünsche offen. Natürlich ist über eine direkte Prozessor-Programmierung noch mehr an Spezialfunktionen machbar, aber ich behaupte mal für 90% der Anforderungen von normalen Hobby-Elektronikern und -Bastlern ist das wirklich eine einfache, leicht zu bedienende und ergebnisorientierte Alternative zum mühsamen Erlernen einer Programmiersprache zur MicroController-Programmierung.

Ich bin wirklich beeindruckt wie einfach das ist und welche Mühe sich die Leute von Elektronik2000 gegeben haben, dem mehr oder weniger einfachen Anwender, eine verständliche und funktionelle Bedienoberfläche zur Verfügung zu stellen. An dieser Stelle möchte ich den E2000-Leuten mein Lob und meine Hochachtung vor deren Arbeit aussprechen!

Folgende Dinge sind notwendig bzw. habe ich mal eingesetzt um das AVR-NET-IO mit der Pollin-Firmware auf ein E2000-NET-IO mit der E2000-Firmware umzurüsten und zu testen:

(Die Pollin-Komponenten  könnt Ihr unter http://www.pollin.de bestellen):

- Pollin Board AVR-NET-IO (Pollin-Nr. 810 058 = Bausatz; Pollin-Nr. 810 073 = fertige Platine)
- MicroController ATMega 644-20PU (Pollin-Nr. 100 996)
 
(dieser ersetzt den Typ ATMega32-16PU, den Pollin auf dem AVR-NET-IO-Board standardmäßig einsetzt)
- guten Kühlköper für den LS7085-Spannungsregler
  (ACHTUNG: der andere Regler LM317 darf nicht mit dem Kühlkörper des LS7805 verbunden werden da dies
  einen Kurzschluss darstellt.)
- Programmiergerät für den neuen MicroController ATMega644-20PU
 
Z. B. der ISP-Programmer von http://www.elektronik2000.de
  (falls Ihr schon ein Programmiergerät für diesen Controllertyp im Einsatz habt, könnt Ihr das Hexfile (liegt dem
  Software-Downloadpack bei Elektronik2000 bei) auch mit diesem Gerät auf den MicroController übertragen!)
- Pollin Relais-Karte K8IO (Pollin-Nr. 710 722 = Bausatz)
 
oder eine andere pinkompatible Relaiskarte
- stabilisiertes Netzteil 9V oder 12V
 
(ich nehme da gerne Uni-Netzteile mit 800-1000mA; aber "stabilisiert" - ist wichtig!)
- analoge oder digitale Sensoren
 
(Temperatursensoren KTY81-110 oder KTY81-210 und der Lichtsensor TSL250 wird direkt von der E2000-
  Firmware unterstützt. Ich habe allerdings noch alte Temperatursensoren KTY81-221 und alte Photowiderstände
  LDR07 rum liegen gehabt und diese dann angeschlossen. Generell lassen sich analoge Sensoren mit 0-5V
  Spannung an die analogen Eingänge des Boards anschließen. Die 5V werden dann in Messstufen von 0-1023
  (=10 Bit), wie in der Pollin-AVR-NET-IO-Ausführung, eingeteilt.)

Bzgl. dem "Upgrade" auf die E2000-Firmware kann ich Euch nur Empfehlen das "Umrüstvideo" und die "Einführungsvideos" von Elektronik2000 anzuschauen.

Hier geht's zu den Einführungsvideos von E2000! (Sehr zu empfehlen!)

(Um die Grafiken klarer und detaillierter zu sehen, solltet Ihr einen Klick mit der linken Maustaste
auf der entsprechenden Grafik ausführen!)

Hier nun ein Bild meines auf die E2000-Firmware umgerüsteten AVR-NET-IO-Boards
mit der Relaiskarte und 2 Sensoren:


Oben links seht Ihr den Netzteil-Anschluß, den Ethernet-Netzwerk-Anschluß und den RS232-Anschluß des Boards. Auf der rechten Seite wurde dann die Relais-Karte K8IO aufgesteckt und ebenfalls mit dem Netzteil verbunden. auf der K8IO seht Ihr rechts die 8 Schaltausgänge der Relais, hinten 4 Eingänge (beim Pollin-Board sind das die reinen digitalen Eingänge; mit der E2000-Firmware können diese auch analog genutzt werden). Vorne seht Ihr 2 angeschlossenen Sensoren an 2 von den weiteren 4 Eingängen. Links habe ich mal einen KTY81-221-Temperaturfühler (mit einem 640 KOhm Widerstand) auf Eingang 8 und rechts einen LDR07-Photowiderstand (mit einem 2,4 kOhm Widerstand) auf Eingang 7 angeschlossen. Auf dem MicroController befindet sich natürlich die E2000-Firmware.

Hier mal ein Anschluss-Schema für analoge Sensoren an das AVR-NET-IO-/E2000-NET-IO-Board
(Als Spannungsteiler beispielhaft für den ADC1):

Bild vom LCD-Display, welches ich inzwischen noch an das Board (über die EXT-Buchse
mittels I²C-Bus) angeschlossen habe
:

Für den Anschluss des Displays habe ich folgende Komponenten eingesetzt:

- Pollin LCD-Modul TC1602E-01 (Pollin-Nr. 120 420; 2x16 Zeichen mit gelber Hintergrundbeleuchtung)
- Pollin LCD-I²C-Modul (Pollin-Nr. 810 145; gibt's nur als Bausatz; Infos pro Display beachten!)

Zuerst hatte ich mir über E2000 noch eine RTC-Platine (=RealTimeClock; Echtzeituhr) für das Board beschafft und angeschlossen. Damit kann das Board nun auch ohne Internetverbindung die Uhrzeit korrekt halten. Auch bei Stromverlust läuft die Uhr, mit einer Batteriepufferung, weiter. Inzwischen habe ich das Add-On-Board Version 1.3 von der E2000-Webseite nachgebaut und angeschlossen. Dort ist eine RTC integriert. Durch dass Add-On-Board kann man nun noch über den I2C-Bus bzw. RS485 weitere Logikeinheiten wie Ein- und Ausgangserweiterungen, zusätzliche Temperatureingänge, etc. an das Board anschließen und über die E2000-Firmware in eigene Projekte einbinden bzw. ansprechen. Wirklich eine tolle Sache. Damit lässt sich die Ein- und Ausgangsanzahl gut erweitern ohne ein weiteres Board in Betrieb nehmen zu müssen.

Nun kann es mit der eigentlichen Programmierung des Boards über die E2000-Logik-Oberfläche losgehen.

Hier mal einen Snapshot meiner Testschaltung in der E2000-Logik-Software:

Hier mal einen Snapshot meiner Testschaltung in der E2000-Logik-Software (mit Display-Funktion):

Wenn Ihr die E2000-Logik-Software startet sehr Ihr links die 8 physikalischen Eingänge und rechts die 8 physikalischen Ausgänge, die das AVR-NET-IO/E2000-NET-IO-Board hat.

Ich habe mal zum Testen (siehe Snapshots der Testschaltung) alles wie folgt definiert:

Input1 (Typ Digital): Wird auf der Hardware oder dem Webinterface der Schalterkontakt geschlossen leuchtet LED1. Wird der Kontakt wieder geöffnet geht LED1 aus. (Morsetaster)

Input2 (Typ Digital): Wird auf der Hardware oder dem Webinterface der Schalterkontakt geschlossen und wieder geöffnet, läuft ein Timer ab und lässt LED2 für 10 Sekunden leuchten. Anschließend geht LED2 wieder aus. (Treppenhauslicht)

Input3 (Typ Digital: Wird auf der Hardware oder dem Webinterface der Schalterkontakt geschlossen und wieder geöffnet blinkt LED3 im 1-Sekunden-Takt. Wird der Schalterkontakt erneut geschlossen und wieder geöffnet geht LED3 wieder aus.

Input4-6 (Typ Digital): - nicht definiert - (=keine Funktion)

Input7 (Typ Analog): Hier hängt der Lichtsensor LDR07 dran. Dieser Input wird im Webinterface direkt mit dem analogen Wert angezeigt, der über diesen Eingang in das Board reinkommt. (Mit Rechenoperationen (Baustein "NUM") könnte man hier sicherlich noch die Anzeige in %Licht oder in eine andere Maßeinheit ändern).

Input8 (Typ Analog): Hier hängt der Thermosensor KTY81-221 dran. Dieser Input wird im Webinterface direkt mit dem analogen Wert angezeigt, der über diesen Eingang in das Board reinkommt. (Mit Rechenoperationen (Baustein "NUM") könnte man hier sicherlich noch die Anzeige in °C ändern).

Nachdem das Programm mit der grafischen Oberfläche aufgebaut wurde (erinnert mich irgendwie ein bisschen an die Programmieroberfläche der Siemens-Logo-SPS), kann man noch eine Simulation laufen lassen um zu prüfen ob alle Funktionen korrekt ausgeführt werden. Anschließend wird dieses Programm über die Ethernet-Schnittstelle, aus der E2000-Logik-Software heraus, direkt auf das Board übertragen. Das Board führt dann einen automatischen Reboot durch und wertet nun die 3 Schaltereingänge und die 2 Sensoreneingänge, entsprechend der angegeben Logik, aus. Bei dem Lichtsensor habe ich die Hand über den Sensor (=dunkel) gehalten und damit LED7 eingeschaltet bzw. Relais7 geschlossen. Nachdem ich die Hand wieder über dem Sensor entfernt habe, ist  LED7 erloschen bzw. das Relais7 hat sich wieder geöffnet. Bei steigender Temperatur (Raumtemperatur war ca. 21-23°), die ich mit meiner Handfläche am Thermosensor simuliert habe, wurde die LED8 und das zugehörige Ausgangsrelais Relais8 nach ca. 5-6 Sekunden eingeschaltet. Nachdem ich die Hand wieder vom Sensor genommen habe und der Sensor sich wieder in Richtung Raumtemperatur abgekühlt hat, ist die LED8 wieder erloschen und das Relais8 hat sich wieder geöffnet.

Auf der linken Seite der Software (ist hier nicht im Bild) gibt es einige logische Schaltelemente wie "AND", "OR", "TAKT", "TIMER", "WEEKTIMER" u.v.m. zur Auswahl. Bei Verbindung zum Internet wird das Board permanent mit aktuellem Datum und aktueller Uhrzeit versorgt. Dadurch lassen sich auch zeitabhängige Schaltbefehle definieren. Wie bei einer Zeitschaltuhr kann man dann im "WEEKTIMER"-Baustein Wochentage und Einschalt- bzw. Ausschaltzeit eintragen. Damit kann man doch schon recht komplexe Steuer- und Regelkreisläufe realisieren. Auch virtuelle Schalter können eingebunden werden. Diese sind dann auf den Weboberflächen darstellbar und können dann Aktionen über einen PC oder ein Android-Handy auslösen.

Über den I²C-Bus können weitere Komponenten wie z. B. Eingangserweiterungen, Ausgangserweiterungen, LCD-Displays, etc. angeschlossen und über die E2000-Logik-Software in die eigenen Projekte eingebunden werden. Hierzu gibt es reichlich Informationen auf der Elektronik2000-Webseite.

Hier mal einen Snapshot der rudimentären Weboberfläche von E2000,
die ich für o. g. Testschaltung konfiguriert habe:

Hier kann man sehr schön sehen, dass die virtuellen Schalter/Taster der Weboberfläche z. Zt. nicht betätigt sind.. Lediglich die analogen Sensoren liefern fortlaufend ADC-Werte.

Wem diese Oberfläche nicht ausreicht, der kann über das TelNet-Protkoll mit einer beliebigen Software (z. B. mit Purebasic,  Visual Basic oder irgendeiner anderen Sprache) auf das Board zugreifen, die Konfiguration auslesen und selbst eine passende grafische Oberfläche zu seiner Anwendung erstellen.

Die E2000-Leute stellen hier auch noch einen E2000-Designer zum Download zur Verfügung. Damit kann man sich für das Handy oder den PC eine etwas ansprechendere Oberfläche designen. Hier habe ich allerdings nur mal "reingeschnuppert" und kann (noch) nicht viel zu diesem Programm sagen! Da ich ein alter TelNet-Freund (Hyperterminal, PuTTY, etc.) bin, habe ich auch mal ein kleines Terminal-Emulations-Programm für das E2000-NET-IO geschrieben um die Zugriffe auf das Board auszuprobieren.
 

E2000-TEMU.EXE - Zur Steuerung des E2000-NET-IO per TelNet-Befehle:
Nach erstmaligem Start des Programmes wird man nach den Verbindungsdaten für das NET-IO-Board gefragt. Diese Daten werden in einer .INI-Datei entsprechend abgelegt und sind dann bei den nächsten Starts des Programms ohne Abfrage verfügbar. Nach Eingabe des Board-Passwortes (wenn dieses auf dem Board aktiviert bzw. nötig ist), kann man mit den entsprechenden TelNet-Befehlen (siehe E2000-Logik-TelNet-Befehlsliste von der Elektronik2000-Homepage oder den Pollin-Befehlen lt. AVR-NET-IO-Handbuch) Abfragen an das Board stellen oder Schaltbefehle an das Board schicken. Auch ein Polling-Modus existiert (=permanente zyklische Abfrage eines Parameters) um Veränderungen fortlaufender Daten zu sehen.

bei E2000-TEMU.EXE (aktuelles Relase = V1.1):

07.01.2013:
Hier handelt es sich in der Version 1.0 um die erste Veröffentlichungsversion.
Das Programm unterstützt die Pollin-Firmware ab 1.01 und die E2000-Firmware ab 2.6.0 Beta.
Da das Programm eigentlich selbsterklärend ist, gibt es im Allgemeinen nicht viel dazu zu sagen.

01.04.2013: In der E2000-TEMU Version 1.1 wurde die Befehlsübersicht an die E2000-Firmware
ab Version 2.2.0 Beta und an die Pollin-Firmware ab Version 1.03 angepasst.


Hier mal einen Snapshot meines kleinen Terminal-Emulations-Programmes für das E2000-NET-IO:

Einmal in der klassischen Windows-Ansicht:

Und auch in der Windows-XP-Luna-Ansicht:

(Info: Das Programm wurden von mir unter Windows XP mit SP3 entwickelt und getestet!)

Falls Ihr die Vollversion oder eine speziell an Eure Anforderungen angepasste Version des Programms benötigt, könnt Ihr mir einfach eine Email schicken. Auf Anforderung überlasse ich Euch auch gerne den Quellcode der Vollversion meines Programms, welches dann mit der "PureBasic-Demo-Version x86 - 32 Bit" oder mit der PureBasic-Demo-Version x64 - 64 Bit" gut und einfach auf die eigenen Anforderungen anzupassen ist. Demoversionen von PureBasic für verschiedene Betriebssysteme könnt Ihr Euch unter http://www.purebasic.de kostenlos herunterladen. Dort findet Ihr auch Demoversionen für die Linux-, Mac OS X- oder Amiga OS-Welt. Dadurch könnt Ihr meine Programme recht einfach von der i386-Windows-Welt auf andere Betriebssysteme portieren, falls Ihr meine Programme lieber in diesen Welten laufen lassen wollt/müsst.

Vom Herausgeben einer Demoversion habe ich bei diesem kleinen und einfachen Programm mal abgesehen, da es sicherlich nichts Besonderes ist und es genügend Terminal-Emulations-Programme (z. B. HyperTerm, PuTTY oder XTerm), mit wahrscheinlich dem Anwender größtenteils bekanntem Funktionsumfang, gibt.

Zur Zeit habe ich leider keine konkrete Anwendung für das E2000-NET-IO-Board, aber als Rolladen-Steuerung (Baustein ist in der E2000-Logik-Software bereits vorhanden), als Dämmerungsschalter für die Brunnenbeleuchtung oder als Thermoüberwachung eines Serverraumes o. ä. (und das alles auf einer Platine gleichzeitig!) könnte ich mir da schon den ein oder anderen Einsatzzweck, bei mir im Hause, vorstellen. 

Ich hoffe dass reicht Euch als kleine Einführung in die Firmware von E2000-NET-IO.

Ich denke die E2000-Firmware wertet das AVR-NET-IO von Pollin absolut auf.
Es lassen sich damit sicherlich einige interessante Aufgaben im privaten oder  betrieblichen
Bereich lösen, für die man bisher sehr viel Geld als Profilösung  ausgeben musste.
Man könnte hier schon fast von einer kleinen SPS-Steuerung sprechen.

Bei Interesse, Fragen, Wünsche, Anregungen, Lob oder Kritik könnt Ihr mir gerne eine

eMail senden an: Oliver.Schlenker@T-Online.de