IOT

Uhr und Hausautomation mit STONE Display

Inhalte

  1. Beschreibung
  2. GUI-Design

3. Schaltplan

  1. Code
  2. Video

Beschreibung

In diesem Projekt werden wir eine Uhr und ein Automatisierungssystem entwerfen. Mit dieser Hilfe können wir das Hauslicht ein- oder ausschalten und es gibt auch eine Uhr, die Uhrzeit und Datum anzeigt.

Dafür verwenden wir TFT-Display (STONE-HMI), dieses Display verfügt über eine Software, die eine GUI-Software ist. Mit dieser Hilfe werden wir eine Schnittstelle entwerfen, die sowohl die Abschnittsuhr als auch die Automatisierung enthält. Laden Sie die GUI-Software herunter Klicke hier

Uhrteildesign :-

Lassen Sie uns zuerst den Uhrenteil entwerfen, zuerst müssen wir alle Bilder hinzufügen, die im Ordner angegeben sind Hier .

Wie Sie auf der linken Seite sehen können, wurden alle Bilder im Abschnitt der Bilddatei hinzugefügt. Klicken Sie nun auf Bild '14', um diese Schnittstelle wie im Bild zu sehen. Wählen Sie nun 'RTC' aus der Touch-Konfiguration zum Einstellen der Uhrzeit und Datum und führen Sie die gesamte Konfiguration für dieses erste Bild "in der Seite" als Bildnummer 6 durch, die zum Zeitpunkt der Einstellung verwendet wird. Gehen Sie nun zu Bildnummer 6 und fügen Sie alle Schaltflächen und ihre Schlüsselwerte hinzu. Dieser Wert wird in diesem Format sein.

Für '1' — 0031

Für '2' — 0031

Für '3' — 0031

Für '4' — 0031

Für '5' — 0031

Für '6' — 0031

Für '7' — 0031

Für '8' — 0031

Für '9' — 0031

Für '0' — 0030

Für 'OK'– 00F1

Danach fügen Sie den Tasteneffekt als Bildnummer-7 für alle Tasten hinzu. In diesem Teil werden die Einstellungen der Uhr vorgenommen. Gehen wir weiter, um einen Uhrzeiger zu erstellen.

Fügen Sie auf ähnliche Weise die Zifferblattuhr von oben hinzu und fügen Sie alle Stunden-, Minuten- und Sekundenzeiger hinzu. Dafür müssen wir zuerst ein Symbol für diese Zeiger erstellen. Gehen Sie dazu zum Symbolgenerator und wählen Sie diese Bilder aus. Sie finden einen neuen Ordner im Abschnitt der 'Icon-Datei' von hier aus müssen Sie alle Icons entsprechend den Zeigeranforderungen auswählen. Danach alle Icons entsprechend den Uhrzeigeranforderungen auswählen und nicht vergessen, mit diesem Verfahren die Mitte jedes Zeigers für die Uhr auszuwählen Dies wird jetzt getan, wir müssen uns für den Automatisierungsteil entscheiden und dafür haben wir ein Automatisierungssymbol hinzugefügt, wie Sie im obigen Bild sehen können, für diese Auswahlschaltfläche und legen Sie diese Schaltfläche in den Bereich dieses Automatensymbols und wählen Sie dann das ' page switch' als image-1, da dies das Bild für die Automatisierung ist, danach wählen Sie image-1 für die weitere Gestaltung aus.

Design von Automatisierungsteilen :-

Lassen Sie uns den Automatisierungsteil dafür entwerfen, dass wir von Arduino einen bestimmten Schlüsselwert über eine Adresse senden müssen. Hier verwenden wir '0001' für alle Schlüsselwerte. Für die Schaltfläche Fan (ON) senden wir den Schlüsselwert '0001' und für Fan (OFF) ) senden wir den Schlüsselwert '0002' auf ähnliche Weise senden wir für alle bestimmten Werte für alle Appliances.

Für den Seitenwechsel verwenden wir die 'Taste', die oben links platziert ist, und für die Automatisierungstaste verwenden wir die Funktion 'Return Press Key Value', die zwei Parameter hat, zuerst der Adresswert und der andere der Schlüsselwert, wie wir oben erwähnt haben mit unterschiedlichen Schlüsselwerten für jede Automationsschaltfläche.

Schaltbild

Wie Sie in der Verbindung sehen können, gibt es drei LEDs light-1,light-2 und für Fan verwenden wir hier nur LEDs, aber Sie können echte Geräte daran anschließen.Light-1 an den Pin -D6 von Arduino anschließen,light- 2 mit dem Pin-D7 von Arduino verbinden, ähnlicher Fan mit D5 mit Arduino verbinden. Und die Verbindung für Rx und Tx gemäß Schaltplan herstellen. Hier haben wir Tx mit Pin-2 und Rx mit Pin-3 von Arduino als verbunden pro den Arduino-Code. Lassen Sie uns weitergehen, wie es mit dem Code funktioniert.

Es gibt verschiedene Arten der seriellen Kommunikation. Wenn Sie ein Arduino-Board in einem Projekt verwenden, können Sie die standardmäßigen seriellen Pins als serielles Rx Tx der Arduino-Software vom UART im Arduino-Board auswählen, daher heißt es Serial TTL. In diesem Fall verwenden wir die Hardwarebibliothek serial.h, aber einige zusätzliche Pins können als Rx oder Tx fungieren. Zum Beispiel können die SPI-Kommunikationspins als MISO, MOSI und Select (SC) arbeiten, aber sie sind auch Pins, die als digitaler Eingang oder digitaler Ausgang arbeiten können, oder Sie können diese Pins bei Bedarf als Rx, Tx mit der Softwareserial verwenden .h Bibliothek. 

Gehen wir weiter, um zu erfahren, wie Code funktioniert. 

Code:- 

#enthalten // serielle Softwarebibliothek

SoftwareSeriell max232(2,3);

Zeichendaten; 

Zeichenfolge mystring;

int f = 5; // Anstecknadel für Fan

int l1 = 6; // Stift für Licht-1

int l2 = 7; // Stift für Licht-2

void setup ()

{

Serial.begin (115200); //Hier ist die Baudrate 115200

max232.begin (115200);

pinMode (f, AUSGANG);     

digitalWrite (f, LOW); 

pinMode (l1, AUSGANG);    

digitalWrite (l1, LOW);

pinMode (l2, AUSGANG);    

digitalWrite (l2, LOW);

}

void loop ()

{

if (max232.verfügbar()>0)

 {

   Daten = max232.read();

   mystring = mystring + byte(data) ; 

   Verzögerung (10);

 }

else if (mystring.endsWith("101")) //Bedingung für Lüfter EIN

  {

    mystring = „“; 

   digitalWrite (f, HOCH);

  }

else if (mystring.endsWith("102")) //Bedingung für Lüfter AUS

  {

   mystring = „“; 

   digitalWrite (f, LOW);

  }

else if (mystring.endsWith("103")) //Bedingung für Light-1 ON

  {

  mystring = „“; 

  digitalWrite (l1, HOCH);

  }

else if (mystring.endsWith("104")) //Bedingung für Light-1 OFF

  {

   mystring = „“; 

   digitalWrite (l1, LOW);

  }

else if (mystring.endsWith("105")) //Bedingung für Light-2 ON

  {

  mystring = „“; 

  digitalWrite (l2, HOCH);

  }

else if (mystring.endsWith("106")) //Bedingung für Light-2 OFF

  {

   mystring = „“; 

   digitalWrite (l2, LOW);

  }

else if (mystring.endsWith("107")) //Bedingung für alle Geräte EIN

  {

   mystring = „“; 

   digitalWrite (l1, HOCH);

   digitalWrite (l2, HOCH);

   digitalWrite (f, HOCH);

  }

else if (mystring.endsWith("108")) //Bedingung für alle Geräte AUS

  {

   mystring = „“; 

   digitalWrite (l1, LOW);

   digitalWrite (l2, LOW);

   digitalWrite (f, LOW);

  }

}

Arbeiten :-

Wie besprochen verwenden wir eine Software-serielle Bibliothek, um den Schlüsselwert über eine Adresse zu übertragen, dazu haben wir hinzugefügt In diesem Code gibt dies die Schnittstelle zum Verbinden von Arduino und STON-HMI-Display. Nachdem wir alle Ausgangspins deklariert haben, was auch immer wir für die LEDs und den Lüfter verwenden, haben wir diese Pins für diese Geräte als OUTPUT deklariert und dann die Baudrate eingestellt für die Software-serielle Bibliothek. Diese alle im Void-Setup-Teil gemacht Jetzt machen wir die Bedingung für die von uns verwendeten Geräte. Dieser Teil wird in der Void-Schleife hinzugefügt, da dies viele Male wiederholt wird, wenn wir die Taste auf dem Display.

Im Abschnitt Void-Schleife gibt es vier Bedingungen für die Geräte. Die erste Bedingung ist für das Ein- und Ausschalten des Lüfters. Hier senden wir den Schlüsselwert '0001' für den EIN-Zustand und '0002' für den Aus-Zustand über die Adresse '0001' Diese Adresse ist für alle Geräte gleich. Für das zweite Gerät, das für Licht-1 ist, senden wir '0003' für den EIN-Zustand und '0004' für den Aus-Zustand, ähnlich für Licht-2 '0005' für EIN und '0006' für den Aus-Zustand auf diese Weise funktionieren diese Bedingungen für das einzelne Gerät.

Es gibt noch eine weitere Bedingung, um alle Geräte auf einmal aus- oder einzuschalten. Dafür verwenden wir '0007' für ON & '0008' für OFF.

Ausgabevideo :-

Dies ist das Ausgabevideo dieses Projekts in diesem Video, das zuerst die Einrichtung der Uhr zeigt und die Automatisierung funktioniert, wie Sie im Video sehen können.

Dies ist das Ausgabevideo, das Sie herunterladen können, indem Sie auf dieses Video klicken. Wir haben alle diesbezüglichen Daten hinzugefügt. Wenn Sie Zweifel am GUI-Design haben, können Sie die Projektdatei herunterladen und direkt öffnen. In diesem Fall müssen Sie es nicht Entwerfen Sie eine beliebige GUI, erhalten Sie das von uns erstellte Design. Wenn Sie jedoch eine andere GUI entwerfen möchten, müssen Sie alle Schritte befolgen.

Code

//Weitere Informationen zu diesem Projekt finden Sie unter:- wwww.electrocircuit.net //

#einschließen

SoftwareSeriell max232(2,3);

Zeichendaten; 

Zeichenfolge mystring;

intf = 5; 

intl1 = 6; 

intl2 = 7;  

void setup ()

{

Serial.begin (115200); 

max232.begin (115200);

pinMode (f, AUSGANG); /////////ROT////////

digitalWrite (f, LOW); 

pinMode (l1, AUSGANG); ////////GRÜN///////

digitalWrite (l1, LOW);

pinMode (l2, AUSGANG); ///////BLAU/////////

digitalWrite (l2, LOW);

}

void loop ()

{

if (max232.verfügbar()>0)

 {

   Daten = max232.read();

   mystring = mystring + byte(data) ; 

   Verzögerung (10);

 }

else if (mystring.endsWith("101"))

  {

    mystring = „“; 

   digitalWrite (f, HOCH);

  }

else if (mystring.endsWith("102"))

  {

   mystring = „“; 

   digitalWrite (f, LOW);

  }

else if (mystring.endsWith("103"))

  {

  mystring = „“; 

  digitalWrite (l1, HOCH);

  }

else if (mystring.endsWith("104"))

  {

   mystring = „“; 

   digitalWrite (l1, LOW);

  }

else if (mystring.endsWith("105"))

  {

  mystring = „“; 

  digitalWrite (l2, HOCH);

  }

else if (mystring.endsWith("106"))

  {

   mystring = „“; 

   digitalWrite (l2, LOW);

  }

else if (mystring.endsWith("107"))

  {

   mystring = „“; 

   digitalWrite (l1, HOCH);

   digitalWrite (l2, HOCH);

   digitalWrite (f, HOCH);

  }

else if (mystring.endsWith("108"))

  {

   mystring = „“; 

   digitalWrite (l1, LOW);

   digitalWrite (l2, LOW);

   digitalWrite (f, LOW);

  }

}

Quelle: Plato Data Intelligence