- Funzionamento di un regolatore per ventilatore da soffitto basato su IoT
- Materiali necessari per il circuito di controllo della velocità della ventola CA.
- Circuito di controllo del regolatore della ventola CA.
- Progettazione PCB per il regolatore del ventilatore da soffitto controllato dall'IoT
- Configurazione di un account Firebase
- Codice Arduino per controllare il regolatore della ventola con NodeMCU
- Creazione dell'app Fan Regulator con MIT App Inventor
- Test del circuito del sensore tattile basato su ESP32
- Ulteriori miglioramenti
In questo articolo, stiamo costruendo un circuito regolatore della ventola CA, che è in grado di controllare la velocità della ventola limitando il flusso di corrente alla ventola. Il termine regolatore del ventilatore da soffitto CA è un boccone, quindi d'ora in poi lo chiameremo semplicemente un regolatore della ventola. Un circuito regolatore di ventola è un componente fondamentale che viene utilizzato per aumentare o diminuire la velocità di un ventilatore / motore CA in base alle esigenze. Alcuni anni fa, si poteva scegliere tra un regolatore di ventola di tipo resistivo convenzionale o un regolatore elettronico, ma al giorno d'oggi è stato tutto sostituito dal circuito del regolatore di ventola elettronico.
In un articolo precedente, ti abbiamo mostrato come potresti costruire un circuito di controllo dell'angolo di fase CA con un Arduino che era in grado di controllare la luminosità di una lampadina a incandescenza e anche di controllare la velocità di una ventola, quindi aumentarla di un livello in questo articolo costruiremo un circuito regolatore del ventilatore da soffitto CA basato su IoT. Che sarà in grado di controllare la velocità del tuo ventilatore da soffitto con l'aiuto di un'applicazione Android.
Funzionamento di un regolatore per ventilatore da soffitto basato su IoT
Il circuito Fan Regulator è un circuito semplice che è in grado di controllare la velocità di un ventilatore da soffitto AC alterando l'angolo di fase dell'onda sinusoidale AC o in termini semplici controllo preciso del TRIAC. Poiché ho menzionato tutti i meccanismi di base del circuito del regolatore della ventola CA nell'articolo Controllo dell'angolo di fase CA con timer 555 e PWM, ci concentreremo sulla costruzione effettiva del circuito. E ancora, se vuoi saperne di più sull'argomento, controlla anche l'articolo su AC Light Dimmer utilizzando Arduino e TRIAC Project.
Lo schema a blocchi di base sopra mostra come funziona effettivamente il circuito. Come ho detto prima, genereremo un segnale PWM con l'aiuto di Firebase IoT e NodeMCU, quindi il segnale PWM passerà attraverso il filtro passa-basso che controllerà il gate di un MOSFET dopo che un timer 555 controllerà l'attuale TRIAC con l'aiuto di un fotoaccoppiatore.
In questo caso, l'app per Android altera il valore nel firebaseDB e l'ESP verifica costantemente eventuali modifiche in atto a quel DB se si verificano modifiche che vengono abbassate e il valore viene convertito in un segnale PWM
Materiali necessari per il circuito di controllo della velocità della ventola CA.
L'immagine sotto mostra il materiale utilizzato per costruire questo circuito, poiché questo è realizzato con componenti molto generici, dovresti essere in grado di trovare tutto il materiale elencato nel tuo negozio di hobby locale.
Ho anche elencato i componenti in una tabella sottostante con il tipo e la quantità poiché è un progetto dimostrativo, sto usando un singolo canale per farlo. Ma il circuito può essere facilmente ingrandito secondo i requisiti.
- Connettore a vite da 5,04 mm - 2
- Connettore maschio da 2,54 mm - 1
- Resistenza 56K, 1W - 2
- Diodo 1N4007 - 4
- Condensatore da 0,1uF, 25V - 2
- Regolatore di tensione AMS1117 - 1
- Condensatore 1000uF, 25V - 1
- Jack di alimentazione CC - 1
- Resistenza 1K - 1
- Resistenza 470R - 2
- Resistenza 47R - 2
- Resistori 82 K - 1
- Resistori da 10 K - 5
- Fotoaccoppiatore PC817 - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- MOSFET IRF9540 - 1
- Condensatore 3.3uF - 1
- Cavi di collegamento - 5
- Condensatore 0,1uF, 1KV - 1
- Microcontrollore ESP8266 (ESP-12E) - 1
Circuito di controllo del regolatore della ventola CA.
Di seguito è mostrato lo schema per il circuito del regolatore della ventola IoT, questo circuito è molto semplice e utilizza componenti generici per ottenere il controllo dell'angolo di fase.
Questo circuito è costituito da componenti progettati con molta attenzione. Esaminerò ciascuno e spiegherò ogni blocco.
Chip Wi-Fi ESP8266 (ESP-12E):
Questa è la prima parte del nostro circuito ed è la parte in cui abbiamo cambiato molte cose, le altre parti rimangono esattamente le stesse, cioè se hai seguito l'articolo precedente.
In questa sezione, abbiamo sollevato i pin Enable, Reset e GPIO0, inoltre, abbiamo abbassato GPIO15 e Ground Pin, che sono consigliati dalla scheda tecnica del chip. Per quanto riguarda la programmazione, abbiamo posizionato un'intestazione a 3 pin che espone TX, RX e il pin di terra attraverso il quale possiamo programmare il chip molto facilmente. Inoltre, abbiamo messo un interruttore tattile per mettere a terra il GPIO0, questo è un passaggio necessario per mettere l'ESP in modalità di programmazione. Abbiamo selezionato il pin GPIO14 come uscita attraverso la quale viene generato il segnale PWM.
Nota! Al momento della programmazione, dobbiamo premere il pulsante e alimentare il dispositivo con il jack barile DC.
Circuito di rilevamento del passaggio per lo zero:
Innanzitutto, nella nostra lista c'è il circuito di rilevamento zero-crossing realizzato con due resistori da 56K, 1W in combinazione con quattro diodi 1n4007 e un fotoaccoppiatore PC817. E questo circuito è responsabile della fornitura del segnale di zero crossing al circuito integrato del timer 555. Inoltre, abbiamo registrato la fase e il segnale neutro per utilizzarlo ulteriormente nella sezione TRIAC.
Regolatore di tensione AMS1117-3.3V:
Il regolatore di tensione AMS1117 viene utilizzato per alimentare il circuito, il circuito è responsabile della fornitura di energia all'intero circuito. Inoltre, abbiamo utilizzato due condensatori da 1000uF e un condensatore da 0,1uF come condensatore di disaccoppiamento per l'IC AMS1117-3.3.
Circuito di controllo con timer NE555:
L'immagine sopra mostra il circuito di controllo del timer 555, il 555 è configurato in una configurazione monostabile, quindi quando un segnale di trigger dal circuito di rilevamento del passaggio per lo zero colpisce il trigger, il timer 555 inizia a caricare il condensatore con l'aiuto di un resistore (in generale), ma il nostro circuito ha un MOSFET al posto di un resistore, e controllando il gate del MOSFET, controlliamo la corrente che va al condensatore, ecco perché controlliamo il tempo di carica quindi controlliamo l'uscita dei 555 timer.
TRIAC e il circuito TRIAC-Driver:
Il TRIAC funge da interruttore principale che effettivamente si accende e si spegne, quindi controlla l'uscita del segnale CA. Pilotando il TRIAC utilizzando il MOC3021 Opto-Triac-drive, non solo guida il TRIAC, ma fornisce anche isolamento ottico, il condensatore ad alta tensione 0,01uF 2KV e il resistore 47R forma un circuito snubber, che protegge il nostro circuito da picchi di alta tensione che si verificano quando è collegato a un carico induttivo, la natura non sinusoidale del segnale CA commutato è responsabile dei picchi. Inoltre, è responsabile dei problemi del fattore di potenza, ma questo è un argomento per un altro articolo.
Filtro passa-basso e MOSFET a canale P (che funge da resistenza nel circuito):
Il resistore 82K e il condensatore 3.3uF formano il filtro passa basso che è responsabile del livellamento del segnale PWM ad alta frequenza generato da Arduino. Come accennato in precedenza, il MOSFET a canale P funge da resistore variabile, che controlla il tempo di carica del condensatore. A controllarlo è il segnale PWM che viene attenuato dal filtro passa-basso.
Progettazione PCB per il regolatore del ventilatore da soffitto controllato dall'IoT
Il PCB per il nostro circuito regolatore del ventilatore da soffitto IoT è progettato in una scheda unilaterale. Ho utilizzato il software di progettazione PCB Eagle per progettare il mio PCB, ma puoi utilizzare qualsiasi software di progettazione di tua scelta. L'immagine 2D del disegno della mia tavola è mostrata di seguito.
Viene utilizzato un riempimento a terra sufficiente per effettuare collegamenti di terra adeguati tra tutti i componenti. L'ingresso 3,3 V CC e l'ingresso 220 Volt CA sono presenti sul lato sinistro, l'uscita si trova sul lato destro del PCB. Il file di progettazione completo per Eagle insieme al Gerber può essere scaricato dal collegamento sottostante.
- Progettazione PCB, file GERBER e PDF per circuito regolatore del ventilatore da soffitto
PCB fatto a mano:
Per comodità, ho realizzato la mia versione artigianale del PCB ed è mostrata di seguito.
Con questo, il nostro hardware è pronto secondo il nostro schema elettrico, ora dobbiamo preparare la nostra applicazione Android e Google Firebase.
Configurazione di un account Firebase
Per il passaggio successivo, dobbiamo configurare un account Firebase. Tutte le comunicazioni passeranno attraverso l'account Firebase. Per configurare un account Firebase, vai al sito Web di Firebase e fai clic su "Inizia".
Dopo aver fatto clic, è necessario accedere con il proprio account Google e
una volta effettuato l'accesso, è necessario creare un progetto facendo clic sul pulsante crea un progetto.
In questo modo verrai reindirizzato a una pagina simile all'immagine sopra. Digita il nome del tuo progetto e fai clic su Continua.
Di nuovo, fai clic su Continua.
Una volta fatto, è necessario accettare alcuni termini e condizioni facendo clic sulla casella di controllo, quindi è necessario fare clic sul pulsante Crea progetto.
Se hai fatto tutto correttamente, dopo un po 'di tempo, riceverai un messaggio come questo. Una volta terminato, la tua console Firebase dovrebbe apparire come l'immagine qui sotto.
Ora dobbiamo raccogliere due cose da qui. Per farlo, devi fare clic sul nome del progetto che hai appena creato. Per me, è CelingFanRegulator, una volta cliccato su di esso, otterrai una dashboard simile all'immagine qui sotto.
Fai clic su Impostazioni, quindi Impostazioni progetto, la pagina che otterrai apparirà come le immagini qui sotto.
Fare clic su account di servizio -> segreto del database.
Copia il segreto del database e conservalo da qualche parte per un uso successivo.
Quindi, fai clic sul database in tempo reale e copia l'URL. tienilo anche per un uso successivo.
E questo è tutto, c'è il lato fuoco delle cose.
Codice Arduino per controllare il regolatore della ventola con NodeMCU
Un semplice codice Arduino si occupa della comunicazione tra firebase e il modulo ESP-12E, di seguito viene fornita la spiegazione del circuito e del codice, In primo luogo, definiamo tutte le librerie necessarie richieste, puoi scaricare le seguenti librerie dai link indicati Libreria JSON Arduino e la libreria FirebaseArduino
#includere
Useremo la libreria FirebaseArduino per stabilire la comunicazione con Firebase.
// Impostali per eseguire esempi. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "il tuo SSID" #define WIFI_PASSWORD "
Successivamente, abbiamo definito l' host Firebase, Firebase auth, che avevamo salvato in precedenza quando stavamo creando l'account Firebase. Quindi abbiamo definito l' SSID e la password del nostro router.
String Resivedata; #define PWM_PIN 14;
Successivamente, abbiamo definito una variabile di tipo stringa, Resivedata dove verranno memorizzati tutti i dati e abbiamo anche definito il PWM_PIN dove otterremo l'output PWM.
Successivamente, nella sezione void setup () , facciamo il necessario,
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("connessione"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); ritardo (500); } Serial.println (); Serial.print ("connesso:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Variabile / Valore", "FirstTestStrig");
Innanzitutto, abilitiamo la seriale chiamando la funzione Serial.begin () . Successivamente, abbiamo impostato il pin PWM come OUTPUT. Iniziamo la connessione Wi-Fi con l'aiuto della funzione WiFi.begin () e passiamo l' SSID e la password nella funzione. Controlliamo lo stato della connessione in un ciclo while e una volta connessi, interrompiamo il ciclo e continuiamo. Successivamente, stampiamo il messaggio connesso con l'indirizzo IP.
Infine, iniziamo la comunicazione con il firebase con la funzione Firebase.begin () e passiamo i parametri FIREBASE_HOST e FIREBASE_AUTH che abbiamo definito in precedenza. E impostiamo la stringa con la funzione setString () , che segna la fine della funzione di configurazione. Nella sezione void loop () ,
Resivedata = Firebase.getString ("Variabile / Valore"); Serial.println (Resivedata); analogWrite (PWM_PIN, map (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); ritardo (100);
Chiamiamo la funzione getString () con Variable / Value in cui i dati sono archiviati nel firebase, un esempio sarebbe come l'immagine qui sotto-
Quindi stampiamo il valore solo per il debug. Successivamente, utilizziamo la funzione map per mappare il valore, 80 viene utilizzato perché nell'intervallo 0-80, siamo in grado di controllare accuratamente il gate del MOSFET e il filtro passa basso RC è in qualche modo responsabile di questo valore. All'interno di questo intervallo, il circuito di controllo dell'angolo di fase funziona in modo accurato, è possibile chiamare il valore come un punto debole hardware-software. Se stai facendo questo progetto e affronti dei problemi, devi giocare con il valore e determinare tu stesso i risultati.
Dopodiché , usiamo la funzione analogWrite () per alimentare i dati e abilitare il PWM, dopodiché utilizziamo di nuovo la funzione Serial.println () solo per rivedere il risultato e, infine, utilizziamo una funzione di ritardo per ridurre il hit-count all'API Firebase che conclude il nostro programma.
Creazione dell'app Fan Regulator con MIT App Inventor
Con l'aiuto di AppInventor, creeremo un'app Android che comunicherà con Firebase e avrà l'autorità di modificare i dati memorizzati nel database Firebase.
Per farlo, vai al sito web di appInventors, accedi con il tuo account Google e accetta i termini e le condizioni. Una volta fatto, ti verrà presentata una schermata simile all'immagine qui sotto.
Fare clic sull'icona Avvia un nuovo progetto e assegnargli un nome e premere OK, una volta fatto, ti verrà presentata una schermata come l'immagine qui sotto.
Una volta lì devi prima mettere due etichette, dove questo è mettere il cursore un po 'più in basso, quindi devi inserire alcuni moduli e sono il modulo FirebaseDB e il modulo web.
Il modulo firebaseDB comunica con firebase, il modulo web viene utilizzato per gestire la richiesta. Che assomiglia all'immagine qui sotto.
Una volta fatto, devi inserire il cursore e un'etichetta che abbiamo chiamato PWM, se ti senti confuso in questo momento, puoi dare un'occhiata ad altri tutorial sulla creazione di un'app con un inventore di app.
Al termine del processo, fai clic sull'icona Firebase DB e inserisci il token Firebase e l'URL Firebase che abbiamo salvato durante la creazione dell'account Firebase.
Ora, abbiamo finito con la sezione di progettazione e dobbiamo impostare la sezione del blocco. Per farlo, dobbiamo fare clic sul pulsante di blocco nell'angolo in alto a destra accanto al designer.
Una volta che fai clic sul cursore e ti verrà presentato un lungo elenco di moduli, estrai il primo modulo e passa il mouse sul pulsante di posizione del pollice, sarai accolto con altri due moduli, estraili entrambi. Li useremo più tardi.
Ora colleghiamo la variabile di posizione del pollice, la arrotondiamo e otteniamo il valore della posizione del pollice. Successivamente, facciamo clic su firebasedb ed estraiamo il valore del tag FirebaseDB.storeValue di chiamata per memorizzarlo, modulo e allegarlo alla parte inferiore del valore della posizione del pollice.
Una volta terminato, estraiamo una casella di testo vuota facendo clic sul blocco di testo e allegandola al tag, questo è il tag che abbiamo impostato nell'IDE di Arduino per leggere e scrivere i dati su Firebase. Ora collega la variabile del valore del pollice al valore per memorizzare il tag. Se hai fatto tutto correttamente, spostando il cursore, potrai modificare i valori nel firebaseDB.
- .Aia (file salvato) e.apk (file compilato)
Che segna la fine del nostro processo di creazione di app. Un'istantanea dell'applicazione Android che abbiamo appena creato mostrata di seguito.
Test del circuito del sensore tattile basato su ESP32
Per testare il circuito, ho collegato una lampadina a incandescenza parallela al ventilatore da soffitto e ho alimentato il circuito con un adattatore 5V DC, come puoi vedere nell'immagine sopra, lo slider dell'app è impostato su basso, ecco perché la lampadina emette luce a bassa luminosità. E anche la ventola ruota lentamente.
Ulteriori miglioramenti
Per questa dimostrazione, il circuito è realizzato su un PCB fatto a mano ma il circuito può essere facilmente costruito su un PCB di buona qualità, nei miei esperimenti, la dimensione del PCB è davvero un po 'a causa delle dimensioni del componente, ma in un ambiente di produzione, può essere ridotto utilizzando componenti SMD economici, ho scoperto che l'uso di un timer 7555 invece di un timer 555 aumenta notevolmente il controllo, inoltre aumenta anche la stabilità del circuito.