HaraldWien
New Member
Servus aus Wien!
Eine PICAXE-20X2, sechs Temperatursensoren DS18B20 am OneWire-Bus, eine RTC-Uhr DS1307 am i2c-Bus, ein LCD-Display 2x16 am i2c-Bus und vier Kippschalter am pinC.1 bis pinC.4. Und natürlich ein Programm, welches speziell für diese Konfiguration erstellt wurde. Das sind die Zutaten für den TEMPERATUR-MONITOR.
Wer den nachfolgenden Text nicht lesen mag, der kann sich auch dieses Video ansehen:
[video=youtube_share;4-wtQgKlmy4]http://youtu.be/4-wtQgKlmy4[/video]
Der Temperaturmonitor hat folgende Leistungsmerkmale:
Bis zu 30 OneWire-Geräte können in einem Arbeitsgang eingelesen und im EEPROM-Speicher der PICAXE verspeichert werden. In weiteren Arbeitsschritten (Anpassen von "case-Tabellen" im Programm) können OneWire-Familien zugelassen und innerhalb der Familie können einzelne Devices ausgeschlossen werden.
Pro Temperatursensor kann eine 16-stellge Bezeichnung definiert werden (via "case-Tabellen" im Programm), welche den Ort im Klartext spezifiziert an dem der Sensor seinen Dienst verrichtet (z.B.: "Hundehütte" oder "Heizung-Vorlauf", usw.)
Die Daten werden am 2x16-LCD-Display und als serielles Protokoll ausgegeben.
Das LCD-Display dient auch der Interaktion bei der Einstellung der Datums- und Zeitwerte.
Das Programm hat folgende Hauptfunktionen, die über die vier Schalter angewählt und gesteuert werden:
Phase-0: OneWireGeräte einlesen, prüfen, im EEPROM-Speicher eintragen und protokollieren. Hier erfährt der Anwender die ROM-Daten (Familiencode, Seriennummer und CRC) der angeschlossenen OneWire-Geräte.
Phase-1: Serielle Abfrage/Anzeige aller DS18B20-Sensoren wobei hier mittels Kompilationsentscheidung gewählt werden kann, ob die Abfragen aller Temperatursensoren zu einer bestimmten Zeit (z.B: 03:00, 06:00, 12:30, 22:15, usw.) oder in einem bestimmten Intervall (z.B: alle 300 Minuten = alle 5 Stunden) durchgeführt werden. sollen.
Phase-2: Einzelabfrage der Temperatursensoren - ein Sensor bleibt solange angezeigt, bis über eine Schalterimpuls die Anzeige des nächsten Sensors angewählt wird, oder auf die Serienabfrage umgeschaltet wird.
Phase-3: Einstellen von Datum und Uhrzeit über die Schalter.
Die LCD-Hintergrundbeleuchtung kann über Schalter ein- oder ausgeschaltet werden.
Schalterbelegung tabellarisch:
Wer das möchte, der kann sich hier den Programmcode ansehen oder auch herunterladen:
https://www.dropbox.com/s/u4sgofd5yawdzg0/p20X2 TemperaturMonitor.bas?dl=1
Eine PICAXE-20X2, sechs Temperatursensoren DS18B20 am OneWire-Bus, eine RTC-Uhr DS1307 am i2c-Bus, ein LCD-Display 2x16 am i2c-Bus und vier Kippschalter am pinC.1 bis pinC.4. Und natürlich ein Programm, welches speziell für diese Konfiguration erstellt wurde. Das sind die Zutaten für den TEMPERATUR-MONITOR.
Wer den nachfolgenden Text nicht lesen mag, der kann sich auch dieses Video ansehen:
[video=youtube_share;4-wtQgKlmy4]http://youtu.be/4-wtQgKlmy4[/video]
Der Temperaturmonitor hat folgende Leistungsmerkmale:
Bis zu 30 OneWire-Geräte können in einem Arbeitsgang eingelesen und im EEPROM-Speicher der PICAXE verspeichert werden. In weiteren Arbeitsschritten (Anpassen von "case-Tabellen" im Programm) können OneWire-Familien zugelassen und innerhalb der Familie können einzelne Devices ausgeschlossen werden.
Code:
1-Wire-Daten einlesen 07.10.2014 15:01:03
Uebern.Cd Fam-Seriennummer-------CRC(crc) Ort/Bezeichnung
FamilyCode?040-076035229005000000-093(093) 1WGeraet-040-093
FamilyCode?040-066207231005000000-178(178) 1WGeraet-040-178
FamilyCode?040-201132230005000000-182(182) 1WGeraet-040-182
FamilyCode?040-251222229005000000-149(149) 1WGeraet-040-149
FamilyCode?040-103111229005000000-219(219) 1WGeraet-040-219
FamilyCode?040-047198228005000000-064(064) 1WGeraet-040-064
Die Daten werden am 2x16-LCD-Display und als serielles Protokoll ausgegeben.
Das LCD-Display dient auch der Interaktion bei der Einstellung der Datums- und Zeitwerte.
Temperatur-Protokoll
Ort/Bezeichnung Datum Zeit Temperatur/C
---
Hundehuette 07.10.2014 15:16:14 +14,25
Wintergarten 07.10.2014 15:16:18 +18,25
Kinderzimmer 07.10.2014 15:16:21 +22,25
Haus Suedseite 07.10.2014 15:16:24 +17,5
Heizung-Vorlauf 07.10.2014 15:16:27 +43,5
---
Das Programm hat folgende Hauptfunktionen, die über die vier Schalter angewählt und gesteuert werden:
Phase-0: OneWireGeräte einlesen, prüfen, im EEPROM-Speicher eintragen und protokollieren. Hier erfährt der Anwender die ROM-Daten (Familiencode, Seriennummer und CRC) der angeschlossenen OneWire-Geräte.
Phase-1: Serielle Abfrage/Anzeige aller DS18B20-Sensoren wobei hier mittels Kompilationsentscheidung gewählt werden kann, ob die Abfragen aller Temperatursensoren zu einer bestimmten Zeit (z.B: 03:00, 06:00, 12:30, 22:15, usw.) oder in einem bestimmten Intervall (z.B: alle 300 Minuten = alle 5 Stunden) durchgeführt werden. sollen.
Phase-2: Einzelabfrage der Temperatursensoren - ein Sensor bleibt solange angezeigt, bis über eine Schalterimpuls die Anzeige des nächsten Sensors angewählt wird, oder auf die Serienabfrage umgeschaltet wird.
Phase-3: Einstellen von Datum und Uhrzeit über die Schalter.
Die LCD-Hintergrundbeleuchtung kann über Schalter ein- oder ausgeschaltet werden.
Schalterbelegung tabellarisch:
Code:
;================================================= =================;
; PROGR | Schalter | Schalter | Schalter | Schalter ;
; PHASE | 1 | 2 | 3 | 4 ;
;==========|=============|=============|========== ===|=============;
; nach neu | E=1WG einl. | E=EinzlAbfr | --- | E=LcdLEDAn ;
; Einschlt | A=norm.Ablf | A=SerieAbfr | | A=LcdLEDAus ;
;----------|-------------|-------------|-------------|-------------;
; TempAbfr | UMSCH= | E=EinzlAbfr | --- |UMSCH=LcdLED ;
; Seriell | UhrStellen | A=SerieAbfr | |ein/ausschalt;
;----------|-------------|-------------|-------------|-------------;
; TempAbfr | UMSCH= | E=EinzlAbfr | UMSCH=Naechs|UMSCH=LcdLED ;
; Einzeln | UhrStellen | A=SerieAbfr | Sensor anzg.|ein/ausschalt;
;----------|-------------|-------------|-------------|-------------;
; Zeit/Dat | UMSCH= | UMSCH=Wechsl| UMSCH=Wert | UMSCH=Wert ;
; einstell | UhrSt Ende | Std/Min/... | plus 1 | minus 1 ;
;================================================= =================;
; ( UMSCH = Schalter ein- bzw. ausschalten - also 1 Schaltvorgang )
https://www.dropbox.com/s/u4sgofd5yawdzg0/p20X2 TemperaturMonitor.bas?dl=1