Hallo, ich möchte Euch hier mal den aktuellen Entwicklungsstand der Paulinchen!Box vorstellen:
Einleitung Paulinchen!Box ist ein Bausatz, mit welchem bis zu 8 Temperatursensoren angezeigt werden können. Die Box verfügt über einen RJ45-Netzwerkanschluss (100bt). Die Anzeige der Temperaturwerte erfolgt über eine html-Seite, welche intern in der Paulinchen!Box gespeichert ist. Durch die Nutzung von DynDNS und einer Portweiterleitung im Router wird damit die Abfrage der aktuellen Temperaturwerte weltweit über das Internet möglich. Die Konfiguration der Paulinchen!Box erfolgt selbstständig (DHCP, NTP). Manuelle Einstellungen können per Telnet vorgenommen werden. Ein optionales Display (4x20 Zeichen) zeigt die aktuellen Temperaturen sowie die aktuelle Konfiguration an.
Hardware Als Hardware kommt der AVR-NET-IO Bausatz der Firma Pollin zum Einsatz. Dieser wurde allerdings etwas modifiziert (Schaltnetzteil). Außerdem wurde der ursprüngliche Microcontroller durch einen leistungsfähigeren ATmega644 ersetzt. Alle Konfigurationseinstellungen werden im EEprom des AVR gespeichert und gehen daher bei Stromausfall nicht verloren.
Sensoren Als Temperatursensoren kommen DS18B20 der Firma Dallas zum Einsatz. Der Messbereich beträgt -55°C…+125°C. Im Bereich von -10°C…+85°C haben diese Sensoren einen maximalen Fehler von 0,5°C. An der Paulinchen!Box können bis zu 8 Sensoren als 1-Wire Bus mit parasitärer Spannungsversorgung angeschlossen werden. Dazu wird ein 3-adriger Bus benötigt. Jeder Sensor besitzt eine feste, weltweit eindeutige ID über die der Sensor am Bus angesprochen werden kann. Falls also z.Bsp. ein Sensor ausgetauscht wird, muß dessen neue ID der Paulinchen!Box erst mitgeteilt werden. Die ID kann automatisch gescannt und im EEprom gespeichert werden.
Firmware Die Firmware, also die Intelligenz der Paulinchen!Box basiert auf einem Projekt von Ulrich Radig, den Erweiterungen von Shorty und meinen Anpassungen. Das ganze ist in C++ geschrieben und mit WinAVR compiliert. Da im ATmega644 der Platz natürlich beschränkt ist, muß auf ausführliche Fehlermeldungen, aufwendige Webseiten usw. verzichtet werden.
Paulinchen!Box verfügt momentan über folgende Funktionen: - DHCP zur Vergabe der IP-Adresse, Subnetzmaske, Default Gateway - Abfrage eines NTP-Servers zur Ermittlung von Datum/Uhrzeit - Abfrage eines TFTP-Servers für Firmwareupdates über Ethernet - 1-Wire Bus für bis zu 8 Sensoren DS18B20 - Automatisches Erkennen der Sensor-ID - Vergabe von Namen für die einzelnen Sensoren - Anzeige der Min/Max-Temperaturen des Tages (mit Zeitpunkt) - Anzeige des Tagesverlaufes der ersten 4 Sensoren per Google-Chart - Syslog-Server zur Ausgabe von Statusmeldungen - Syslog-Server zum Speichern der Temperaturwerte (aller 10 min) - Telnet-Unterstützung zur manuellen Konfiguration (PuTTY) - Anzeige der Konfiguration und der Temperaturwerte per Webpage - Ansteuerung eines optionalen Displays (4x20 Zeichen)
Automatische Konfiguration Um die Paulinchen!Box ins eigene Netzwerk einbinden zu können, muss diese u.a. eine IP-Adresse erhalten. Beim Compilieren der Firmware wird dazu eine IP, Subnetzmaske, Default Gateway fest eingestellt. Diese „Werkseinstellungen“ würde ich für jeden von Euch separat vornehmen. Beim Anschliessen der Paulinchen!Box versucht diese, sich per DHCP eine freie IP zu holen. Nur falls im Netz kein DHCP verfügbar ist, wird die „Werkseinstellung“ verwendet. Am DHCP-Server sollte man dann einstellen, das die Paulinchen!Box immer die gleiche IP zugewiesen bekommt.
Manuelle Konfiguration Zur manuellen Konfiguration können alle Parameter per Telnet (z.Bsp. mittels PuTTY) ausgelesen und geändert werden. Die Werte werden im internen EEprom des AVR gespeichert und gehen daher bei einem Stromausfall nicht verloren. Zur Konfiguration muß die Paulinchen!Box jedoch im Netz erreichbar sein. Falls man also kein DHCP verwendet und manuell eine unsinnige IP einstellt, kann man nach einem Neustart der Paulinchen!Box nicht mehr darauf zugreifen! Hier hilft dann nur noch ein „Werksreset“, dabei gehen allerdings alle Einstellungen verloren.
Display (optional) An die Paulinchen!Box kann optional ein Display mit 4 Zeilen a 20 Zeichen angeschlossen werden. Auf dem Display wird abwechselnd die aktuelle Konfiguration und die aktuellen Temperaturwerte der 8 Sensoren angezeigt.
Temperaturlogging Um eine Möglichkeit zum Aufzeichnen der Temperaturwerte zu schaffen, werden aller 10 Minuten die aktuellen Temperaturwerte der 8 Sensoren per Syslog-Meldung ins IP-Netz gesendet. Ein im IP-Netz befindlicher Syslog-Server kann diese Nachrichten dann empfangen und in eine Datei speichern. Als Format habe ich das CSV-Format gewählt, so dass man die Daten leicht per Excel usw. weiterverarbeiten kann. Als Syslog-Server verwende ich bei mir im Netz übrigens ein NAS.
Webseite Auch die kompletten html-Seiten müssen intern im AVR gespeichert werden. Damit fallen natürlich aufwendige Gestaltung, Grafiken usw. leider weg. Um die Webseiten im lokalen Netz anzuzeigen, gibt man einfach die IP-Adresse im Browser ein. Durch die Verwendung von z.Bsp. DynDNS und einer Portweiterleitung im Router kann dann auch weltweit auf die Paulinchen!Box zugegriffen werden.
Firmwareupdates Jede Firmware enthält Fehler, auch meine… Um eine Firmware in den AVR zu flashen, benötigt man eigendlich einen ISP-Programmer. Es soll aber noch Leute geben, die so was nicht haben. Daher flashe ich per ISP einen TFTP-Bootloader auf den AVR. Bei einem Reboot des AVR wartet dieser auf Antwort eines TFTP-Servers. Ist der Server aktiv und die angegebene HEX-Datei vorhanden, wird die eigendliche Firmware auf den AVR übertragen. Damit ist es möglich, eine aktualisierte Firmwaredatei einfach per TFTP über Ethernet in den AVR einzuspielen. Achtung: Falls das Einspielen der Firmware fehlschlägt, startet der AVR nicht mehr und kann nur noch per ISP neu geflasht werden! Daher bitte für die Verbindung AVR zum TFTP-Server kein WLAN, DLAN ö.ä. verwenden.
Bausatz Den bereits fertig aufgebauten Bausatz würde ich privat von einem befreundeten Hobbybastler beziehen und auf Funktion prüfen. Dann würde ich den ATmega auswechseln und per ISP den TFTP-Bootloader aufspielen. Dann die IP-Adressen usw. entsprechend Eurer Vorgabe in die Firmware compilieren und diese dann per TFTP-Server in den ATmega flashen. Falls jemand ein Display möchte, würde ich dieses auch besorgen und verdrahten. Dieses braucht dann nur noch am AVR angesteckt werden. Die Sensoren gäbe es einzeln bei mir zu kaufen und Ihr lötet Euch selbst die Kabel dran. Eventuell könnte ich auch bereits fertig verkabelte Sensoren (in Tauchhülse) besorgen, kommt aber auf die Menge an. Die einzelnen Sensoren werden dann einfach am AVR über 3 Schraubklemmen angeschlossen.
Momentan plane ich jedoch nicht, ein Fertiggerät (mit Gehäuse) anzubieten. Dafür habe ich momentan einfach keine Zeit.
Um das Projekt weiterzutreiben, würde ich jetzt gerne mal Eure Meinung dazu hören. Falls jemand Interesse an einer Paulinchen!Box hat, wäre auch eine unverbindliche Rückmeldung (Display ja/nein, benötigte Anzahl der Sensoren usw.) nett. Dann könnte ich etwa den Bedarf abschätzen und den Preis besser kalkulieren.
P.S. Pfiffikus wird hier noch ein paar Bilder einfügen, vielen Dank dafür.
Viele Grüße, paulinchen
_________________ Viele Grüße, paulinchen
|