DIY Hacking Ihren eigenen Home Automation System

11 Schritt:Schritt 1: Überprüfen Sie die CoreConduit: Garden Steuerungssystem Schritt 2: Laden Sie die Quellcode- Schritt 3: Erstellen Sie die Controller Schritt 4: Einige Montage erforderlich Schritt 5: Programmierung drahtlosen Fernnetzsteckdosen Schritt 6: Identifizierung von Geräten Schritt 7: Gehen Wireless Schritt 8: Receiver Seite Schritt 9: Break it down Schritt 10: Timing ist alles! Schritt 11: Gehen weiter ...

DIY Hacking Ihren eigenen Home Automation System

DIY Hacking Ihren eigenen Home Automation System

Ein Hausautomationssystem sollte in der Lage, ein- / ausschalten Geräte wie Leuchten, Ventilatoren, Entertainment-Systeme, etc. Ein System, das W-LAN noch aus dem Internet unabhängig, aber am wichtigsten ist, DIY und Open-Source ist, weil ich will, um zu verstehen, wie sein es funktioniert.
Warum neu erfinden das Rad?
Jemand war nett genug, um die meisten der Arbeit für uns tun ;-)
Die CoreConduit: Garden-Controller-System ist ein Projekt, das ich geschaffen, dass kann leicht Platz für Home-Automation-Anwendungen mit einem Verständnis von, wie es funktioniert und welche Änderungen vorgenommen werden müssen. Denken Sie daran, jeden Versuch, Lizenzen zu respektieren und Kredit denen für ihre harte Arbeit zu machen.

Schritt 1: Überprüfen Sie die CoreConduit: Garden Steuerungssystem

  1. DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    Die Coreconduit: Garden Steuerungssystem ist mehr als wir brauchen für die menschliche Lebensbedingungen, so lassen Sie uns sehen, was es tut, so dass wir einige Änderungen vornehmen. Der Autor der Instructable Drohnen weiter und weiter über gesunde Pflanzen Aufmerksamkeit und Langeweile erfordern, bis,
    "... Ich habe in den Arduino eine Funktion Ich rief programmiert", TheDecider ", die Entscheidungen auf die Aufrechterhaltung der optimalen Umgebungsbedingungen für den Anbau von Pflanzen macht. Ich habe 2,4 GHz Wireless-Funk-Transceiver-Module und eine modulare Empfänger-System, so dass Daten übertragen werden innerhalb von 1000 Fuß. "

    Nett! Wir sollten einen Blick auf diese zu nehmen, "TheDecider."
    Ein weiterer Pluspunkt für dieses Projekt ist:
    "Mit Sicherheit im Verstand, entschied ich mich nicht auf Relais, die AC-Ströme aussetzen zu verwenden. Stattdessen entschied ich mich, Remote Controlled Wireless-Outlets zur Steuerung von Licht, Pumpen, Ventilatoren, Heizgeräte, Luftbefeuchter und zu nutzen."

Schritt 2: Laden Sie die Quellcode-

  1. DIY Hacking Ihren eigenen Home Automation System

    Laden Sie die Quellcode von GitHub .
    Die Instructable erklärt:
    "In der Source-Code habe ich eine Basisgrundstein für die Verwaltung, Sende- und Empfangs" Sensor "Objekte und" Gerät "Objekte. Dieses Projekt könnte leicht geändert werden, um mit anderen Umgebungen, in dem die Steuerung durch Sensoren und Bediengeräte erreicht arbeiten basierend auf programmierten Regeln. Sie müssen ein paar Anpassungen an die Source-Code, damit sie ordnungsgemäß mit Ihrem Wireless-Verkaufsstellen zu arbeiten. Um die Änderungen zu machen, müssen Sie herausfinden, was die Codes sind, dass Ihr Mobilfunk Fernbedienung verwendet und die Auslässe sind so programmiert, zu erhalten. Ich habe eine Skizze für die Installation auf Ihrem Arduino Uno * w / Protoshield, um die Echtzeituhr zu der aktuellen Zeit und führen Sie durch den Prozess des Erwerbs der Codes. Sie werden aufgenommen müssen die 433Mhz Receiver Modul einzufügen (wie abgebildet) und laden Sie diese Skizze, StartCore.ino auf die Arduino Uno * und öffnen Sie die serielle Konsole für diesen Port, so dass Sie Daten aus dem Arduino empfangen können. "

    Lassen Sie uns ein !!
    "Nachdem Sie den Prozess des Erwerbs alle Codes von der Fernbedienung Sie kopieren, direkt in TheDecider.h Header-Datei, wo ich haben gezeigt, zu vervollständigen."

Schritt 3: Erstellen Sie die Controller

  1. DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    Teilen: (Links als Referenz zur Verfügung gestellt)
    Arduino Uno R3 (dieses Projekt mit mehr Einheiten erweitert werden.) Arduino Uno Sensor Protoshield (der Autor verwendet eine Prototyping-Board für das, was aussieht wie ein entworfen Nokia LCD-Display .) Wir können das gleiche zu verwenden, unsere eigenen, oder verwenden Sie die Sensor-Schild). Real-Time Clock Modul (DS3231) 10k Widerstand männliche Leiterplattenleisten weiblichen Leiterplattenleisten Draht w / Anschlüsse für die Sensoren OPTIONAL: DHT21 / 22 Temperatur- / Feuchtigkeitssensor OPTIONAL: Lichtschranke keine Anwendung. Wasserspiegel-Sensor Nicht anwendbar. Dallas Temperatursensor (für Nährlösung Temperatur) 433 MHz HF-Sender und Empfänger-Module gesetzt 5 Packung von Wireless-gesteuerten Ausgänge einschließlich Quellcode !! 2 oder mehr - nRF24L01 2,4 GHz Wireless-Radio-Transceiver-Module
    Sonderzubehör:
    Arduino Uno R3 * oder Pro Mini * Real-Time Clock Module Optional: nRF24L01 Adapter mit 3,3 V Reglerverbindungsdrähte Anzeigeoption LCD w / Buttons Schild + Arduino Uno R3 * 2 x 4-polige Stiftleiste Verbindungsdrähte SD Card Option SD-Karte-Schild + Arduino Uno R3 * Verbindungsdrähte
    Internet Connectivity Option
    Ethernet oder WiFi-Schild + Arduino Uno R3 * Verbindungsdrähte - siehe http: //www.instructables.com/id/Custom-Wire-Conne ... Klemmkasten w / Deckel
    Werkzeuge:
    Lötkolben w / Lot Schraubendreher - kleinen Flachkopf USB-Kabel - Standard PC w / Arduino oder Atmel Visual Studio w / Visuelle Micro-Plugin

Schritt 4: Einige Montage erforderlich

  1. DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    Beginnen Sie mit, herauszufinden, was Codes Ihren eigenen bestimmten drahtlosen Fernnetzsteckdosen verwenden. Die Quelle-Code geht davon aus, dass es einen 433Mhz-Empfänger auf die Pins 2 (Masse), 3 (Data), 4 (Vcc) und eine Echtzeituhr-Modul via I2C mit A5 (SCL), A4 (SDA), Vcc verbunden, Boden.

Schritt 5: Programmierung drahtlosen Fernnetzsteckdosen

  1. DIY Hacking Ihren eigenen Home Automation System
    Laden Sie die Skizze StartCore.ino in Ihre bevorzugte Arduino Programmierumgebung. Kompilieren und laden Sie die Skizze, um Ihre Arduino Uno. *** Stellen Sie die serielle Schnittstelle an den entsprechenden Anschluss und wählen Sie "19200", wie die Baudrate.
      Öffnungshafen
     Port open
     DEBUG-MODUS?
     erhalten: 1
     DS1307 konfiguriert Zeit = 09: 50: 04, Date = 2. Juni 2015
    
    Drücken Sie die Fernbedienung auf "Ein" Tasten in numerischer Reihenfolge: 1 - ON
      mySwitch.setPulseLength (188);
     unsigned long mySwitchOn [] = {24,21811 
    weiter drücken, Anhalten zu warten, bis die Zahlen auf dem Monitor angezeigt. 2 - ON, 3 - ON, 4 - ON, 5 - ON.
      mySwitch.setPulseLength (188);
     unsigned long mySwitchOn [] = {24,21811,21955,22275,23811,29955}; 
    Wiederholen Sie diesen Vorgang für die "Off" Tasten.
      unsigned long mySwitchOff [] = {24,21820,21964,22284,23820,29964}; 
    Letzter Schritt ist hier, um die Ausgabe-Code auswählen und kopieren und fügen Sie ihn auf TheDecider.h Datei. in der Nähe der Anfang der Datei, wo gibt es die Standardwerte, die ähnlich aussehen.
    *** Wenn Sie Probleme haben, kompilieren, ist der häufigste Grund, Bibliotheksdateien fehlen. Bitte überprüfen Sie, dass Sie alle notwendigen aufgelisteten Dateien haben.

Schritt 6: Identifizierung von Geräten

  1. DIY Hacking Ihren eigenen Home Automation System

    Nun, da der Regler mit den Codes für unsere Steckdosen programmiert, müssen wir wissen, was Zahl geht in welchem ​​Gerät.
    Öffnen Sie die Skizze für den Controller Suchen Sie die Sensor- und Geräteobjektdefinitionen
      // Geräte initialisieren
     Appliance Appliance_IntakeFan = {101, APPLIANCE_INTAKE_FAN, true, DEFAULT_TIME, OFF, NULL};
     Appliance Appliance_ExhaustFan = 
      {102, APPLIANCE_EXHAUST_FAN, true, DEFAULT_TIME, OFF, & Appliance_IntakeFan};
     Appliance Appliance_Humidifier =
      {104, APPLIANCE_HUMIDIFIER, true, DEFAULT_TIME, OFF, & Appliance_ExhaustFan};
     Appliance Appliance_Light = 
      {103, APPLIANCE_LIGHT, true, DEFAULT_TIME, OFF, & Appliance_Humidifier};
     Appliance Appliance_Heater = {106, APPLIANCE_HEATER, true, DEFAULT_TIME, OFF, & Appliance_Light};
     Appliance Appliance_FeedPump = {105, APPLIANCE_PUMP, true, 0, OFF, & Appliance_Heater}; 
    Stellen Sie sicher, Pin-Nummern entsprechen nach den Verkaufsstellen und Geräte. Die Pin-Nummern über 100 sind so nummeriert, um anzuzeigen, dass sie an entfernte Netzsteckdosen und nicht direkt von einem Arduino Pin entsprechen.

Schritt 7: Gehen Wireless

  1. DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    Nun, da der Regler mit den Codes für unsere Steckdosen programmiert, können wir die nRF24L01 Modul hinzufügen.
    Unter Verwendung des DuPont-Regenbogen-Band mit 2,54 mm-Buchsen, damit ich kundenspezifischen Kabelverbindungen machen:
    Pin-Nummer auf Arduino / Kabelfarbe / nRF24L01 Pin Pin 9: Orange / CSN "Chip Select" Pin 10: Gelb / CE "Chip Enable" Pin 11: Grün / MOSI "Master Out Slave In" Pin 12: Blau / MISO " Master in, Slave Out "Pin 13: Lila / SCK" System Clock "Vcc 3,3 V * Red (wenn nicht mit Uno, optionaler Adapter Board mit Spannungsregler) Ground. Braun
    Farbkennzeichnung der Kabel Blick auf die nRF24L01 Komponentenseite mit dem Kristall an der Spitze ausgerichtet - von rechts unten, hinauf: Brown | Orange | Purple | Blau. Yellow | | Green | NC Red: von unten hinauf links
    Mehr erstaunliche Informationen zum Anschluss des nRF24L01 zu Arduino .

Schritt 8: Receiver Seite

  1. DIY Hacking Ihren eigenen Home Automation System

    DIY Hacking Ihren eigenen Home Automation System

    Der Receiver Quellcode davon aus, dass es geht, zusammengetragen und auf einem Arduino Uno oder ProMini zu einer nRF24L01, gleich wie den Controller angeschlossen ausgeführt werden. Als Teil der Garden Steuerungssystem, wird der Empfänger der Benachrichtigung via angebracht LCD Display und / oder akustisches Signal aus einem piezo auf die Stifte 2 (Masse), 3 (Signal), 4 (Vcc) verbunden zu senden. Für den Einsatz in Home-Automation-Projekten kann die Benachrichtigung System entfernt werden oder die Regeln gemäß der gewünschten Wirkung angepasst.

Schritt 9: Break it down

  1. DIY Hacking Ihren eigenen Home Automation System

    Jetzt haben wir unseren eigenen Garten Steuerungssystem.
    Warten Sie! Ich meine, ganz eigenen DIY Home Automation System. Standardmäßig wird der Controller mit einer Menge von Regeln, die wir zu kommentieren Abreise müssen programmiert. Open-up TheDecider.h Datei erneut.
      bool TheDecider (void) 
      {Bool r = false;  time_diff = 0;  time_now = jetzt (); 
      // Update app.ready wenn es schon 5 Minuten seit dem letzten Wechsel. 
      Appliance * app = & Appliance_FeedPump; 
      for (;! app = NULL; app = app-> next)
     {
       	 time_diff = (time_now - app-> Zeitstempel);
    	 if (time_diff> 300) {app-> bereit = true;  }
      } 
      Dieser Code wird durch alle "Gerät" Objekte treten und sicherstellen, dass wir mindestens 5 Minuten vor der Überprüfung des Gerätes seit dem letzten Wechsel wartete.  Der Code ist sinnvoll, wenn Sie die Steuerung Fans und Garten wachsen Lichter, aber für Hausautomationszwecke können diese reduziert werden.  Ich persönlich würde nicht setzen es unter 30 Sekunden. 

    Das nächste Stück Code in TheDecider Funktion stellt sicher, dass die Sensordaten für Feuchte und Temperatur ist wie erwartet funktioniert:
      if (Sensor_Humidity.value == 0)
     { 
    	 Appliance_Humidifier.ready = false;
     }	
     if (Sensor_Temp.value == 0)
     {
    	 Appliance_ExhaustFan.state = true;  Appliance_ExhaustFan.ready = false;
    	 Appliance_IntakeFan.state = true;  Appliance_IntakeFan.ready = false;
     } 

    Der folgende Code ist zur Temperaturregelung durch Steuern Fans:
      // RH Bereich
     if (Appliance_Humidifier.ready == true) {
    	 // Wenn die Luftfeuchtigkeit geringer ist als die MINVAL und der Befeuchter AUS
    	 // Dann auf der Luftbefeuchter schalten
     if ((Sensor_Humidity.value <Sensor_Humidity.minVal) &&
      (Appliance_Humidifier.state! = True))
     { 
     r = true;  Appliance_Humidifier.state = true;
     myAppliance (& Appliance_Humidifier, false);
     }
    		
     // Wenn die Luftfeuchtigkeit geringer als die MINVAL ist, schalten Sie auf der Pumpe
     if ((Sensor_Humidity.value <Sensor_Humidity.minVal))
     {
     r = true;  Appliance_FeedPump.state = true;
     myAppliance (& Appliance_FeedPump, false);
     }
     ... 

    Das nächste Stück Code ist die Bewertung, ob eine Lichtschranke Licht empfängt und welche Maßnahmen ergriffen werden sollten.
      // Wenn das Licht Lese größer als die MINVAL ist
     // Und die ExhaustFan ist EIN - schalten Sie dann Light (s)
     if (Appliance_Light.ready)
     {
     if ((Sensor_Light.value> Sensor_Light.minVal) && (Appliance_ExhaustFan.state == true))
     {
      r = true;  Appliance_Light.state = false;
      myAppliance (& Appliance_Light, false);
     }
     // Wenn das Licht Lese kleiner als die MINVAL ist
     // Dann schalten Lichter
     if (Sensor_Light.value <Sensor_Light.minVal)
     { 
     r = true;  Appliance_Light.state = false;
     myAppliance (& Appliance_Light, false);  }
     } 

    Die übrigen Bestimmungen sind zur Regelung einer Wasserpumpe. Wir können Funktion endet mit entfernen, oder kommentieren Sie sie TheDecider.:
      /* Tun: */ 
      Rückkehr r;  } 

Schritt 10: Timing ist alles!

  1. DIY Hacking Ihren eigenen Home Automation System

    Im Inneren sowohl der Controller_nRF.ino Skizze und Receiver_nRF.ino Grund Timer werden verwendet, um eine Zustandsmaschine, in der Flags gesetzt und kontinuierlich überprüft erstellen.
    Timer-Objekte mit eingebautem Fahnen:
      Timer Timer_Log = {TIMER_LOG, 300000UL, true, false, 0, NULL}; 
    Timer Timer_rxData = {TIMER_RX_DATA, 2500L, true, false, 0, & Timer_Log}; Timer Timer_Save_Settings = {TIMER_SAVE_SETTINGS, 3600000UL, true, false, 0, & Timer_Log}; Timer Timer_Sensor_Read = {TIMER_SENSOR_READINGS, 5000UL, true, false, 0, & Timer_Save_Settings}; Timer Timer_Alerts = {TIMER_ALERTS, 60000UL, true, false, 0, & Timer_Sensor_Read};

    Timing ist in Mikrosekunden. Gemäß dem Standard-Quellcode hat der Timer_Log eine Frequenz von 5 Minuten.
    Innerhalb der Schleife des Controller_nRF.ino und welche Maßnahmen zu treffen sind:
      if (clockFlag == true) {
    	 if (checkTimer (& Timer_Log)) {checkAppliances ();  }
    	 if (checkTimer (& Timer_Sensor_Read)) {keepalive ();  readSensors ();  TheDecider ();  }
     }
    

Schritt 11: Gehen weiter ...

  1. DIY Hacking Ihren eigenen Home Automation System

    Verwendung Arduino Uno, Pro Mini, nRF24L01 und andere Open-Source-Module öffnet die Tür zu vielen Möglichkeiten. Wir haben jetzt eine drahtlose Rahmen zum Senden von Datenobjekten für Sensoren, Geräte, Warnungen usw., unter Verwendung einer Steuereinrichtung zur Fernnetzsteckdosen und Sensoreingänge und einen Empfänger für die Erkundung Entwicklung einer Benutzerschnittstelle. TheDecider kann aktualisiert werden, um eine beliebige Anzahl von Aufgaben auszuführen basierend auf Sensor und Benutzereingaben. Was der Empfänger hat als Reaktion auf die empfangenen Daten liegt bei Ihnen.
    Genießen Sie basteln !!