Temperaturmessung und Bereitstellung der Werte über einen Webserver Messungen der Temperatur mit dem USB Experiment Interface Board K8055 An einen der zwei analogen Eingänge wird hierzu ein Thermistor über einen Spannungsteiler angeschlossen. Es wird ein Thermistor aus einem digitalem Thermometer verwendet. (Der beiliegende Thermistor brachte keine brauchbaren Ergebnisse) Wiederstand bei 20°C 13 kOhm. Als Spannungsteiler dient ein 15 kOhm Wiederstand, als Stromquelle zunächst eine 9 V Batterie, da die Spannung aber pro Tag um ca 0,1 V abfällt, wird die Batterie durch ein Netzteil mit stabilisierter Spannung (9,27 V) ersetzt. . Die Spannungen und Wiederstände werden mit einem Multimeter gemessen. Die dem Board beiliegende Software wird installiert. Auf dem Board wird die Adresse 0 mit den Jumpern SK5 SK6 eingestellt (beide geschlossen). Mit der Testsoftware werden die AD Werte für den analogen Ausgang eingelesen. Diese Schaltung wird nun kalibriert. Als Vergleich dient ein Flüssigkeitsthermometer. Der Jumper SK2 dient nur Testzwecken und wird daher entfernt. Das Potentiometer auf dem K8055 wird so eingestellt, dass bei 0 ° C 172 AD Einheiten ankommen. ( 5,27 V am analogen Eingang ). Es ergeben sich: Grad Binär Celsius -15,00 0,00 17,50 26,00 38,00 Volt 208 172 130 110 83 6,36 5,27 4,00 3,41 2,59 In Excel wird ein Diagramm erstellt, Excel errechnet für diese Werte folgende Trendlinie: Temperatur zu AD Reihe2 Polynomisch (Reihe2) y = 0,0001x2 - 0,4629x + 75,389 50,00 40,00 °C 30,00 20,00 10,00 0,00 -10,00 0 50 100 150 200 250 -20,00 AD x = AD Temperatur = 0,001 x² – 0,4629x + 75,389 Diese Beziehung ist nahezu linear. Die AD Werte steigen sinkender Temperatur. Die Spannung steigt mit sinkender Temperatur. Im verwendeten Spannungsteiler steigt die Spannung mit steigendem Widerstand, d.h. der Wiederstand steigt mit sinkender Temperatur. Es handelt sich daher bei dem Sensor um einen Heißleiter( NTC-Widerstand) . Es wird nun mit dem Borland C++ Builder 4.0 Professional ein Programm zum Messen von Temperaturen erstellt. Zum K8055 sind eine K8055D.h Datei, eine K8055D.dll und eine k8055d.lib Datei speziell für Borland vorhanden. Diese Dateien werden in das Programmverzeichnis kopiert. Die lib Datei wird dem Projekt hinzugefügt. Die h Datei wird mit #include eingebunden. Mit OpenDevice(CardAddress) wird der entsprechende Treiber geöffnet, mit CloseDevice() geschlossen. Mit data = ReadAnalogChannel(1) wird der analoge Eingang 1 ausgelesen. data entspricht dabei Werten von 0 bis 255. Die Temperatur wird mit der Formel: t= 0.0001*x*x - 0.4629*x + 75.389 errechnet. Außerdem wird die Zeit der Messung ermittelt. Diese Werte werden werden zunächst in einer Datei gespeichert. Hier sind einige Meßwerte (Außentemperatur): Datum Zeit ahead UT 2006-12-27T19:39:31+01:00 2006-12-27T20:09:18+01:00 2006-12-27T20:39:18+01:00 2006-12-27T21:09:19+01:00 2006-12-27T21:39:19+01:00 2006-12-27T22:09:19+01:00 2006-12-27T22:39:19+01:00 2006-12-27T23:09:19+01:00 2006-12-27T23:39:19+01:00 2006-12-28T00:09:19+01:00 2006-12-28T00:39:19+01:00 Temperatur -1.2714 -1.6998 -2.128 -2.556 -2.556 -1.2714 -1.2714 -1.2714 -1.2714 -1.2714 -1.2714 Sensor 1 1 1 1 1 1 1 1 1 1 1 Station 1 1 1 1 1 1 1 1 1 1 1 AD Wert 172 173 174 175 175 172 172 172 172 172 172 Diese Werte sollen nun auf einen Webserver übertragen werden. Senden der Werte an einen Webserver In Borland C++ Builder 4.0 Professional wird die Komponente TNMHTTP verwendet, diese dient dem Datenaustausch mit einem Webserver über das HTTP Protokoll. Die Methode Post(URL, PostData) überträgt Daten in PostData. Es kann auch die Methode NMHTTP1->Get(URL) verwendet werden, wobei die Daten dann mit ?var1=“data1“&var2=“data2“ an die URL angefügt werden müssten. Die Daten können auf dem Webserver mit einem php Script aus der Variable $_REQUEST ausgelesen werden. In diesem php Script werden die Werte aus den Variablen dann in MySQL Datenbank eingefügt. Mit einem Formular können diese Werte dann von jedem Internetnutzer abgerufen und ausgewertet werden. Zunächst werden die Scripte und die MySQL Datenbank auf dem eignem Computer getestet. Hierzu wird „xampplite-Light“ installiert. xampplite-win32-1.5.5.exe downloaden, im Verzeichnis d:\ starten (entpacken). Das Verzeichnis xampplite wird erstellt, hierin befinden sich der apache Server mit php und MySQL Datenbank. Mit phpMyAdmin wird die Datenbank eingerichtet. Eine Tabelle mit folgender Strukur wird angelegt: nr int auto_increment Primärschlüssel datum datetime temperatur double sensor int station int ad_count double Das C++ Builder Programm sendet die Daten über HTTP an das php script „set_data.php“. Das Script „set_data.php“ wertet die Daten aus, passt die Zeitzonen an, und schreibt die Daten in die SQL Datenbank. Über das Formular „select_data.htm“ kann jeder Internetnutzer die Daten abfragen. Die Abfrage wird an das Script „get_data.php“ gesendet. Dieses Script gibt die Daten aus. Weiterhin kann auch ein Diagramm im svg Format oder ein Diagramm als ascii Grafik angezeigt werden. Nach ausgiebigen Tests werden die Scripte angepasst und auf den Webserver kopiert und dort wird auch die entsprechende Datenbank eingerichtet. Es wird nun alle 30 Minuten eine Messung der Außentemperatur durchgeführt und auf dem Webserver gespeichert. Quellen: http://www.w3schools.com/php/default.asp PHP Tutorial http://www.php-homepage.de/manual/ PHP Handbuch http://de.selfhtml.org/index.htm HTML Kursus http://dev.mysql.com/doc/refman/5.0/en/index.html MySQL 5.0 Reference Manual http://wiki.cihar.com/pma/Welcome_to_phpMyAdmin_Wiki phpMyAdmin, Documentation http://ffm.junetz.de/members/reeg/DSP/node1.html PHP, HTML, MySQL Kursus http://www.apachefriends.org/de/xampp.html XAMPP: Apache, MySQL, PHP + PEAR, Perl... (Webserver für Windows ...) http://www.w3.org/TR/SVG11/index.html svg image format http://www.velleman.be/downloads/0/user/usermanual_k8055_dll_d.pdf Einführung zu der DLL für die USB Experiment Interface Board K8055 http://www.velleman.be/downloads/0/illustrated/illustrated_assembly_manual_k8055_d_rev3.pdf USB Experiment Interface Board K8055 http://www.betatherm.com/indextheory.php NTC Thermistor Theory http://de.wikipedia.org/wiki/Hei%C3%9Fleiter Heißleiter http://de.wikipedia.org/wiki/Spannungsteiler Spannungsteiler