Home > Technologie > Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Advertisement

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Anmerkung: Es gibt jetzt eine androide Bluetooth Steuerung app ibble für dieses Projekt

Anmerkung: Obwohl dies als ein Projekt begann, das meine Anwesenheit zu Hause simulierte, ist es in ein intelligentes Haus gewachsen, daher habe ich dieses Instructable zurückgegeben

Wenn Menschen im Urlaub sind oder manchmal sogar nur für eine Nacht ausgegangen, sind ihre Häuser anfällig für Einbrecher.
So neigen die Menschen dazu, Timer auf ein oder zwei Lichter zu schalten, wenn es dunkel ist, so Einbrecher könnte im Denken die Insassen sind noch vorhanden täuschen.
Einbrecher sind nicht dumm. Vor allem, wenn man weg ist für eine längere Zeit, ist es irgendwie seltsam, dass die Lichter schalten eine gut, wie das Uhrwerk. Dies ist im späten Herbst oder Winter noch verdächtiger, wenn es früher dunkler wird, aber ohne die Lichter früher eingeschaltet werden.

Ich stand vor einem Familienmitglied, das für eine verlängerte Periode wegging, die sein Haus in meiner Obacht verließ.
So wollte ich schnell etwas zusammen setzen, das einen besseren Job als eine Timeruhr tun würde. Etwas, das mehr Abwechslung hatte, würde die Dinge natürlicher aussehen lassen.
Weil ich mich nicht mit zu viel Drähten verwirren wollte, beschloss ich, es irgendwie drahtlos zu machen. Es half, dass ich einige 433 MHz Schalter und ein billiges Sendermodul hatte.

Meine Grundidee war, eine Hauptlampe im Wohnzimmer zu schalten, eine Lampe in der Studie und eine Lampe im Schlafzimmer. Die Einschaltzeit des Systems muss variabel sein, abhängig vom Licht. Die Lampen sollten nicht jeden Tag zur gleichen Zeit einschalten und es musste ein natürlicher Fluss vom Wohnzimmer zum Schlafzimmer zum Schlafen sein. Ein Arduino schien wie das perfekte Instrument und wie es war, habe ich zufällig ein paar Pro-Mini's (das heißt ... Klone)
Natürlich ist es möglich, dies mit jedem Arduino zu tun.
Wie auch immer, wie gesagt, ich habe schnell etwas zusammen auf ein kleines Steckbrett gelegt und das zur Arbeit gebracht, aber dann wollte ich auch für mich ein bisschen mehr bleibende, und ich fügte Features hinzu.
Ich werde also zwei Versionen beschreiben

Die sehr einfache Version hat nur eine Pro Mini, mit einem einfachen DS1307 RTC, einer LDR, ein 433 MHz - Sender und 3 Fernschalter für 3 Lampen. Die Menge an Lampen oder anderen Geräten, die auf Wünsche grundsätzlich abhängig von der Menge der Remote-Schalter Sie haben.

Die erweiterte Version eine größere Anzahl von Remote - Switches hat, hat es Sound - Erkennung, ein internes Relais, IRLEDs, einen Hund bellen, eine Sprachnachricht, Bluetooth, einen Summer, ein FakeTV und Bewegen Puppe - Update Mai 2016:. Das hat sich jetzt gewachsen In eine 23 HF geschaltete Kanäle + IR-Schaltung, die Regulierung vieler Funktionen in und um mein Haus

Ich werde zuerst das Basismodul besprechen

BOM.
Basic
Arduino pro mini / (oder ein Barebones Atmega328 mit Bootloader)
DS1307 RTC-Modul (oder DS3231-Modul (siehe Text unten))
433MHz Sendermodul
17,4 cm Steifdraht oder vorzugsweise eine spulenbelastete Antenne.
LDR
3 x 433 MHz Schalter zB ELRO 440 oder ein SelectRemote oder ein anderes

Ein USB zu FTDI Modul kommt praktisch, um die Programmierung zu tun

Nur ein paar Bemerkungen:
In seiner Grundform ist das RTC ein DS1307. Ich weiß, es ist die genauere 3231, aber das fehlt die Non Volatile RAM, die benötigt wird, um verschiedene Status zu speichern.
Es ist möglich, ein 3231-Modul zu verwenden, wenn es mit en EEPROM kombiniert wird, aber das erfordert eine leichte Anpassung des Codes (ich mache dies in der fortgeschrittenen Version). Ich weiß, dass das Arduino auch EEPROM hat, wo man Status speichern konnte, aber das Schreiben zum Arduino EEPROM ist nicht unendlich. Deshalb versuche ich es zu vermeiden, daher die DS1307. Die DS3232 hat auch NVR

Schritt 1: Komponenten: Allgemeine Bemerkungen zu Kosten & Selbstbau

Heutzutage sind viele vorgefertigte Module relativ preiswert. Bauen aus diskreten Komponenten, obwohl Spaß, wird mehr und mehr eine Herausforderung, billig zu tun.
Ich mache das noch, denn ich habe Komponenten, die herumliegen, aber um ein Beispiel zu nennen: Ich bezahlte ich glaube 4 Euro für den Atmega328 Chip vor weniger als einem Jahr. Das ist nur der unprogrammierte Chip. Um es zu benutzen muss ich einen Kristall, einen IC-Sockel, einen Stabilisator, Verbindungsmaterial, einen Schalter bekommen ... und dann muss ich es alle zusammenlöten.
Ich habe komplette Arduino Uno's für 2,50 Euro und ein Pro Mini für 1,60 Euro gekauft. Rechne nach.

Auf meinem Perfboard gibt es ein Relais. Ich glaube, das kostete mich 3 Euro. Hinzufügen, dass 1 Transistor, 1 Diode, 1 Widerstand und es addiert sich. Für 1,80 Euro bekomme ich ein doppeltes Relaismodul inklusive Signalisierungs-LEDs.
Nun in anderen Teilen der Welt, die unterschiedlich sein könnten, aber sicherlich, wenn Sie im Westen leben, können Sie in Module statt Komponenten denken und die Thematik DealExtreme, Aliexpress oder Banggood bestellen

Schritt 2: Erstellen der Basisversion

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Die Schaltung ist ganz einfach. Es ist ein Arduino Pro Mini mit 3 zusätzlichen Komponenten:
Ein DS1307 RTC
Ein 433 MHz Sender
Ein LDR

Der RTC ist ein I2C-Modul, das an SDA (A4) SCL (A5) und Vcc und Masse angeschlossen ist.
Der 433 MHz Sender ist nur ein billiger Sender, der zusammen mit dem Empfänger ca. 1 Euro kostet (die wir nicht benutzen). Er wird an Digital Pin 7 und natürlich an Vcc und Ground angeschlossen
Das LDR ist ein 10k-Typ (aber das ist nicht so kritisch). Er wird zwischen A0 und Masse gelegt. Das "normale" Protokoll scheint variablen Widerständen wie einem LDR zwischen Vcc und einem Analogeingang zu bevorzugen, aber ich mache das nicht, weil ich den internen Pullup-Widerstand als Spannungsteiler verwenden möchte. Das spart einen Widerstand. Daher liegt der LDR zwischen Masse und A0.

Im Hinblick auf die Befestigung der RTC auf SDA und SCL auf einem Arduino Pro Mini gibt es ein kleines Problem. Normalerweise sind der Stift A4 (SDA) und A5 (SCL) in einer ungeraden Konfiguration, die verhindert, dass sie auf einem Steckbrett verwendet werden. Da es viele Pro-Mini-Klone gibt, ist es schwer zu sagen, wo genau Sie diese Pins finden, aber es sollte ganz offensichtlich auf Ihrem borad. Sie müssen die A4 und A5 von der Spitze aber zu nähern. Löten Sie keine Stifte, die an der Unterseite "für Brotkorbgebrauch" heraus haften, da das Probleme verursachen wird.

In der Regel, wenn Sie einen Pro-Mini-Klon zu kaufen, kommt es mit einer Reihe von männlichen Pins, die noch gelötet werden müssen. Oft wird es haben 6 90 Grad abgewinkelt Pins für die FTDI-Programmierung Header. Mein Rat wäre, diese nicht zu verwenden, sondern nur einen 6-Pin gerade FEMALE oder MALE Header je nachdem, was Ihr USB-FTDI-Adapter benötigt.

Wether verwenden Sie männliche Header oder weibliche Header für die anderen Pins und ob Sie löten diese an der Unterseite oder an der Spitze hängt von Ihrer Situation: wenn Sie wollen, dass diese auf einem Steckbrett dann männliche Header an der Unterseite sind yr Wahl zu halten. Auch wenn Sie es auf Stripboard oder Perfboard zu bauen, wo Sie nur stecken Sie die Pro Mini, Header an der Unterseite sind Ihre Wahl.

Wenn Sie nur wollen, schließen Sie Ihre Verbindungen von der Spitze, männliche Header an der Spitze wird sich als sehr praktisch.

Schritt 3: Der FTDI-Header

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Der Pro mini verfügt nicht über eine USB-Schnittstelle, verfügt aber über einen FTDI-Header für die Programmierung.
Daher benötigen Sie einen USB-to-FTDI-Adapter.
Diese sind heute ziemlich billig.
Ich habe Bilder von zwei Modulen, eine von Aliexpress und eine von Adafruit. Achten Sie darauf, die 6-Pin-Version, nicht die 4-Pin-Version zu erhalten, oder Sie müssen das Hochladen durch Drücken der Reset jedes Mal zu tun
Da der FTDI-Header standardisiert ist, sollten die Pins Ihres Adapters gut mit den entsprechenden Pins auf Ihrem Pro Mini ausgerichtet sein. Stellen Sie sicher, dass Sie passende Anschlüsse (männlich zu weiblich) haben, wenn nicht, dann machen Sie einfach einen Adapter von zwei Buchsenleisten oder männlichen Header gelötet Rücken an Rücken.

Da es viele Klone des Pro Mini gibt, gibt es keine Garantie, dass sie alle einen Standard-FTDI-Header haben (aber ich habe nicht auf eine, die nicht stößt), so dass es immer gut zu überprüfen ist.
Das einzige, was verwirrend sein kann, sind Rx und Tx. Normalerweise muss ein Tx immer in einen Rx stecken und umgekehrt. Aber um "es einfach" zu machen, schalten einige Hersteller die Beschriftung für die Tx- und Rx-Stifte in ihrem Siebdruck, so dass der Tx mit Rx beschriftet ist, was bedeutet, dass es zum Rx-Pin geht.

Jedenfalls, nur sagen, es ist immer eine gute Sache zu überprüfen.

Auf Ihrem Pro Mini, wenn Sie die Kante mit dem FTDI-Header nach oben zeigen, geht es von links nach rechts wie folgt:
Erdung Vcc Rx Tx RST
Um es einfach zu machen, haben diese Pins auch einen Standard-Farbcode, der mit dem linken Massepin zugewiesen ist, der "Schwarz" zugeordnet ist und der rechte RST-Pin ist grün (siehe mein Bild)
Vorsicht !!! Auf Ihrem Pro Mini können diese in der Siebdruck als "BLK" und "GRN" Dont machen den Fehler zu denken, 'GRN' ist 'Ground', wie es nicht ist

Wenn auf dem USB-FTDI-Adapter der Header nach unten zeigt, sollte die Beschriftung wie folgt aussehen:
Ground, CTS, Vcc, Tx, Rx, DTR
Das CTS ist das Signal 'Clear to Send', und Sie brauchen das nicht wirklich, sondern schließen es trotzdem an.
Der DTR ist das Signal "Data Terminal Ready". Es verbindet sich mit dem RST-Pin auf dem Arduino und gibt einen Reset im richtigen Moment aus. Wenn Sie nur einen 4-poligen USB-TTL-Adapter haben, ohne dass das DTR-Signal ausgebrochen ist, müssen Sie die Reset-Taste selbst zur richtigen Zeit drücken.

Schritt 4: Die Fernschalter

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Dieses System arbeitet drahtlos durch einen kleinen 433 MHz HF-Sender, der Befehle an handelsübliche Fernschalter sendet.
Um die richtigen Befehle zu senden, verwende ich eine erweiterte Version der 'Fuzzilogic' 'Remote Switch' Bibliothek.
Im Programm habe ich Code-Beispiele für einige leicht verfügbare Commercial Remote Switches enthalten.

Das Transmitter-Modul ist ziemlich billig, funktioniert aber gut. Es ist jedoch notwendig, eine anständige Antenne zu verwenden.
Ich hatte anständige Ergebnisse mit nur einem 17,4 cm gerade Draht an den Sender angeschlossen, aber eine Spule beladen Antenne gibt bessere Ergebnisse und ist einfach zu machen. Schauen Sie sich das Bild für Details

Schritt 5: Der grundlegende Code für die Verwendung mit DS1307 RTC

Sie finden den Code auf codebender (siehe unten auf der Seite).
Grundsätzlich, was der Code ist nach der Festlegung ihrer grundlegenden Parameter ist es, durch ein Bündel von "IF" Bedingungen, in denen die aktuelle Zeit gegen einige eingestellte Zeit-Werte überprüft wird, und wenn erfüllt, schalten Sie ein Licht ein oder aus.
Der Status der Leuchten wird in einer Variablen gespeichert, mit der sowohl als auch im NVR-RAM als Sicherung arbeiten kann, wenn eine Stromunterbrechung vorliegt.
Die Verwendung von NVR RAM bedeutet, dass Sie an das DS1307 RTC Modul gebunden sind.
Sie haben zwei weitere Möglichkeiten als permanenter Speicher zu verwenden: Das EEPROM des Arduino oder das EEPROM, das sich auf den meisten RTC-Modulen befindet.
Aus mehreren Gründen entschied ich mich für die NVRam, aber im Nachhinein wäre es besser gewesen, für das EEPROM zu wählen, das auf den meisten RTC-Modulen wie dem DS1307 oder dem DS3231 vorhanden ist, da das den Code ein bisschen universeller macht. Ich habe das für das erweiterte Programm umgeschrieben. Verwenden Sie mein 'Erweitertes Programm', um Flexibilität bei der Verwendung eines RTC DS3231 oder DS1307 zu erhalten
Die Zustandsprüfung nimmt die folgende Form an
IF aktuelle Stunde == x AND currentminute + random == y AND lightstatus == OFF
DANN Licht einschalten
Schreiben Sie den Lichtstatus auf ON
udate NVR
Ich füge den zufälligen Faktor nur um es natürlicher aussehen. Immer mit yr Lichter gehen auf um 9:00:00 Uhr Signale "Ich bin weg"
Der Code hat mehrere Print-Anweisungen, aber tehse ofcourse sind nur von Nutzen, wenn Sie ein Bluetooth-Modul atteched oder ein Terminal haben.
Sie können den Code viel anspruchsvoller machen, indem Sie für sagen, den Tag oder den Monat und schalten Sie die Lichter länger oder kürzer je nach dem Monat oder ob es ein Wochentag oder ein Wochenende ist.

Die Extended-Version (siehe weiter unten) hat wesentlich mehr Funktionalität und läuft auf der 'Basic Version'

Schritt 6: Die erweiterte Version

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Die erweiterte Version ist sowohl in Hardware als auch in Software weiterentwickelt. Die Hardware wird um mehrere Module erweitert. Die Software wird erweitert, um dies zu unterstützen, sondern hat auch eine Menge neuer Funktionalität wie Erkennung von Day Light Savings Time und Protokollierung der Dinge.
Ich habe die folgende Hardware hinzugefügt:

Mit Infrarotsender
20 Ohm Widerstand
1 k Widerstand
2 IR LEDs 940 nM (ich benutze die IR204 und SFH485)
1x BC547-Transistor

Mit NTC
ein NTC

Mit Hund bellen
MP3-Modul + Fernbedienung

Mit internem Relais
1x BC547-Transistor
1k Widerstand
1x1N4148 Diode
V2340-A0001 B201 Relais oder andere 5Volt-Relais

Mit Tonerkennung
SoundBoard mit digitalem Ausgang

Mit Bewegungsvorschlag
Überprüfen Sie diese anweisbare
Mit 433 MHz RenoteSwitch

Mit TV-Simulation
Überprüfen Sie diese anweisbare
Mit 433 MHz RemoteSwitch

Mit Bluetooth
Bluetooth-Modul HC05 oder HC06

Mit einer gesprochenen Meldung
Digitale Sprachaufzeichnungskarte

Nur ein paar Bemerkungen:
Anstelle eines DS1307 RTC verwende ich ein DS3231 RTC-Modul, das auch ein EEPROM hat. Ich verwende dieses EEPROM für die Speicherung mehrerer Statusflags. Wenn Sie ein DS1307-Modul mit EEPROM haben, ist natürlich auch nutzbar.

Schritt 7: Erstellung der erweiterten Version

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Wie die grundlegende Version, kann diese Version auf ein Steckbrett gesetzt werden, aber da ich eine dauerhaftere Erfindung wünsche, baute ich es auf Veroboard. Ich hätte einen Arduino Pro Mini verwenden können, aber ich entschied mich für einen nackten Atmega328 Chip, bei dem ich einen UNO Bootloader verbrannte.
Es gibt nicht viel, was ich sagen kann, über den Bau es auf Veroboard anders als es ist nur eine Frage der sorgfältig die Punkt zu Punkt Verbindungen. Stellen Sie sicher, dass es ein bisschen locker in Ihren Drähten, wie später können Sie entscheiden, einen Stift, der unter einem Bündel von Drähten begraben befindet.
Was ich nicht mit meiner Version getan habe, sondern mit einer neuen Version, ist es, eine Reihe von Pinheaders neben dem Atmega-Chip zu löten, so dass ich immer auch einen Pin von oben erreichen kann.

Schritt 8: Die zusätzliche Hardware

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Das IR-Modul
Ursprünglich habe ich dieses Modul, um meine TV On und Off während meiner Abwesenheit, aber es gibt bessere Möglichkeiten für die. So für mich es nicht erweisen sich als sehr nützlich, aber für Sie, die anders sein könnte. Es ist im Grunde ein Transistor, der zwei IR-LEDs antreibt. Die IR-LEDs, die ich verwende, sind der SFH485 und der IR204. Ersteres ist eine 5 mm 880 nm LED, letzteres ist ein 3 mm 940nm. (Anmerkung: Ich verwende es jetzt, um Fernsehkanäle mit meinem smartphone umzuschalten)
Achten Sie darauf: Das IR204 hat das kurze Bein, da es die Kathode ist - wie bei LEDs üblich, aber das SFH485 hat das längere Bein als Kathode. Ich benutze beide LEDs in Serie mit einem 20 Ohm Widerstand, auf 5 Volt, die ca. 100mA LED-Strom gibt, da die LEDs mit PWM verwendet werden, werden sie wahrscheinlich ohne Widerstände fein. Die berühmte "TV-bgone" Schaltung macht das zum Beispiel, wo sie nicht die LEDs in Serie verwenden und auch keinen Widerstand verwenden. Wie gesagt, ich benutze LEDs mit verschiedenen Wellenlängen. Ich tat das, weil das ist, was ich hatte. Generell aber 880nM ist die beste Wahl für Infrarot-Fernbedienung von TV's etcetera. Ich habe beide Dioden, die durch Löcher in der Vorderseite meines Gehäuses gucken. Es wird durch Digital Pin 3 angetrieben. Ich frive die IRLED's mit fast 100mA, die ihre maximale kontinuierliche Vorwärtsstrom ist. Es ist jedoch möglich, sie mit mehr Strom zu treiben, da sie nicht kontinuierlich betrieben werden. Wenn sie ein 50% Tastverhältnis erhalten, sollte man theoretisch mit 200mA fahren können. Die IRremote- und IRLib-Bibliotheken treiben das Signal mit einem 33% -igen Tastverhältnis an, so dass theoretisch 300mA möglich sein könnten. Das IR204 kann 1Amp Spitzenstrom nehmen, wenn das dutycycle kleiner als 1% auf einem Impuls von max 100us ist. Die 90mA ich verwenden, um sie aber bereits gute Resultate zu fahren.

NTC
Da das DS3231 RTC-Modul, das ich verwende, einen Temperatursensor hat, kann ich die Temperatur von dem lesen. Es ist jedoch in meinem Gehäuse und nicht so viel variieren. Ich fügte einen NTC an der Außenseite hinzu, damit mein Gerät einen möglichen Temperaturabfall entdecken könnte (sagen, wenn ein Fenster im Winter brach) es an Analog Pin 1 befestigt.

Hundebellen
Ein ziemlich wesentlicher Teil eines Anti-Einbruchssystems. Nichts hält Einbrecher weg so viel wie ein Hund. Ich hatte eine ganze Reise. Zuerst benutzte ich ein fertiges Dog Rindenmodul, das klang pathetisch. Ich versuchte einige andere Dinge, bis ich mich für ein billiges MP3-Modul entschied, das Dateien von einer SD-Karte abspielt. Ich habe einige bösartigen Hund Geräusche auf sie und getan. Zuerst wollte ich es mit einem Relais einschalten, aber ich dachte, dass es einfacher ist, haben es sein eigenes Netzteil und Schalter, die ein und aus fern mit einem kommerziellen Remote Switch

Interne Relais
Ich fügte dieses Relais hinzu, um das Hunderindenmodul einzuschalten, aber ich entschied mich für einen anderen Weg. Dennoch können Sie Gebrauch dafür haben. Es ist einfach ein 5-Volt-Relais, das von einem BC547-Transistor angesteuert wird. Ich stellte sicher, dass ich ein Relais mit Standard 2,54 mm (0,1 Zoll) Abstand ausgewählt, so dass es leicht auf Veroboard passen würde. Ich habe meine in einem IC-Sockel. Es wird vom Digital Pin 4 angesteuert

Soundlevel-Erkennungsmodul.
Dies ist ein Mikrofonmodul mit einem Rauschpegel (digital) Ausgang. Ich benutze es, um ungewöhnliche Soundlevels zu erkennen, wenn ich nicht zu Hause bin. Module wie diese sind für ca. 1,50 Euro erhältlich. Er wird am Digital Pin 10 angeschlossen.

Nachrichtenmodul
Dies ist ein digitales Sprachaufnahmemodul ISD1820, das Ihre Stimme aufnehmen und wiedergeben kann. Ich benutze es, um mich daran zu erinnern, den Müll an einem bestimmten Tag auszusetzen, aber Sie könnten es auch verwenden, um eine Nachricht zu spielen ( "Ich habe ein Gewehr !!!), wenn es ein verdächtiges Geräusch entdeckt hat.
Dieses Modul kann von einem High Level ausgelöst werden und es wird die Meldung abspielen solange es einen High auf dem erforderlichen Pin gibt und es kann Edge getriggert werden, dh es braucht nur einen kurzen Impuls zum Starten. Ich benutze die letztere Methode und ich generiere den Puls auf Digtiatl Pin 12.

Bewegungsmodul
Andere als mit einem bellenden Hund, Einbrecher werden höchstwahrscheinlich auch an Ihrem Haus vorbeiziehen, wenn sie Aktivität sehen. Ich habe eine Art bewegliche Kartonfigur gebaut, die von einem attiny85, einem Steppermotor und einem Servo angetrieben wird. Es ist das Thema eines anderen instructable. Ich bekam die Inspiration aus dem Film 'Home Alone', wo McCauley Calkin Pappfiguren auf ein Grammophon legte, um die Einbrecher dazu zu bringen, dass es eine Party gab.
Offensichtlich. Das Wesen dieser "Marionette" ist, dass sie hinter einen Vorhang gelegt wird und dass die Schatten, die sie abgibt, das sind, was die Einbrecher (hoffentlich) abschrecken wird.

Fake Fernsehen
Verlassen auf einem Fernseher ist eine Abschreckung, aber es verbraucht etwas Kraft. Auch das Verlassen auf einem Fernsehapparat während einer verlängerten Zeitspanne hat das Risiko, es Feuer zu fangen, das ist schlecht genug, wenn Sie anwesend sind, aber dann können Sie Maßnahmen ergreifen, aber ist sogar schlechter, wenn Sie weg sind und Ihr Haus brennen unten . Es ist ein Gerät , genannt gefälschte TV " , die einen Fernseher mit verschiedenen Farb - LEDs imitiert. Ich habe gemischte Überprüfungen darüber gehört, aber es könnte sein 25-30 USD Preisschild wert sein. Ich habe es nicht in Europa zu sehen (außer im Vereinigten Königreich mit einem 20 GBP Preisschild), aber es ist auf Aliexpress für 12,50 € Ich kann versuchen und ein selbst einen Tag zu machen, vielleicht einer jener flackernden Kerzen, modded einige haben Mehr LEDs könnten eine günstige Lösung sein. Das fake Fernsehapparat sollte gesetzt werden, also kann es auf etwas wie Vorhänge projizieren. Das darf nicht zu dick sein oder sonst sieht man nichts, aber auch nicht zu dünn, so kann man sehen ist es nit ein fake tv.
Auf instructables gibt es einige Projekte mit Umgebungslicht. Vielleicht würde das auch funktionieren.
Das Forum bei adafruit zeigt auch eine "Fake TV 'mit einem Arduino . Ich habe einen ziemlich billig gebaut. Ein anderes hübsches ordentliches ist dieses von John Bush
Die fakeTV habe ich nur noch Strom benötigt, um zu arbeiten, so dass auch diese habe ich es mit einem meiner Rf 433MHz Remote-Schalter angeschlossen und schalten Sie ihn ein-und ausschalten zu einem gewünschten Zeitpunkt,
Viele handelsübliche fakeTVs reagieren auf Licht und spielen dann eine bestimmte Zeit. Ich fand, dass ein bisschen weniger flexibel für meine Bedürfnisse und das ist der Grund, warum ich entschieden, ein selbst zu bauen (+ es war viel billiger) Das Fake TV wird remote mit einem Remote Switch eingeschaltet.

Externes Relais
Ich habe eine ferngesteuerte 5 Volt Relais-Modul, die ich verwenden, um einige Solarstrom wechseln. Da es von einem Solarpanel gespeist wird, darf ich keinen der handelsüblichen 230-Volt-Wechselspannungsschalter verwenden. Ich habe derzeit keine Beschreibung davon in einem ibble so stay tuned, aber dann wieder, können Sie nicht für i verwenden.

Bluetooth
Ich habe ein billiges bluetooth Modul hinzugefügt, um in der Lage zu sein, etwas Eingang zum Stromkreis zu geben und einige Informationen von ihm zu gewinnen. Es gibt viele Tutorials auf, wie man ein bluetooth Modul an ein arduino anschließen, schwierige und einfache, aber es ist in der Tat echt einfach. Verbinden Sie Rx des Moduls mit Tx des Arduino, verbinden Sie Tx des Moduls mit Rx von Arduino. Vcc anschließen und Masse anschließen und fertig sind. Denken Sie daran, dass, wenn Sie eine Skizze hochladen möchten, müssen Sie das Bluetooth-Modul zu entfernen, oder es wird mit dem Upload-Prozess stören. Beide HC05 als HC06 Module funktionierten für mich

Schritt 9: Der erweiterte Code

Dies ist der erweiterte Code. Es nutzt nicht mehr NVRam, die es auf die DS1307 beschränken würde. Es kann nun auch mit dem DS3231 oder dem DS1307 verwendet werden, da es das auf den meisten RTC-Modulen vorhandene EEPROM verwendet.
Es ist ein Arbeitscode, aber noch im Gange, deshalb finden Sie eine Menge von Befehlen, die kommentiert werden. Es wird nach und nach aufgeräumt werden. Obwohl alles begann als "athome Simulator" Ich fand seine Verwendung so praktisch, dass ich es funktionieren, auch wenn ich selbst zu Hause bin. Ich habe eine Option, aber meine Abwesenheit zu setzen, so kann es entscheiden, nicht zu einem Alarm, wenn es Geräusch hört.
Es verfügt über die folgenden Erweiterungen im Vergleich zu den grundlegenden Software

  • 16 Fernschalter im Gegensatz zu 3 (sowohl für Lampen als auch ein bellender Hundeschall sowie eine bewegte Figur hinter meinen Vorhängen).
  • Interne Relais zum Umschalten 'etwas' (auf D4)
  • IR-Sender
  • Bluetooth als Option.
  • Verfolgt die Tageslichtzeit für die EU. Wenn Sie außerhalb der EU leben u müssen den Algorithmus anzupassen
  • Berechnet die sunsetapproximation
  • Kann Ring (mein) Türklingel
  • Betätigt einen Summer (auf D13)
  • Betreibt ein Soundmodul für gesprochene Nachrichten (auf D12)
  • Hat ein Mikrofonmodul (auf D10)
  • Es liest die Temperatur (wenn Sie eine DS3231 haben)

Schritt 10: Der erweiterte Code: Beschreibung

Zunächst setzt der Code eine Menge von Variablen und Konstanten. Es definiert eine Reihe von Makros speziell für die spezifischen Remote-Switch-Befehle. Ich mache das, so dass es einfach ist, diese an einem Ort zu ändern, falls Sie verschiedene Switches verwenden.

Im Setup richten Sie den seriellen Port und die Uhrzeit ein. Es liest dann das EEPROM des RTC-Moduls, um zu sehen, ob beim Einschalten, einige Lichter oder Geräte eingeschaltet werden sollten und es tut dies. Ich tue dies so im Falle einer Stromunterbrechung und Neustart, der Controller weiß immer noch, was sein sollte und was nicht.

Die Schleife überprüft den seriellen Port für die Eingabe (von einem Bluetooth-Modul) und ergreift Maßnahmen, wenn der Eingang gefunden wird. Wenn nicht, wird die Uhrzeit aktualisiert.
Dann im Grunde, was es tut, ist Zyklus durch eine Reihe von IF-Anweisungen zu sehen, ob es Zeit für eine Aktion ist, schalten Sie ein Gerät ein oder aus
Wenn ein Gerät eingeschaltet werden muss, springt es auf die entsprechende Unterroutine / Funktion, sendet den spezifischen Befehl und aktualisiert das Statusflag und schreibt es in EEPROM. Es sendet die spezifischen Befehl über ein Makro wie "HuiskamerAAN" (Wohnzimmer ON). Müssen Sie sicherstellen, dass die Definition im Makro mit dem Befehl übereinstimmt, den Ihr Fernbedienungsschalter benötigt.
Entschuldigung für die Beibehaltung des Makros Definitionen in Niederländisch, aber ich habe bereits den englischen Begriff für die Funktionen: Ie Die Funktion 'LivingRoomON' verwendet das Makro "HuiskamerAAN". Unter den Makrodefinitionen finden Sie genau was auf Englisch steht.

Während es Looping ist, überprüft das Programm auch kontinuierlich, ob es vielleicht schon das richtige Datum für DaylightSavingstime ist oder, wenn es bereits DST ist, ob es das richtige Datum ist, das auszuschalten.
Es auch verfolgt, welches Datum es ist, also kann es eine Annäherung von Sonnenuntergang und Sonnenaufgangzeit tun. Es schaltet das Licht im Wohnzimmer etwa eine halbe Stunde vor Sonnenuntergang ein, es sei denn, es ist schon dunkler früher (bewölkter Himmel, Donner, was auch immer), dann schaltet es die Lichter früher ein.
Es tut dies durch das Lesen eines LDR. Sie müssen die Ebene für die zu Ihrer eigenen Situation einstellen.
Im Hinblick auf die DST-Berechnung und die Sunrise-Approximation gelten diese für meinen Standort (in NW Europe), die Sie für Ihre Situation anpassen müssen (und vielleicht haben Sie nicht DST)

In Bezug auf die Zeitvariablen liest ein Aufruf wie "now.minute ()" den RTC sofort ein.
Jedoch ließ ich die Schleife ständig die Zeitvariablen wie dieses aktualisieren:

J = now.year ();
Mo = now.month ();
D = now.day ();
H = jetzt.hour ();
M = now.minute ();
S = now.second ();

So während des Programms ist es OK, entweder 'h' oder 'now.hour ()' zu benutzen, um die Stunde zu erhalten.
Der einzige Unterschied ist, dass mit 'h' wird wahrscheinlich ein Tadd schneller als mit 'now.hour ()' aber 'h' könnte ein Bruchteil der Zeit hinter sich. Ich denke, die Schleife zirkuliert etwa 150 mal pro Sekunde so, wenn ich die Variablen am Anfang der Schleife aktualisieren und verwenden sie gegen Ende der Schleife, kann ich 1/150 th einer Sekunde zurück. Das scheint mir nicht wirklich ein Problem zu sein

Schritt 11: Zukünftige Erweiterungen

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Ein Wireless Smart Home (war: At Home Simulator und Alarm mit Arduino oder Atmega328 (aktualisiert Mai 2016))

Obwohl ursprünglich geplant, als ein Gerät zu simulieren, dass jemand zu Hause ist, ist es mehr und mehr zu einer Hausautomation gewachsen (zB, kümmert sich auch meine Hydroponik :-))

So dachte ich, dass ich einen Laser tripwire außerdem hinzufügen würde. Ich habe bereits einen, aber wie ich es auch drahtlos haben möchte, baute ich ein kleines attiny-basiertes Gerät, das einen Laser Tripwire, einen echten Tripwire sowie einen Näherungssensor und einen Vibrationskontakt überwacht und ein Radiosignal an meinen Athome sendet Schaltung. Das erfordert einen Empfänger + Antenne in meinem Gehäuse als auch die ihre Größe erwachsen könnte. Eine andere Möglichkeit besteht darin, dass diese Schaltung ein lautes Rauschen erzeugt, das von meinem Mikrofon aufgenommen wird oder das Signal nicht an meine Basisstation sendet, sondern dass die Sensorschaltung die gewünschten HF-Schalter schaltet, die bereits vorhanden sind.

Ich habe eine Android App hinzugefügt, um das Gerät zu steuern

In seiner heutigen Form arbeitet der Athome-Simulator schon seit fast 3 Jahren an zwei Standorten ohne Probleme oder Pause :-)

Related Reading