Intelligente Steckdose

Aus HRW FabLab MediaWiki
Wechseln zu: Navigation, Suche

Intelligente Steckdose



Die Intelligente Steckdose ist ein Gerät womit man in der Lage ist, als Schwerbeeinträchtigter einfach Elektronische Geräte zu betätigen. Es ähnelt "Smart Home" wo alle Geräte von Zuhause aus steuerbar sind. Dieses Verfahren ist einfach und flexibel für den Alltag eines Schwerbeeinträchtigten Menschen womit er sich in den eigenen vier Wänden wohl fühlen kann.

Intelligente Steckdose
Intelligente Steckdose

Entwickler

Ziad Hassan, Mohamed Ahmad, Lhabib Lachil


Projektdateien

GitHub

Verwendete Programmiersprache

Arduino C/C++

Verwendete Software

Arduino IDE,


Hardware

[2 ESP32],[5 v 4 Canal Relais Module 4 canal],[10Premium Male/Male Jumper Wires ],[Extension Cord],[eine Power Bank Patsy ]



Motivation und Projektbeschreibung[Bearbeiten]

Fablabl

Die Intelligente Steckdose dient als Begriff für ein technisches Verfahren in Wohnräumen und -Häusern, in deren Mittelpunkt eine Erhöhung von Wohn- und Lebensqualität steht.

Wir setzen damit auf Sicherheit und effiziente Energienutzung auf Basis vernetzter und fern steuerbarer Geräte.

Mit der Intelligenten Steckdose können alle Geräte Zuhause mit der Fernbedienung auf Knopfdruck ein-und ausgeschaltet, was den Alltag erleichtert und uns Mühe und Energie spart.

Nach der Weiterentwicklung der Intelligenten Steckdose ist es auch möglich, die Geräte so einzustellen, dass sie automatisch ein und ausgeschaltet werden können. Beispielsweise werden die Fenster automatisch um 7 Uhr geöffnet, die Musik wird automatisch abgespielt oder das Badezimmer bereitet eine heiße Dusche zu vor, in der die Wassertemperatur automatisch angepasst wird.

Das Entwickeln der Intelligenten Steckdose lässt sich in effektive Hauptaufgaben einteilen. Diese sind Modellierung, Elektronik, Arduino, Programmierung und App-Entwicklung.

Bei der Entwicklung wurde jede Aufgabe mehrmals durchgeführt, da wir durch das abschließen unserer Aufgaben auf neue Erkenntnisse gekommen sind womit wir mehrere Fehler entfernen, sowie weitere Fortschritte implementieren konnten.

Modellierung[Bearbeiten]

Die Intelligente Steckdose besteht aus fünf Hauptteilen.

Die Intelligente Steckdose wurde hergestellt aus:

Einer Batterie

Einem ESP32 Standalone Relay Control

Und einem vier Kanal Relaismodul dc 5v + Optocoupler für Arduino sic arm air dsp w.

Durch diese oben genannten Bestandteile ist die Einwandfreie Fähigkeit der "Intelligenten Steckdose" gewährleistet.

Abbildung 2. Der Schaltplan des Mikrocontroller-Systems.

In diesem Projekt steuern wir das Relaismodul mit ESP32. Wir verbinden unseren ESP32 mit einem Wi-Fi-Netzwerk und erstellen dann eine Webseite über eine IP-Adresse und einen Port, die auf dem seriellen Monitor angezeigt werden. Über die Webseite senden wir dann die Befehle an den ESP32, um das Relaismodul ein- oder auszuschalten. Aufgrund der Sicherheit haben wir eine Powerbank (Batterie) in unserem Projekt verwendet. Jedoch können wir darauf verzichten und stattdessen normalen Strom mit Spannung von 220 Volt verwenden bzw. einsetzen.


Name Beschreibung Produktbild
ESP32 ESP32
ESP32
4-Kanal-Optokoppler-Relaismodul 4-Kanal-Optokoppler-Relaismodul
4-Kanal-Optokoppler-Relaismodul
Power Bank Patsy Power Bank Patsy
Power Bank Patsy
Premium Male/Male Jumper Wires Premium Male/Male Jumper Wires
Premium Male/Male Jumper Wires
Extension Cord Extension Cord
Extension Cord

Software[Bearbeiten]

Es wurde ein Programm entwickelt,mit dem man über eine Webseite den Schalter ein- und ausschalten kann.


  1. include <WiFi.h>

const char* wifi_name = "Connectify-Lhabib"; // Your Wifi network name here

const char* wifi_pass = "Lhabib"; // Your Wifi network password here

WiFiServer server(80); // Server will be at port 80


Code-Erklärung und exemplarische Vorgehensweise Lassen Sie uns die verschiedenen Aspekte des Codes und die Aufgaben der einzelnen Codeabschnitte durchgehen. Den vollständigen Code ohne Unterbrechungen finden Sie bei GitHub.

Zuerst enthalten wir die Wi-Fi-Bibliothek, damit wir uns mit dem Internet verbinden können. Dann speichern wir den Wi-Fi-Namen und das Passwort, damit wir uns mit diesem Netzwerk verbinden können. Danach definieren wir den Port, an dem wir den Webserver erstellen.


int relay_pin = 2;

int relay_pin12 = 16;

int relay_pin13 = 17;


In der Setup-Funktion haben wir mit den oben angegebenen Informationen eine Verbindung zum Wi-Fi-Netzwerk hergestellt. Wenn die Verbindung zum Wi-Fi-Netzwerk erfolgreich hergestellt wurde, wird auf dem seriellen Monitor die Meldung "Verbindung erfolgreich" angezeigt. Wenn die Verbindung zum Wi-Fi-Netzwerk nicht hergestellt werden kann, wird der Versuch fortgesetzt, bis eine Verbindung zum Wi-Fi-Netzwerk hergestellt wird.



void setup() {

 Serial.begin (115200);
 pinMode (relay_pin, OUTPUT);
 Serial.print ("Connecting to ");
 Serial.print (wifi_name);
 WiFi.begin (wifi_name, wifi_pass);     // Connecting to the wifi network
 while (WiFi.status() != WL_CONNECTED) // Waiting for the response of wifi network
 {
   delay (500);
   Serial.print (".");
 }
 Serial.println("");
 Serial.println("Connection Successful");
 Serial.print("IP address: ");
 Serial.println(WiFi.localIP());           // Getting the IP address
  
  
 server.begin();                           // Starting the server

}


In der Schleifenfunktion haben wir zunächst überprüft, ob eine Clientanforderung verfügbar ist. Wenn Clientanforderungen verfügbar sind, lesen wir die Anforderung und speichern sie im Zeichen. Wir antworten auf die Client-Anfrage, indem wir HTML-Befehle senden, die die Webseite erstellen, von der aus wir das Relay steuern können.


void loop() {

 WiFiClient client = server.available();     //Checking if any client request is available or not
 if (client)
 {
   boolean currentLineIsBlank = true;
   String buffer = "";  
   while (client.connected())
   {
     if (client.available())                    // if there is some client data available
     {
       char c = client.read(); 
       buffer+=c;                              // read a byte
       if (c == '\n' && currentLineIsBlank)    // check for newline character, 
       {
         client.println("HTTP/1.1 200 OK");
         client.println("Content-Type: text/html");
         client.println();    
         client.print("<HTML><title>Steckdose</title>");
         client.print("Relay Control 1");
         client.print("<a href=\"/?relayon\"\"><button>AN</button></a>");
         client.print("<a href=\"/?relayoff\"\"><button>Aus</button></a>");
         client.print("Relay Control 2");
         client.print("<a href=\"/?relayon1\"\"><button>An</button></a>");
         client.print("<a href=\"/?relayoff1\"\"><button>Aus</button></a>");
         client.print("Relay Control 3");
         client.print("<a href=\"/?relayon3\"\"><button>An</button></a>");
         client.print("<a href=\"/?relayoff3\"\"><button>Aus</button></a>");
         
         
         client.print("</body></HTML>");
         break;        // break out of the while loop:
       }
       if (c == '\n') { 
         currentLineIsBlank = true;
         buffer="";       
       } 
       else 
         if (c == '\r') {     
         if(buffer.indexOf("GET /?relayon")>=0){
           digitalWrite(relay_pin13, LOW);
           }
         if(buffer.indexOf("GET /?relayoff")>=0)
           digitalWrite(relay_pin13, HIGH);  
          if(buffer.indexOf("GET /?relayon1")>=0)
           digitalWrite(relay_pin12, LOW);
         if(buffer.indexOf("GET /?relayoff1")>=0)
           digitalWrite(relay_pin12, HIGH);   
          if(buffer.indexOf("GET /?relayon3")>=0)
           digitalWrite(relay_pin, LOW);
         if(buffer.indexOf("GET /?relayoff3")>=0)
           digitalWrite(relay_pin, HIGH); 
         
       }
       else {
         currentLineIsBlank = false;
       }  
     }
   }
   client.stop();
 }

} }

Ziel des Projektes[Bearbeiten]

Das Ziel des Projektes "Intelligente Steckdose" gibt den schwerbeeinträchtigten Menschen einen neuen Weg bzw. neue Handlungsmethoden, das Leben vereinfacht und besser zu bewältigen. In Zukunft soll es auch das Leben eines normalen Menschen vereinfachen können. Das Projekt könnte sich auch zukünftig besser entwickeln, indem man es als Application produziert.

Zeitschaltuhrfunktion


Das Projekt könnte man dahingehend weiter entwickeln, dass man die Ein / Aus-Zeitpläne automatisieren können. Somit würde die gesamte Kontrolle über den Verbrauch aller Geräte gewährleistet werden.

Fernbedienung


Anhand der Fernbedienung kann die Intelligente Steckdose bedient werden, ohne sich im Haus aufzuhalten. Somit können mehrere Steckdosen problemlos gesteuert werden. Mit der Fernbedienung können auch die Elektronische Geräte wie Fernseher, Töpfe und Luftbefeuchter bedient werden.

Quellen[Bearbeiten]

https://maker.pro/everything-esp/projects/how-to-control-a-relay-module-with-esp32

https://de.wikipedia.org/wiki/Smart_Home