Steuerung und Regelung eines Raums mit dem AVR-Webserver

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche



Logo klein.png

Einleitung

Die Idee des Projekts

Dieser Artikel beschreibt den Aufbau eines Mikrocontrollersystems zur Steuerung und Regelung der Beleuchtung und Temperatur eines Raums. Alle Funktionen und Zustände können über ein managebares Webinterface gesteuert und visualisiert werden.

Das Hardwaresystem ist modular aufgebaut, sodass es flexibel an unterschiedliche Anforderungen angepasst werden kann.

Mitwirkende am Projekt

Dieses Projekt wurde von einer Projektgruppe bestehend aus sechs Schülern mit einem Lehrer am Berufskolleg der Stadt Rheine (NRW) entwickelt und umgesetzt. Die gesamten Arbeiten wurden außerhalb des Unterrichts auf freiwilliger Basis geleistet.

Bisherige Arbeitszeit

Der Start des Projekts war der Dezember des Jahres 2007. Der bisherige Projektstand wurde im Mai 2008 erreicht. Insgesamt beläuft sich die Gesamtarbeitszeit auf rund 300 Stunden.

Das Projekt wird in diesem Schuljahr weitergeführt. Informationen zu der weiteren Entwicklung finden Sie im Ausblick.

Die Grundlage des Systems

Eine Grundlage des Systems ist das ETH_M32_EX Projekt von Herrn Ulrich Radig. Wir haben zum einen die Beschaltung des Ethernetcontrollers von seinem Projekt übernommen, um hieraus ein eigenes Modul zu entwickeln. Zum zweiten haben wir seine Software als Grundlage verwendet, diese auf unsere Anwendung angepasst und sie um weitere Module erweitert.

An dieser Stelle bedanken wir uns nochmal herzlich bei Herrn Radig für dieses wunderbare Projekt und die Bereitstellung der Daten.

Eine weitere Grundlage ist eine modulare Mikrocontroller-Basisplatine, für den Atmega32 und pinkompatible Mikrocontroller. Das System ist eine Eigenentwicklung. Weitere Baugruppen zum Anschließen der Peripherie wurden für dieses Projekt entwickelt bzw. an unser System angepasst.

Projektumsetzung

Modulares Hardwaresystem

Überblick

Das zentrale Element des Systems ist eine Basisplatine, auf welcher der Mikrocontroller mit der Grundbeschaltung untergebracht ist. Die vier Ports des verwendeten ATMega644 werden über vier Wannenstecker herausgeführt. Hier besteht die Möglichkeit entsprechend vier Interfaces anzubinden. Für dieses Projekt wurden folgende Interfaces aufgebaut:

  • ein Ethernetinterface
  • ein 230V-Steuerinterface
  • Anschlussinterface für Sensoren (analog und digital)
  • Beutzer-I/O-Interface (LCD und Taster)

Bei der Erstellung der Platinen wurde auf ein lötfreundliches Layout geachtet. Sie können aufgrund der zumeist breiten Leiterbahnen und Abstände sehr gut selbst geätzt werden. Das erleichtert den Aufbau für Einsteiger erheblich.

Modulares Hardwaresystem (Aufbau)


Weiterführende Informationen zum Modularen Hardwaresystem finden Sie in dem Wiki-Artikel AVR µC-Board und Peripherie.

Elemente des Systems

Basisplatine

Auf der Basisplatine ist der Mikrocontroller, ATMega644, und dessen Beschaltung untergebracht. Es können jedoch auch, falls man das System für andere Zwecke nutzen möchte, alle pinkompatiblen Modelle, wie zum Beispiel der ATMega32, eingesetzt werden.
Für den Einsatz als Raumregelungssystem mit managebarer Weboberfläche ist der ATMega644 aufgrund des größeren Speichers jedoch unabdingbar. Es sollte darauf geachtet werden, dass kleinere Mikrocontrollertypen nur mit einer geringeren Frequenz als 20Mhz betrieben werden können.

Module
  • Anschlussinterface für Sensoren (analog und digital)

Auf der Anschlussinterfaceplatine befinden sich neben den Pullup-Widerständen für die Reedkontakte (Fenster) nur zwei 8-polige Klemmleisten. An diese Klemmleisten werden die Fensterkontakte und die Temperatursensoren angeschlossen.

Des Weiteren kann von den Klemmleisten die Masse und die Betriebsspannung von +5V abgegriffen werden.
  • 230V-Schaltinterface
Gefahr.png



Bei Berührung mit Netzspannung besteht Lebensgefahr!
Es sollte unbedingt auf die VDE-Vorschriften geachtet werden.
Ein fachgerechter Umgang mit diesem Modul ist Voraussetzung für das Arbeiten mit dieser Baugruppe.

Mit dem 230V-Schaltinterface kann man acht Geräte, die mit 230V Wechselspannung betrieben werden, schalten. Der maximale Strom beträgt dabei 12A pro Schaltkanal.
Bei dieser Platine ist der Steuerstromkreis mithilfe von Optokopplern galvanisch von dem Laststromkreis getrennt. Der Optokoppler MOC 3041 hat eine Nullpunkterkennung, dadurch können auch induktive Lasten ohne Probleme geschaltet werden. Auch werden die Lampen verschleißärmer geschaltet. Das Schalten der 230V-Verbraucher geschieht mithilfe von Leistungstriacs (BT138). Ein Vorteil bei der Verwendung von Triacs im Gegensatz zu Relais besteht darin, dass diese einen geringeren Energiebedarf haben und sie keinem mechanischen Verschleiß unterliegen.
In unserem Projekt wird dieses Modul zum Schalten der Lampen und des Heizungsventils verwendet. Auch das Heizungsventil, das nur mit 24V Wechselspannung betrieben wird, kann problemlos mit diesem Modul geschaltet werden.
  • Ethernetinterface

Das Ethernetinterface stellt die Verbindung zu einem Computernetzwerk her. Herzstück dieser Platine ist der Ethernetcontroller ENC28J60. Des Weiteren ist eine RJ-45 Schnittstelle, zum Verbinden des Webservers mit dem Netzwerk, vorhanden. Die Grundschaltung für die Netzwerkanbindung mit dem ENC28J60 haben wir von Herrn Radig übernommen. Das Layout für das Modul ist eine Eigenetwicklung.
Mithilfe des Ethernetcontrollers wird der 10BaseT Ethernet Standard erreicht, der von der Bandbreite vollkommen für dieses Anwendungsgebiet ausreicht. Die beiden Stromkreise werden, wie auch auf jeder anderen Netzwerkkarte, durch einen Schutztrenntransformator mit integriertem Tiefpassfilter voneinander getrennt. Die Bezeichnung des Bausteins ist FB2022.

  • Benutzer-I/O-Interface (LCD und Taster)

Das Benutzer-I/O-Interface bildet eine Schnittstelle zum Benutzer. Auf dem LC-Display werden Statusinformationen des Systems ausgegeben. Dazu zählen zum Beispiel die aktuelle Raumtemperatur oder der Status des Heizungsventils. Als LCD wurde das POWERTIP PC1602LRS-FSO-B-Y6 von dem Elektronikversender Pollin mit 2x16 Zeichen verwendet. Wichtig ist bei dem LCD, das dieses einen Industriestandardcontroller besitzt.
Das LCD wird, um Portpins zu sparen, nur mit drei Leitungen angesprochen. Auch diese Schaltungsidee stammt von Herrn Radig. Die Daten werden hier über ein 8-Bit Schieberegister (74HC164) gepuffert.
Weitergehend sind auf der Platine acht Taster verbaut. Um Portpins zu sparen, werden die Zustände zunächst BCD-codiert. Dementsprechend werden bei dieser Lösung nur drei Leitungen anstatt acht benötigt. Der endgültige Zustand jedes einzelnen Tasters wird im Programm ermittelt. Dieses Programm kann man anhand der Wahrheitstabelle, die sich im Datenblatt des integrierten Schaltkreises befindet, unkompliziert erstellen. Die Bezeichnung des Codier-ICs lautet 74HC148.

Software

Die von uns verwendete Software basiert größtenteils auf der Software, die für das ETH_M32_EX Projekt von Herrn Radig geschrieben wurde. Grundlage war für uns die etwas ältere Version 1.0.77. Die Software haben wir um unsere Funktionen erweitert und den vorhandenen Quellcode auf unsere Bedürfnisse angepasst. Dabei fanden wir mithilfe des AVR-GCC-Tutorials den Einstieg in die Programmierung der AVR-Mikrocontroller mit C.

Entwicklungsumgebung

Die Entwicklungsumgebung

Als Entwicklungsumgebung haben wir das Programm „Programmer's Notepad“, das in der WinAVR Software enthalten ist, verwendet. Da diese Entwicklungsumgebung auch von Herrn Radig verwendet wird, gab es keine Probleme den Quellcode zu erweitern und zu compilieren.

Das WinAVR-Paket kann hier heruntergeladen werden.

Softwareerweiterungen

Der Quellcode wurde um folgende Elemente erweitert:

  • Regelungssystem für einen Raum (roomcontrol.h, roomcontrol.c)
    • Steuerung des Heizungsventils in Abhängigkeit zur Temperatur
    • Schließen des Heizungsventils bei geöffnetem Fenster
  • Bestimmen der Tasterzustände (switch.h, swtch.c)
  • Temperaturwerterfassung (analog.h, analog.c)
  • Anpassung der internen Website (httpd.c, webpage.h)

Um den vorhandenen Quellcode zu erweitern, öffnet man das makefile, das sich mit im Programmer's Notepad-Projekt befindet. Man fügt folgende Zeile an dem dafür vorgesehenen Punkt hinzu:

SRC += Datei.c

Managebares Webinterface

Managebares Webinterface

Das Webinterface dient in erster Linie dazu, den Status des Raums zu visualisieren. Dabei kann man erkennen, welche Temperatur gerade in dem Raum herrscht und welchen Status das Licht und die Heizung haben.
Der Benutzer kann die Heizung und das Licht manuell über das managebare Webinterface steuern. Die Vorgabe der Temperatur, die in dem Raum vorherrschen soll, wird ebenfalls über diese Schnittstelle eingestellt.





Test des Systems

Das Modell

Zum Test des Systems wurde ein Modell angefertigt. Dieses Modell stellt in den Grundzügen einen Klassenraum dar. In dem Modell wurden vier Leuchtstofflampen, die mit 230V Wechselspannung betrieben werden, zwei Temperatursensoren zur Erfassung der Raumtemperatur, drei Fenster und eine Warmwasserheizung verbaut.

Die Wände des Modells sind doppelwandig, um die Leitungen einfach verlegen zu können.
Die Elektronik ist in einem Verteilerkasten, der an der Außenwand des Modells befestigt wurde, untergebracht. Des Weiteren befinden sich an dieser Wand eine Netzwerkdose zum Anschluss eines Netzwerkkabels und weitere Verteilerdosen zum Verteilen der 230V Spannung und zum Anschließen der Reedkontakte.

Weitere Bilder des Testmodells

Innenansicht
doppelwandige Wände
Frontansicht

Fenster

Die Fenster

In dem Modell sind drei Fenster verbaut, mit denen die Fensterüberwachung getestet werden kann. Die Rahmen der Fenster bestehen aus einem Aluminiumprofil, das mit Kunststoffverbindern zusammengesteckt wurde. In das Profil wurden Plexiglasscheiben eingesetzt. Diese wurden mit Silikon befestigt.

An den Fensterrahmen befinden sich kleine Magnete, um den Reedkontakt, der sich neben dem Rahmen im Modellraum befindet, zu schalten.

Lampen

Als Lampen wurden kleine Leuchtstofflampen verwendet, die mit Netzspannung betrieben werden. Diese kann man inklusive der Halterungen beim Elektronikversender Pollin bestellen. Der Einbau war problemlos und ging einfach von statten.

Heizung

Um eine möglichst realitätsnahe Heizung zu bauen, wurde eine Heizung gebaut, die mit warmem Wasser betrieben wird. Das Wasser wird dabei von einem Warmwasserboiler auf rund 50°C erhitzt. Das warme Wasser wird daraufhin mithilfe einer Laugenpumpe, die aus einer Waschmaschine stammt, durch das Heizungssystem gepumpt.

Die Heizung besteht aus zwei Gartenschläuchen, die aus transporttechnischen und praktischen Gründen mit einem Stecksystem ausgestattet sind; einem Kupferrohr, das die Wärme des Wassers an den Modellraum abgibt; dem Boiler, der das Wasser erhitzt; der Laugenpumpe, die das Wasser befördert; einem elektrisch ansteuerbaren Heizungsventil zur Steuerung des Wasserflusses und einem Ausgleichsbehälter. Der Ausgleichsbehälter hat zweierlei Funktionen. Zum einen kann sich das Wasser bei der Erwärmung ausdehnen, ohne das Heizungssystem zu beschädigen und zum zweiten dient der Behälter dazu, die Luft aus dem System zu bekommen und dieses mit Wasser zu befüllen.

Bilder der Heizung

Das Heizungssystem
Die Heizung

Ausblick

Da dieses Projekt sehr viel Spielraum bei der Weiterentwicklung bietet, werden wir uns in Zukunft auf bestimmte Punkte konzentrieren.

Zentrale Verwaltung der AVR-Webserver

In dem ersten Schritt werden einige Klassenräume mit dem System ausgestattet und die Raumzustandsgrößen in Abhängigkeit zum Nutzungsbedarf geregelt. Hierfür wurde eine zentrale Verwaltung auf Webbasis für die eingesetzten Webserver programmiert. Diese Website soll auf einen externen Webserver ausgelagert werden. Durch diesen Schritt kann man alle eingesetzten µC-Server zentral über eine Website verwalten. Somit behält man den Überblick und kann bestimmte Änderungen auf mehreren Servern ausgeben. Dieses Vorhaben ist schon weitestgehend umgesetzt und muss abschließend noch getestet werden.

Stundenplankopplung

Das Regelungs- und Steuerungssystem soll an den Stundenplan gekoppelt werden. Dieses Vorhaben stellt sicher, dass die Räume auch nur dann beheizt und beleuchtet werden, wenn sie von einer Klasse genutzt werden.

Helligkeitssensoren

Mithilfe der Helligkeitssensoren, soll das Licht abhängig von den äußeren Verhältnissen geschaltet werden. Als Erweiterung wäre über einen Dimmer nachzudenken, sodass immer optimale Lichtverhältnisse vorherrschen.

CO2-Messung

Aufgrund des Artikels „CO2-Messer“ aus der Januarausgabe 2008 der Elektronikfachzeitschrift Elektor, kam uns die Idee, einen CO2-Sensor einzusetzen, der den Anteil an Kohlenstoffdioxid in der Luft misst. Somit kann angezeigt werden, wann der Klassenraum gelüftet werden sollte.

Linksammlung


Downloads


Schlusswort

Weitere Ideen und Anregungen sind willkommen. Wir freuen uns auf eine fruchtbare Zusammenarbeit im Forum.

Manuel Kamp
Simon Sundermann
Stephan Spielmann
Thorsten Rott
Sebastian Brust
Berthold Sommer
Simon Jansen