
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> > Ich möchte Wetterdaten von der seriellen Schnittstelle meiner Wetterstation WS2300 einlesen und per SMS weitersenden. Das versenden von SMS mit dem Siemensmodul M20 ist kein Problem. Aber das einlesen der Daten von der Wetterstation wenn eine Reihe von bits daher kommen steigt mein Programmerl dabei aus. Wer kann mir dabei weiterhelfen wie ich die Daten flüssig übernehmen kann? > > Hallo, > ich hab eine WS 2000 und nutze die Daten von einigen Temperatursensoren für eine Steuerung mit einer C-Control I 2.0. Empfange die Daten mit dem „PC-Wettersensor Empfänger“ von ELV. > Lese die Daten über die serielle Schnittstelle ein. > Hier ein Auszug, nur Datenempfang und Aufbereitung der Temperatursensoren (Temperatur und Feuchte), aus meinem Programm zur Gewächshaussteuerung. > > Das Sendeprotokoll besteht aus 8 bit (im Programm eins bis acht) im einzelnen sind: > Eins = Startsignal > Zwei = Adresse des Sensors > Drei = Zeigt an wie der Temperaturwert zu lesen ist > Vier = Wert Temperatur > Fuenf = Wert Luftfeuchtigkeit > Sechs, sieben, acht = von mir nicht benutzt, ist wohl nur für Sensoren interessant die mehr als 2 Werte übertragen. > Negative Temperaturen können mit diesem Programm noch nicht dargestellt werden da ich in diesem Winter noch nicht die Zeit hatte mir das Sendeprotokoll in „Rohform“ anzusehen um herauszufinden wie der Wert „Drei“ ist wenn negative Temperaturen übertragen werden. > > print"#ON_LCD#"; > print"#INIT#"; > print"#CLR#"; > print"#OFF#"; > Baud 1 'Umstellung der Schnittstelle auf 19200 > if Rxd then gosub empfang > print"#OFF#"; > > #Empfang > 'Auslesen der empfangenen Daten von den Temperatursensoren > get eins:get zwei:get drei: get vier:get fuenf:get sechs:get sieben:get acht > > 'Startzeichen Abfragen > If (eins=&h2) then goto start > return > > #start > 'Sensor identifizieren > If (zwei=&h98) then gosub Gewaechshaus > return > > #Gewaechshaus > 'Temperaturwert für den jeweiligen Sensor aufbereiten > If (drei=&h80) then gosub Abzug > If (drei=&h81) then gosub kabzug > If (drei=&h82) then gosub plus > If (drei=&h83) then gosub plusplus > > 'Feuchte aufbereiten > feuchteinnen=fuenf and &h7F > > 'Temperatur mit Kommastelle aufbereiten > Tempinnen=wert/10 > Tempinnenlo=wert mod 10 > return > > > 'Wert aufbereiten Funksensor wenn drei =128 ist > #Abzug > wert=(vier and &h7f) > return > > 'Wert aufbereiten Funksensor wenn drei =129 ist > #kabzug > wert=vier > return > > 'Wert aufbereiten Funksensor wenn drei =130 ist > #plus > wert=(vier and &h7f)+&h100 > return > > 'Wert aufbereiten Funksensor wenn drei =131 ist > #plusplus > wert=(vier and &h7f)+&h180 > return > > > 'Programmteil zur Anzeige der Messwerte auf dem LCD-Display 4*16 > > #Innenwerte > print"#OFF#"; > print"#ON_LCD#"; > print"#CLR#"; > print"#L101#"; > Print "Innentemperatur" > print"#L201#"; > print Tempinnen; 'AUSGABE GANZE Zahl > print"."; 'AUSGABE DEZIMALPUNKT > print Tempinnenlo; 'AUSGABE NACHKOMMA STELLEN > print" C"; > print"#L117#"; > Print "Innenfeuchte" > print"#L217#"; > print feuchteinnen > print " %rH" > print"#OFF#"; > gosub keydecode > If keycode=11 then goto Messwerte > pause 10 > goto innenwerte Vielen Dank einmal für die Hilfe ich habe die Sensoren fix verkabelt und will die serielle Schnittstelle von der Wetterstation auslesen. Müsste einmal einen drahtlosen Temperaturfühler probieren aber ich glaub der ist nicht so wie ich es will. Denn aus der Wetterstation kommen noch mehr Daten die ich auch auswerten will und weiterleiten. |
| Antwort schreiben |