Hi, meine diesjährige Weihnachtsbastelei ist fertig: Ein kleines Thermometer, welches über USB kommuniziert. Ich benutze es um kontinuierlich die Temperatur aufzuzeichnen. In meinem Fall denke ich daran, eine kleine Regelung für die Heizung aufzubauen (die HR20-Thermostate habe ich schon) - dafür sollen im nächsten Schritt noch Funksensoren dazu kommen. Andere Leute haben ein ähnliches Setup im Serverraum laufen. Das Projekt basiert auf dem ATMega168 und zwei Temperatursensoren DS18S20: Einer für die Innen-, der andere für die Außentemperatur. Ich benutze den Software-USB-Stack "AVR-USB" von Objective Development und die DS18X20-Routinen von Martin Thomas. Der Code und die Schaltung stehen unter der GPL und sind hier verfügbar: http://code.google.com/p/mikrowerk/wiki/USBTemp Mein Setup daheim beschreibe ich hier: http://gonium.net/md/2009/01/03/usbtemp-continuous-temperature-monitoring/ Schönen Gruß, -Mathias
> In meinem Fall denke ich daran, eine kleine Regelung für die Heizung > aufzubauen Die Regeldaten (Solltemperatur) schickst du dann über ein (Java, C++, ... )Programm mit dem du die Temp.-Kurven für die einzelnen Räume erstellt hast zu dem µC ? > (die HR20-Thermostate habe ich schon) - dafür sollen im > nächsten Schritt noch Funksensoren dazu kommen. Willst du die Daten wirklich per Funk übertragen? Diese HR20-Thermostate hast du dir aber nur gekauft weil du dir die Mechanik nicht selbst machen kannst, die Elektronik schmeißt du doch dann bestimmt raus.
Hallo Peter, Peter Bandhauer wrote: >> In meinem Fall denke ich daran, eine kleine Regelung für die Heizung >> aufzubauen > Die Regeldaten (Solltemperatur) schickst du dann über ein (Java, C++, > ... )Programm mit dem du die Temp.-Kurven für die einzelnen Räume > erstellt hast zu dem µC ? So denke ich mir das, ja. Welche Regelverfahren dann zum Einsatz kommen etc. ist noch offen. Im Moment finde ich es schon spaßig, die Abweichungen von Thermostat- und tatsächlicher Raumtemperatur zu plotten - das Verhalten erschließt sich mir noch nicht ganz. Wie gesagt, ist eine Spielwiese. >> (die HR20-Thermostate habe ich schon) - dafür sollen im >> nächsten Schritt noch Funksensoren dazu kommen. > Willst du die Daten wirklich per Funk übertragen? Ja, warum nicht? Ich denke an die RFM12-Module. Natürlich muß der Datentransfer verschlüsselt werden. Ich möchte - soweit möglich - bereits existierenden Code bzw. Projekte wiederverwenden, da bietet sich RFM12 an. (Modulo die Probleme, die ich erst später finde ;-)) > Diese HR20-Thermostate hast du dir aber nur gekauft weil du dir die > Mechanik nicht selbst machen kannst, die Elektronik schmeißt du doch > dann bestimmt raus. Warum? (Ernstgemeinte Frage!) Eigentlich (s.o.) hab ich mir die HR20-Thermostate gekauft, weil sie als Experimentierplattform im preislichen Rahmen bleiben und weil es wiederum Leute hier im Forum gibt, die Code dafür entwickeln. Bis jetzt bin ich auch eigentlich ganz zufrieden damit. Gibt es denn Probleme damit? Schönen Gruß, -Mathias
> Gibt es denn Probleme damit?
Nein, ich hab mir die aber mal angeschaut und frage mich ob die irgend
eine Schnittstelle haben.
Sieht nicht so aus, da ist doch nur eine Zeitschaltuhr drin.
Wie machst du das?
Hi, Peter Bandhauer wrote: >> Gibt es denn Probleme damit? > Nein, ich hab mir die aber mal angeschaut und frage mich ob die irgend > eine Schnittstelle haben. > Sieht nicht so aus, da ist doch nur eine Zeitschaltuhr drin. Im Prinzip ja, allerdings ist das im Prinzip nur ein ATMega169. Guckst Du hier: http://www.mikrocontroller.net/articles/Heizungssteuerung_mit_Honeywell_HR20 Die Leute schreiben eine alternative Firmware für den HR20. Später ist dann geplant, weitere Interfaces (CAN, RFM12) dranzuhängen. > Wie machst du das? Noch gar nicht ;-) Ich benutze die HR20 nur, weil ich sonst vergesse, die Heizung in meiner Mietwohnung herunterzudrehen. Nächster Schritt ist für mich erst einmal, via Funk einzelne Sensoren zu erfassen. Heute kam mein SHT11-Sample ;-) Gruß, -Mathias
Hallo Mathias, viele Dank für dieses Projekt. Ich habe die Schaltung soeben nachgebaut und es hat alles auf Anhieb funktioniert. Nur einen kleinen Fehler im Schaltplan habe ich entdeckt: C5 fühlt sich anders gepolt wohler. Gruß Björn
Hallo Björn, in der Tat, C5 fühlte sich verpolt. Danke für den Hinweis, der Kondensator ist nun richtig herum im Schaltplan. Gleichzeitig habe ich noch ein paar Bugfixes an der Hostsoftware gemacht. Weiterhin enthalten die Graphen nun neben dem letzten Wert auch direkt Minimum, Maximum und Durchschnitt der Temperaturen in dem jeweiligen Zeitraum, siehe hier: http://gonium.net/md/temperature/ Das neue Release (V0.1.1) ist bei Google Code zu haben: http://code.google.com/p/mikrowerk/wiki/USBTemp Schönen Gruß, -Mathias
Hallo Mathias, wofür bzw. wohin geht VDD? Ich habe eine Brille, finde aber trotzdem keinen Anschluss dafür. Die Software finde ich auch nicht. Gruss Marcel
Hallo Marcel, M. W. wrote: > wofür bzw. wohin geht VDD? > Ich habe eine Brille, finde aber trotzdem keinen Anschluss dafür. Das wenn Du VDD in der rechten oberen Ecke des Schaltplans meinst: Das liegt daran, daß das Eagle-Symbol für den DS18S20 VDD und GND benutzt. Die beiden werden einfach auf GND gelegt, die Temperaturmessung funktioniert über Parasite Power. > Die Software finde ich auch nicht. Brauchst Du Brille: http://code.google.com/p/mikrowerk/downloads/list HTH, -Mathias
Simon K. wrote:
> Warum kein AVR mit eingebautem USB? Das ist standardkonformer.
Kennst Du einen USB-AVR im DIL-Gehäuse? Ich würde auch einen "richtigen"
USB-Stack bevorzugen, aber ich mag nicht extra Platinen ätzen lassen.
Ich kenne den 90USB162 recht gut, aber der ist eben als SMD-Bauteil
ausgelegt.
Schönen Gruß,
-Mathias
Mathias D. wrote: > Simon K. wrote: >> Warum kein AVR mit eingebautem USB? Das ist standardkonformer. > > Kennst Du einen USB-AVR im DIL-Gehäuse? Ich würde auch einen "richtigen" > USB-Stack bevorzugen, aber ich mag nicht extra Platinen ätzen lassen. > Ich kenne den 90USB162 recht gut, aber der ist eben als SMD-Bauteil > ausgelegt. Ok, im DIL Gehäuse wird's dann doch problematisch.
Hallo, ich habe/hatte das Problem, dass die Sensoren bei längerem Anschlusskabel nicht erkannt wurden. Nach Abschalten der Compiler Optimierung ( OPT=0 ) funktionierte es. Allerdings benutze ich auch einen Mega8. Damit die Firmware noch ins Flash passt, habe ich die debug Infos abgeschaltet. Gruß Björn
Hallo Björn, Björn Biesenbach wrote: > ich habe/hatte das Problem, dass die Sensoren bei längerem > Anschlusskabel nicht erkannt wurden. Nach Abschalten der Compiler > Optimierung ( OPT=0 ) funktionierte es. Allerdings benutze ich auch > einen Mega8. Damit die Firmware noch ins Flash passt, habe ich die debug > Infos abgeschaltet. Dieses Problem habe ich in meinem Fall durch ein geschirmtes Kabel gelöst. Mein Anschlußkabel ist allerdings auch nur ca. fünf Meter lang. Interessant, daß sich die Probleme auch durch das Abschalten der Kompileroptimierungen beheben lassen. Wahrscheinlich "optimiert" der Compiler die Timings des Onewire-Protokolls kaputt. Schönen Gruß, -Mathias
Zuerst einmal vielen Dank für diese tolle Lösung, entsprach sie doch fast dem, was ich erreichen wollte. Mittlerweile habe ich den Code auf den ATTiny45 portiert und dabei noch den Quarz eingespart. Zwei Pins des 45er dienen jetzt als Ausgang und einer davon wird in Zukunft meine Heizung steuern. Als nächstes wird noch der watchdog implementiert und dann folgt der Langzeittest. Erstaunlich ist die Streuung der DS18S20. Vier von sechs sind ziemlich genau, d.h. eine Abweichung von weniger als 0,2°C, während einer bei ca. 0,7°C liegt und der letzte mit über 1,2°C abweicht, wobei es kein linearer Offset ist.
Hi, seit_z80 schrieb: > Zuerst einmal vielen Dank für diese tolle Lösung, entsprach sie doch > fast dem, was ich erreichen wollte. Schön! > Mittlerweile habe ich den Code auf den ATTiny45 portiert und dabei noch > den Quarz eingespart. Zwei Pins des 45er dienen jetzt als Ausgang und > einer davon wird in Zukunft meine Heizung steuern. > Als nächstes wird noch der watchdog implementiert und dann folgt der > Langzeittest. Interessant. Du hast auch den USB-Part auf den ATTiny45 gebracht? Ist der Code bzw. Dein Schaltplan irgendwo zugänglich? > Erstaunlich ist die Streuung der DS18S20. Vier von sechs sind ziemlich > genau, d.h. eine Abweichung von weniger als 0,2°C, während einer bei ca. > 0,7°C liegt und der letzte mit über 1,2°C abweicht, wobei es kein > linearer Offset ist. Hm, das habe ich noch gar nicht gemessen. Bei den beiden, die ich benutze, liegt der Unterschied konstant bei 0.1°C, wenn sie nebeneinander liegen. 1,2° ist schon etwas viel. Schönen Gruß, -Mathias
Hallo Mathias, ja, der 45er macht de facto alles und natürlich auch die Kommunikation per USB. Im Grunde nichts revolutionär neues nach eurer Vorarbeit. Da ich den Code für die UART entfernt habe, passt jetzt alles in den 45er. Ich werde den uC-Code weiter reduzieren und nur noch die Sensordaten unkonvertiert übertragen, denn die Konvertierung kann das usbtemp45 übernehmen. Was mich momentan noch stört, ist die relativ geringe Konvertierungsrate, denn wenn ich 5 Sensoren minütlich abfrage, dann dauert es bis zu 3 Minuten, bis die Sensoren ihre Werte aktualisieren. Aber an sich eine super Lösung und kaum noch zu unter- bzw. überbieten. Viele Grüße, Steffen
Hi Steffen, seit_z80 schrieb: > ja, der 45er macht de facto alles und natürlich auch die Kommunikation > per USB. Im Grunde nichts revolutionär neues nach eurer Vorarbeit. > Da ich den Code für die UART entfernt habe, passt jetzt alles in den > 45er. Ich werde den uC-Code weiter reduzieren und nur noch die > Sensordaten unkonvertiert übertragen, denn die Konvertierung kann das > usbtemp45 übernehmen. Ah, ok. Ohne den Serial-Teil kann das natürlich funktionieren. Macht Sinn :-) > Was mich momentan noch stört, ist die relativ geringe > Konvertierungsrate, denn wenn ich 5 Sensoren minütlich abfrage, dann > dauert es bis zu 3 Minuten, bis die Sensoren ihre Werte aktualisieren. Hm, hast Du vielleicht Probleme mit der Kommunikation über Onewire? Zum Debuggen wäre natürlich eine serielle Leitung schön ;-) Ich hab instabile Verbindungen über Onewire beobachtet, die von zu langen Kabeln (> 5m) verursacht wurden. > Aber an sich eine super Lösung und kaum noch zu unter- bzw. überbieten. Standing on the shoulders of giants... Der Obdev USB Stack sowie die Arbeiten von Martin Thomas sollten nicht unerwähnt bleiben. Schönen Gruß, -Mathias
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.