-
Notifications
You must be signed in to change notification settings - Fork 6
tempsensor
Ein Tempsensor Device steuert einen 1-Wire Temperatursensor vom Typ DS18B20 an. Die Temperatur wird in regelmaessigen Abstaenden abgefragt und als 12Bit Zahl mit 4 Nachkommabits versendet:
0404 -> 0036 :SFP HES 1WIRE_TEMPERATURE gruppe:67 temp_hi:1 temp_lo:62
In diesem Falle sendet der Controller-1612 mit der Adresse 404 die aktuelle Temperatur des Temperatur-Sensors 67. Um die Messwerte direkt sehen zu koennen, kann man telican im temp-Modus laufen lassen:
$ telican --temp
group: 67 temp: 19.875
group: 3 temp: 9.4375
group: 68 temp: 19.125
group: 4 temp: 15.0625
Auch hcandq bietet mit der --interpret Option die Moeglichkeit, die Messwerte lesbar auszugeben.
Hier ist etwas Loetarbeit erforderlich: Die DS18B20 Sensoren werden im Parasite-Modus betrieben, d.h. sie "klauen" sich den Strom fuer den Betrieb aus dem Bus-Signal. In der Praxis funktioniert das mit mehreren DS18B20; ich hatte zeitweilig 3 Stueck an einer 0,6mm^2 Doppelader ueber einige zig Meter problemlos betrieben.
An den Eingaengen 8-15 koennen Sensor-Busse angeschlossen werden - auch mehrere gleichzeitig. Die Eingaenge muessen dafuer mit einem Pullup-Widerstand von 2.0k an die 5V-Versorgung (5V Pin in der Jumperleiste) angeschlossen werden. Der Wert des Pullup-Widerstandes ist sehr wichtig: ist er zu gross, bekommen die Sensoren nicht genug Strom, ist er zu klein, uebernehmen sie sich beim Ziehen gegen Masse (siehe Datenblatt des DS18B20).
{{:anschlussplan-ds18b20.png|}}
Es wird eine kleine Buchsenleiste (ggfls. kuerzen) auf die Jumperleiste gesteckt. Die 1Wire-Eingaenge werden direkt mit den dazugehoerigen Klemmen verbunden (also das, was der Jumper im Normalfall macht). Zusaetzlich wird je ein Pullup Widerstand von 2.0k zischen Input-Pin und 5V Pin geloetet.
Die DS18B20 haben 3 Pins: Vcc, DQ und GND. Vcc wird mit GND verbunden, die 1Wire-Bus-Leitung mit DQ und der GND natuerlich mit GND.
{{:1wire-pullups.jpg|}}
//Auf dem Foto sind im Gegensatz zum obigen Anschluss-Plan 2 1Wire Busse realisiert -- beide haben einen eigenen Pullup Widerstand zum 5V-Pin.//
Bisher habe ich nur DS18B20 Typen verwendet - moeglicherweise funktionieren auch andere DS1820 Sensoren, ggfls muss der Pullup-Widerstand angepasst werden, ev. auf Normal-Stromversorgung umgestellt werden. Es wird der 12Bit AD Modus verwendet - manche Sensoren loesen nicht so gut auf, hier koennte ein Source-Patch noetig sein, welcher die Ergebnisse umrechnet.
create tempsensor
set io_pin 15
set gruppe 67
set modus 1
set interval 60
set ow_id 28c245e50000001c
exit
| Feldname | Bit | Beschreibung
| -------- | --- | ------------
| io_pin | | Nummer des Pins, an dem der 1Wire-Bus angeschlossen ist (8..15)
| gruppe | | Gruppe des Temperatursensors
| modus | | 1 = sendet Meldungen, 0 = nicht aktiv
| interval | | Sendeinterval in Sekunden
| ow_id | | 1Wire ID des Sensors, mit 'discover1wire' herauszufinden
Die ow_id wird mit dem telican Befehl discover1wire in Erfahrung gebracht. Damit man weiss, welcher Sensor welcher ist, empfielt es sich, die Sensoren nacheinander einzeln anzuhaengen und erkennen zu lassen.
> discover1wire 15
DS1820 temperature sensor: 2866b2e4000000e4
>
-
Tutorials
-
FAQ
-
Referenz
- Konzepte
- Hardware
- Software/PC
- Software/Firmware
- Patches
- EDS - EEPROM Data System
- HCAN Protokoll
- HCAN Protokoll - Referenz