IOT

Orologio e domotica con STONE Display

Contenuti

  1. Descrizione
  2. Progettazione dell'interfaccia grafica

3. Schema del circuito

  1. Code
  2. Video

Descrizione

In questo progetto progetteremo un orologio e un sistema di automazione con questo aiuto possiamo accendere o spegnere la luce di casa e c'è anche un orologio che mostrerà l'ora e la data.

Per questo stiamo usando Display TFT (STONE-HMI), questo display ha un software che è un software GUI con questo aiuto progetteremo un'interfaccia che conterrà sia l'orologio della sezione che l'automazione. Scarica il software della GUI clicca qui

Progettazione della parte dell'orologio: -

Per prima cosa progettiamo la parte dell'orologio, prima dobbiamo aggiungere tutte le immagini che sono fornite nella cartella click Qui .

Come puoi vedere nella parte sinistra tutte le immagini sono state aggiunte nella sezione del file immagine. Ora fai clic sull'immagine '14' otterrai questa interfaccia come vedi nell'immagine. Ora seleziona 'RTC' dalla configurazione touch per impostare l'ora e data e fai tutta la configurazione per questa prima immagine aggiungi "nella pagina" come immagine numero 6 che verrà utilizzata al momento dell'impostazione. Ora vai all'immagine numero 6 e aggiungi tutti i pulsanti e i loro valori di chiavi. essere in questo formato.

Per '1' — 0031

Per '2' — 0031

Per '3' — 0031

Per '4' — 0031

Per '5' — 0031

Per '6' — 0031

Per '7' — 0031

Per '8' — 0031

Per '9' — 0031

Per '0' — 0030

Per 'OK'– 00F1

Dopodiché aggiungi l'effetto pulsante come immagine nimber-7 per tutti i pulsanti, quindi da questa parte verrà eseguita l'impostazione dell'orologio. spostiamoci ulteriormente per creare una lancetta dell'orologio.

Allo stesso modo aggiungi l'orologio quadrante dall'alto e aggiungi tutte le lancette delle ore, dei minuti e dei secondi per questo prima dobbiamo creare un'icona per queste lancette, quindi per questo vai al generatore di icone e seleziona queste immagini troverai una nuova cartella nella sezione di 'file icona' da qui devi selezionare tutte le icone in base ai requisiti delle lancette. Dopodiché seleziona tutte le icone in base ai requisiti delle lancette dell'orologio, e non dimenticare di selezionare il centro di ciascuna lancetta per l'orologio, con questa procedura questo sarà fatto ora dobbiamo andare per la parte di automazione e per questo abbiamo aggiunto un simbolo di automazione come puoi vedere nell'immagine sopra, per questo pulsante di selezione e metti quel pulsante nell'area di questa icona dell'automa e quindi seleziona il ' cambio pagina" come immagine-1 perché questa è l'immagine per l'automazione, dopodiché seleziona immagine-1 per un'ulteriore progettazione.

Progettazione di parti di automazione: -

Progettiamo la parte di automazione per questo abbiamo richiesto ad Arduino di inviare un particolare valore chiave su un indirizzo, qui stiamo usando '0001' per tutto il valore chiave. Per il pulsante Fan (ON) stiamo inviando il valore chiave '0001' e per Fan (OFF ) stiamo inviando il valore chiave '0002' allo stesso modo stiamo inviando per tutto il valore particolare per tutti gli apparecchi. Qui abbiamo anche aggiunto un pulsante per passare alla GUI dell'orologio che aiuterà a passare da questa interfaccia all'interfaccia dell'orologio.

Per il cambio di pagina stiamo usando il "pulsante" che si trova in alto a sinistra e per il pulsante di automazione stiamo usando la funzione "ritorno premere il valore del tasto" che ha due parametri: il primo è il valore dell'indirizzo e un altro è il valore della chiave come abbiamo detto sopra siamo utilizzando valori chiave diversi per ciascun pulsante di automazione.

Circuit Diagram

Come puoi vedere nella connessione ci sono tre LED light-1,light-2 e per Fan qui stiamo usando solo LED ma puoi collegare elettrodomestici a questo.Light-1 si collega al pin -D6 di Arduino,light- 2 si collegano al pin-D7 di Arduino, una ventola simile si collega a D5 con Arduino. E fai la connessione per Rx e Tx come da schema elettrico. Qui abbiamo collegato Tx con pin-2 e Rx con pin-3 di Arduino come per il codice Arduino. Andiamo oltre come funziona con il codice.

Esistono diversi tipi di comunicazioni seriali. Quando usi una scheda Arduino su un progetto puoi scegliere i pin seriali standard come Rx Tx seriale del software Arduino, dall'UART all'interno della scheda Arduino, quindi si chiama Serial TTL. In tal caso, stiamo utilizzando la libreria hardware serial.h, ma alcuni pin aggiuntivi possono funzionare come Rx o Tx. Ad esempio, i pin di comunicazione SPI possono funzionare come MISO, MOSI e Select (SC), ma sono anche pin che possono funzionare come ingresso digitale o uscita digitale o, se necessario, è possibile utilizzare tali pin come Rx, Tx utilizzando il seriale del software .h Biblioteca. 

Andiamo oltre per sapere come funziona il codice. 

Codice :- 

#includere //libreria seriale software

SoftwareSeriale max232(2,3);

dati di carattere; 

stringa miastringa;

intero f = 5; // Perno per ventola

intero l1 = 6; // Perno per luce-1

intero l2 = 7; // Perno per luce-2

void setup ()

{

Serial.begin(115200); //Qui il Baudrate è 115200

max232.inizio(115200);

pinMode(f, USCITA);     

digitalWrite(f, BASSO); 

pinMode(l1, USCITA);    

digitalWrite(l1, BASSO);

pinMode(l2, USCITA);    

digitalWrite(l2, BASSO);

}

void loop ()

{

if (max232.disponibile()>0)

 {

   dati = max232.read();

   miastringa = miastringa + byte(dati) ; 

   ritardo (10);

 }

else if (mystring.endsWith(“101”)) //condizione per la ventola accesa

  {

    miastringa = “”; 

   digitalWrite(f,ALTO);

  }

else if (mystring.endsWith(“102”)) //condizione per la ventola spenta

  {

   miastringa = “”; 

   digitalWrite(f,BASSO);

  }

else if (mystring.endsWith(“103”)) //condizione per Luce-1 ON

  {

  miastringa = “”; 

  digitalWrite(l1,ALTO);

  }

else if (mystring.endsWith(“104”)) //condizione per Luce-1 spenta

  {

   miastringa = “”; 

   digitalWrite(l1,BASSO);

  }

else if (mystring.endsWith(“105”)) //condizione per Luce-2 ON

  {

  miastringa = “”; 

  digitalWrite(l2,ALTO);

  }

else if (mystring.endsWith(“106”)) //condizione per Luce-2 spenta

  {

   miastringa = “”; 

   digitalWrite(l2,BASSO);

  }

else if (mystring.endsWith(“107”)) //condizione per tutti gli apparecchi accesi

  {

   miastringa = “”; 

   digitalWrite(l1,ALTO);

   digitalWrite(l2,ALTO);

   digitalWrite(f,ALTO);

  }

else if (mystring.endsWith(“108”)) //condizione per tutti gli apparecchi spenti

  {

   miastringa = “”; 

   digitalWrite(l1,BASSO);

   digitalWrite(l2,BASSO);

   digitalWrite(f,BASSO);

  }

}

Lavorando :-

Come abbiamo discusso, stiamo utilizzando una libreria seriale software per trasferire il valore della chiave su un indirizzo, per questo abbiamo aggiunto in questo codice questo fornisce l'interfaccia per collegare Arduino e il display STON-HMI. Dopo di che abbiamo dichiarato tutti i pin di uscita qualunque cosa stiamo usando per i LED e la ventola, per questi dispositivi abbiamo dichiarato questi Pin come OUTPUT quindi impostare il Baud rate per la libreria software-seriale. Tutto questo fatto nella parte di configurazione del vuoto ora passiamo a creare la condizione per i dispositivi che stiamo utilizzando, questa parte viene aggiunta nel ciclo vuoto perché questo si ripeterà molte volte mentre premeremo il pulsante sul display.

Nella sezione void loop ci sono quattro condizioni per i dispositivi. La prima condizione è per Fan on e off qui stiamo inviando il valore della chiave '0001' per la condizione ON e '0002' per la condizione off sull'indirizzo '0001' questo indirizzo è lo stesso per tutti i dispositivi. Per il secondo dispositivo che è per la luce-1 stiamo inviando '0003' per la condizione ON e '0004' per la condizione off, allo stesso modo per la luce-2 '0005' per ON e '0006' per la condizione off così in questo modo queste condizioni funzionano per singolo dispositivo.

C'è un'altra condizione per spegnere o accendere tutti i dispositivi contemporaneamente per questo stiamo usando '0007' per ON e '0008' per OFF.

Video di uscita: -

Questo è il video di output di questo progetto in questo video che mostra prima la configurazione dell'orologio e c'è il funzionamento dell'automazione come puoi vedere nel video.

Questo è il video di output che puoi scaricare facendo clic su quel video. Abbiamo aggiunto tutti i dati relativi a questo se hai qualche dubbio sulla progettazione della GUI puoi scaricare il file del progetto e aprirlo direttamente in questo caso non è necessario progettare qualsiasi GUI otterrai quel design che abbiamo costruito. Ma se vuoi progettare una GUI diversa, devi seguire tutti i passaggi.

Code

//Per maggiori informazioni su questo progetto visita:- wwww.electrocircuit.net //

#includere

SoftwareSeriale max232(2,3);

dati di carattere; 

stringa miastringa;

intf = 5; 

intl1 = 6; 

intl2 = 7;  

void setup ()

{

Serial.begin (115200); 

max232.inizio(115200);

pinMode(f, USCITA); /////////ROSSO////////

digitalWrite(f, BASSO); 

pinMode(l1, USCITA); ////////VERDE///////

digitalWrite(l1, BASSO);

pinMode(l2, USCITA); ///////BLU/////////

digitalWrite(l2, BASSO);

}

void loop ()

{

if (max232.disponibile()>0)

 {

   dati = max232.read();

   miastringa = miastringa + byte(dati) ; 

   ritardo (10);

 }

altrimenti se (mystring.endsWith(“101”))

  {

    miastringa = “”; 

   digitalWrite(f,ALTO);

  }

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

  {

   miastringa = “”; 

   digitalWrite(f,BASSO);

  }

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

  {

  miastringa = “”; 

  digitalWrite(l1,ALTO);

  }

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

  {

   miastringa = “”; 

   digitalWrite(l1,BASSO);

  }

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

  {

  miastringa = “”; 

  digitalWrite(l2,ALTO);

  }

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

  {

   miastringa = “”; 

   digitalWrite(l2,BASSO);

  }

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

  {

   miastringa = “”; 

   digitalWrite(l1,ALTO);

   digitalWrite(l2,ALTO);

   digitalWrite(f,ALTO);

  }

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

  {

   miastringa = “”; 

   digitalWrite(l1,BASSO);

   digitalWrite(l2,BASSO);

   digitalWrite(f,BASSO);

  }

}

Fonte: Plato Data Intelligence