Sadržaj:

IDC2018IOT Reci mi kada da isključim AC: 7 koraka
IDC2018IOT Reci mi kada da isključim AC: 7 koraka

Video: IDC2018IOT Reci mi kada da isključim AC: 7 koraka

Video: IDC2018IOT Reci mi kada da isključim AC: 7 koraka
Video: Вкуснее РЫБЫ вы не пробовали!! Карп под МАРИНАДОМ! Китайский рецепт 2024, Juli
Anonim
Image
Image

Mnogi od nas, posebno ljeti, koriste klima uređaj bez prestanka, dok u stvarnosti u određeno doba dana možemo samo otvoriti prozor i uživati u lijepom povjetarcu. Također, osobno smo primijetili da ponekad čak i zaboravimo isključiti klima uređaj pri izlasku iz sobe, trošeći energiju i novac.

Rješenje koje ćemo izgraditi upoređivat će unutrašnju temperaturu s vanjskom, a kada se dovoljno približe, obavijestit će nas putem Facebook Messenger -a da je vrijeme da otvorimo prozor i odmorimo klima uređaj.

Također, napravit ćemo još jedan mehanizam koji će nas obavijestiti kada smo zaboravili uključen klima uređaj i napustili sobu.

Korak 1: Malo više detalja

Prikupljamo podatke sa 4 različita senzora:

  • Dva DHT senzora prikupljaju temperaturu unutar kuće i izvan nje.
  • Jedan PIR senzor detektuje kretanje u prostoriji.
  • Jedan Electret mikrofon koristi se za detekciju vjetra koji izlazi iz ventilacijskog otvora, jednostavan i pouzdan način za utvrđivanje je li AC uključen.

Podaci koji dolaze sa senzora bit će obrađeni i poslani na Blynk gdje će biti prikazani u sučelju koje ćemo stvoriti. Također ćemo pokrenuti IFTTT događaje kako bismo obavijestili korisnika kada može otvoriti prozor umjesto AC -a, te kada je zaboravio uključiti AC i napustio prostoriju na unaprijed definirani vremenski period.

Blynk sučelje će nam također dati način da promijenimo relevantne postavke prema korisničkim željama, o čemu ćemo kasnije razgovarati u više detalja.

Potrebni delovi:

  1. WiFi modul - ESP8266
  2. PIR senzor.
  3. Senzori temperature DHT11/DHT22 x2.
  4. 10k/4.7k otpornici (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Električni mikrofon.
  6. Džemperi.
  7. Dugi kabeli (telefonska žica će odlično obaviti posao).

Cjelokupni kod projekta priložen je na kraju s komentarima u kodu.

Logično, ima nekoliko različitih slojeva funkcionalnosti:

  • Podaci sa senzora očitavaju se u intervalima od 3 sekunde jer se pokazuju točnijima i nema potrebe za više od toga.
  • Jedan dio koda prati stanje naizmjenične struje prema vrijednostima koje dolaze iz elektronskog mikrofona koji se nalazi iznad otvora naizmjenične struje.
  • Drugi dio je praćenje očitanja koja dolaze sa temperaturnih senzora, te razlika koju je upotreba definirala kao prihvatljivu za uključivanje izmjenične struje i otvaranje prozora umjesto toga. Tražimo trenutak kada se temperature dovoljno približe.
  • Treći dio je praćenje kretanja u prostoriji. Ako ne otkrije veće pomake (način provjere važnosti bit će objašnjen uskoro) u vremenskom okviru koji je definirao korisnik, a stanje izmjenične struje je UKLJUČENO, korisniku će se poslati obavijest.
  • Obavijesti se obrađuju pokretanjem IFTTT webhookova koji šalju unaprijed definirane poruke korisniku putem Facebook Messengera
  • Zadnji dio vrijedan pažnje je dio koji obrađuje Blynk sučelje, kako preuzimanjem promjena koje korisnik unosi u varijable, tako i na drugi način - prebacivanjem podataka na Blynk sučelje kako bi ih korisnik mogao vidjeti.

Korak 2: Mnogo više detalja - senzori

Mnogo više detalja - senzori
Mnogo više detalja - senzori
Mnogo više detalja - senzori
Mnogo više detalja - senzori

Počnimo.

Prvo, moramo biti sigurni da oba naša DHT senzora očitavaju istu temperaturu kada su postavljeni na isto mjesto. Za to smo napravili jednostavnu skicu priloženu na kraju ovog odjeljka (CompareSensors.ino). Povežite oba senzora i provjerite jeste li promijenili vrstu DHT senzora na skici u skladu s onima koje imate (zadani je jedan DHT11 i jedan DHT22, tako da možete vidjeti kako se s oba postupa u kodu). Otvorite serijski monitor i ostavite ih neko vrijeme da rade, posebno ako koristite DHT11 senzore, jer im je potrebno više vremena da se prilagode promjenama temperature.

Uočite razliku između senzora i umetnite je kasnije u glavni kod u varijabli "offset".

Položaj senzora:

Jedan DHT senzor trebao bi biti postavljen na vanjski zid kuće, pa ga spojite na neke dugačke kabele, dovoljno dugačke da dopiru do vašeg ESP8266 unutar prostorije, i postavite ga vani (lako se može provesti kroz prozor). Drugi DHT senzor treba postaviti na matičnu ploču, unutar prostorije u kojoj koristimo izmjenični napon.

Električni mikrofon također treba spojiti na dovoljno dugačke kabele i postaviti na mjesto gdje će vjetar koji izlazi iz izmjenične struje udariti u njega.

Konačno, PIR senzor treba postaviti na mjesto okrenuto prema sredini prostorije kako bi zabilježio svaki pokret u prostoriji. Imajte na umu da senzor ima dva mala dugmeta, jedno kontrolira kašnjenje (koliko dugo se VISOKI signal detekcije pokreta drži VISOKIM), a drugo kontrolira osjetljivost (vidi sliku).

Možda ćete se morati poigrati s njim dok ne pročitate čitanje kojim ste zadovoljni. Za nas je najbolji rezultat bilo kašnjenje skroz lijevo (najniža vrijednost) i osjetljivost desno u sredini. Kôd pruža serijske otiske koji uključuju očitanja sa svih senzora koji će znatno olakšati otklanjanje grešaka u takvim problemima.

Povezivanje senzora:

PIN brojevi koje smo koristili su sljedeći (i mogu se promijeniti u glavnom kodu):

Vanjski DHT senzor - D2.

Unutrašnji DHT senzor - D3.

Electret - A0 (analogni pin).

PIR - D5.

Sheme za povezivanje svake od njih lako se mogu pronaći pomoću google pretraživanja slika s nečim poput "PIR otpornik Arduino shema" (ne bismo ih željeli kopirati ovdje i prelaziti bilo koje autorske linije:)).

Priložili smo i sliku naše matične ploče, vjerovatno je teško zaista pratiti veze, ali to može dati dobar osjećaj.

Kao što vjerojatno znate, stvari rijetko ako ikad funkcioniraju kad ih prvi put povežemo. Zato smo napravili funkciju koja ispisuje očitanja sa senzora na način koji je jednostavan za čitanje, tako da možete otkloniti greške u njihovom načinu rada. Ako ne želite da se kôd pokuša spojiti na Blynk tijekom otklanjanja pogrešaka, samo komentirajte "Blynk.begin (auth, ssid, pass);" iz dijela za postavljanje koda, pokrenite ga i otvorite serijski monitor da vidite otiske. Priložili smo i sliku otisaka.

Korak 3: Mnogo više detalja - IFTTT sekvenca

U mnogo više detalja - IFTTT sekvenca
U mnogo više detalja - IFTTT sekvenca

Stoga želimo biti obaviješteni u dva scenarija:

1. Spoljna temperatura je dovoljno blizu onoj koju imamo unutra kada AC radi.

2. Napustili smo sobu na duži vremenski period i klima uređaj i dalje radi.

IFTTT nam omogućava da na vrlo jednostavan način povežemo mnoge različite usluge koje obično nisu u interakciji. U našem slučaju, omogućuje nam vrlo jednostavno slanje obavijesti putem mnogih usluga. Odabrali smo Facebook Messanger, ali nakon što ga počnete raditi s Facebook Messangerom, moći ćete ga jednostavno promijeniti na bilo koju drugu uslugu po vašem izboru.

Proces:

Na IFTTT web stranici kliknite na svoje korisničko ime (gornji desni kut), a zatim "New Applet" odaberite "Webhooks" kao okidač ("this") i odaberite "Receive web request". Postavite naziv događaja (npr. Prazna_soba).

Za pokrenutu uslugu, radnju ("ono"), odaberite Facebook Messenger> Pošalji poruku i upišite poruku koju želite primiti kada se ovaj događaj dogodi (npr. "Zdravo, izgleda da ste zaboravili klima uređaj na:).

Dok smo ovdje, trebali biste pronaći i svoj tajni ključ koji ćete morati umetnuti na odgovarajuće mjesto u kodu.

Da biste pronašli svoj tajni ključ, idite na https://ifttt.com/services/maker_webhooks/settings Tamo ćete pronaći URL sa svojim ključem u sljedećem formatu:

Korak 4: Mnogo više detalja - Blynk

Image
Image
U mnogo više detalja - Blynk
U mnogo više detalja - Blynk
U mnogo više detalja - Blynk
U mnogo više detalja - Blynk

Takođe želimo interfejs koji će imati sledeće karakteristike:

1. Mogućnost postavljanja koliko dugo bi soba trebala biti prazna dok radi klima uređaj prije nego što nas obavijeste

2. Sposobnost izbora koliko bi spoljna temperatura trebala biti blizu unutrašnje.

3. Prikaz očitavanja sa senzora temperature

4. LED dioda koja nam govori o stanju AC (uključeno/isključeno).

5. I što je najvažnije, ekran koji prikazuje koliko smo uštedjeli $$$ i energije.

Kako stvoriti Blynk sučelje:

Ako još nemate aplikaciju Blynk, preuzmite je na telefon. Kada otvorite aplikaciju i kreirate novi projekt, svakako odaberite odgovarajući uređaj (npr. ESP8266).

Dobit ćete e -poruku s tokenom za provjeru autentičnosti, koju ćete umetnuti u kôd na odgovarajuće mjesto (možete ga i sami kasnije poslati iz postavki ako ga izgubite).

Postavite nove widgete na ekran, kliknite znak + pri vrhu. Odaberite widgete, a zatim kliknite na widget za unos njegovih postavki. Za referencu smo dodali slike postavki za sve widgete koje smo koristili.

Nakon što završite s aplikacijom i kada je na kraju poželite koristiti, jednostavno kliknite ikonu "play" u gornjem desnom kutu da biste pokrenuli aplikaciju Blynk. Moći ćete i vidjeti kada se vaš ESP8266 poveže.

Napomena - gumb "ažuriraj" koristi se za dohvaćanje temperature i stanja izmjenične struje koje možemo vidjeti u aplikaciji. Nije potrebno pri promjeni postavki (poput temperaturne razlike) jer se automatski guraju.

Korak 5: Kôd

Uložili smo mnogo napora da dokumentiramo svaki dio koda na način koji bi olakšao njegovo razumijevanje.

Dijelove koda koje morate promijeniti prije korištenja (kao ključ za autorizaciju za Blynk, vaš Wi -Fi SSID i lozinka itd …) slijedi komentar //* promjena* tako da ih možete lako potražiti.

Morat ćete imati knjižnice korištene u kodu, možete ih instalirati putem Arduino IDE -a klikom na Sketch> Include Libraries> Manage Libraries. Tamo možete tražiti naziv biblioteke i instalirati ga. Također, obavezno postavite generic8266_ifttt.h datoteku na isto mjesto kao i ACsaver.ino.

Jedan dio koda koji ćemo ovdje objasniti jer nismo htjeli zakrčiti kôd, je način na koji odlučujemo kada ćemo promijeniti stanje AC -a sa uključenog na isključeno, i stanje prostorije sa praznog na neprazno.

Čitamo sa senzora svake 3 sekunde, ali kako senzori nisu 100% tačni, ne želimo da jedno očitavanje promijeni stanje za koje vjerujemo da je sada u prostoriji. Da bismo riješili ovo, ono što kôd radi, je da imamo brojač koji ++ kada dobijemo očitanje u korist "AC je uključen", i - u suprotnom. Zatim, kada dođemo do vrijednosti definirane u SWITCHAFTER (zadano na 4), promijenimo stanje u "AC je uključen", kada dođemo u -SWITCHAFTER (negativna ista vrijednost), promijenimo stanje u "AC je isključen ".

Utjecaj na vrijeme potrebno za prebacivanje je zanemariv, i smatramo da je vrlo pouzdan u otkrivanju samo ispravnih promjena.

Korak 6: Sastavite sve zajedno

U redu, dakle, svi senzori su na mjestu i rade ispravno. Blynk interfejs je podešen (sa ispravnim virtuelnim pinovima!). IFTTT događaji čekaju naš okidač.

Umetnuli ste tajni ključ IFTTT u kôd, ključ za autorizaciju od Blynka, SSID vašeg WiFi -a i lozinku, pa ste čak provjerili jesu li DHT senzori kalibrirani, a ako nisu, promijenili su pomak u skladu s tim (na primjer, izvan DHT -a očitao je temperature veće za 1 stepen Celzijusa nego što bi trebao imati, pa smo koristili pomak = -1).

Provjerite je li WiFi uključen, pokrenite aplikaciju Blynk i učitajte kôd na svoj ESP8266.

To je to. Ako je sve učinjeno ispravno, sada se možete igrati i vidjeti to na djelu.

A ako samo želite vidjeti to na djelu bez problema sve to spojiti … Pa … Pomaknite se gore i pogledajte video. (Gledajte sa prevodom! Nema glasa)

Korak 7: Misli

Ovdje smo imali dva glavna izazova.

Prije svega, kako znamo da je AC uključen? Pokušali smo koristiti IC prijemnik koji će "slušati" komunikaciju između AC -a i daljinskog upravljača. Činilo se da je previše komplicirano jer su podaci bili vrlo neuredni i nisu bili dovoljno konzistentni da bi se razumjelo "u redu, ovo je signal ON". Stoga smo tražili druge načine. Jedna je ideja bila koristiti mali propeler koji će stvarati malu struju pri kretanju od vjetra izmjenične struje, druga ideja koju smo pokušali bila je da imamo mjerač akcelerometra koji mjeri kut rotirajućih krila na otvorima za zračenje i detektira njihovo kretanje iz položaja OFF.

Na kraju smo shvatili da je to najjednostavniji način pomoću električnog mikrofona, koji vrlo pouzdano detektira vjetar koji izlazi iz izmjenične struje

Uključivanje DHT senzora bilo je jednostavno;), ali tek kasnije smo shvatili da je jedan od njih malo udaljen od stvarne temperature. PIR senzor je također zahtijevao neka podešavanja, kako je prethodno opisano.

Drugi izazov bio je učiniti cijelo rješenje jednostavnim i pouzdanim. U smislu da bi to trebalo biti neugodno za upotrebu, trebalo bi samo biti tu i gurnuti kad vam zatreba. Inače bismo ga sami vjerojatno prestali koristiti.

Stoga smo malo razmislili o tome šta bi trebalo biti u Blynk interfejsu i pokušali da učinimo kod što pouzdanijim, vodeći računa o svakom rubnom slučaju do kojeg možemo doći.

Još jedan izazov, koji nismo uspjeli riješiti u vrijeme pisanja ovog uputstva, bio je dodavanje IC blastera koji će nam omogućiti da isključimo AC iz Blynk interfejsa. Koja je svrha znati da ste zaboravili uključiti AC bez mogućnosti isključivanja? (pa … mogli biste nekoga pitati je li kod kuće).

Nažalost, imali smo poteškoća pri reprodukciji signala koje smo snimili s daljinskog upravljača, natrag u AC pomoću ESP8266. Uspjeli smo kontrolirati AC pomoću Arduino Uno -a, slijedeći ove upute:

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

Uskoro ćemo pokušati ponovo i ažurirati instrukcije svojim nalazima, a nadamo se i uputama kako dodati tu mogućnost.

Još jedno ograničenje koje vidimo je činjenica da moramo spojiti senzor izvan prozora, što u određenim situacijama možda neće biti moguće, a ujedno znači i dugi kabel koji treba izaći van. Rješenje može biti preuzimanje vremenskih podataka vaše lokacije s interneta. Također, elektronski senzor koji ide iz AC -a može se zamijeniti IC prijemnikom koji smo gore opisali, za modele AC -a sa poznatijim ili lakšim dekodiranjem IC kodova.

Projekat se može produžiti na mnogo načina. Kao što je gore rečeno, pokušat ćemo pronaći način da uključimo IC kontrolu nad AC -om, što tada otvara potpuno novi svijet mogućnosti za uključivanje i isključivanje AC -a sa bilo kojeg mjesta u svijetu, ili postavljanje vremena uključivanja i isključivanja putem Blynka aplikaciju, kao još jedan primjer. Nakon što smo shvatili tehničke IC probleme, dodavanje koda je prilično jednostavno i jasno i ne bi trebalo dugo trajati.

Ako zaista želimo sanjati veliko … Projekt se može pretvoriti u potpuni modul koji svaki AC čini pametnim AC -om. I ne treba mnogo više od nas. Još više koda, veća upotreba IC -a, a ako želimo da se on masovno proizvodi, možda se potrudimo da dohvatimo vremenske podatke prema lokaciji, onda možemo cijelu stvar staviti u malu kutiju.

Zaista, sve što nam treba je temperaturni senzor za unutrašnju temperaturu, PIR senzor za detekciju kretanja, IR LED kao blaster i IC prijemnik za "osluškivanje" komunikacije između AC -a i daljinskog upravljača koji koristimo.

Blynk pruža sve mogućnosti koje su nam potrebne za kontrolu čarobne kutije, na vrlo jednostavan i pouzdan način.

Izrada tako cjelovitog projekta trajat će neko vrijeme, posebno sa stanovišta da bude dovoljno svestran da se sam konfigurira i automatski detektira i razumije većinu AC -ova.

Ali ako to učinite sami, pa, ako to radite u slobodno vrijeme, otprilike ne bi trebalo trajati više od sedmice ili dvije. Ovisi o tome koliko imate slobodnog vremena … Glavni izazov ovdje bi bio spremanje svih različitih signala koje daljinski upravljač može poslati i njihovo razumijevanje. (Iako bi samo njihovo ponavljanje trebalo biti još lakše).

Preporučuje se: