- Componenti necessari per costruire tende automatiche Arduino
- Controllo delle tende a rullo utilizzando Arduino
- Progetta e costruisci l'attrezzatura per tende da finestra
- Stampa 3D del supporto motore e dell'ingranaggio cieco
- Schema del circuito per il controllo delle persiane Arduino
- Applicazione Blynk per Arduino Blind Control
- Programmazione di NodeMCU per controllare le persiane utilizzando Blynk
- Controllo dei ciechi della finestra utilizzando l'Assistente Google
- Controllo automatico dei ciechi della finestra basato su Arduino - Dimostrazione
"Buongiorno. Sono le 7 del mattino. Il tempo a Malibu è di 72 gradi… ”queste sono state le prime parole di JARVIS quando è stato introdotto nel Marvel Cinematics Universe. La maggior parte dei fan di Iron Man dovrebbe essere in grado di ricordare questa scena e ricordare che JARVIS è stato in grado di aprire una finestra (una specie di) al mattino e fornire aggiornamenti su tempo e tempo. Nel film, gli occhiali della finestra erano in realtà realizzati con display touch trasparenti e quindi JARVIS è stato in grado di trasformarlo da nero a trasparente e anche visualizzare le statistiche meteorologiche su di esso. Ma, in realtà, siamo lontani dai touch screen trasparenti e quanto più ci si può avvicinare è controllare automaticamente le tende oi vincoli delle finestre.
Quindi, in questo progetto, costruiremo esattamente questo, costruiremo una tenda motorizzata automatizzata che si aprirà e si chiuderà automaticamente in orari predefiniti. In precedenza, abbiamo realizzato molti progetti di automazione domestica in cui automatizzavamo le luci, i motori, ecc. Puoi verificarli se sei interessato. Quindi, tornando, queste tende controllate da Arduino possono anche ricevere comandi dall'assistente Google in modo che tu possa aprire o chiudere le tende delle finestre da remoto tramite comandi vocali. Intrigante? Quindi, costruiamolo.
Componenti necessari per costruire tende automatiche Arduino
Il progetto è relativamente semplice e non ci sono molti componenti richiesti. Basta raccogliere gli elementi elencati di seguito.
- NodeMCU
- Motore passo-passo - 28BYJ-48
- Modulo driver motore passo-passo
- LM117-3.3V
- Condensatori (10uf, 1uf)
- Adattatore 12V DC
- Scheda Perf
- Kit di saldatura
- stampante 3d
Controllo delle tende a rullo utilizzando Arduino
Ora ci sono molti tipi di tende sul mercato, ma quella più comunemente usata ha una corda con perline (come mostrato sotto) che può essere tirata per aprire o chiudere le tende.
Quando tiriamo questa fune circolare in senso orario, le tapparelle si apriranno e quando tiriamo questa fune in senso antiorario, le tapparelle si chiuderanno. Quindi, se dovessimo automatizzare questo processo, tutto ciò che dobbiamo fare è utilizzare un motore per tirare questa fune in senso orario o antiorario e avremo finito. In effetti, questo è ciò che faremo in questo progetto; useremo il motore passo-passo 28BYJ-48 insieme a un NodeMCU per tirare la corda con perline.
Progetta e costruisci l'attrezzatura per tende da finestra
La parte elettronica di questo progetto è stata abbastanza semplice e diretta, la parte più impegnativa è stata la costruzione del Blind Gear in grado di tirare la corda di perline. Quindi iniziamo questo articolo con il design dell'ingranaggio cieco, non entrerò nei dettagli su come progettare l'attrezzatura, ma questa idea di base dovrebbe aiutarti. Di seguito è mostrata un'immagine della corda con le perline.
Anche in questo caso, ci sono molti tipi di corde, ma le corde più comunemente utilizzate sono la distanza da centro a centro di ciascuna bordatura è di 6 mm e il diametro di ciascuna bordatura è di 4 mm. Utilizzando queste informazioni, possiamo iniziare la progettazione della nostra attrezzatura. Se la corda delle tue tende ha le stesse dimensioni discusse, puoi semplicemente saltare questo passaggio e scaricare il file STL fornito in questo articolo e stampare l'attrezzatura. Se la tua corda ha una diversa disposizione delle perline, allora è così che dovresti riprogettare l'attrezzatura cieca.
Ho deciso di avere 24 perline sulla mia attrezzatura per ottenere una dimensione ottimale della ruota dentata, puoi selezionare qualsiasi numero vicino a questo per la tua ruota dentata grande o piccola. Quindi ora sappiamo che la distanza tra ciascuna perlina è di 6 mm e abbiamo bisogno di 24 perline sul nostro equipaggiamento. Moltiplicando entrambi si otterrà la circonferenza della ruota dentata. Con questi dati è possibile calcolare il raggio della ruota dentata. Come puoi vedere nell'immagine sopra, il diametro della mia ruota dentata è stato calcolato intorno ai 46 mm. Ma ricorda, questo non è il diametro effettivo dell'ingranaggio perché non abbiamo tenuto conto del diametro della bordatura che è di 4 mm. Quindi, il diametro effettivo della ruota dentata sarà di 42 mm, ho stampato e testato molte ruote dentate prima di trovare quella che funziona meglio. Se non ti piacciono i design,basta scaricare e stampare i file STL del paragrafo successivo e continuare con il progetto.
Stampa 3D del supporto motore e dell'ingranaggio cieco
Insieme all'ingranaggio, avremo anche bisogno di un piccolo involucro che può essere forato sul muro e tenere il motore passo-passo in posizione, sia l'involucro che l'ingranaggio utilizzati in questo progetto sono mostrati di seguito.
Puoi trovare file di progettazione completi e file STL nella pagina Thingiverse di Arduino Blind Control riportata di seguito. Puoi semplicemente scaricare e stampare il tuo ingranaggio cieco e la custodia del motore.
Scarica i file STL per Blind Gear e Motor Case
Schema del circuito per il controllo delle persiane Arduino
Una volta che sei pronto con l'attrezzatura e l'assemblaggio, è facile procedere con la parte elettronica e software. Di seguito è mostrato lo schema circuitale completo per il progetto di controllo IoT Blind.
Abbiamo utilizzato un adattatore da 12V per alimentare l'intera configurazione; il regolatore LM1117-3.3V converte i 12V in 3.3V che possono essere utilizzati per alimentare la scheda NodeMCU. Il modulo driver del motore passo-passo è alimentato direttamente dall'adattatore 12V. Ho provato a far funzionare il motore passo-passo su 5V, ma poi non ha fornito una coppia sufficiente per tirare le persiane, quindi assicurati di utilizzare anche 12V.
A parte questo, il circuito è piuttosto semplice, se sei nuovo ai motori passo-passo, guarda le basi dell'articolo sui motori passo-passo per capire come funziona e come può essere utilizzato con un microcontrollore.
Applicazione Blynk per Arduino Blind Control
Prima di entrare nel programma Arduino per il controllo delle persiane, apriamo l'applicazione blynk e creiamo alcuni pulsanti utilizzando i quali possiamo aprire o chiudere le nostre persiane. Avremo anche bisogno di questo in seguito per controllare dalla home di Google.
Ho appena aggiunto due pulsanti per aprire e chiudere le persiane e un timer per aprire le persiane alle 10:00 ogni giorno. Puoi aggiungere più timer per aprire o chiudere le veneziane a diversi intervalli della giornata. Fondamentalmente, quando dobbiamo chiudere i bui, dobbiamo attivare il pin virtuale V1 e quando dobbiamo aprire i bui, dobbiamo attivare il pin virtuale V2. Il programma per controllare il motore passo-passo basato sul pulsante qui premuto verrà scritto sull'IDE di Arduino, lo stesso è discusso di seguito.
Programmazione di NodeMCU per controllare le persiane utilizzando Blynk
Il codice ESP8266 completo per questo progetto Blind Control può essere trovato in fondo a questa pagina. Il nostro programma deve attendere un comando dall'applicazione blynk e, in base a quel comando, dobbiamo ruotare il motore passo-passo in senso orario o antiorario. I segmenti importanti del codice sono discussi di seguito.
Secondo il nostro schema circuitale, abbiamo utilizzato i pin digitali 1, 2, 3 e 4 su nodemcu per controllare il nostro motore passo-passo. Quindi, dobbiamo creare un'istanza chiamata stepper usando questi pin come mostrato di seguito. Si noti che abbiamo definito i pin nell'ordine 1, 3, 2 e 4. È stato fatto deliberatamente e non è un errore; dobbiamo scambiare i pin 2 e 3 affinché il motore funzioni correttamente.
// crea un'istanza della classe stepper utilizzando i passaggi e i perni Stepper stepper (STEPS, D1, D3, D2, D4);
Nel passaggio successivo, dobbiamo condividere il nostro token di autenticazione dell'applicazione blynk e le credenziali Wi-Fi a cui deve essere connesso il nostro controller IoT Blind. Se non si è sicuri di come ottenere questo token di autenticazione Blynk, fare riferimento al progetto Blynk LED Control per comprendere le basi dell'applicazione blynk e come utilizzarlo.
// Dovresti ottenere il token di autenticazione nell'app Blynk. // Vai alle impostazioni del progetto (icona dado). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Le tue credenziali WiFi. // Imposta la password su "" per reti aperte. char ssid = "CircuitDigest"; char pass = "dummy123";
Andando avanti con il nostro codice, dopo la funzione setup, abbiamo definito due metodi per blynk. Come accennato in precedenza, dobbiamo definire cosa dovrebbero fare i pin virtuali V1 e V2. Il codice per lo stesso è dato di seguito.
BLYNK_WRITE (V1) // CHIUDE le TENDE {Serial.println ("Closing Blinds"); if (open == true) {for (int c_val = 0; c_val <= 130; c_val ++) // ruota in senso antiorario per chiudere {stepper.step (c_val); dare la precedenza(); } chiuso = vero; aperto = falso; disable_motor (); // disattivare sempre i motori passo-passo dopo l'uso per ridurre il consumo energetico e il riscaldamento}} BLYNK_WRITE (V2) // APRIRE le TENDE {Serial.println ("Opening Blinds"); if (closed == true) {for (int cc_val = 0; cc_val> = -130; cc_val--) // ruota in senso orario per aprire {stepper.step (cc_val); dare la precedenza(); } aperto = vero; chiuso = falso; } disable_motor (); // motori passo-passo sempre disattivabili dopo l'uso per ridurre il consumo di energia e il riscaldamento}
Come puoi vedere, V1 viene utilizzato per chiudere le veneziane e V2 viene utilizzato per aprire le tapparelle. Un ciclo for viene utilizzato per ruotare i motori in senso orario o antiorario per 130 passi. Ho provato con le mie persiane per scoprire che con 130 gradini, sono in grado di aprire e chiudere completamente le mie persiane. Il tuo numero potrebbe variare. Di seguito è mostrato il ciclo for per ruotare il motore passo-passo in senso orario e antiorario.
for (int c_val = 0; c_val <= 130; c_val ++) // ruota in senso antiorario per chiudere {stepper.step (c_val); dare la precedenza(); } for (int cc_val = 0; cc_val> = -130; cc_val--) // ruota in senso orario per aprire {stepper.step (cc_val); dare la precedenza(); }
Puoi anche notare due variabili booleane "aperte" e "chiuse" nel nostro programma. Queste due variabili vengono utilizzate per impedire al motore di aprire o chiudere due volte le persiane. Significa che le tapparelle si apriranno solo quando è stata precedentemente chiusa e si chiuderanno solo quando è stata precedentemente aperta.
Come aumentare la velocità del motore passo-passo 28BJY-48?
Uno svantaggio dell'utilizzo del motore passo-passo 28BJY-48 è che è molto lento. Questi motori sono stati originariamente fabbricati per essere utilizzati in applicazioni ad alta precisione a bassa velocità, quindi non aspettatevi che questi motori ruotino ad alta velocità. Se vuoi aumentare la velocità del motore passo-passo usando Arduino, ci sono due parametri che puoi modificare. Uno è il #define STEPS 64, ho scoperto che quando i passaggi sono definiti come 64, il motore era relativamente più veloce. Un altro parametro è stepper.setSpeed (500); ancora una volta ho trovato 500 un valore ottimale, qualcosa di più di questo rende effettivamente più lento il motore passo-passo.
Conosci un altro modo per aumentare la velocità di questi motori? Se sì, lasciali nella sezione commenti qui sotto.
Come evitare che il motore passo-passo si surriscaldi?
I motori passo-passo devono essere sempre disabilitati quando non vengono utilizzati per evitare il surriscaldamento. Disabilitare un motore passo-passo è molto semplice; basta cambiare lo stato dei pin di tutti e quattro i pin GPIO che controllano il motore passo-passo al minimo. Questo è molto importante, altrimenti il tuo motore potrebbe surriscaldarsi a + 12V e danneggiarsi in modo permanente. Di seguito viene fornito il programma per disabilitare il motore passo-passo.
void disable_motor () // spegne il motore quando hai finito per evitare il riscaldamento {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Controllo dei ciechi della finestra utilizzando l'Assistente Google
Useremo l'API blynk per controllare le tende tramite l'assistente Google, sarà simile al nostro progetto di automazione domestica a controllo vocale, quindi controlla se interessato. Fondamentalmente, dobbiamo attivare il link sottostante quando diciamo una frase predefinita all'Assistente Google.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Assicurati di cambiare il token di autenticazione con quello fornito dalla tua applicazione blynk. Puoi anche testare questo collegamento sul tuo browser Chrome per vedere se funziona come previsto. Ora che il collegamento è pronto, dobbiamo semplicemente passare a IFTTT e creare due applet che possono attivare i pin virtuali V1 e V2 quando chiediamo di chiudere e aprire le persiane. Ancora una volta, non sto entrando nei dettagli perché lo abbiamo fatto molte volte. Se hai bisogno di ulteriore aiuto, fai riferimento a questo progetto di radio FM a comando vocale, basta sostituire i servizi adafruit con i webhook. Condivido anche uno screenshot del mio snippet come riferimento.
Controllo automatico dei ciechi della finestra basato su Arduino - Dimostrazione
Dopo che il circuito e gli involucri stampati in 3D sono pronti, è sufficiente montare il dispositivo sul muro praticando due fori sul muro. La mia configurazione di montaggio è mostrata nelle immagini sottostanti.
Dopodiché, assicurati che le tende siano aperte e quindi accendi il circuito. Ora puoi provare a chiudere le persiane dall'applicazione blynk o tramite l'Assistente Google e dovrebbe funzionare. È inoltre possibile impostare timer sull'applicazione blynk per aprire e chiudere automaticamente le tende in un particolare momento della giornata.
Il funzionamento completo del progetto si trova nel video sotto riportato; se hai domande, sentiti libero di scriverle nella sezione commenti qui sotto. Inoltre, puoi utilizzare i nostri forum per altre discussioni tecniche.