AVR-NET-IO: Web-Thermograph im Eigenbau
Auf dieser Seite möchte ich beschreiben, wie Sie einen Web-Thermographen mit dem AVR-NET-IO Board aufbauen können. Als Betriebssystem wird Ethersex auf dem Web-Thermographen eingesetzt. Für die Temperaturmessung werden die 1-Wire Sensoren DS18S20 verwendet, welche einen Temperaturbereich von -55°C bis +125°C abdecken. Im Messbereich von -10°C bis +85°C liegt die Messgenauigkeit bei ±0,5°C. Der hier vorgestellte Web-Thermograph frägt alle 5 Minuten die Sensoren ab und speichert die Messwerte auf einer SD-Karte ab. Über die Netzwerkschnittstelle des AVR-NET-IO Boards ist es möglich auf die Logdatei sowie auf das Webinterface von Ethersex zuzugreifen. Das Webinterface bietet die Möglichkeit die aktuellen Messwerte der Sensoren abzufragen.


Aufbau des AVR-NET-IO Boards
Falls Sie das AVR-NET-IO Board als Fertigmodul erstanden haben, müssen Sie nur den ATmega32 durch einen ATmega644P austauschen. Falls die beiden Festspannungsregler (IC1 und IC2) zu heiß werden, sollten Sie ihnen Kühlkörper spendieren. Beachten Sie jedoch, dass die beiden Bauteile auf unterschiedlichen Potentialen liegen und nicht durch einen gemeinsamen Kühlkörper eine elektrisch leitende Verbindung erhalten.
Wenn Sie den Bausatz erworben haben, können Sie einige, nicht benötigte Bauteile bereits im Vorfeld entfernen. In der folgenden Liste sind die Bauteile aufgelistet, welche für den Web-Thermographen nicht benötigt werden beziehungsweise durch andere Bauteile ersetzt wurden. Dies bringt einige Vorteile, allerdings auch ein paar Nachteile mit sich welche im Anschluß besprochen werden.
Netzteil:
C2, C3 nicht bestückt
D1, D4 nicht bestückt
D2, D3, D5 ersetzt durch Drahtbrücken
Netz ersetzt durch Stiftleiste; LED wurde in das Gehäuse eingebaut
IC1 nicht bestückt
RS232-Schnittstelle:
C14, C15, C16, C17 nicht bestückt
IC4 nicht bestückt
J5 nicht bestückt
A/D-Wandler:
J4 nicht bestückt
J6, J7, J8, J9, J10 nicht bestückt
Sonstiges:
R3, R6, R7 ersetzt durch 470 Ohm Widerstände
IC5 ersetzt durch einen ATmega644P
J2 ersetzt durch Stiftleisten; RJ45-Buchse wurde in das Gehäuse eingebaut
J3 nicht bestückt
C2, C3 nicht bestückt
D1, D4 nicht bestückt
D2, D3, D5 ersetzt durch Drahtbrücken
Netz ersetzt durch Stiftleiste; LED wurde in das Gehäuse eingebaut
IC1 nicht bestückt
RS232-Schnittstelle:
C14, C15, C16, C17 nicht bestückt
IC4 nicht bestückt
J5 nicht bestückt
A/D-Wandler:
J4 nicht bestückt
J6, J7, J8, J9, J10 nicht bestückt
Sonstiges:
R3, R6, R7 ersetzt durch 470 Ohm Widerstände
IC5 ersetzt durch einen ATmega644P
J2 ersetzt durch Stiftleisten; RJ45-Buchse wurde in das Gehäuse eingebaut
J3 nicht bestückt
Da der Festspannungsregler (IC1) und die eingangsseitigen Kondensatoren (C2 und C3) entfernt wurden, müssen Sie für die Spannungsversorgung der Schaltung ein (stabilisiertes) 5V Netzteil verwenden. Für meinen Web-Thermographen verwende ich ein 5V Stecker-Schaltnetzteil (KSUFB05000050D1EU) von Pollin.
Durch das Entfernen beziehungsweise Ersetzen der Dioden des Brückengleichrichters (D1, D2, D4, D5), kann die Schaltung nur noch mit einer Gleichspannungsquelle betrieben werden. Des Weiteren wurde dadurch der Verpolungsschutz entfernt. Achten Sie deshalb beim Anklemmen der Versorgungsspannung auf die richtige Polung. Bei meinem Web-Thermographen habe ich das Verpolungsproblem mit einer für das 5V Netzteil passenden Hohlstecker-Buchse (Innendurchmesser 2,1 mm) gelöst.
Die Bauteile für die RS232-Schnittstelle wurden nicht bestückt, da in diesem Anwendungsfall die Serielle Schnittstelle nicht benötigt wird und nur unnötig Strom verbrauchen würde.
Auch die Vorwiderstände (R3, R6 und R7) der LED's wurden vergrößert um den Stromverbrauch weiter zu senken.
Der standardmäßige Mikrocontroller ATmega32 wird gegen einen pinkompatiblen ATmega644P ausgetauscht. Dies ist nötig, damit Ethersex mit den benötigten Funktionen in den Flash-Speicher passt.
Die 3-polige Stiftleiste und die Anreihklemmen, welche für den A/D-Wandler vorgesehen sind, wurden ebenfalls nicht bestückt da der A/D-Wandler nicht genutzt wird.
Die RJ45-Buchse wurde in das Gehäuse eingebaut und mit einem Flachbandkabel mit der Platine verbunden. Der 25-polige D-SUB-Stecker wurde ebenfalls nicht bestückt.
Das folgende Bild zeigt das hier eingesetzte AVR-NET-IO Board mit den beschriebenen Modifikationen.

Aufbau des SD-Kartenlesers mit DS18S20-Adapter
Den Schaltplan, den Bestückungs- und Verdrahtungsplan für den SD-Kartenleser mit DS18S20-Adapter finden Sie unter www.gtkdb.de/index_18_1045.html.

Fertigen Sie auch zwei Verbindungskabel an, um den SD-Kartenleser mit dem AVR-NET-IO Board zu verbinden.
Verdrahtung der DS18S20 Sensoren
Für den Anschluss der Temperatursensoren wurden RJ11 Buchsen in das Gehäuse des Web-Thermographen eingebaut. Diese sind mit den entsprechenden Pins auf der Erweiterungsplatine (siehe vorhergehenden Abschnitt) verbunden. Für die Verbindung zwischen den RJ11 Buchsen und den 1-Wire Sensoren wurden Modemkabel verwendet. Dazu habe ich an einem Ende den RJ11 Stecker abgetrennt, einen Temperatursensor angelötet und mit einem Schrumpfschlauch versiegelt.

Damit Sie die Messwerte einem Sensor zuordnen können, sollten Sie wenn der Web-Thermograph funktioniert die 64-bit langen Seriennummern der einzelnen Sensoren herausfinden und diese entsprechend beschriften.
Vorbereitungen für das Kompilieren und Flashen von Ethersex
Damit Sie Ethersex kompilieren und auf das AVR-NET-IO Board flashen können, benötigen Sie einige zusätzliche Pakete welche Sie unter Ubuntu (hier Ubuntu 10.04) wie folgt installieren können.
georg@ubuntu1004:~$ sudo apt-get install gcc-avr avr-libc avrdude dialog gawk m4 libncurses5-dev
Anschließend laden Sie sich den aktuellen Ethersex Quellcode herunter.
georg@ubuntu1004:~$ wget http://github.com/ethersex/ethersex/tarball/master
Entpacken Sie das heruntergeladene Archiv und wechseln in das extrahierte Verzeichnis.
georg@ubuntu1004:~$ tar xfz ethersex-ethersex-snapshot_compile_ok-0-g09442d7.tar.gz
georg@ubuntu1004:~$ cd ethersex-ethersex-09442d7/
georg@ubuntu1004:~$ cd ethersex-ethersex-09442d7/
Pinning anpassen
Da bei der hier verwendeten Schaltung (siehe Selbstbau-Anleitung: SD-Kartenleser mit DS18S20-Adapter für das AVR-NET-IO Board) der Chip Select Pin des SD-Slots beziehungsweise der SD-Karte mit dem Pin PB3 des Mikrocontrollers verbunden wurde, müssen Sie dies in der Datei pinning/hardware/netio.m4 für Ethersex bekannt geben.
georg@ubuntu1004:~/ethersex-ethersex-09442d7$ gedit pinning/hardware/netio.m4
Suchen Sie hier den folgenden Abschnitt.
ifdef(`conf_SD_READER', `dnl
/* port the sd-reader CS is attached to */
pin(SPI_CS_SD_READER, PB2, OUTPUT)
')dnl
/* port the sd-reader CS is attached to */
pin(SPI_CS_SD_READER, PB2, OUTPUT)
')dnl
Ändern Sie den Chip Select Pin wie folgt ab.
pin(SPI_CS_SD_READER, PB3, OUTPUT)
Control6-Skript zur Temperaturprotokollierung erstellen
Falls Sie die 64-bit langen Seriennummern der einzelnen Sensoren noch nicht wissen, sollten Sie diesen Abschnitt überspringen und vorher die Seriennummern der Sensoren wie im Abschnitt Funktionstest beschrieben herausfinden. Wenn Sie die Seriennummern herausgefunden haben, folgen Sie den Anweisungen in diesem Abschnitt, kompilieren Ethersex erneut und flashen den Mikrocontroller mit dem neuen Flash-Image.
Erstellen Sie zuerst eine Sicherungskopie des Beispiel-Skripts welches beim Ethersex-Quellcode dabei ist.
georg@ubuntu1004:~/ethersex-ethersex-09442d7$ cp control6/control6.src control6/control6.src.org
Anschließend öffnen Sie die Datei gedit control6/control6.src mit einem Editor.
georg@ubuntu1004:~/ethersex-ethersex-09442d7$ gedit control6/control6.src
Löschen Sie den Inhalt der Datei und fügen das folgende Control6-Skript ein.
// ###########################################################################
// ## ##
// ## Temperature Logging with the AVR-NET-IO Board ##
// ## ##
// ## Creation: 06.08.2010 ##
// ## Last Update: 29.08.2010 ##
// ## ##
// ## Copyright (c) 2010 by Georg Kainzbauer <http://www.gtkdb.de> ##
// ## ##
// ## This program is free software; you can redistribute it and/or modify ##
// ## it under the terms of the GNU General Public License as published by ##
// ## the Free Software Foundation; either version 2 of the License, or ##
// ## (at your option) any later version. ##
// ## ##
// ###########################################################################
CONTROL_START
THREAD(templog)
// Define variables
int16_t temp = 0;
char temp_str[5];
// Write timestamp to temp.log
VFS_LOG("temp.log", "\n%04d-%02d-%02d %02d:%02d", CLOCK_YEAR(), CLOCK_MONTH(), CLOCK_DAY(), CLOCK_HOUR(), CLOCK_MIN());
// Get value of 1-Wire sensor
temp = ONEWIRE_GET(10208ee10108003f);
// Convert value to string
itoa_fixedpoint(temp, 1, temp_str);
// Write value to temp.log
VFS_LOG("temp.log", "|10208ee10108003f:%5s", temp_str);
WAIT(2);
// Get value of 1-Wire sensor
temp = ONEWIRE_GET(104671e101080087);
// Convert value to string
itoa_fixedpoint(temp, 1, temp_str);
// Write value to temp.log
VFS_LOG("temp.log", "|104671e101080087:%5s", temp_str);
WAIT(2);
// Get value of 1-Wire sensor
temp = ONEWIRE_GET(10c67be1010800d0);
// Convert value to string
itoa_fixedpoint(temp, 1, temp_str);
// Write value to temp.log
VFS_LOG("temp.log", "|10c67be1010800d0:%5s", temp_str);
WAIT(2);
// Get value of 1-Wire sensor
temp = ONEWIRE_GET(109b79e101080037);
// Convert value to string
itoa_fixedpoint(temp, 1, temp_str);
// Write value to temp.log
VFS_LOG("temp.log", "|109b79e101080037:%5s", temp_str);
WAIT(600);
THREAD_END(templog)
ON ONCE CLOCK_MIN == 0 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 5 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 10 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 15 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 20 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 25 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 30 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 35 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 40 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 45 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 50 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 55 DO THREAD_RESTART(templog); END
CONTROL_END
// ## ##
// ## Temperature Logging with the AVR-NET-IO Board ##
// ## ##
// ## Creation: 06.08.2010 ##
// ## Last Update: 29.08.2010 ##
// ## ##
// ## Copyright (c) 2010 by Georg Kainzbauer <http://www.gtkdb.de> ##
// ## ##
// ## This program is free software; you can redistribute it and/or modify ##
// ## it under the terms of the GNU General Public License as published by ##
// ## the Free Software Foundation; either version 2 of the License, or ##
// ## (at your option) any later version. ##
// ## ##
// ###########################################################################
CONTROL_START
THREAD(templog)
// Define variables
int16_t temp = 0;
char temp_str[5];
// Write timestamp to temp.log
VFS_LOG("temp.log", "\n%04d-%02d-%02d %02d:%02d", CLOCK_YEAR(), CLOCK_MONTH(), CLOCK_DAY(), CLOCK_HOUR(), CLOCK_MIN());
// Get value of 1-Wire sensor
temp = ONEWIRE_GET(10208ee10108003f);
// Convert value to string
itoa_fixedpoint(temp, 1, temp_str);
// Write value to temp.log
VFS_LOG("temp.log", "|10208ee10108003f:%5s", temp_str);
WAIT(2);
// Get value of 1-Wire sensor
temp = ONEWIRE_GET(104671e101080087);
// Convert value to string
itoa_fixedpoint(temp, 1, temp_str);
// Write value to temp.log
VFS_LOG("temp.log", "|104671e101080087:%5s", temp_str);
WAIT(2);
// Get value of 1-Wire sensor
temp = ONEWIRE_GET(10c67be1010800d0);
// Convert value to string
itoa_fixedpoint(temp, 1, temp_str);
// Write value to temp.log
VFS_LOG("temp.log", "|10c67be1010800d0:%5s", temp_str);
WAIT(2);
// Get value of 1-Wire sensor
temp = ONEWIRE_GET(109b79e101080037);
// Convert value to string
itoa_fixedpoint(temp, 1, temp_str);
// Write value to temp.log
VFS_LOG("temp.log", "|109b79e101080037:%5s", temp_str);
WAIT(600);
THREAD_END(templog)
ON ONCE CLOCK_MIN == 0 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 5 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 10 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 15 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 20 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 25 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 30 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 35 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 40 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 45 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 50 DO THREAD_RESTART(templog); END
ON ONCE CLOCK_MIN == 55 DO THREAD_RESTART(templog); END
CONTROL_END
Das hier gelistete Control6-Skript frägt alle fünf Minuten die angegebenen Sensoren ab und speichert die Messwerte in die Logdatei temp.log auf der SD-Karte ab. Ersetzen Sie die Seriennummern der einzelnen Sensoren (hier 10208ee10108003f, 104671e101080087, 10c67be1010800d0 und 109b79e101080037) durch die Seriennummern der von Ihnen verwendeten Sensoren. Falls Sie mehr oder weniger Sensoren verwenden wollen, kopieren beziehungsweise löschen Sie die entsprechenden Abschnitte im Skript.
Ethersex konfigurieren
Starten Sie im Quellcodeverzeichnis das grafische Konfigurationsskript.
georg@ubuntu1004:~/ethersex-ethersex-09442d7$ make menuconfig
Unter Load a Default Configuration wählen Sie das Profil Pollin AVR Net-IO aus und bestätigen die Auswahl mit Enter.
Load a Default Configuration --->
( ) Pollin AVR Net-IO
( ) Pollin AVR Net-IO
Da der ATmega32 durch einen ATmega644P ausgetauscht wurde, müssen Sie die Option Target MCU unter dem Menü General Setup anpassen.
General Setup --->
(ATmega32) Target MCU
(X) ATmega644p
(ATmega32) Target MCU
(X) ATmega644p
Über Exit gelangen Sie wieder in das vorhergehende Menü zurück.
Unter dem Menüpunkt VFS (Virtual File System) support sollten Sie die folgenden Optionen aktivieren beziehungsweise deaktivieren.
General Setup --->
[*] VFS (Virtual File System) support --->
[*] VFS File Inlining --->
[ ] Inline IO
[ ] Inline ADC
[*] Inline OneWire
[*] SD/MMC-Card Access --->
[*] VFS (Virtual File System) support --->
[*] VFS File Inlining --->
[ ] Inline IO
[ ] Inline ADC
[*] Inline OneWire
[*] SD/MMC-Card Access --->
Damit das weiter oben erstellte Control6-Skript ausgeführt werden kann, müssen Sie die Option control6 scripts aktivieren.
General Setup --->
[*] control6 scripts (EXPERIMENTAL)
[*] control6 scripts (EXPERIMENTAL)
Im Menü Network können Sie den Hostnamen, die MAC-Adresse, die IP-Adresse und die Netzwerkmaske des Web-Thermographen festlegen und die IP-Adresse ihres Routers eintragen.
Network --->
Hostname: "Web-Thermograph"
[*] Ethernet (ENC28J60) support --->
Etherrape MAC address: "00:22:f9:01:6b:a8"
Etherrape IP address: "192.168.10.50"
Netmask: "255.255.255.0"
Default gateway: "192.168.10.2"
Hostname: "Web-Thermograph"
[*] Ethernet (ENC28J60) support --->
Etherrape MAC address: "00:22:f9:01:6b:a8"
Etherrape IP address: "192.168.10.50"
Netmask: "255.255.255.0"
Default gateway: "192.168.10.2"
Für den NTP-Client und den TFTP-Server benötigen Sie den UDP-Support.
Network --->
[*] UDP support
[*] UDP support
Da der A/D-Wandler nicht benötigt wird, können Sie diese Funktion deaktivieren.
I/O --->
[ ] ADC input --->
[ ] ADC input --->
Überprüfen Sie ob der Onewire Support und die Onewire Device Detection aktiviert sind.
I/O --->
[*] Onewire support --->
[*] Onewire device detection support
[*] Onewire support --->
[*] Onewire device detection support
Da für die Protokollierung der Temperaturen eine genaue Systemzeit benötigt wird, aktivieren Sie die Systemuhr sowie den NTP-Support. Ändern Sie die IP-Adresse des NTP-Servers entsprechend ab.
Applications --->
[*] System clock support --->
[*] Date and Time support
[*] Synchronize using NTP protocol
NTP IP: "192.168.10.1" (NEW)
(123) NTP Port (NEW)
[*] System clock support --->
[*] Date and Time support
[*] Synchronize using NTP protocol
NTP IP: "192.168.10.1" (NEW)
(123) NTP Port (NEW)
Um über HTTP auf die SD-Karte zugreifen zu können, muss der HTTP-Server und das SD-Card Directory Listing aktiviert sein.
Applications --->
[*] HTTP Server --->
[*] SD-Card Directory Listing (EXPERIMENTAL)
[*] HTTP Server --->
[*] SD-Card Directory Listing (EXPERIMENTAL)
Zum Schluß aktivieren Sie noch den TFTP-Server.
Applications --->
[*] TFTP support
[*] TFTP support
Beenden Sie das Konfigurationsskript über Exit und speichern die Einstellungen ab.
Konfiguration überprüfen
Indem Sie den folgenden Befehl aufrufen, erhalten Sie eine Übersicht der ausgewählten Module.
georg@ubuntu1004:~/ethersex-ethersex-09442d7$ make show-config
[...]
These modules are currently enabled:
======================================
* VFS
* VFS_INLINE
* ONEWIRE_INLINE
* VFS_INLINE_INLINESVG
* VFS_INLINE_INLINESVG
* VFS_SD
* SD_READER
* CONTROL6
* ENC28J60
* ETHERNET
* UIP
* NET
* IPV4
* TCP
* UDP
* ICMP
* PORTIO_SIMPLE
* ONEWIRE
* ONEWIRE_DETECT
* ECMD_PARSER
* ECMD_TCP
* CLOCK
* CLOCK_DATETIME
* NTP
* HTTPD
* HTTP_SD_DIR
* TFTP
* IPV4
[...]
These modules are currently enabled:
======================================
* VFS
* VFS_INLINE
* ONEWIRE_INLINE
* VFS_INLINE_INLINESVG
* VFS_INLINE_INLINESVG
* VFS_SD
* SD_READER
* CONTROL6
* ENC28J60
* ETHERNET
* UIP
* NET
* IPV4
* TCP
* UDP
* ICMP
* PORTIO_SIMPLE
* ONEWIRE
* ONEWIRE_DETECT
* ECMD_PARSER
* ECMD_TCP
* CLOCK
* CLOCK_DATETIME
* NTP
* HTTPD
* HTTP_SD_DIR
* TFTP
* IPV4
Ethersex kompilieren
Durch den Befehl make übersetzen Sie den Quellcode.
georg@ubuntu1004:~/ethersex-ethersex-09442d7$ make
[...]
=======The ethersex project========
Compiled for: atmega644p at 16000000Hz
Imagesize: 47010/65536 bytes (71.73%)
[=====================---------]
Program (.text + .data) : 41472 bytes
Data (.data + .bss) : 3099 bytes
===================================
[...]
=======The ethersex project========
Compiled for: atmega644p at 16000000Hz
Imagesize: 47010/65536 bytes (71.73%)
[=====================---------]
Program (.text + .data) : 41472 bytes
Data (.data + .bss) : 3099 bytes
===================================
Ethersex in den Flash-Speicher schreiben
Verbinden Sie den In-System Programmer (hier ein USBtinyISP) mit einem 10 poligen 1:1 Kabel mit dem ISP Connector auf dem AVR-NET-IO Board. Danach verbinden Sie den USBtinyISP mit einem USB-Port Ihres Rechners. Schließen Sie erst jetzt die Spannungsversorgung an das AVR-NET-IO Board an.
Mit dem folgenden Befehl übertragen Sie anschließend das Flash-Image in den Flash-Speicher des ATmega644P Mikrocontrollers.
georg@ubuntu1004:~/ethersex-ethersex-09442d7$ sudo avrdude -c usbtiny -p m644p -U flash:w:ethersex.hex
Fuse-Bits setzen
Mit dem folgenden Befehl setzen Sie zum Schluss noch die Fuse-Bits des neu eingesetzen ATmega644P Mikrocontrollers.
georg@ubuntu1004:~/ethersex-ethersex-09442d7$ sudo avrdude -c usbtiny -p m644p -U efuse:w:0xff:m -U hfuse:w:0xd9:m -U lfuse:w:0xff:m
SD-Karte formatieren
Damit Ethersex die SD-Karte lesen und beschreiben kann, müssen Sie die SD-Karte mit FAT16 formatieren.
georg@ubuntu1004:~$ sudo mkfs.msdos /dev/mmcblk0p1
Funktionstest
Nachdem das Flash-Image erfolgreich in den Flash-Speicher des Mikrocontrollers geschrieben und die Fuse-Bits gesetzt wurden, trennen Sie die Spannungsversorgung und den USBtiny In-System Programmer vom AVR-NET-IO Board. Anschließend verbinden Sie den SD-Kartenleser mit dem AVR-NET-IO Board, klemmen die DS18S20 Temperatursensoren an die vorgesehenen Steckverbindungen an, stecken die SD-Karte in den SD-Slot, verbinden das Board mit Ihrem Netzwerk und schließen die Stromversorgung wieder an.
Für einen ersten Funktionstest bauen Sie eine Telnet-Verbindung zum Port 2701 des AVR-NET-IO Boards auf.
georg@ubuntu1004:~$ telnet 192.168.10.50 2701
Trying 192.168.10.50...
Connected to 192.168.10.50.
Escape character is '^]'.
Trying 192.168.10.50...
Connected to 192.168.10.50.
Escape character is '^]'.
Mit dem folgenden Befehl überprüfen Sie, ob die Systemuhr über NTP automatisch synchronisiert wird.
date
Sat 27.08.2010 19:25:15
Sat 27.08.2010 19:25:15
Falls die Systemzeit nicht stimmt, rufen Sie den Befehl nach einer kurzen Wartezeit erneut auf. Der Synchronisationsvorgang benötigt in der Regel einige Sekunden nach dem Verbinden der Spannungsversorgung mit dem AVR-NET-IO Board.
Mit dem Befehl 1w list ermitteln Sie die 64-bit langen Seriennummern aller angeschlossenen und erkannten 1-Wire Sensoren.
1w list
10208ee10108003f
104671e101080087
10c67be1010800d0
109b79e101080037
OK
10208ee10108003f
104671e101080087
10c67be1010800d0
109b79e101080037
OK
Zum Identifizieren der einzelnen Sensoren, verbinden Sie immer nur einen Sensor mit dem Web-Thermographen und rufen den Befehl auf. Die ermittelten Seriennummern können Sie anschließend in das Control6-Skript eintragen.
Über den Befehl 1w convert wird eine Temperaturmessung veranlasst und mit 1w get kann danach der Messwert des jeweiligen Sensors in °C ausgegeben werden.
1w convert
OK
1w get 10208ee10108003f
24.4
1w get 104671e101080087
23.9
1w get 10c67be1010800d0
24.1
1w get 109b79e101080037
24.3
OK
1w get 10208ee10108003f
24.4
1w get 104671e101080087
23.9
1w get 10c67be1010800d0
24.1
1w get 109b79e101080037
24.3
Wenn Sie Ethersex bereits mit dem Control6-Skript kompiliert haben, sollten nach maximal fünf Minuten bereits die ersten Messwerte auf die SD-Karte geschrieben worden sein. Ob sich bereits eine Logdatei auf der SD-Karte befindet zeigt Ihnen der folgende Befehl an.
sd dir
temp.log 109
OK
temp.log 109
OK
Die Logdatei können Sie sich in einem Browser (http://192.168.10.50/temp.log) anzeigen lassen oder über HTTP herunterladen.
georg@ubuntu1004:~$ wget -q http://192.168.10.50/temp.log
Alternativ können Sie die Logdatei auch über TFTP herunterladen.
georg@ubuntu1004:~$ echo "get temp.log" | tftp 192.168.10.50
Falls Sie die Logdatei auf der SD-Karte löschen wollen, können Sie den folgenden Befehl verwenden. Beachten Sie aber, dass falls eine temp.log im aktuellen Verzeichnis existiert diese gelöscht wird.
georg@ubuntu1004:~$ echo -n "" > temp.log && echo "put temp.log" | tftp 192.168.10.50
Nützliche Links:
AVR-NET-IO: Das AVR-NET-IO Board
Selbstbau-Anleitung: USBtiny In-System Programmer
AVR-NET-IO: Ethersex für das AVR-NET-IO Board kompilieren
AVR-NET-IO: Den ATmega32 mit avrdude und dem USBtiny ISP flashen
AVR-NET-IO: Umbau vom ATmega32 zum ATmega644P
Die Fuse-Bits
AVR-NET-IO: Ethersex mit NTP-Support kompilieren
Selbstbau-Anleitung: SD-Kartenleser mit DS18S20-Adapter für das AVR-NET-IO Board
AVR-NET-IO: SD-Kartenleser in Ethersex einbinden
AVR-NET-IO: Temperaturmessung mit den 1-Wire Sensoren DS18S20
Shell Skript: Temperatursensoren des AVR-NET-IO Boards abfragen
Dieser Eintrag wurde am 30.08.2010 erstellt und zuletzt am 24.01.2016 bearbeitet.
Direkter Link zu dieser Seite: http://www.gtkdb.de/index_18_1052.html
[ Zur Startseite ] [ Zur Kategorie ]
© 2004-2021 by Georg Kainzbauer