Solar-Morse-Thermometer
Submitted by: Michael Ringe Update 2014-08-27: Den verlorengegangenen Schaltplan und das Layout habe ich wieder rekonstruiert. Update 2014-08-10: Das Programm für den Mikrocontroller ist jetzt auch wieder verfügbar. In angehängten ZIP-Datei sind Eagle-Dateien und Programm enthalten.
Submitted by: Michael Ringe
Update 2014-08-27: Den verlorengegangenen Schaltplan und das Layout habe ich wieder rekonstruiert.
Update 2014-08-10: Das Programm für den Mikrocontroller ist jetzt auch wieder verfügbar. In angehängten ZIP-Datei sind Eagle-Dateien und Programm enthalten.
Ein MinMax-Thermometer für den Balkon oder Garten. Es sendet die Temperatur laufend im Morse-Code und läßt sich aus 20m Entfernung noch "ablesen". Das Thermometer ist komplett in Epoydharz eingegossen und damit wetterunempfindlich. Den Morsecode sendet das Thermometer mit zwei verschiedenfarbigen Leuchtdioden: Rot=Strich, Grün=Punkt. Die Codierung der Ziffern ist leicht zu merken, dazu kommen noch die Buchstaben P (für "plus") und M ("minus"). Eine Sendung besteht immer aus drei Werten: aktuelle Themperatur, 24-Stunden-Minimum und -Maximum. Zum Beispiel: bedeutet "P9 M1 P11": es ist aktuell +9°C, das Minimum war -2°C und das Maximum +11°C. Diese drei Werte wiederholt das Thermomenter immer wieder, und zwar etwa alle 50 Sekunden. Die Schaltung
Die Schaltung besteht im Kern aus einem Mikrocontroller (PIC12LF1840) und einem Temperatursensor TMP112. Letzterer arbeitet mit Versorgungsspannungen bis 1.4V, braucht nur sehr wenig Strom, ist einfach über I2C ansprechbar und liefert ohne Kalibrierung die Temperatur mit einer Genauigkeit von 0.5°C. Den Strom für das Thermometer liefert eine Solarzelle, ein Speicherkondensator überbrückt die Zeiten ohne Sonnenlicht. Da die Solarzelle im Vergleich zum Rest nicht übermäßig groß werden sollte, fiel die Wahl auf ein hocheffizientes Modell von Ixys (KXOB2201X8). Sie liefert bei hellem Sonnenlicht 3.8mA bei 3.4V und hat ausreichend Reserven, um den Speicherkondensator auch bei indirekter Beleuchtung auf seine maximale Spannung von 2.7V aufzuladen. Wichtig (und nicht immer einfach) ist die richtige Aufstellung des Thermometers, so daß es zwar im Schatten steht, aber dennoch genügend Licht bekommt. Bei starker Beleuchtung könnte die Solarzelle den Kondensator überladen und damit beschädigen. Um das zu verhindern, überwacht der Mikrocontroller die Betriebsspannung. Überschreitet sie einen vorgegebenen Grenzwert, dann beginnt das Thermometer, Energie zu "verschwenden", um sie Spannung zu begrenzen. Dazu leuchtet in den Pausen zwischen zwei Sendungen die rote LED im Dauerbetrieb. Außerdem zieht der Controller die beiden I2C-Leitungen auf Low. Beides zusammen bewirkt einen (gemessenen) Stromverbrauch von über 6mA bei 2.7V. Alternative Bauteile
Der TMP112 ist leider recht teuer und nicht leicht zu beschaffen. Darüber hinaus ist das winzige SOT563-Gehäuse mit einen Pinabstand von 0.5mm nicht jedermanns Sache. Beim Einlöten braucht man schon viel Fingerspizengefühl. Als Alternative bietet sich der TMP75BID an. Er ist preiswerter und dank SOIC-Gehäuse deutlich besser für Grobmotoriker geeignet. Soweit ich sehe, sind die elektrischen Daten und die I2C-Schnittstelle vergleichbar. Ausprobiert habe ich das allerdings nicht.
Der PIC12LF1840 kann ohne Programmänderung durch einen PIC12LF1822 ersetzt werden. Anderen PIC12-Typen fehlt das I2C-Modul, hier müsste man die Kommunikation mit dem Sensor von Hand programmieren.
Update 2014-08-27: Den verlorengegangenen Schaltplan und das Layout habe ich wieder rekonstruiert.
Update 2014-08-10: Das Programm für den Mikrocontroller ist jetzt auch wieder verfügbar. In angehängten ZIP-Datei sind Eagle-Dateien und Programm enthalten.
Ein MinMax-Thermometer für den Balkon oder Garten. Es sendet die Temperatur laufend im Morse-Code und läßt sich aus 20m Entfernung noch "ablesen". Das Thermometer ist komplett in Epoydharz eingegossen und damit wetterunempfindlich. Den Morsecode sendet das Thermometer mit zwei verschiedenfarbigen Leuchtdioden: Rot=Strich, Grün=Punkt. Die Codierung der Ziffern ist leicht zu merken, dazu kommen noch die Buchstaben P (für "plus") und M ("minus"). Eine Sendung besteht immer aus drei Werten: aktuelle Themperatur, 24-Stunden-Minimum und -Maximum. Zum Beispiel: bedeutet "P9 M1 P11": es ist aktuell +9°C, das Minimum war -2°C und das Maximum +11°C. Diese drei Werte wiederholt das Thermomenter immer wieder, und zwar etwa alle 50 Sekunden. Die Schaltung
Die Schaltung besteht im Kern aus einem Mikrocontroller (PIC12LF1840) und einem Temperatursensor TMP112. Letzterer arbeitet mit Versorgungsspannungen bis 1.4V, braucht nur sehr wenig Strom, ist einfach über I2C ansprechbar und liefert ohne Kalibrierung die Temperatur mit einer Genauigkeit von 0.5°C. Den Strom für das Thermometer liefert eine Solarzelle, ein Speicherkondensator überbrückt die Zeiten ohne Sonnenlicht. Da die Solarzelle im Vergleich zum Rest nicht übermäßig groß werden sollte, fiel die Wahl auf ein hocheffizientes Modell von Ixys (KXOB2201X8). Sie liefert bei hellem Sonnenlicht 3.8mA bei 3.4V und hat ausreichend Reserven, um den Speicherkondensator auch bei indirekter Beleuchtung auf seine maximale Spannung von 2.7V aufzuladen. Wichtig (und nicht immer einfach) ist die richtige Aufstellung des Thermometers, so daß es zwar im Schatten steht, aber dennoch genügend Licht bekommt. Bei starker Beleuchtung könnte die Solarzelle den Kondensator überladen und damit beschädigen. Um das zu verhindern, überwacht der Mikrocontroller die Betriebsspannung. Überschreitet sie einen vorgegebenen Grenzwert, dann beginnt das Thermometer, Energie zu "verschwenden", um sie Spannung zu begrenzen. Dazu leuchtet in den Pausen zwischen zwei Sendungen die rote LED im Dauerbetrieb. Außerdem zieht der Controller die beiden I2C-Leitungen auf Low. Beides zusammen bewirkt einen (gemessenen) Stromverbrauch von über 6mA bei 2.7V. Alternative Bauteile
Der TMP112 ist leider recht teuer und nicht leicht zu beschaffen. Darüber hinaus ist das winzige SOT563-Gehäuse mit einen Pinabstand von 0.5mm nicht jedermanns Sache. Beim Einlöten braucht man schon viel Fingerspizengefühl. Als Alternative bietet sich der TMP75BID an. Er ist preiswerter und dank SOIC-Gehäuse deutlich besser für Grobmotoriker geeignet. Soweit ich sehe, sind die elektrischen Daten und die I2C-Schnittstelle vergleichbar. Ausprobiert habe ich das allerdings nicht.
Der PIC12LF1840 kann ohne Programmänderung durch einen PIC12LF1822 ersetzt werden. Anderen PIC12-Typen fehlt das I2C-Modul, hier müsste man die Kommunikation mit dem Sensor von Hand programmieren.
Discussion (1 comment)