Sommario:

IDC2018IOT Dimmi quando spegnere l'AC: 7 passaggi
IDC2018IOT Dimmi quando spegnere l'AC: 7 passaggi

Video: IDC2018IOT Dimmi quando spegnere l'AC: 7 passaggi

Video: IDC2018IOT Dimmi quando spegnere l'AC: 7 passaggi
Video: HO INSTALLATO WINDOWS 7 SU UN IPHONE PER EMULARE ANDROID e...🤯 *follia suprema* 2024, Novembre
Anonim
Image
Image

Molti di noi, soprattutto d'estate, usano l'aria condizionata quasi ininterrottamente, quando in realtà in certi momenti della giornata possiamo semplicemente aprire una finestra e goderci una piacevole brezza. Inoltre, abbiamo notato personalmente che a volte ci dimentichiamo anche di spegnere l'aria condizionata quando lasciamo la stanza, sprecando energia e denaro.

La soluzione che costruiremo confronterà la temperatura interna con quella esterna e, quando saranno abbastanza vicini, ci avviserà tramite Facebook Messanger che è ora di aprire una finestra e dare un po' di riposo all'aria condizionata.

Inoltre, creeremo un altro meccanismo per avvisarci quando abbiamo dimenticato l'aria condizionata e abbiamo lasciato la stanza.

Passaggio 1: un po' più di dettagli

Raccogliamo dati da 4 diversi sensori:

  • Due sensori DHT raccolgono la temperatura all'interno e all'esterno della casa.
  • Un sensore PIR rileva il movimento nella stanza.
  • Un microfono Electret viene utilizzato per rilevare il vento che esce dalla presa d'aria AC, un modo semplice e affidabile per determinare se l'AC è acceso.

I dati provenienti dai sensori verranno elaborati e inviati al Blynk dove verranno visualizzati in un'interfaccia che creeremo. Inoltre, attiveremo eventi IFTTT per informare l'utente quando può aprire una finestra invece dell'AC e quando ha dimenticato l'AC e ha lasciato la stanza per un periodo di tempo predefinito.

L'interfaccia di Blynk ci darà anche un modo per modificare le impostazioni rilevanti in base alle preferenze dell'utente, come discuteremo più dettagliatamente in seguito.

Parti richieste:

  1. Modulo WiFi - ESP8266
  2. sensore PIR.
  3. Sensori di temperatura DHT11/DHT22 x2.
  4. Resistori 10k/4.7k (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Microfono elettrete.
  6. Ponticelli.
  7. Cavi lunghi (il cavo telefonico farà un ottimo lavoro).

Il codice completo del progetto è allegato alla fine con commenti in tutto il codice.

Logicamente, ha diversi livelli di funzionalità:

  • I dati dei sensori vengono letti a intervalli di 3 secondi in quanto risultano più accurati e non è necessario aggiungere altro.
  • Una parte del codice tiene traccia dello stato dell'AC tramite i valori provenienti dal microfono a elettrete che si trova sopra l'apertura dell'AC.
  • Un'altra parte è tenere traccia della lettura proveniente dai sensori di temperatura e la differenza l'uso definito accettabile per spegnere l'aria condizionata e aprire invece una finestra. Cerchiamo il momento in cui le temperature si avvicinano abbastanza.
  • Una terza parte è tenere traccia del movimento nella stanza. Se non rileva alcun movimento importante (il modo per controllare il maggiore verrà spiegato presto) per un intervallo di tempo definito dall'utente e lo stato AC è ON, verrà inviata una notifica all'utente.
  • Le notifiche vengono gestite tramite l'attivazione di Webhook IFTTT che inviano messaggi predefiniti all'utente tramite Facebook Messenger
  • L'ultima parte degna di nota è la parte che gestisce l'interfaccia di Blynk, sia ottenendo le modifiche che l'utente apporta alle variabili sia, dall'altra parte, inviando i dati all'interfaccia di Blynk affinché l'utente possa vederla.

Passaggio 2: molti più dettagli - Sensori

Molto più dettagli - Sensori
Molto più dettagli - Sensori
Molto più dettagli - Sensori
Molto più dettagli - Sensori

Iniziamo.

Innanzitutto, dobbiamo assicurarci che entrambi i nostri sensori DHT leggano la stessa temperatura quando vengono posizionati nello stesso luogo. Per questo, abbiamo realizzato un semplice schizzo allegato alla fine di questa sezione (CompareSensors.ino). Collega entrambi i sensori e assicurati di cambiare il tipo di sensori DHT nello schizzo in base a quelli che hai (il valore predefinito è un DHT11 e un DHT22, quindi puoi vedere come entrambi sono trattati nel codice). Aprire il monitor seriale e lasciarli funzionare per un po', soprattutto se si utilizzano sensori DHT11, poiché tendono a impiegare più tempo per adattarsi alle variazioni di temperatura.

Annotare la differenza tra i sensori e inserirla successivamente nel codice principale nella variabile "offset".

Posizionamento dei sensori:

Un sensore DHT dovrebbe essere posizionato sulla parete esterna della casa, quindi collegalo ad alcuni cavi lunghi, abbastanza lunghi da raggiungere il tuo ESP8266 all'interno della stanza e posizionalo all'esterno (può essere fatto facilmente attraverso la finestra). L'altro sensore DHT dovrebbe essere posizionato sulla breadboard, all'interno della stanza in cui utilizziamo l'AC.

Il microfono electret dovrebbe anche essere collegato a cavi sufficientemente lunghi e collocato in un luogo in cui il vento che esce dall'AC lo colpirà.

Infine, il sensore PIR dovrebbe essere posizionato in una posizione rivolta verso il centro della stanza in modo che catturi ogni movimento nella stanza. Si noti che il sensore ha due piccole manopole, una controlla il ritardo (per quanto tempo il segnale ALTO di rilevamento di un movimento viene mantenuto ALTO) e l'altra controlla la sensibilità (vedi immagine).

Potrebbe essere necessario giocarci fino a quando non si ottiene una lettura di cui si è soddisfatti. Per noi, il miglior risultato è stato il ritardo tutto a sinistra (valore più basso) e la sensibilità nel mezzo. Il codice fornisce stampe seriali che includono letture da tutti i sensori che renderanno molto più semplice il debug di tali problemi.

Collegamento dei sensori:

I numeri di pin che abbiamo usato sono i seguenti (e possono essere modificati nel codice principale):

Sensore DHT esterno - D2.

Sensore DHT interno - D3.

Electret - A0 (pin analogico).

PIR - D5.

Gli schemi per il collegamento di ciascuno di essi possono essere facilmente trovati utilizzando la ricerca di immagini di Google con qualcosa sulla falsariga di "Schema di Arduino resistore PIR" (non vorremmo copiarli qui e attraversare le linee di copyright:)).

Abbiamo anche allegato un'immagine della nostra breadboard, probabilmente è difficile seguire davvero le connessioni, ma può dare una buona sensazione.

Come probabilmente saprai, le cose raramente, se non mai, funzionano la prima volta che le colleghiamo. Ecco perché abbiamo creato una funzione che stampa le letture dai sensori in modo facile da leggere, in modo che tu possa eseguire il debug in modo che funzionino. Se non vuoi che il codice provi a connettersi a Blynk durante il debug, commenta semplicemente "Blynk.begin(auth, ssid, pass);" dalla parte di configurazione del codice, eseguilo e apri il monitor seriale per vedere le stampe. Abbiamo anche allegato una foto delle stampe.

Passaggio 3: molti più dettagli - Sequenza IFTTT

In molti più dettagli - Sequenza IFTTT
In molti più dettagli - Sequenza IFTTT

Quindi vogliamo essere avvisati in due scenari:

1. La temperatura esterna è abbastanza vicina a quella che abbiamo all'interno con l'aria condizionata funzionante.

2. Abbiamo lasciato la stanza per un lungo periodo di tempo e l'aria condizionata funziona ancora.

IFTTT ci permette di connettere molti servizi diversi che di solito non interagiscono, in un modo molto semplice. Nel nostro caso, ci consente di inviare notifiche molto facilmente attraverso molti servizi. Abbiamo scelto Facebook Messanger, ma dopo averlo fatto funzionare con Facebook Messanger sarai in grado di cambiarlo facilmente con qualsiasi altro servizio di tua scelta.

Il processo:

Sul sito Web IFTTT fai clic sul tuo nome utente (angolo in alto a destra) e quindi su "Nuova applet" scegli "Webhooks" come trigger (il "questo") e scegli "Ricevi una richiesta web". Imposta un nome per l'evento (es. empty_room).

Per il servizio attivato, l'azione (il "quello"), scegli Facebook Messenger > Invia messaggio e digita il messaggio che desideri ricevere quando si verifica questo evento (ad es. "Ciao, sembra che tu abbia dimenticato l'AC su:).

Già che siamo qui, dovresti trovare anche la tua chiave segreta che dovrai inserire nell'apposito punto del codice.

Per trovare la tua chiave segreta vai su https://ifttt.com/services/maker_webhooks/settings Lì troverai un URL con la tua chiave nel seguente formato:

Passaggio 4: molti più dettagli - Blynk

Image
Image
In molti più dettagli - Blynk
In molti più dettagli - Blynk
In molti più dettagli - Blynk
In molti più dettagli - Blynk

Vogliamo anche un'interfaccia che abbia le seguenti caratteristiche:

1. Possibilità di impostare per quanto tempo la stanza dovrebbe essere vuota con l'aria condizionata funzionante prima di ricevere una notifica

2. Possibilità di scegliere quanto deve essere vicina la temperatura esterna a quella interna.

3. Un display per le letture dei sensori di temperatura

4. Un led che ci dice lo stato dell'AC (acceso/spento).

5. E, soprattutto, un display per mostrare quanto $$$ ed energia abbiamo risparmiato.

Come creare l'interfaccia Blynk:

Se non hai ancora l'app Blynk, scaricala sul tuo telefono. Quando apri l'app e crei un nuovo progetto, assicurati di scegliere il dispositivo appropriato (ad esempio ESP8266).

Riceverai una mail con un token di autenticazione, che inserirai nel codice nell'apposita sede (puoi anche inviartelo di nuovo dalle impostazioni in seguito se lo perdi).

Per posizionare nuovi widget sullo schermo, fai clic sul segno + in alto. Scegli i widget, quindi fai clic su un widget per accedere alle sue impostazioni. Abbiamo aggiunto le immagini delle impostazioni per tutti i widget che abbiamo utilizzato, come riferimento.

Dopo aver terminato con l'app e quando alla fine desideri utilizzarla, fai semplicemente clic sull'icona "riproduci" nell'angolo in alto a destra per eseguire l'app Blynk. Sarai anche in grado di vedere quando il tuo ESP8266 si connette.

Nota: il pulsante "Aggiorna" viene utilizzato per recuperare la temperatura e lo stato dell'aria condizionata che possiamo vedere nell'app. Non è necessario quando si modificano le impostazioni (come la differenza di temperatura), poiché vengono premute automaticamente.

Passaggio 5: il codice

Abbiamo fatto molti sforzi per documentare ogni parte del codice in un modo che ne rendesse la comprensione il più semplice possibile.

Le parti del codice che devi modificare prima di usarlo (come la chiave di autenticazione per Blynk, il tuo SSID e password wifi, ecc…) sono seguite dal commento //*cambia* in modo da poterle facilmente cercare.

Dovrai disporre delle librerie utilizzate nel codice, puoi installarle tramite l'IDE di Arduino facendo clic su Schizzo> Includi librerie> Gestisci librerie. Lì puoi cercare il nome della libreria e installarlo. Inoltre, assicurati di inserire il file generic8266_ifttt.h nella stessa posizione di ACsaver.ino.

Una parte del codice che spiegheremo qui poiché non volevamo ingombrare il codice, è come decidiamo quando cambiare lo stato dell'aria condizionata da acceso a spento e lo stato della stanza da vuoto a non vuoto.

Leggiamo dai sensori ogni 3 secondi, ma poiché i sensori non sono precisi al 100%, non vogliamo che una singola lettura cambi lo stato che crediamo sia nella stanza ora. Per risolvere questo problema, ciò che fa il codice è che abbiamo un contatore che ++ quando otteniamo una lettura a favore di "AC è acceso" e -- altrimenti. Quindi, quando arriviamo al valore definito in SWITCHAFTER (predefinito a 4), cambiamo lo stato in "AC is on", quando arriviamo a -SWITCHAFTER (negativo lo stesso valore), cambiamo lo stato in "AC is off ".

L'impatto sul tempo necessario per il passaggio è trascurabile e lo troviamo molto affidabile nel rilevare solo i cambiamenti corretti.

Passaggio 6: mettere tutto insieme

Ok, quindi tutti i sensori sono a posto e funzionano correttamente. L'interfaccia Blynk è impostata (con i pin virtuali corretti!). E gli eventi IFTTT stanno aspettando il nostro trigger.

Hai inserito nel codice la chiave segreta IFTTT, la chiave di autenticazione di Blynk, l'SSID del tuo WiFi e la password, e hai persino verificato che i sensori DHT siano calibrati e, in caso contrario, hai modificato l'offset di conseguenza (ad esempio, il nostro fuori DHT ha letto temperature superiori di 1 grado Celsius rispetto a quanto avrebbe dovuto avere, quindi abbiamo usato offset = -1).

Assicurati che il tuo WiFi sia attivo, avvia la tua app Blynk e carica il codice sul tuo ESP8266.

Questo è tutto. Se tutto è stato fatto correttamente, puoi giocare ora e vederlo in azione.

E se vuoi solo vederlo in azione senza la fatica di mettere tutto insieme… beh… Scorri verso l'alto e guarda il video. (Guarda con i sottotitoli! Nessuna voce fuori campo)

Passaggio 7: pensieri

Abbiamo avuto due sfide principali qui.

Prima di tutto, come facciamo a sapere che l'aria condizionata è accesa? Abbiamo provato a utilizzare un ricevitore IR che "ascolti" la comunicazione tra l'AC e il telecomando. Sembrava essere troppo complicato, poiché i dati erano molto disordinati e non erano abbastanza coerenti da capire "ok, questo è un segnale ON". Quindi abbiamo cercato altre strade. Un'idea era quella di utilizzare una piccola elica che generasse una piccola corrente quando si muove dal vento dell'AC, un'altra idea che abbiamo provato era di avere un accelerometro che misurasse l'angolo delle ali rotanti sulle prese d'aria e rilevasse il loro movimento dalla posizione OFF.

Alla fine, ci siamo resi conto che il modo più semplice per farlo è con il microfono a elettrete, che rileva in modo molto affidabile il vento che esce dall'AC

Far funzionare i sensori DHT è stato un gioco da ragazzi;), ma solo in seguito ci siamo resi conto che uno di loro era un po' fuori dalla temperatura reale. Anche il sensore PIR ha richiesto alcune regolazioni, come descritto in precedenza.

La seconda sfida è stata rendere l'intera soluzione semplice e affidabile. In un certo senso dovrebbe essere fastidioso da usare, dovrebbe essere lì e spingere quando ne hai bisogno. Altrimenti, noi stessi probabilmente smetteremmo di usarlo.

Quindi abbiamo riflettuto su cosa dovrebbe essere nell'interfaccia di Blynk e abbiamo cercato di rendere il codice il più affidabile possibile, prendendoci cura di ogni caso limite che potevamo trovare.

Un'altra sfida, che non siamo riusciti a risolvere nel momento in cui abbiamo scritto questa guida, è stata quella di aggiungere un blaster IR che ci consentirà di spegnere l'AC dall'interfaccia Blynk. Qual è il punto nel sapere che hai dimenticato l'aria condizionata senza la possibilità di spegnere? (beh… potresti chiedere a qualcuno se è in casa).

Sfortunatamente, abbiamo avuto alcune difficoltà a riprodurre i segnali che abbiamo registrato dal telecomando, di nuovo all'AC con ESP8266. Siamo riusciti a controllare l'AC da un Arduino Uno, seguendo questo istruibile:

www.instructables.com/id/How-to-control-th…

Riproveremo presto e aggiorneremo l'istruibile con i nostri risultati e, si spera, le istruzioni su come aggiungere tale funzionalità.

Un'altra limitazione che vediamo è il fatto che dobbiamo collegare un sensore all'esterno della finestra, cosa che potrebbe non essere possibile in determinate situazioni, e significa anche che un lungo cavo deve uscire all'esterno. Una soluzione potrebbe essere quella di recuperare i dati meteo della tua posizione da Internet. Inoltre, il sensore a elettrete che parte dall'AC può essere sostituito dal ricevitore IR che abbiamo descritto sopra, per modelli di AC con codici IR più conosciuti o di facile decodifica.

Il progetto può essere esteso in molti modi. Come detto sopra, proveremo a trovare un modo per includere il controllo IR sull'AC, che quindi apre un mondo completamente nuovo di opportunità per accendere e spegnere l'AC da qualsiasi parte del mondo, o impostare orari di accensione e spegnimento tramite Blynk app, come altro esempio. Dopo aver individuato le difficoltà tecniche dell'IR, aggiungere il codice è abbastanza semplice e diretto e non dovrebbe richiedere molto tempo.

Se vogliamo davvero sognare in grande… Il progetto può essere trasformato in un modulo completo che rende qualsiasi AC un AC intelligente. E non ha bisogno di molto di più di quanto abbiamo fatto noi. Solo più codice, più utilizzo dell'IR, e se vogliamo che sia prodotto in serie, magari assicurarci di recuperare i dati meteorologici per posizione, quindi possiamo mettere tutto in una piccola scatola.

In realtà, tutto ciò di cui abbiamo bisogno è un sensore di temperatura per la temperatura interna, un sensore PIR per rilevare il movimento e un LED IR come blaster e un ricevitore IR per "ascoltare" la comunicazione tra l'AC e il telecomando che usiamo.

Blynk fornisce tutte le funzionalità di cui abbiamo bisogno per controllare la scatola magica, in un modo molto semplice e affidabile.

La realizzazione di un progetto così completo richiederà del tempo, soprattutto dal punto di vista di renderlo abbastanza versatile da configurarsi e rilevare e comprendere automaticamente la maggior parte degli AC.

Ma farlo per te, beh, se lo fai nel tuo tempo libero, non dovremmo impiegare approssimativamente più di una settimana o due. Dipende da quanto tempo libero hai… La sfida principale qui sarebbe quella di salvare tutti i diversi segnali che il telecomando CA può inviare e dare loro un senso. (Anche se solo riprodurli dovrebbe essere ancora più semplice).

Consigliato: