IOT

Óra és otthoni automatizálás a STONE kijelzővel

tartalom

  1. Leírás
  2. GUI tervezés

3. Áramköri diagram

  1. Kód
  2. videó

Leírás

Ebben a projektben egy órát és egy automatizálási rendszert tervezünk, melynek segítségével be- vagy kikapcsolhatjuk az otthoni világítást és van egy óra is, amely az időt és a dátumot mutatja.

Erre használjuk TFT kijelző (STONE-HMI), ezen a kijelzőn olyan szoftver található, amely egy grafikus felhasználói felület, ennek segítségével olyan interfészt fogunk tervezni, amely a szakaszórát és az automatizálást is tartalmazza. Töltse le a GUI szoftvert kattints ide

Óra alkatrész tervezése:-

Először tervezzük meg az óra részt, először hozzá kell adnunk az összes képet, amely a mappában található kattintson itt .

Amint a bal oldalon látható, az összes kép hozzáadva van a képfájl részhez. Most kattintson a '14' képre, és a képen látható felületet kapja. Most válassza az 'RTC' lehetőséget az érintéskonfigurációból az idő beállításához. és adja meg a dátumot, és végezze el az összes beállítást ehhez. Először adja hozzá az „oldalon” képet 6-os számú képként, amelyet a beállításkor használni fog. Most lépjen a 6. számú képre, és adja hozzá az összes gombot és a hozzájuk tartozó kulcsértékeket. legyen ebben a formátumban.

„1” esetén – 0031

„2” esetén – 0031

„3” esetén – 0031

„4” esetén – 0031

„5” esetén – 0031

„6” esetén – 0031

„7” esetén – 0031

„8” esetén – 0031

„9” esetén – 0031

„0” esetén – 0030

„OK” esetén – 00F1

Ezt követően adjunk hozzá gombeffektust nimber-7 képként az összes gombhoz, így ezzel a részben az óra beállításait kell elvégezni. Lépjünk tovább az óramutatók létrehozásához.

Hasonlóképpen adja hozzá a tárcsázó órát felülről, és adja hozzá az összes ,óra, perc és másodpercmutatót ehhez először ikont kell készítenie ezekhez a mutatókhoz, így ehhez menjen az ikongenerátorhoz, és válassza ki ezeket a képeket, és egy új mappát fog találni a részben. Az "ikonfájl"-ból innen ki kell választani az összes ikont a mutató követelményeinek megfelelően. Ezután válassza ki az összes ikont az óramutatók követelményeinek megfelelően, és ne felejtse el kiválasztani az egyes mutatók közepét az órához, ezzel az eljárással ez most meg fog történni, mennünk kell az automatizálási részhez, és ehhez hozzáadtunk egy automatizálási szimbólumot, amint az a fenti képen látható, ehhez a kiválasztási gombhoz, és helyezze azt a gombot az automata ikon területére, majd válassza ki a " oldalkapcsoló' mint image-1, mert ez a kép az automatizáláshoz, majd válassza ki az image-1-et a további tervezéshez.

Automatizálási alkatrész tervezés: -

Tervezzük meg az automatizálási részt ehhez, az Arduino-nak egy adott kulcsértéket kellett küldenie egy címen, itt a '0001'-et használjuk az összes kulcsértékhez. A Fan(ON) gombhoz a '0001' kulcsértéket, a Fan(OFF) kulcsértéket küldjük. ) küldjük a '0002' kulcsértéket, hasonlóan az összes készülékhez tartozó összes értékhez. Itt is hozzáadtunk egy gombot, amellyel át lehet váltani az óra grafikus felhasználói felületére, amely segít áttérni erről az interfészről az óra interfészre.

Az oldalváltáshoz a bal felső sarokban elhelyezett „gombot”, az automatizálási gombhoz pedig a „Return press key value” funkciót használjuk, amelynek két paramétere van, az első a címérték, a másik pedig a kulcsérték, ahogy fentebb említettük. különböző kulcsértékek használata minden automatizálási gombhoz.

Circuit Diagram

Amint az a csatlakozáson látható, három LED-es light-1,light-2 és a Fan-nál itt csak LED-eket használunk, de ehhez csatlakoztathat tényleges készülékeket.Light-1 csatlakoztassa az Arduino -D6 érintkezőjéhez ,light- 2 csatlakoztassa az Arduino D7-es érintkezőjéhez, a hasonló ventilátort csatlakoztassa a D5-höz az Arduino-val. És az Rx és Tx csatlakoztatását az kapcsolási rajz szerint. Itt csatlakoztattuk a Tx-et az Arduino 2-es érintkezőjével és az Rx-et az Arduino-3-as érintkezőjével. az Arduino kód szerint. Lépjünk tovább, hogyan működik a kóddal.

A soros kommunikációnak különböző típusai vannak. Ha Arduino kártyát használ egy projektben, kiválaszthatja a szabványos soros érintkezőket Arduino szoftver soros Rx Tx-ként, az Arduino kártyán belüli UART-ból, ezért Serial TTL-nek hívják. Ebben az esetben a Hardware serial.h Library-t használjuk, de néhány további érintkező Rx vagy Tx jelként is működhet. Például az SPI kommunikációs lábak működhetnek MISO, MOSI és Select (SC)ként, de olyan tűk is, amelyek digitális bemenetként vagy digitális kimenetként is működhetnek, vagy ha szükséges, használhatja ezeket a érintkezőket Rx, Txként a szoftversorozat segítségével. .h Könyvtár. 

Lépjünk tovább, hogy megtudjuk, hogyan működik a kód. 

Kód :- 

#beleértve //szoftver soros könyvtár

SzoftverSerial max232(2,3);

char adatok; 

String mystring;

int f = 5; // Pin for Fan

int l1 = 6; // Pin for light-1

int l2 = 7; // Pin for light-2

void setup ()

{

Serial.begin(115200); //Itt a Baudrate 115200

max232.begin(115200);

pinMode(f, OUTPUT);     

digitalWrite(f, LOW); 

pinMode(l1, OUTPUT);    

digitalWrite(l1, LOW);

pinMode(l2, OUTPUT);    

digitalWrite(l2, LOW);

}

void loop ()

{

if (max232.available()>0)

 {

   adatok = max232.read();

   mystring = mystring + byte(data) ; 

   késleltetés (10);

 }

else if (mystring.endsWith(“101”)) //feltétel a ventilátor bekapcsolásához

  {

    mystring = ""; 

   digitalWrite(f,HIGH);

  }

else if (mystring.endsWith(“102”)) //feltétel a ventilátor kikapcsolásához

  {

   mystring = ""; 

   digitalWrite(f,LOW);

  }

else if (mystring.endsWith(“103”)) //feltétel a Light-1 ON-hoz

  {

  mystring = ""; 

  digitalWrite(l1,HIGH);

  }

else if (mystring.endsWith(“104”)) //feltétel a Light-1-hez OFF

  {

   mystring = ""; 

   digitalWrite(l1,LOW);

  }

else if (mystring.endsWith(“105”)) //feltétel a Light-2 ON-hoz

  {

  mystring = ""; 

  digitalWrite(l2,HIGH);

  }

else if (mystring.endsWith(“106”)) //feltétel a Light-2-hez OFF

  {

   mystring = ""; 

   digitalWrite(l2,LOW);

  }

else if (mystring.endsWith(“107”)) //feltétel minden készülékhez BE

  {

   mystring = ""; 

   digitalWrite(l1,HIGH);

   digitalWrite(l2,HIGH);

   digitalWrite(f,HIGH);

  }

else if (mystring.endsWith(“108”)) //feltétel minden készülékhez KI

  {

   mystring = ""; 

   digitalWrite(l1,LOW);

   digitalWrite(l2,LOW);

   digitalWrite(f,LOW);

  }

}

Dolgozó :-

Amint megbeszéltük, szoftver-soros könyvtárat használunk a kulcs értékének címen keresztüli átvitelére, ehhez hozzáadtuk Ebben a kódban ez adja az interfészt az Arduino és a STON-HMI kijelző csatlakoztatásához. Ezt követően deklaráltuk az összes kimeneti érintkezőt, bármit is használunk a LED-ekhez és a ventilátorhoz, ezeknél az eszközöknél ezeket a tűket OUTPUT-ként deklaráltuk, majd beállítjuk az adatátviteli sebességet a szoftver-soros könyvtárhoz.ezek mind a void setup részben megtörténtek, most lépjünk át az általunk használt eszközök feltételének kialakítására, ez a rész hozzáadódik a void ciklushoz, mert ez sokszor meg fog ismétlődni, miközben megnyomjuk a gombot a kijelzőn.

Az üres hurok szekcióban négy feltétel van az eszközök számára. Az első feltétel a ventilátor be- és kikapcsolása, itt a '0001' kulcsértéket küldjük az ON állapothoz és a '0002' kulcsértéket a kikapcsolt állapothoz a '0001' címen keresztül. Ugyanez az összes eszközre vonatkozik. A második eszközhöz, amely az 1-es lámpához tartozik, „0003”-at küldünk bekapcsolt állapothoz és „0004”-et kikapcsolt állapothoz, hasonlóan a 2-es világításhoz „0005”-et BE és „0006”-ot kikapcsolt állapothoz, tehát így ezek a feltételek az egyes készülékeknél működnek.

Van még egy feltétele annak, hogy az összes eszközt egyszerre KI vagy BE kapcsoljuk, ehhez a '0007'-et használjuk az ON-hoz és a '0008-as'-t a KI-hoz.

Kimeneti videó: -

Ez a projekt kimeneti videója ebben a videóban, amely először bemutatja az óra beállítását és az automatizálás működését, amint azt a videóban láthatja.

Ez a kimeneti videó, amelyet a videóra kattintva tölthet le. Az ehhez kapcsolódó összes adatot hozzáadtuk, ha kétségei vannak a GUI tervezésével kapcsolatban, letöltheti a projektfájlt és közvetlenül megnyithatja, ebben az esetben nem kell Bármilyen grafikus felhasználói felület megtervezésekor azt a tervet kapja meg, amelyet mi építettünk. De ha más grafikus felhasználói felületet szeretne tervezni, akkor kövesse az összes lépést.

Kód

//A projektről további információkért látogasson el:- www.electrocircuit.net //

#include

SzoftverSerial max232(2,3);

char adatok; 

String mystring;

int f = 5; 

int l1 = 6; 

int l2 = 7;  

void setup ()

{

Serial.begin (115200); 

max232.begin(115200);

pinMode(f, OUTPUT); /////////PIROS////////

digitalWrite(f, LOW); 

pinMode(l1, OUTPUT); ////////ZÖLD///////

digitalWrite(l1, LOW);

pinMode(l2, OUTPUT); ///////KÉK/////////

digitalWrite(l2, LOW);

}

void loop ()

{

if (max232.available()>0)

 {

   adatok = max232.read();

   mystring = mystring + byte(data) ; 

   késleltetés (10);

 }

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

  {

    mystring = ""; 

   digitalWrite(f,HIGH);

  }

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

  {

   mystring = ""; 

   digitalWrite(f,LOW);

  }

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

  {

  mystring = ""; 

  digitalWrite(l1,HIGH);

  }

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

  {

   mystring = ""; 

   digitalWrite(l1,LOW);

  }

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

  {

  mystring = ""; 

  digitalWrite(l2,HIGH);

  }

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

  {

   mystring = ""; 

   digitalWrite(l2,LOW);

  }

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

  {

   mystring = ""; 

   digitalWrite(l1,HIGH);

   digitalWrite(l2,HIGH);

   digitalWrite(f,HIGH);

  }

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

  {

   mystring = ""; 

   digitalWrite(l1,LOW);

   digitalWrite(l2,LOW);

   digitalWrite(f,LOW);

  }

}

Forrás: Plato Data Intelligence