IOT

Ur og hjemmeautomatisering ved hjælp af STONE Display

Indhold

  1. Beskrivelse
  2. GUI design

3. Kredsløbsdiagram

  1. Kode
  2. video

Beskrivelse

I dette projekt skal vi designe et ur og et automatiseringssystem med denne hjælp kan vi tænde eller slukke for hjemmelyset, og der er også et ur, som viser tid og dato.

Til dette bruger vi TFT-skærm (STONE-HMI), denne skærm har en software, der er en GUI-software med denne hjælp, vi skal designe grænseflade, som vil indeholde både sektionsur og automatisering. Download GUI-softwaren Klik her

Design af urdele: -

Lad os først designe urdelen, først skal vi tilføje alle de billeder, der er givet i mappen, klik her .

Som du kan se i venstre side, er alle billeder tilføjet i sektionen af ​​billedfilen. Klik nu på billedet '14', du vil få denne grænseflade, som du ser på billedet. Vælg nu 'RTC' fra touch-konfigurationen for at indstille tiden og dato og foretag hele konfigurationen for dette første tilføjelse 'på siden' billede som billede nummer 6, som vil blive brugt på tidspunktet for indstilling. Gå nu til billede nummer 6 og tilføj alle knapperne og deres nøgleværdier. Disse værdier vil være i dette format.

For '1' — 0031

For '2' — 0031

For '3' — 0031

For '4' — 0031

For '5' — 0031

For '6' — 0031

For '7' — 0031

For '8' — 0031

For '9' — 0031

For '0' — 0030

For 'OK' – 00F1

Efter at tilføje knap effekt som billede nimber-7 for alle knapperne, så ved denne del vil blive gjort for at indstille clock.let's flytte længere for at skabe en visere af ur.

Tilføj på samme måde Dial ur fra toppen og tilføj alle, time, minut og sekundviser for dette først, vi skal lave ikon for disse visere, så for dette, gå til ikongeneratoren og vælg disse billeder, du vil finde en ny mappe i sektionen af 'ikonfil' herfra skal du vælge alle ikoner i henhold til håndkravene. Derefter skal du vælge alle ikoner i henhold til urvisernes krav, og glem ikke at vælge midten af ​​hver visere for uret, med denne procedure dette vil blive gjort nu, vi er nødt til at gå til automatiseringsdelen, og for dette har vi tilføjet et automatiseringssymbol, som du kan se på billedet ovenfor, for denne vælg-knap og sæt den knap i området for dette automatikon, og vælg derefter ' sideskift' som billede-1, fordi dette er billedet til automatisering, og vælg derefter billede-1 til yderligere design.

Design af automatiseringsdele: -

Lad os designe automatiseringsdelen til dette, vi krævede, at Arduino sendte en bestemt nøgleværdi over en adresse, her bruger vi '0001' for hele nøgleværdien. For Fan(ON)-knappen sender vi '0001'-nøgleværdi og for Fan(OFF) ) vi sender '0002' nøgleværdi på samme måde som vi sender for al den særlige værdi for alle apparaterne. Her har vi også tilføjet en knap til at skifte til ur GUI, som vil hjælpe med at flytte fra denne grænseflade til urgrænseflade.

Til sideskifteren bruger vi 'knap', som er placeret øverst til venstre, og til automatiseringsknap bruger vi 'retur tryk på nøgleværdi' funktion, som har to parametre, først er adresseværdi og en anden er nøgleværdi, som vi har nævnt ovenfor. ved at bruge forskellige forskellige nøgleværdier for hver automatiseringsknap.

Circuit Diagram

Som du kan se i forbindelsen er der tre LED'er light-1,light-2 og for Fan her bruger vi kun LED'er, men du kan tilslutte faktiske apparater til dette.Light-1 forbindes til pin-D6 på Arduino ,light- 2 forbindes til pin-D7 på Arduino, lignende Fan forbindes med D5 med Arduino. Og gør forbindelsen for Rx og Tx som i kredsløbsdiagrammet. Her har vi forbundet Tx med pin-2 og Rx med pin-3 på Arduino som ifølge Arduino-koden. Lad os gå videre, hvordan det fungerer med koden.

Der er forskellige typer seriel kommunikation. Når du bruger et Arduino-kort på et projekt, kan du vælge standard Serial-pins som Arduino-software serial Rx Tx, fra UART inde i Arduino-kortet, så det kaldes Serial TTL. I så fald bruger vi Hardware serial.h Library, men nogle ekstra stifter kan fungere som en Rx eller Tx. For eksempel kan SPI-kommunikationsstifterne fungere som MISO, MOSI og Select (SC), men de er også ben, der kan fungere som digital input eller digital output, eller hvis du har brug for, kan du bruge disse ben som Rx, Tx ved hjælp af softwareserien .h Bibliotek. 

Lad os gå videre for at vide, hvordan koden fungerer. 

Kode:- 

#omfatte //software seriel bibliotek

SoftwareSerial max232(2,3);

char data; 

String mystring;

int f = 5; // Pin for Fan

int 1 = 6; // Pin for lys-1

int 2 = 7; // Pin for lys-2

ugyldig opsætning ()

{

Serial.begin(115200); //Her er Baudrate 115200

max232.begin(115200);

pinMode(f, OUTPUT);     

digitalWrite(f, LAV); 

pinMode(l1, OUTPUT);    

digitalSkriv(l1, LAV);

pinMode(l2, OUTPUT);    

digitalSkriv(l2, LAV);

}

ugyldig sløjfe ()

{

if (max232.available()>0)

 {

   data = max232.read();

   mystring = mystring + byte(data) ; 

   forsinkelse (10);

 }

else if (mystring.endsWith(“101”)) //condition for Fan ON

  {

    mystring = ""; 

   digitalSkriv(f,HØJ);

  }

else if (mystring.endsWith(“102”)) //condition for Fan OFF

  {

   mystring = ""; 

   digitalWrite(f,LOW);

  }

else if (mystring.endsWith(“103”)) //condition for Light-1 ON

  {

  mystring = ""; 

  digitalSkriv(l1,HØJ);

  }

else if (mystring.endsWith(“104”)) //condition for Light-1 OFF

  {

   mystring = ""; 

   digitalSkriv(l1,LAV);

  }

else if (mystring.endsWith(“105”)) //condition for Light-2 ON

  {

  mystring = ""; 

  digitalSkriv(l2,HØJ);

  }

else if (mystring.endsWith(“106”)) //condition for Light-2 OFF

  {

   mystring = ""; 

   digitalSkriv(l2,LAV);

  }

else if (mystring.endsWith(“107”)) //condition for Alle apparater TIL

  {

   mystring = ""; 

   digitalSkriv(l1,HØJ);

   digitalSkriv(l2,HØJ);

   digitalSkriv(f,HØJ);

  }

else if (mystring.endsWith(“108”)) //tilstand for alle apparater FRA

  {

   mystring = ""; 

   digitalSkriv(l1,LAV);

   digitalSkriv(l2,LAV);

   digitalWrite(f,LOW);

  }

}

Arbejder :-

Som vi har diskuteret bruger vi software-seriel bibliotek til at overføre nøgleværdien over en adresse, til dette har vi tilføjet i denne kode giver dette grænsefladen til at forbinde Arduino og STON-HMI-skærmen. Derefter har vi erklæret alle output-pindene, hvad end vi bruger til LED'erne og blæseren, for disse enheder har vi erklæret disse ben som OUTPUT, og derefter indstille Baud-hastigheden for software-seriebiblioteket. Alt dette er udført i void-opsætningsdelen, lad os nu gå videre for at gøre betingelsen for de enheder, vi bruger, denne del tilføjes i void-løkken, fordi dette vil gentages mange gange, da vi trykker på knappen på displayet.

I den void loop sektion er der fire betingelser for enhederne. Den første betingelse er for Fan tændt og slukket her sender vi '0001' nøgleværdi for ON tilstanden og '0002' for off tilstand over adressen '0001' denne adresse er samme for alle enhederne. For den anden enhed, der er til lys-1, sender vi '0003' for ON-tilstand og '0004' for off-tilstand, på samme måde for lys-2 '0005' for ON og '0006' for off-tilstand, så på denne måde fungerer disse forhold for den enkelte enhed.

Der er endnu en betingelse for at slukke eller tænde for alle enheder på én gang, for dette bruger vi '0007' til ON & '0008' til OFF.

Output video:-

Dette er outputvideoen fra dette projekt i denne video, der først viser opsætningen af ​​uret, og der arbejdes med automatisering, som du kan se i videoen.

Dette er outputvideoen, du kan downloade ved at klikke på den video. Vi har tilføjet alle data relateret til dette, hvis du er i tvivl om GUI-design, kan du downloade projektfilen og åbne den direkte, i dette tilfælde behøver du ikke at design enhver GUI, du vil få det design, som vi har bygget. Men hvis du vil designe en anden GUI, skal du følge alle trinene.

Kode

//For mere information om dette projekt besøg:- wwww.electrocircuit.net //

#omfatte

SoftwareSerial max232(2,3);

char data; 

String mystring;

int f = 5; 

int 1 = 6; 

int 2 = 7;  

ugyldig opsætning ()

{

Serial.begin (115200); 

max232.begin(115200);

pinMode(f, OUTPUT); /////////RØD////////

digitalWrite(f, LAV); 

pinMode(l1, OUTPUT); ////////GRØN///////

digitalSkriv(l1, LAV);

pinMode(l2, OUTPUT); ///////BLÅ/////////

digitalSkriv(l2, LAV);

}

ugyldig sløjfe ()

{

if (max232.available()>0)

 {

   data = max232.read();

   mystring = mystring + byte(data) ; 

   forsinkelse (10);

 }

else if (mystring.endsWith(“101”))

  {

    mystring = ""; 

   digitalSkriv(f,HØJ);

  }

else if (mystring.endsWith(“102”))

  {

   mystring = ""; 

   digitalWrite(f,LOW);

  }

else if (mystring.endsWith(“103”))

  {

  mystring = ""; 

  digitalSkriv(l1,HØJ);

  }

else if (mystring.endsWith(“104”))

  {

   mystring = ""; 

   digitalSkriv(l1,LAV);

  }

else if (mystring.endsWith(“105”))

  {

  mystring = ""; 

  digitalSkriv(l2,HØJ);

  }

else if (mystring.endsWith(“106”))

  {

   mystring = ""; 

   digitalSkriv(l2,LAV);

  }

else if (mystring.endsWith(“107”))

  {

   mystring = ""; 

   digitalSkriv(l1,HØJ);

   digitalSkriv(l2,HØJ);

   digitalSkriv(f,HØJ);

  }

else if (mystring.endsWith(“108”))

  {

   mystring = ""; 

   digitalSkriv(l1,LAV);

   digitalSkriv(l2,LAV);

   digitalWrite(f,LOW);

  }

}

Kilde: Platon Data Intelligence