Benutzer-Werkzeuge

Webseiten-Werkzeuge


elektronik:selbstbau:usboregon

USB Protokoll Oregon Scientific WMR-100 Wetterstation

Die WMR100 ist vom Preis-Leistungsverhältnis unschlagbar. Da diese Station eine der ersten mit USB-Anschluss ist, ist zur Zeit die Auswahl an Software nicht besonders groß. Zum Teil völlig überladen mit Funktionen, nur für Windows u.s.w. Da ich ohnehin eine kleine Anwendung selber programieren wollte war die WMR100 die ideale Wahl für mich.

Durch einfaches Ausprobieren (Display ablesen und selben Wert im USB-Verkehr finden) kann man die richtigen Bytes schnell ohne Probleme finden - da steckt kein Geheimnis dahinter. Die Kommunikation mit der WMR100 findet als HID-Device statt, nicht als USB-Seriell wie zuerst erwartet.

WMR100 USB Kennung:

USB\Vid_0fde&Pid_ca01&Rev_0302
(USB-HID Human Interface Device)

WMR100 Initialisierung:

Zuerst muss nach dem Start einmalig folgendes Frame
gesendet werden:

20 00 08 01 00 00 00 00 (einmal)

Die WMR100 sendet daraufhin im Rhythmus von ca. 3..7 Sekunden jeweils 3..4 einzelne Nachrichten.

Die Checksumme wird durch einfache Summierung aller Bytes in der Botschaft exklusive dem Checksummen-Byte berechnet. Vom Ergebnis werden dann nur die niederwertigsten 8 Bits verwendet.

	Uhrzeit und Datum:
30 60 00 00 1A 12 02 05 07 00 CA      
FK xx xx xx AA BB CC DD EE xx CS

=> 18:26 02.05.2007

FK = Framekennung
AA = Minuten
BB = Stunden
CC = Tag
DD = Monat
EE = Jahr (2000 + EE)
CS = Checksumme

Barometer:
46 D2 03 13 34 62                
FK xx Dx BB xA CS

=> $413=1043mbar

FK = Framekennung
D = Vorhersage (0 Partly Cloudy, 1 Rainy, 2 Cloudy, 3 Sunny, 4 Snowy)
xA = Highnibble Druck
BB = Lowbyte Druck
CS = Checksumme

Indoor:
42 80 07 01 1F 50 00 00 20 59    
FK xS AA BB CC DD xx xx xx CS

=> $1F=31% $107=263/10=26.3Grad

FK = Framekennung
S  = Sensorkennung $0=Indoor Channel 0
AA = Temperatur Lowbyte
BB = Temperatur Highbyte (Temperatur durch 10 Teilen), MSB bei Negativ gesetzt
CC = Feuchte in Prozent
DD = Spannungsversorgung ? (50 kein AC, 6E AC ok ?)
CS = Checksumme

WMR100 Aussensensor

Outdoor:
42 81 CA 00 26 3C 00 00 20 0F   
FK xS AA BB CC xx xx xx xx CS

=> $CA=202/10=20.2    $26=38%

FK = Framekennung
S  = Sensorkennung $1=Outdoor Channel 1
AA = Temperatur Lowbyte
BB = Temperatur Highbyte (Temperatur durch 10 Teilen), MSB bei Negativ gesetzt
CC = Feuchte in Prozent
CS = Checksumme

Wind:
48 00 0C 0C C0 00 00 20 40
FK xA xx BB xx xx xx xx CS

=> Windrichtung Nord, Geschwindigkeit 1,2m/s=4,32km/h

FK = Framekennung
xA = Windrichtung (Nord=0, Reihenfolge N-E-S-W = $00...$0F)
BB = Windgeschwindigkeit (*0,1 ergibt m/s dann mal 3,6 ergibt km/h)
CS = Checksumme

WMR100 Zusatzsensor

Externer Temp/Feuchte Sensor THGR810 :
42 42 E9 00 2B 64 00 00 20 1C
FK xS AA BB CC xx xx xx xx CS

=> $E9=233/10=23.3   $2B=43%   Kanal2

FK = Framekennung
S  = Sensorkennung $2=Outdoor Channel $2..$A=Dipschalter im Sender
AA = Temperatur Lowbyte
BB = Temperatur Highbyte (Temperatur durch 10 Teilen), MSB bei Negativ gesetzt
CC = Feuchte in Prozent
CS = Checksumme

WMR100 Regensensor

Regenmesser:
41 00 00 00 00 00 00 57 01 13 0D 0F 03 07 D2  
FK xx xx CC DD xx xx AA BB xx xx xx xx xx CS

=> $157=343/100=3.43inch*25,4=87,12mm

FK = Framekennung
AA = Gesamtmenge Lowbyte
BB = Gesamtmente Highbyte (durch 100 teilen, Einheit Inch!)
CC = aktuelle Menge Lowbyte
DD = aktuelle Menge Highbyte (durch 100 teilen, Einheit Inch!)
CS = Checksumme

WMR100 UVsensor

Externer UVN800 UV Sensor:
47 01 05 4D
FK xx AA CS

=> UV Index 5

FK = Framekennung
AA = UV Index ($00..??)
CS = Checksumme

Wer noch weitere Informationen im Byte-Strom finden konnte, kann sich gerne bei mir melden.

elektronik/selbstbau/usboregon.txt · Zuletzt geändert: 2025/01/17 15:07

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki