Arduino basierend Haus Heater Controler mit SMS User Interface

8 Schritt:Schritt 1: Beschreibung und Stückliste Schritt 2: Übersicht Schritt 3: Erstellen der Schild Schritt 4: Erstellen der Benutzeroberfläche Schritt 5: Anschließen Things Schritt 6: Assembly Schritt 7: Erstellung und Upload, Bibliotheken Schritt 8: Mit ihm

Arduino basierend Haus Heater Controler mit SMS User Interface
Das Projekt enthält Anweisungen und Code, um einen Heizungsregler für zu Hause oder im Remote-Landhaus, das kontrolliert und von GSM über SMS-Befehle überwacht werden können, zu bauen. Ich fing an, sie zu gestalten, wie wir brauchten ein zuverlässiges und Remote-Zugriff Heizungsregler für unser Land zu Hause, die in tief in die Landschaft, wo die Temperaturen fallen bis zu -30 ° C im Winter und ist, wo es keine zuverlässige (und bezahlbar) Internetverbindung . Im Handel erhältliche Controller entweder nicht bieten GSM-Steuerung, oder nicht über die Sicherheitsmerkmale noch die relative Leichtigkeit der vergleichsweise Nur-Text-Betriebsbefehl wir brauchten.

Schritt 1: Beschreibung und Stückliste

  1. Das Gerät ist um einen Arduino kompatibel Freeduino ATMega328 erbaut, hat eine ziemlich einfache Zollschutz für Zeitsteuerung, Temperaturmessung und Schnittstelle und kommuniziert über RS232 mit Siemens TC35i GSM-Modem. Es wird in einem Bilderrahmen untergebracht und unauffällig an der Wand hängt. Am wichtigsten ist, hat es sich einwandfrei arbeitet nun für ein Jahr. Es bietet die folgenden Funktionen:

    - Ein / Aus-Steuerung (im Gegensatz zu fortgeschrittenen Regelalgorithmen wie PID oder Steuerprotokolle wie Opentherm) der Heizung (Gas-Zentralheizung), die über eine einfache Relais geschaltet wird
    - Interaktive Steuerung über 3-Tasten-Tastatur und einfach große LCD-Display mit Klartext-Menüführung
    - 6 Betriebsarten:
    o Manuelle Temperaturkontrolle
    o Komfort (tagsüber) oder Wirtschaft (Nacht) Temperaturregime
    o Zyklus: schaltet auf programmierbare Komfortniveau in den Morgen, und reduzierte Nachttemperaturniveau in den Abend
    o Profil: frei programmierbare Temperaturprofil pro Tag oder eine Gruppe von Tagen für die Tage der Woche
    o Frostschutzmittel: Die Temperatur wird bei niedrigen programmierbare Temperatur (zB 8 ° C)
    - Echtzeituhr mit Batteriepuffer
    - Innen und außen (optional) Temperaturmessung
    - Kontrolle über alle Vorgänge und Parameter von SMS-Text (zB "Frostschutzmittel auf", "Uhrzeit 09.20" ...)
    - Editierbaren Telefonbuch für bis zu fünf registrierte Benutzer
    - Statusrück SMS durch einen Aufruf an das Gerät (unbeantwortet, so ohne Kosten für Anrufer)
    - Regelmäßige tägliche Protokollierung von SMS bis 1 Benutzer zu überwachen Operationen
    - SMS-Benachrichtigungen zu Kreuzung Temperaturgrenzen und vermutete Heizung Störung
    - Alle Parameter werden in einem nichtflüchtigen Speicher gespeichert werden, um gegen Stromausfälle zu schützen

    So in der Regel während der Winterzeit, ist das Haus in Frostschutzbetrieb gehalten. Einige Stunden vor der Ankunft, senden wir eine SMS zu starten Aufheizen auf eine angenehme Temperatur Ebene. Wir schalten um "Zyklus" Modus und schaltet das Gerät zwischen 20 ° C tagsüber und 17 ° C in der Nacht. Darüber hinaus jeden Morgen das Gerät Berichte über den aktuellen Status per SMS auf mein Handy. Wenn wir sicher wissen, dass unser Zeitplan programmieren wir das Gerät automatisch zu erwärmen, bevor unsere neue Ankunft.

    Die Herausforderungen im Design waren dreifach: neben den Grundanforderungen an Funktionalität und GSM Schnittstellen, Platz auf der ATMega hat eine große Einschränkung. Schließlich wird der eher rustikalen und traditionellen Blockhaus benötigt einige schöne und ästhetisch ansprechenden Gehäuse. Die goldene Bilderrahmen passt gut.

    Als Haftungsausschluss fordere ich vorsichtig, wenn Sie die Änderung bestehender Heizungsanlagen, da dies zu großen Schäden führen. Außerdem müssen die typischen Schutzmaßnahmen beim Umgang mit hohen Spannungen angewendet werden. Schließlich kann ich keine Verantwortung über die Arbeitsweise der Vorrichtung oder Code übernehmen. Anregungen und Verbesserungen sind willkommen.

    Was du brauchst:

    Hardware:
    • 1 Freeduino Serien V1.2 von Grund Logics (ATMega 328) jede Duemilia kompatibel tun wird, aber es erfordert eine serielle Schnittstelle (oder einen Adapter-Schaltung), um mit dem GSM-Modem-Schnittstelle
    • 1 Siemens MC35i tci35 oder GSM Modem
    • 1 Antenne für Siemens (in meinem Fall ein einfacher Draht tun würde)
    • 2 D-Sub 9-poligen Stecker zum Löten des RS232-Kabel
    • 1 LCD Display 20x4 oder 16x4-Zeichen bevorzugt mit Hintergrundbeleuchtung (zB 20x4 mit großen 9mm Zeichen: HITECH Displays, Modell: HMC020487SY-LY, 146.00 x 57.30mm)
    • 1 Netzteil (12 V, 2,0 A) mit 2,1 mm Stecker Zentrum postive
    • 1 weibliche 2,1 mm-Stecker
    • 1 Stecker 2.1 mm Stecker
    • 1 Western 6-polige Stecker für den Anschluss an das GSM-Modem
    • 1 (innen) oder 2 (innen + außen) Dallas DS18B20 Temp. Sensoren TO92
    • 1-Kondensator 100 nF für den Außentemperaturfühler (Lot zwischen + 5V und GND auf ein Draht-Bus Stabilität bei größeren Kabellängen zu erhöhen)
    • 3 Tasten (2 schwarz, 1 andere Farbe)
    • 1 Kondensator 10uF / 16V
    • 1 Kondensator 150nF / 16V
    • 3-Dioden 1N4148
    • 1 Batterie CR2032H
    • 1 Batteriehalter für CR2032H
    • 2 pinheads 1x08 2.54 mm, 19 mm Stifte (zum Stapeln auf Arduino)
    • 1 Stecknadelkopf 1x06 2.54 mm, 19 mm Stifte (zum Stapeln auf Arduino)
    • 1 Stecknadelkopf 1x06 2.54 mm
    • 1 Stecknadelkopf 1x04 2.54 mm
    • 1 Stecknadelkopf 1x09 2,54 mm (abhängig von LCD Pinbelegung, vor allem Hintergrundbeleuchtung)
    • 2 Stecker 2.54 mm bis zu LCD löten
    • 1 Relais Omron G6C-2117P
    • 1 Quarz 32,768 kHz
    • 2 Widerstände 10k
    • 1 Trimmer 10k
    • 1 Widerstand 1k5
    • 2-Transistoren BC547 TO92
    • 1 Timer-Chip Dallas DS2417 TSOC6
    • 1 Stecker 3 Contact Phoenix-350 - 220V kann dauern, wenn erforderlich
    • 2 Anschlüsse 3 Contact Phoenix-254 - 5V nur für einen Draht Temperatursensoren
    • ein geeignetes Gehäuse (in meinem Fall ein 30 cm x 40 cm Bilderrahmen mit dicken Passepartout um die Komponenten zu halten)
    • zwei Aluminium-Engel (Drucktasten, um zu empfangen), Schrauben
    • PCB (Adler Dateien angehängt)
    • einige Drähte
    • Leim oder Schmelz
    • 4 Schrauben 2,5 mm x 10 mm und Muttern, um das LCD zu beheben
    • Klett

    Werkzeuge:
    • Standard-Elektronik-Tools
    • ein Presswerkzeug für West 6 poligen Stecker
    • Lötkolben, zusätzlich eine flache Lötspitze zum Löten des 2417 SMD
    • PCB Ätzen Zubehör und Ersatzteile (zB für Tonerübertragungsverfahren)
    • Arduino IDE (> 1.0.5 kann mit früheren Versionen)
    • Arduino Standardbibliotheken
    • USB-RS232-Kabel, um die ATMega alternativ einen Programmierer in jedem Fall empfohlen zur Prüfung GSM-Arduino Kommunikationsprogramm
    • Programm-Code und benutzerdefinierte Bibliotheken (siehe Anhang)

    Operationen (optional):
    • GSM-SIM-Karte, PIN-Abfrage eingeschaltet Start off

Schritt 2: Übersicht

  1. Arduino basierend Haus Heater Controler mit SMS User Interface
    Die Abbildung zeigt die Hauptfunktionsblöcke meiner Design.

    Alles wird durch die ATMega auf einem Freeduino Board gesteuert. Wie RAM-Speicher ist ziemlich begrenzt (es kompiliert in 30602 von 30720 zur Verfügung bytes) Ich entschied mich für die Verwendung des einen Draht-Bus für beide DS18B20 Temperatursensor zu machen und Zeit bewirken halten über eine DS2417-Chip. Dieses Gerät zählt nur Sekunden, so fügte ich eine kleine Bibliothek nach dem DS1307 Funktionen modelliert, um für die richtige Zeitmessung und Kalenderfunktionen ermöglichen. Unabhängig davon, ist diese Einrichtung kostengünstiger auf RAM im Vergleich zu einer Kombination von DS18B20 und DS1307. Die Zeit-Chip durch eine CR3202 Batterie, die den Betrieb im Falle eines Stromausfalls aufrechterhalten wird gepuffert.

    Die ATMega kommuniziert mit dem GSM-Modem über RS232 (gekreuzt Pair-Kabel). Auf der Hardwareseite daher beschäftigt ich eine Freeduino mit RS232-Schnittstelle an Bord, die zusätzlichen Treiber Hardware vermeidet. Das Modem wird durch eine Bibliothek so dass für eine einfache Nutzung der AT-Befehlssatz gesteuert, grundlegende Textanalyse-Funktionen sowie SMS eingehenden Anruf Handling. Telefonnummern für bis zu 5 Benutzer werden durch einen Telefonbuchbibliothek verwaltet.

    Die Benutzerschnittstelle besteht aus einer 3-Tasten-Tastatur für die Menü-Navigation (nach oben / eingeben / unten) und die Anzahl / Dateneingabe sowie eine 20x4 LCD-Display. Wie ich wollte die Daten lesbar aus der Ferne zu sein, entschied ich mich für ein Display mit großen Buchstaben und 9mm-Hintergrundbeleuchtung. Sie können kleinere Displays und auch 16x4 oder kleinere Größen (die Compiler-Schalter in der Skizze zu ändern) zu verwenden. Tastatur und Anzeige sind durch UC digitalen I / O-Pins über eine modifizierte Standard Arduino Flüssigkristall-Bibliothek (angepasst um sowohl 20x4 und 16x4 Displays zu steuern) und eine Bibliothek für die Menüführung und die Ereignisverarbeitung gesteuert.

    Die ATMega steuert den Kessel über eine kleine 5V Relais und dessen Transistor-Treiber, der Griff kann bis zu 220V bei niedrigen Strömen. Dies ist typischerweise ausreichend für das Fahren Kessel ein / aus Kontakten. Die Softwarekomponenten für Heizungssteuerung sind ein Controller Bibliothek Verwaltung Sollwerte, minim Laufzeiten und Temperaturgrenzen, ein Alarm-Bibliothek, die verwendet wird, um die Kommunikation von Warnmeldungen sowie eine Bibliothek, die Funktionen für Temperaturprofile und deren Management.

    Alle Daten (1wire Busadressen, Heizungssteuerungsparameter und Staat sowie Telefonbuch-Einstellungen usw.) werden in einem nichtflüchtigen EEPROM gespeichert, um gegen Energieverluste zu sichern.
    Die gesamte Elektronik ist in einem benutzerdefinierten Schild, das auf die Freeduino gestapelt angeordnet ist. Der Brauch Schild enthält auch Buchsen für die LCD und hält den Kontrast Trimmer und Backlight-Treiber.

    Einen Temperatursensor direkt mit dem Schutzschild für die Innentemperatur angeschlossen ist, kann ein zweiter zur Messung der Außentemperatur auch durch eine 3-Draht-Kabel angeschlossen werden. Die Stromversorgung erfolgt durch ein 12V 2A Versorgung zur Verfügung gestellt.

Schritt 3: Erstellen der Schild

  1. Arduino basierend Haus Heater Controler mit SMS User Interface

    Arduino basierend Haus Heater Controler mit SMS User Interface

    Arduino basierend Haus Heater Controler mit SMS User Interface

    Arduino basierend Haus Heater Controler mit SMS User Interface

    Arduino basierend Haus Heater Controler mit SMS User Interface

    Der Brauch Schild ist recht einfach und wird auf einer einseitigen Leiterplatten bestückt. Anfänger in der Elektronik sollte nicht zu viele Probleme, den Bau zu haben. Eagle Dateien sind angebracht, so ist die PCB Ätzmuster.

    Die Leiterplatte kann am einfachsten mit dem Tonertransferverfahren hergestellt werden. Sie werden auf dem Netz reichlich Referenzen für diese zu finden. Sobald es geätzt und Löcher gebohrt sind, können alle Geräte, aber der 2417 Chips gelötet werden. Der 2417-Chip ist ein Surface Mounted Device. Es wird auf die Druckseite der Leiterplatte gelötet, also auf der Seite mit den Kupfer Patches. Dies ist ein wenig komplizierter - das Ergebnis ist in der Abbildung dargestellt, und es ist nicht eine meiner besten. Sie werden eine Reihe von Beschreibungen, wie SMD-Chips auf dem Netz zu löten zu finden.

    Wenn Ihr Relais muss 220V schalten, können Sie, um eine 1 mm in die Leiterplatte, wodurch die 220V Relaiskontakte von der Niederspannungsteil Trennschlitz geschnitten. Dies wird Isolierung zu erhöhen. In diesem Fall können Sie nicht mehr verwenden ein offenes Design und alle Kontakte müssen abgedeckt werden. Sie sollten ein isolierendes Gehäuse, ordnungsgemäß geerdet, für das gesamte Gerät zu verwenden. In meinem Fall hatte ich nur bis 12 V, die von der Heizung zu schalten, so dass dies nicht notwendig war.

    Während die Abmessungen und die Kontakte für den Arduino sind ziemlich standardisiert, die Lage der Kontakte für die LCD-Anzeige muss für die jeweilige Wahl der Anzeige geändert werden.

    Schließlich löten die Kontakte in die LCD, das die LCD-Kontakte auf dem Schirm übereinstimmen sollte. Sie können und sollten mit der Abschirmung und dem Arduino, bevor mechanische Montage zu testen.

Schritt 4: Erstellen der Benutzeroberfläche

  1. Arduino basierend Haus Heater Controler mit SMS User Interface

    Arduino basierend Haus Heater Controler mit SMS User Interface

    Als nächstes kommt die Tastatur und die LCD-Anzeige. Für meine besondere Wahl der Unterkunft, ein Bilderrahmen war recht unkompliziert Wahl, die auch akzeptabel, meine Familie war.

    Für die LCD-Anzeige, schneide ich ein entsprechendes rechteckiges Loch in das Passepartout. Dies sollte ziemlich dicht, um zusätzliche mechanische Stabilität zu passen. Weiter fit in der LCD und markieren Sie die Mitte seiner Befestigungslöcher auf der Rückseite des Passepartouts. Dann entweder Hotmelt oder - wie ich - 2-Komponenten-Polymer-Kleber 4 Schrauben zu befestigen, um das LCD zu halten. Das LCD kann dann auf die Schrauben geschraubt werden und ist fest an ihrem Platz gehalten.

    Wenn Sie ein gut Holz sind, können Sie die 3 Drucktaster in den Rahmenkörper zu installieren. Ich hatte etwas Platz als der Rahmen würde zwischen zwei Protokolle hängen und es gab viel Platz dahinter, so dass ich fest die Tasten auf einem kleinen Stück Aluminiummetall, die mit dem Rahmen verschraubt wurde. Die Drucktasten sind die Umstellung auf eine gemeinsame Basis. Es sollte vier Drähte aus dieser Tastatur an den Anschluss auf der rechten Seite des benutzerdefinierten Schild oben dargestellt werden.

Schritt 5: Anschließen Things

  1. Arduino basierend Haus Heater Controler mit SMS User Interface

    Arduino basierend Haus Heater Controler mit SMS User Interface

    Arduino basierend Haus Heater Controler mit SMS User Interface

    Um die Komponenten zu verbinden, muss die folgende Verkabelung vorbereitet werden:

    Stromversorgung: Die Stromversorgung mit den 2,1 mm Stecker-Laufwerke sowohl Freeduino und das Siemens Modem. Die Linien sind 1: 1 verbunden, um die Freeduino Stecker. Der Siemens-Western-Stecker muss an der in der Siemens-Handbuch S. Belegung angeschlossen werden. 18 ff. Die PD_IN Stift ist mit Masse verbunden, geht der IGT_IN bis + 12V.

    Für die RS232-Kabel, werden nur 3 Leitungen erforderlich, Pin 5 an beiden Enden verbunden sind, Leitungen an den Pins 2 und 3 gekreuzt sind.
    Die letzten 4 Line-Kabel verbindet die Tastatur an die individuelle Schild. Gemeinsamkeit ist die gelbe Linie auf die Bilder anschließend auf, geben Sie unten.

    Für die Antenne, nahm ich einfach einen 15 cm Draht, den ich um einen 1,5 mm Bohrer gewickelt. Das passt fest auf, um auf der Siemens dem Mittelstift und ist ausreichend für die Lage.

Schritt 6: Assembly

  1. Arduino basierend Haus Heater Controler mit SMS User Interface
    Befestigen Sie zuerst die LCD-Anzeige, um den Bilderrahmen durch über die Schrauben schieben und fixieren. Dann schließen Sie das Tastaturkabel an die individuelle Schild, bringen Sie die Innentemperaturfühler und den Außensensor, falls vorhanden, wie in den Abbildungen gezeigt. Die beiden Linien in den Kessel werden mit dem Relais-Port angeschlossen ist. Dann können Sie die individuelle Schild auf dem LCD, die mechanische Stütze für die gesamte Struktur bietet stecken. Die individuelle Abschirmung wird dann dem Freeduino angebracht, und beide werden auf dem LCD verbunden.

    Das Modem wird einfach auf die Rückseite des Passepartouts mit zwei Klettbändern befestigt. Als nächstes verbinden Sie das Freeduino an das Modem von der RS232-Kabel und vergessen Sie nicht, um die Antenne anzuschließen.

    Schließlich verbinden Sie das Stromversorgungskabel an das Modem und Fredduino und Einschalten. Wenn das Display zeigt nichts an, zuerst stellen Sie den Vertrag mit dem Trimmer auf dem Schild.

Schritt 7: Erstellung und Upload, Bibliotheken

  1. Arduino basierend Haus Heater Controler mit SMS User Interface
    Je nach Betriebssystem, legen Sie die mitgelieferten Bibliotheken in den angegebenen Ordner und speichern Sie das Programm in Ihre Arduino Skizzen Ordner. Um die Freeduino programmieren, können Sie programmieren die ATMega auf einem Programmiergerät, auf dem Arduino, oder über eine RS232-USB-Kabel an der Freeduino.

    Da die Menüzeichenfolgen werden in EEPROM-Speicher des Prozessors mit Wohnsitz, müssen sie es zuerst geladen werden. Dies wird durch ein kleines Programm (streeng.ino), die geladen und gestartet, bevor die Kompilierung und Installation des Hauptsteuerungsprogramm (steuerung.ino) werden getan hat. Die streeng Programm sowie die controler nutzen die streeng Klassenbibliothek, die für das Speichern und den Zugriff auf Zeichenfolgen in EEPROM ermöglicht.

    Ein paar Worte über die Bibliotheken:

    Menüsystem

    Die Funktionalität der Vorrichtung erfordert eine strukturierte Oberfläche. I das Menüsystem entwickelt, mit drei Zielen: Einfachheit, Flexibilität und geringen Speicherbedarf. Die Menüs sind hierarchisch auf 4 Ebenen. Menüeinträge können zur Laufzeit geändert werden, und das System stellt außerdem Funktionen für die Eingabe von alphanumerischen und Zeitdaten. Für die Eingabe nur drei Tasten (UP / ENTER / unten) erforderlich. Tastendruck Zeit wird auch für zusätzliche Funktionen verwendet.

    Die LCD zeigt eine Kopfplatte Linie (Statusinformationen, Zeit, Temperatur, Betriebsart und Kesselzustand) sowie 3 Zeilen-Menü. Je nach Displaygröße, kann dies mehr oder weniger (zB Kopfzeile plus 1 für eine kleine 16x2 Display) sein. Menüführung keinen Einfluss auf die Kopfplatte. Der aktuelle Menüposition kann auf der äußersten linken Seite aus gesehen werden kann und durch ein ">" angezeigt. Der Text für den Menüeintrag wird in der Bildschirmmitte zu sehen. Für den Fall, dass es Untermenüs für einen Menüeintrag, ein '>' ist auf der äußersten rechten Seite angezeigt. Menüpunkte werden durch Drücken der Enter-Taste, bis ausgewählt und nach unten navigiert entsprechend innerhalb der Menüstruktur. Pushing eingeben länger kehrt zum Menü root und schob 'up' mehr eine Menüebene nach oben.

    Strings werden, indem der Wert unter dem markierten Cursor mit den Auf / Ab-Tasten bearbeitet. Länger hält ihnen den Cursor zu bewegen. Die Enter-Taste beendet die Bearbeitung mit dem neuen Wert übernommen, hält es länger wird auch beendet, doch stellt die ursprüngliche Zeichenfolge.

    Das Menü Klassenbibliothek sieht drei Möglichkeiten zum Speichern der Menütext: 1) Programmspeicher, 2) EEPROM, 3) für beide der oben genannten dynamischen Berechnung durch eine Funktion zur Verfügung gestellt. Beim Programmstart die Menüstruktur muss sich mit der Entry-Funktion gebaut werden. In diesem Beispiel aufgrund von Speicherbeschränkungen EEPROM ist vor allem für die Lagerung verwendet (Telefon-Bücher sind dynamisch und damit die dynamische Menüeintrag Schöpfung). Menüeinträge werden durch eine Indexzahl (Index zur Position in der EEPROM oder Funktionsargument) und einer Reihe Codierung ihrer Position in der Menüstruktur identifiziert (4 Hex-Ziffern, die eine Ebene jedes). So 0x1000 würde die erste Menüeintrag auf der obersten Ebene, 0x2000 zweiten Top-Level-Menü bedeuten, während 0x1400 würde die vierte Untermenü auf den ersten Menüpunkt der obersten Ebene zu bezeichnen. Die Indexnummer kann für eine Änderung der Menütext zur Laufzeit durch wiederholte Anrufe zur Entry-Funktion (zB Aktivierung / Deaktivierung).

    Die Hauptfunktion von dem Anwenderprogramm aufgerufen ist eine Ereignisbehandlungsroutine, die Menüpunkte ausgewählt zurück und kümmert sich um alle Menüführung, Display-Update und Scrollen. Während des Wartens auf Menü Events ermöglicht die Event-Handler das aufrufende Programm, um Prozessorzeit über eine kundenspezifische Service-Routine, die geliefert werden muss, zu verwenden.

    Command Line Interface

    Ein wesentliches Merkmal der Benutzeroberfläche ist die Befehlszeilenschnittstelle, die für die Eingabe von Textbefehlen ermöglicht. Während es für die Eingabe von SMS verwendet wird, kann es auch verwendet, sowie für andere Befehlssyntax und Zwecke (zB Eingabe über IP) angepasst werden.
    Im Wesentlichen die Befehlszeile wird nach Schlüsselwörtern (mit Wohnsitz in Programmplatz), die dann zu einer kompakten Zwischencode, der dann leicht für Syntax geprüft übersetzt werden analysiert. Argumente wie Zeit und Temperaturinformationen sind in einer besonderen Form zu erwarten (hh: mm zum Zeitpunkt tt.t für die Temperatur). Im Falle, dass ein Syntaxfehler festgestellt werden, wird eine Fehlermeldung erzeugt.

    Telefonbuch

    Das Telefonbuch Telefonbucheinträge verwaltet und speichert sie im EEPROM der Steuerung. Die Bibliothek stark abhängig von der Menü-Bibliothek, die Funktionen bearbeiten sowie das Rückgrat der Telefonbuch-Menü-Struktur liefert.
    Das Telefonbuch Bibliothek erstellt eine Menüstruktur mit dynamischen Menüeinträge, die jeweils Untermenüs zum Bearbeiten und Löschen. Routinen zum Bearbeiten und Löschen werden vom Menü-Bibliothek zur Verfügung gestellt. Im Allgemeinen können Rufnummern 16 Ziffern haben und im internationalen Format gespeichert, beginnend mit einem Start '+' und den Ländercode.

    Controler

    Des Kessels an / aus Kontakt wird durch die Steuersoftware gesteuert. Die Bibliothek schaltet die Heizung in Abhängigkeit von der jeweiligen Sollwert, der entweder manuell (über die Temperatur Menüeintrag) gesetzt ist, verwendet die Standardwerte (Komfort, Economy oder Frostschutzmittel, die wiederum durch den Menüpunkt Einstellungen festgelegt) oder durch das bestimmt Pläne durch den Benutzer programmiert. Die Zeitpläne können mit einem Minuten-Zeitauflösung programmiert werden. Bis zu fünf Zeitintervalle mit den einzelnen Temperaturstufen programmiert werden können.
    Während die Kessel nimmt die Bibliothek darauf, dass die Heizung für weniger als den voreingestellten Mindestlaufzeit ausgeführt und überprüft auch für mögliche Fehlfunktionen, das heißt, wenn die Raumtemperatur nicht während Heizungsbetrieb zu erhöhen. Im Falle, dass eine Fehlfunktion auftritt oder die Temperatur unterschritten (Alarm 0) oder überschreitet (Alarm 1) Sollwerte programmiert werden Alarmmeldungen per SMS. Schließlich wird die Steuerung versucht, zu allen Zeiten, dass die gemessene Temperatur nicht unterhalb der Frostschutzmittel-Ebene definiert gewährleisten.

    GSM

    Die GSM-Bibliothek führt die Kommunikation zwischen Freeduino und Modem. Die Bibliothek führt grundlegende IO mit dem Modem, ein Verfahren, um AT-Befehle an das Modem zu senden und sorgt für grundlegende Funktionen, um eingehende Anrufe überwachen und eingehende SMS-Nachrichten verwalten sowie Initiierung ausgehende SMS-Nachrichten.

Schritt 8: Mit ihm

  1. Arduino basierend Haus Heater Controler mit SMS User Interface

    Arduino basierend Haus Heater Controler mit SMS User Interface

    Arduino basierend Haus Heater Controler mit SMS User Interface

    Nach dem Start wird das Gerät für die Verfügbarkeit eines Modem überprüfen und ausgeben entsprechenden Befehle für die Initialisierung. In Abwesenheit eines Modems, wird das Gerät in den Handbetrieb eingeschränkt werden. Die GSM relevanten Menüeinträge werden dann deaktiviert zu sein.

    Während der ersten dem ersten Lauf wird das Gerät für Temperatursensoren schauen und ordnen sie willkürlich auf Innen- und Außensensoren. Der Benutzer kann diese willkürliche Auswahl von späteren Austausch innerhalb und außerhalb Sensoren (-> Swap Sensoren Einstellungen) ändern. Diese Einstellung wird in einem nichtflüchtigen EEPROM gespeichert und sind auf Neustart. Im ersten Durchlauf (und im Falle Temperatursensoren geändert) wird das Gerät den Benutzer benachrichtigen, um die Sensorzuordnung zu überprüfen.

    Danach wird die Anzeige am oberen Zeile zeigen von links nach rechts: Zeit, Wochentag, Innentemperatur, Außentemperatur, Betriebsart. Für Betriebsmodus zeigt das Gerät die folgenden Zeichen in der oberen rechten Ecke:

    A - Frostschutz (Reduzierung um voreingestellte Temperatur Frostschutzniveau, aber nie unterschreiten)
    C - Comfort (halten voreingestellte Komfortniveau - default: 20 ° C)
    E - Economy (halten vorliegende Wirtschaft Niveau - default: 17 ° C)
    O - Cycle (Zyklus zwischen Komfort (tagsüber) und Wirtschaft (während der Nacht)
    P - Programmierbare Profil
    M - Manuelle Temperatur (maintain manuell eingegeben, feste Temperatur)

    Der Betriebsmodus wird in 1 Sekunden Intervallen mit dem Heizer Laufanzeige, die der Stern ('*') für einen Betrieb des Kessels abwechseln.

    Die programmierbare Profil besteht aus bis zu 5 Temperaturregime ab 00.00 Uhr und endet um 24:00 Uhr. Jedes Profil kann gültig für einzelne Tage oder Gruppen von Tagen angegeben werden (zB Wochentagen, Wochenenden - oder nur an einem Donnerstag).

    Manuelle Bedienung

    Der Benutzer kann in der Menüstruktur zu blättern, wie oben beschrieben und kann zwischen den Betriebsarten und ändern Sie die Einstellungen zu wechseln. Alle Änderungen werden im EEPROM gespeichert, um Datenverlust durch Stromausfälle zu verhindern.

    GSM Betrieb

    Wenn ein GSM-Modem zur Verfügung steht, kann der Benutzer auch Befehle zu senden und zu empfangen via GSM-Statusinformationen. Im Allgemeinen können alle verfügbaren Funktionen manuell auch durch GSM durchgeführt werden. Dazu muss die Telefonnummer des Benutzers mit dem Gerät (SMS -> Telefonbuch) registriert und dem anrufenden Benutzer muss Rufnummernübertragung auf dem Telefon aktiviert. Nach Abschluss der SMS-Befehl, wird das Gerät in der Regel erteilen eine Statusmeldung, die die aktuelle Operation, gefolgt von einem "OK" oder "Error" Meldung fasst.

    Liste der SMS-Befehle:

    Zyklus auf // Wirtschaft in der Nacht, Komfort bei Tag
    Zyklus off // Ausschalten-Zyklus-Modus zurück zu Frostschutzmittel
    Zyklus gesetzt hh: mm tmp1 hh: mm tmp2 // gesetzt Schalter Zeit- und Temperaturwert für Zyklus
    Wirtschaft auf // Schalter auf Spartemperatur
    Wirtschaft off // ausschalten Sparmodus zurück auf Frostschutzmittel
    Wirtschaft set tmp // gesetzt Spartemperatur um den Wert
    Komfort auf // Schalter auf Komforttemperatur
    Komfort off // ausschalten Komfortmodus, zurück zu Frostschutzmittel
    Komfort gesetzt tmp // gesetzt Komforttemperatur um den Wert
    Temperatur auf // Schalter auf manuelle Temperaturbetrieb
    Temperatur set temp // gesetzt manuelle Temperaturniveau zu Wert
    Frostschutzmittel auf // Schalter am Frostschutzmodus
    Frostschutz-Set Temp // gesetzt Frostschutztemperaturniveau zu Wert
    Profil nr Modus // einschalten Profil nr Modus (siehe unten)
    Profil nr Satz hh: im Profil nr Temperaturwert Temp mm // gesetzt zum Zeitpunkt
    Profil nr zurückgesetzt // zurückgesetzt Profil nr
    Uhrzeit hh: mm // gesetzt Gerät Zeit hh: mm
    Datum eingestellt tt mm jj // gesetzt Gerät Datum mm jj tt
    // alert erkundigen Status der Alarme
    Benachrichtigung nr auf // Benachrichtigung aktivieren nr (0/1)
    Benachrichtigung nr off // deaktivieren Benachrichtigung nr (0/1)
    Benachrichtigung nr set tmp // gesetzt Trigger Alarmstufe nr Temperatur
    Statusprotokoll gesetzt hh: mm // gesetzt Geräteprotokoll Zeit hh: mm
    Statusprotokoll auf // Schalter auf tägliche Protokollierung bei programmierten Zeit
    Status abmelden // Ausschalten täglich Protokollierung
    Status // Status SMS an den Absender schicken

    Temperatur und Zeit-Formate:

    Temperaturformat: tt.t (dezimal und Fraktion ist obligatorisch)
    Zeitformat: hh: mm (zwei Ziffern für Stunden und Min obligatorisch)

    Temperaturprofil Mode:

    Der Controller kann Temperatur Pläne für verschiedene Zeiträume und Tage zu betreiben:

    Nie 0 (= abgeschaltet)
    Sonntag 1
    Montag 2
    Dienstag, 3.
    Mittwoch, 4.
    Donnerstag, 5.
    Freitag, 6.
    Samstag 7
    Tag 8 (MO - FR)
    Wochenende 9 (Sa - So)
    ersten Hälfte der Woche 10 (Mo - Mi)
    zweiten Hälfte der 11. Woche (Do - Fr)
    immer 12