Cuprins:

IDC2018IOT Spune-mi când să opresc AC: 7 pași
IDC2018IOT Spune-mi când să opresc AC: 7 pași

Video: IDC2018IOT Spune-mi când să opresc AC: 7 pași

Video: IDC2018IOT Spune-mi când să opresc AC: 7 pași
Video: Ce înseamna semnul tau din nastere 2024, Iulie
Anonim
Image
Image

Mulți dintre noi, mai ales în timpul verii, folosim AC aproape non-stop, când în realitate, în anumite momente ale zilei, putem deschide o fereastră și ne putem bucura de o adiere plăcută. De asemenea, am observat personal că uneori chiar uităm doar să oprim AC-ul la ieșirea din cameră, risipind energie și bani.

Soluția pe care o vom construi va compara temperatura interioară cu cea exterioară și, atunci când acestea sunt suficient de apropiate, ne va anunța prin Facebook Messanger că este timpul să deschidem o fereastră și să ne liniștim AC.

De asemenea, vom face un alt mecanism care să ne anunțe când am uitat AC-ul pornit și am părăsit camera.

Pasul 1: Un pic mai multe detalii

Colectăm date de la 4 senzori diferiți:

  • Doi senzori DHT colectează temperatura în interiorul casei și în afara casei.
  • Un senzor PIR detectează mișcarea în cameră.
  • Un microfon Electret este folosit pentru a detecta vântul care iese din aerisirea de curent alternativ, o modalitate simplă și fiabilă de a determina dacă AC este pornit.

Datele provenite de la senzori vor fi procesate și trimise către Blynk unde vor fi afișate într-o interfață pe care o vom crea. De asemenea, vom declanșa evenimente IFTTT pentru a anunța utilizatorul când poate deschide o fereastră în loc de AC și când a uitat AC-ul și a părăsit camera pentru o perioadă de timp predefinită.

Interfața Blynk ne va oferi, de asemenea, o modalitate de a modifica setările relevante în funcție de preferințele utilizatorului, așa cum vom discuta în mai multe detalii mai târziu.

Piese necesare:

  1. Modul WiFi - ESP8266
  2. Senzor PIR.
  3. Senzori de temperatură DHT11 / DHT22 x2.
  4. Rezistoare 10k / 4.7k (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Microfon electret.
  6. Jumpers.
  7. Cabluri lungi (cablul telefonic va face o treabă grozavă).

Codul complet al proiectului este atașat la sfârșit cu comentarii în întregul cod.

În mod logic, are câteva straturi diferite de funcționalitate:

  • Datele de la senzori sunt citite la intervale de 3 secunde, deoarece se arată că sunt mai exacte și nu este nevoie de mai mult decât atât.
  • O parte a codului ține evidența stării AC prin valorile provenite de la microfonul electret care este plasat peste deschiderea AC.
  • O altă parte este urmărirea citirii provenite de la senzorii de temperatură și diferența de utilizare definită ca acceptabilă pentru a transforma AC și a deschide o fereastră. Căutăm momentul în care temperaturile se apropie suficient.
  • O a treia parte este urmărirea mișcării în cameră. Dacă nu detectează nicio mișcare majoră (modul de verificare a majorității va fi explicat în curând) pentru un interval de timp definit de utilizator, iar starea AC este activată, o notificare va fi trimisă utilizatorului.
  • Notificările sunt gestionate prin declanșarea IFTTT Webhooks care trimit mesaje predefinite utilizatorului prin Facebook Messenger
  • Ultima parte demnă de remarcat este partea care se ocupă de interfața Blynk, atât prin obținerea modificărilor pe care le face utilizatorul asupra variabilelor, cât și pe de altă parte - împingând datele către interfața Blynk pentru ca utilizatorul să le vadă.

Pasul 2: Într-o mulțime mai multe detalii - senzori

În mult mai multe detalii - senzori
În mult mai multe detalii - senzori
În mult mai multe detalii - senzori
În mult mai multe detalii - senzori

Să începem.

În primul rând, trebuie să ne asigurăm că ambii senzori DHT citesc aceeași temperatură atunci când sunt amplasați în același loc. Pentru aceasta, am făcut o schiță simplă atașată la sfârșitul acestei secțiuni (CompareSensors.ino). Conectați ambii senzori și asigurați-vă că schimbați tipul de senzori DHT din schiță în funcție de cei pe care îi aveți (implicit este unul DHT11 și unul DHT22, astfel încât să puteți vedea cum sunt tratate ambele în cod). Deschideți monitorul serial și lăsați-l să funcționeze o vreme, mai ales dacă utilizați senzori DHT11, deoarece acestea tind să dureze mai mult pentru a se adapta la schimbările de temperatură.

Rețineți diferența dintre senzori și introduceți-l ulterior în codul principal în variabila „offset”.

Amplasarea senzorilor:

Un senzor DHT trebuie așezat pe peretele exterior al casei, deci conectați-l la niște cabluri lungi, suficient de lungi pentru a ajunge la ESP8266 în interiorul camerei și plasați-l în exterior (se poate face ușor prin fereastră). Celălalt senzor DHT ar trebui să fie așezat pe panou, în camera în care folosim AC.

Microfonul electret ar trebui, de asemenea, să fie conectat la cabluri suficient de lungi și plasat într-o locație în care vântul care iese din curent alternativ îl va lovi.

În cele din urmă, senzorul PIR trebuie așezat într-o locație orientată spre centrul camerei, astfel încât să capteze fiecare mișcare din cameră. Rețineți că senzorul are două butoane mici, unul controlând întârzierea (cât timp este menținut semnalul HIGH al detectării unei mișcări HIGH), iar celălalt controlează sensibilitatea (vezi imaginea).

S-ar putea să fie nevoie să vă jucați cu el până când veți citi de care sunteți mulțumit. Pentru noi, cel mai bun rezultat a fost întârzierea până la stânga (cea mai mică valoare) și sensibilitatea chiar la mijloc. Codul oferă tipăriri seriale care includ citiri de la toți senzorii care vor facilita depanarea unor astfel de probleme.

Conectarea senzorilor:

Numerele de pin pe care le-am folosit sunt după cum urmează (și pot fi modificate în codul principal):

Senzor exterior DHT - D2.

Senzor DHT interior - D3.

Electret - A0 (pin analogic).

PIR - D5.

Schemele pentru conectarea fiecăruia dintre ele pot fi găsite cu ușurință folosind căutarea de imagini Google cu ceva de-a lungul liniei „schemei PIR cu rezistență Arduino” (nu am vrea să le copiem aici și să traversăm orice linie de drepturi de autor:)).

Am atașat, de asemenea, o imagine a panoului nostru, probabil că este greu să urmezi cu adevărat conexiunile, dar poate da un sentiment bun pentru asta.

După cum probabil știți, lucrurile rareori funcționează dacă vor fi conectate pentru prima dată. De aceea, am creat o funcție care imprimă citirile de la senzori într-un mod ușor de citit, astfel încât să puteți depana modul în care aceștia să funcționeze. Dacă nu doriți ca codul să încerce să se conecteze la Blynk în timpul depanării, trebuie doar să comentați „Blynk.begin (auth, ssid, pass);” din partea de configurare a codului, rulați-l și deschideți monitorul serial pentru a vedea tipăriturile. Am atașat și o poză cu amprentele.

Pasul 3: În mai multe detalii - Secvența IFTTT

În mult mai multe detalii - Secvența IFTTT
În mult mai multe detalii - Secvența IFTTT

Așadar, dorim să primim notificări în două scenarii:

1. Temperatura exterioară este suficient de apropiată de cea pe care o avem în interior cu AC funcționând.

2. Am părăsit camera pentru o perioadă mai lungă de timp, iar AC funcționează în continuare.

IFTTT ne permite să conectăm multe servicii diferite care, de obicei, nu interacționează, într-un mod foarte simplu. În cazul nostru, ne permite să trimitem notificări foarte ușor prin multe servicii. Am ales Facebook Messanger, dar după ce a funcționat cu Facebook Messanger, îl veți putea schimba cu ușurință la orice alt serviciu pe care îl alegeți.

Procesul:

Pe site-ul IFTTT, faceți clic pe numele dvs. de utilizator (colțul din dreapta sus) și apoi pe „New Applet”, alegeți „Webhooks” ca declanșator („acesta”) și alegeți „Primiți o solicitare web”. Setați un nume de eveniment (de exemplu, camera_vacu).

Pentru serviciul declanșat, acțiunea („acel”), alegeți Facebook Messenger> Trimiteți mesaj și introduceți mesajul pe care doriți să-l primiți atunci când se întâmplă acest eveniment (de exemplu, „Bună, se pare că ați uitat AC-ul pe:).

În timp ce suntem aici, ar trebui să găsiți și cheia secretă pe care va trebui să o introduceți în locul corespunzător din cod.

Pentru a găsi cheia secretă, accesați https://ifttt.com/services/maker_webhooks/settings Acolo veți găsi o adresă URL cu cheia dvs. în următorul format:

Pasul 4: În mai multe detalii - Blynk

Image
Image
În mult mai multe detalii - Blynk
În mult mai multe detalii - Blynk
În mult mai multe detalii - Blynk
În mult mai multe detalii - Blynk

De asemenea, dorim o interfață care să aibă următoarele caracteristici:

1. Posibilitatea de a stabili cât timp ar trebui să fie camera goală cu AC funcționând înainte de a fi anunțați

2. Posibilitatea de a alege cât de aproape ar trebui să fie temperatura exterioară de interior.

3. Un afișaj pentru citirile de la senzorii de temperatură

4. Un led care ne spune starea AC (pornit / oprit).

5. Și cel mai important, un afișaj pentru a arăta cât de mult $$$ și energie am economisit.

Cum să creați interfața Blynk:

Dacă nu aveți încă aplicația Blynk, descărcați-o pe telefon. Când deschideți aplicația și creați un proiect nou, asigurați-vă că alegeți dispozitivul adecvat (de exemplu, ESP8266).

Veți primi un e-mail cu un jeton de autentificare, pe care îl veți introduce în cod în locul corespunzător (îl puteți retrimite și dvs. din setări ulterior dacă îl pierdeți).

Plasați widget-uri noi pe ecran, dați clic pe semnul + din partea de sus. Alegeți widgeturile, apoi faceți clic pe un widget pentru a introduce setările acestuia. Am adăugat imagini cu setările pentru toate widgeturile pe care le-am folosit, pentru referință.

După ce ați terminat cu aplicația și când doriți să o utilizați, faceți clic pe pictograma „redare” din colțul din dreapta sus pentru a rula aplicația Blynk. De asemenea, veți putea vedea când se conectează ESP8266.

Notă - butonul „actualizare” este folosit pentru a prelua temperatura și starea AC pentru ca noi să le vedem în aplicație. Nu este necesar la schimbarea setărilor (cum ar fi diferența de temperatură), deoarece acestea sunt împinse automat.

Pasul 5: Codul

Am depus eforturi mari pentru a documenta fiecare parte a codului într-un mod care să faciliteze înțelegerea acestuia.

Părțile din cod pe care trebuie să le modificați înainte de a le utiliza (ca cheie de autentificare pentru Blynk, SSID-ul și parola dvs. wifi etc.) sunt urmate de comentariul // * change *, astfel încât să le puteți căuta cu ușurință.

Va trebui să aveți bibliotecile utilizate în cod, le puteți instala prin IDE Arduino făcând clic pe Schiță> Includeți biblioteci> Gestionați bibliotecile. Acolo puteți căuta numele bibliotecii și îl puteți instala. De asemenea, asigurați-vă că ați pus fișierul generic8266_ifttt.h în aceeași locație ca ACsaver.ino.

O parte a codului pe care o vom explica aici, deoarece nu am vrut să aglomerați codul, este modul în care decidem când schimbăm starea AC de la pornit la oprit și starea camerei de la gol la nu gol.

Citim din senzori la fiecare 3 secunde, dar, deoarece senzorii nu sunt 100% exacți, nu dorim ca o singură citire să schimbe starea pe care credem că se află acum în cameră. Pentru a rezolva acest lucru, ceea ce face codul, este că avem un contor pe care îl avem atunci când obținem o citire în favoarea „AC este pornit” și - în caz contrar. Apoi, când ajungem la valoarea definită în SWITCHAFTER (implicit la 4), schimbăm starea în „AC is on”, când ajungem la -SWITCHAFTER (negativ aceeași valoare), schimbăm starea în „AC is off.

Impactul asupra timpului necesar pentru a comuta este neglijabil și considerăm că este foarte fiabil în detectarea doar a modificărilor corecte.

Pasul 6: Puneți totul împreună

Bine, deci toți senzorii sunt la locul lor și funcționează corect. Interfața Blynk este setată (cu pinii virtuali corecți!). Și evenimentele IFTTT așteaptă declanșatorul nostru.

Ați introdus cheia secretă IFTTT în cod, cheia de autentificare de la Blynk, SSID-ul WiFi-ului și parola și chiar ați verificat dacă senzorii DHT sunt calibrați și, dacă nu, ați modificat offset-ul în mod corespunzător (de exemplu, în afara DHT citim temperaturi mai mari cu 1 grad Celsius decât ceea ce ar trebui să aibă, așa că am folosit offset = -1).

Asigurați-vă că conexiunea WiFi este activată, porniți aplicația Blynk și încărcați codul pe ESP8266.

Asta e. Dacă totul a fost făcut corect, puteți juca acum și îl puteți vedea în acțiune.

Și dacă vrei doar să-l vezi în acțiune fără să ai grija să le pui la un loc … Ei bine … Derulează în sus și urmărește videoclipul. (Urmăriți cu subtitrări! Fără voce în off)

Pasul 7: Gânduri

Aici am avut două provocări principale.

În primul rând, de unde știm că funcționează AC? Am încercat să folosim un receptor IR care să „asculte” comunicarea dintre AC și telecomandă. Părea a fi prea complicat, deoarece datele erau foarte dezordonate și nu erau suficient de consistente pentru a înțelege „ok, acesta este un semnal ON”. Așa că am căutat alte modalități. O idee a fost să folosim o elice mică care să genereze un curent mic atunci când se mișcă din vântul de curent alternativ, o altă idee pe care am încercat-o a fost să avem un accelerometru care să măsoare unghiul aripilor rotative pe orificii de aerisire și să detecteze mișcarea lor din poziția OFF.

În cele din urmă, am realizat că cel mai simplu mod de a face acest lucru este cu microfonul electret, care detectează foarte fiabil vântul care iese din AC

Punerea în funcțiune a senzorilor DHT a fost o briză;), dar abia mai târziu ne-am dat seama că unul dintre ei era puțin departe de temperatura reală. Senzorul PIR a necesitat și unele ajustări, așa cum s-a descris anterior.

A doua provocare a fost simplificarea și fiabilitatea întregii soluții. Într-un sens în care ar trebui să fie enervant de utilizat, ar trebui să fie acolo și să vă împingă când aveți nevoie. În caz contrar, noi înșine probabil că vom înceta să îl folosim.

Așa că ne-am gândit la ce ar trebui să fie în interfața Blynk și am încercat să facem codul cât mai fiabil, având grijă de fiecare caz de margine cu care am putea veni.

O altă provocare, pe care nu am reușit să o rezolvăm până când scriem acest instructable, a fost să adăugăm un blaster IR care ne va permite să oprim AC-ul de pe interfața Blynk. Ce rost are să știi că ai uitat AC-ul pornit fără posibilitatea de a opri? (bine … ai putea întreba pe cineva dacă este acasă).

Din păcate, am avut unele dificultăți în redarea semnalelor pe care le-am înregistrat de la telecomandă, înapoi la AC cu ESP8266. Am reușit să controlăm AC de către un Arduino Uno, urmând acest lucru instructiv:

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

Vom încerca din nou în curând și vom actualiza instrucțiunile cu constatările noastre și, sperăm, instrucțiuni despre cum să adăugăm această capacitate.

O altă limitare pe care o vedem este faptul că trebuie să conectăm un senzor în afara ferestrei, ceea ce s-ar putea să nu fie posibil în anumite situații și, de asemenea, înseamnă că trebuie să ieșiți un cablu lung. O soluție poate fi preluarea datelor meteo despre locația dvs. de pe internet. De asemenea, senzorul electret care rulează de la AC poate fi înlocuit de receptorul IR pe care l-am descris mai sus, pentru modelele de AC cu coduri IR mai cunoscute sau mai ușor de decodat.

Proiectul poate fi extins în mai multe moduri. După cum sa menționat mai sus, vom încerca să găsim o modalitate de a include controlul IR asupra AC, care apoi deschide o lume cu totul nouă de oportunități de a porni și opri AC de oriunde în lume sau de a seta orele de pornire și oprire prin Blynk. app, ca alt exemplu. După aflarea dificultăților tehnice IR, adăugarea codului este destul de simplă și simplă și nu ar trebui să dureze mult.

Dacă vrem cu adevărat să visăm mare … Proiectul poate fi transformat într-un modul complet care face ca orice AC să fie un CA inteligent. Și nu are nevoie de mult mai mult decât am avut noi. Doar mai mult cod, mai multă utilizare a IR și, dacă vrem să fie produs în masă, poate ne asigurăm că preluăm datele meteo după locație, atunci putem pune totul într-o cutie mică.

Într-adevăr, tot ce avem nevoie este un senzor de temperatură pentru temperatura interioară, un senzor PIR pentru a detecta mișcarea și LED IR ca blaster și un receptor IR pentru a „asculta” comunicarea dintre AC și telecomanda pe care o folosim.

Blynk oferă toate capacitățile de care avem nevoie pentru a controla cutia magică, într-un mod foarte simplu și fiabil.

Realizarea unui astfel de proiect complet va dura ceva timp, mai ales din punctul de vedere al faptului că este suficient de versatil pentru a se configura și a detecta și înțelege automat majoritatea AC-urilor.

Dar făcându-l pentru tine, bine, dacă o faci în timpul liber, aproximativ nu ar trebui să dureze mai mult de o săptămână sau două. Depinde de cât timp liber aveți … Principala provocare aici ar fi să salvați toate semnalele diferite pe care telecomanda AC le poate trimite și să le înțelegeți. (Deși doar redarea acestora ar trebui să fie și mai ușoară).

Recomandat: