E2000 - alternative Firmware für
das AVR-NET-IO |
|
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:
- Pollin Board AVR-NET-IO (Pollin-Nr. 810 058 =
Bausatz; Pollin-Nr. 810 073 = fertige Platine) 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!)
Hier nun ein Bild meines auf die E2000-Firmware
umgerüsteten AVR-NET-IO-Boards
Hier mal ein Anschluss-Schema für analoge
Sensoren an das AVR-NET-IO-/E2000-NET-IO-Board
Bild vom LCD-Display, welches ich inzwischen noch
an das Board (über die EXT-Buchse 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) 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, 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.
|
|
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. 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.
|