Temperaturmessung und Bereitstellung der Werte über einen

Werbung
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
Herunterladen