Projekte:MobileHeat

Aus ShortysFastLane.de
Wechseln zu: Navigation, Suche

Mobile Heat nenne ich meine SMS-Fernsteuerung für meine Webasto-Standheizung ThermoTop C.

(Ach so: Die Platine ist absichtlich so groß geworden, damit sie in das vorgesehene Gehäuse passt und damit auch genau in ein Ablagefach im Auto ohne hin und her zu rutschen! Soviel dazu, weil jeder Zweite anmerkt, dass sie zu groß wäre... ^^)


Motivation

Platine direkt nach dem Löten der SMD Bauteile (Controller fehlt noch).
Fertig bestückte Platine mit allen Bauteilen (auch THT).

Als ich mir im Herbst 2010 eine Standheizung von Webasto zulegte, war die Überlegung welche Bedienelemente zum Einschalten sie haben sollte.

Das war natürlich eine Preisfrage, denn die einfache sog. "Vorwahluhr" kostet schon ca. 75 Euro. Mit dieser Uhr ist es nur möglich das jeweils nächste Einschalten zu timen. Fernbedienen ist damit gar nicht möglich, man muss also vorher wissen, wann die Heizung los laufen soll.

Die nächste Möglichkeit, bzw. weitere Möglichkeit ist die Telestart Fernbedienung. Sie funktioniert per Funk und kann die Heizung in einer Entfernung von bis zu x km einschalten. Jedoch veringert sich die Reichweite enorm, wenn es keinen direkten Sichtkontakt gibt bzw. man sogar in einem Gebäude ist. Die Kosten sind hier schon wirklich enorm mit mind. 300 Euro. Und bei einem Kollegen der diese Fernbedienung hat, habe ich es getestet. Meist muss man das Gebäude verlassen um die Heizung anzuwerfen, es sei denn man hat ein Fenster oder das Auto steht wirklich direkt vor der Tür.

Natürlich gibt es in Zeiten der modernen Kommunikation auch die Möglichkeit die Standheizung per Mobiltelefon fernzusteuern. Dieses Modul gibt es von Webasto und nennt sich Thermocall. Es kostet schlappe 650 Euro.

Aber per Handy die Standheizung zu bedienen erschien mir als sehr komfortabel. Wenn man z.B. mal in der Stadt bummelt usw. Der Preis war jedoch gar keine Überlegung wert, ich dachte nur "das muss auch billiger gehen!"

Und so entstand die Idee der elektronischen Schaltung "Mobile Heat" zur fernsteuerung einer Webasto Standheizung.


Die Funktionen

Die Funktionen sollten nur das nötigste enthalten um das Projekt nicht unnötig zu verkomplizieren. Im Grunde würde Ein-/Auschalten schon reichen, doch ich wollte wenigstens noch ein kleines bischen mehr. Die Thermocall lässt ich durch Anrufe steuern und hat noch eine GPS Ortung eingebaut. Da ich jetzt mal nicht davon ausgehe dass mein Auto gestohlen wird oder ich gar vergesse wo ich es geparkt habe, werde ich GPS Ortung in der Version 1 weglassen. Die Steuerung wollte ich per SMS realisieren, da der Text leicht zu interpretieren ist und ich eine SMS Flatrate auf dem Handy habe.

Folgende Funktionen sollte es geben:

  • Einschalten mit Zeitangabe (z.B. 30 Min. an)
  • Einschaltsicherung durch PIN
  • Ausschalten
  • Weiterleitung nicht interpretierbarer Nachrichten

Am Ende habe ich auch alle diese Funktionen umsetzten können, sodass man nun eine SMS mit einem Definierten String sendet:

!ON:30 !PIN:1111
!OFF

Alle nachrichten die nicht interpretiert werden können, leitet die Schaltung einfach auf mein Handy weiter


Die Schaltung

Controller

Als Controller wählte ich den Atmega 168 aus, da dieser mir wohl bekannt ist und alle Jobs die zu tun sind beherrscht.

Das GSM-Modul

Terminalfenster der USB-Vebindung zum Modem.
Auswertung einer Übertragung mit dem Logic Analyzer.

Das GSM-Modul ist ein ganz einfaches GSM-Modem, das Huckepack auf der Platine befestigt werden kann und mit einem Steckverbinder verbunden ist. Es hat keine besonderen Funktionen, da ich sowieso nur die SMS-Funktion benötige. Als Bestätigung des Empfangs soll das Modem einen Rückruf tätigen und kurz "anklingeln" lassen. Das ist schon alles. Daher wählte ich das günstigste Modul aus, das ich bekommen konnte. Der Preis war ca. 50 Euro.

Spannungsversorgung

Die Spannungsversorgung war etwas kritisch da das Modem mit 3.5 - 4.5 Volt benötigt und Peakströme von bis zu 3 A zieht. Als Spannungsregler wählte ich daher den #noch ergänzen# Schaltregler in einer hochwertigen Konfiguration um den Wirkungsgrad möglichst hoch zu halten.

Der Ruhestrom sollte nicht mehr als 5 mA betragen um die Autobatterie nichst ständig zu hoch zu belasten. Daher sollen sowohl das GSM-Modul alsauch der Mikrocontroller im Standby schlafen gehen.

Ansteuerung GSM-Modul

Das GSM-Modul ist ein normales Modem und erwartet seine befehle über die serielle Schnittstelle (also USART). Das war so weit gar kein Problem da der Atmega ja sogar einen Hardware einen USART eingebaut hat. Die Befehle die das Modem versteht sind im Datenblatt hinterlegt und erklärt.... leider etwas schlecht und immer ohne Beispiele. Das hat mir viel Arbeit beschert, da die meisten Befehle nicht so funktioniert haben wie erklärt.

USB Schnittstelle

Um das Modem auch per USB bedienen zu können, (also nicht nur mit dem Controller) falls es zu Problemen kommt oder etwas geändert werden muss, habe ich einen USB-Host-Controller Chip von FTDI auf der Platine vorgesehen. Mit einem kleinen Schalter kann man nun zwischen USB und Controller umschalten und das Modem mit jeweils einem der Beiden bedienen.


Fertigung und Test

Test der Platine auf dem Labortisch mit dem Logic-Analyzer.
Platine im Gehäuse ohne Deckel.

Da die Platine im Auto ettlichen Belastungen (Vibration, Hitze, Kälte, Feuchtigkeit) ausgeliefert ist, habe ich mich dazu entschlossen eine Platine fertigen zu lassen, statt sie selbst zu ätzen.

Die Platine habe ich bestückt und im Dampfphasen-Löt-Ofen meiner Hochschule gelötet. Das Ergebnis wurde entsprechend gut wie auf den Bildern zu sehen.

Die ersten Tests waren sehr vielversprechend, doch ich hatte nach wie vor Probleme mit dem SMS-Modul zu kommunizieren. Dabei war es kein Problem Befehle zu senden, doch das Modem sendete keine Informationen zurück. Das Problem lag am RTS (Request to Send) Pin des Modems. Dieser Eingang sagt dem Sender, dass er senden darf. Ich habe vergessen diesen Pin im Schaltplan und somit auch im Layout mit dem Controller zu verbinden. Doch zum Glück war das kein Problem, denn der Pin muss nicht unbedingt aktiv angesprochen werden. Man kann ihn auch dauerhaft auf Masse legen, was dem Modem sagt, dass es jederzeit senden darf. Da mein Controller die Zeichen per Interrupt empfängt, gab es auch keine Timing probleme.

Eine Status LED war leider an einem Pin des Controllers angeschlossen der nicht als Ausgang geschaltet werden konnte. Das übersah ich beim zeichnen des Schaltplans. Doch mit einem kleinen Fädeldraht war dieser Fehler auch schnell behoben und der Transistor für die LED einfach schnell mit einem anderen I/O des Controllers verbunden.


Software

Die Software war bei diesem Projekt relativ unkritisch. Der schwierigste Teil war wohl der Zeichenempfang per Interrupt, doch auch das war nicht wirklich eine Hürde. Ansonsten ist die Software sehr simpel.

Sobald eine SMS ankommt, sendet das Modem über den RI Pin ein Signal. Dieses lässt meinen Controller aus dem Schlaf erwachen und die SMS vom Modem abholen.

Dann wird der SMS-String ausgewertet und das entsprechende Ereignis eingeleitet. Wenn die SMS nicht interpretierbar ist, sendet der Controller die SMS an mein Handy weiter.

Während die Standheizung läuft, blinkt eine rote LED und der Controller geht auch nicht mehr schlafen sondern misst die Zeit mit einem Timer im Sekundentakt. Sobald die Zeit abgelaufen ist schaltet die Heizung ab und der Controller geht wieder schlafen.

Ein Taster am Gehäuse dient dazu die Heizung per Hand Ein-/Ausschalten zu können, falls man schon früher zurück kommt oder man einfach mal per Hand vorheizen möchte.


Inbetriebnahme und Fazit

Nachdem die Software fertig war und die Schaltung auf dem Labortisch gut funktionierte, packte ich sie in das Gehäuse und fur die ersten Tests im Auto. Die Heizung schaltete sich nicht ein.... wie sich herausstellte brach die Spannung von 12 Volt am Ausgangspin ein um die Heizung anzuschalten. Ich habe die Schutzwiderstände für den Ausgang wohl zu hoch gewählt und der nötige Strom ließ die Spannung einbrechen. Nach reduzierung der Widerstände um Faktor 100 (von max. 0,012 mA zu max. 110 mA Ausgangsstrom) schaltete die Heizung sauber ein.

Die Schaltung läuft nun schon 2 Tage problemlos in meinem Auto, ich bin gespannt ob die Langzeitstabilität gut ist und die Funktion weiterhin zuverlässig ist.

Fazit

Ich bin sehr zufrieden, es gab nur zwei Fehler auf der Platine die leicht zu beheben waren und die Schaltung läuft bis jetzt sehr stabil und gut.

Die Gesamtkosten beliefen sich auf ca. 200 Euro. Ich hoffte es günstiger zu schaffen, doch die Platine, das Modul sowie ein Evaluations-Board für das GSM Modul trieben die Kosten in die Höhe. Alles in allem aber immernoch nur 1/3 des Preises des original Moduls.