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: Прожорливый Кракен ► 3 Прохождение Gears of War 2 (Xbox 360) 2024, Studeni
Anonim
Image
Image

Mnogi od nas, osobito 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 uspoređivat će unutarnju temperaturu s vanjskom, a kad se dovoljno približe, obavijestit će nas putem Facebook Messangera 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čiti klima uređaj i napustili sobu.

Korak 1: Malo više detalja

Prikupljamo podatke s 4 različita senzora:

  • Dva DHT senzora prikupljaju temperaturu unutar kuće i izvan nje.
  • Jedan PIR senzor detektira 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 na 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 definirano razdoblje.

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

Potrebni dijelovi:

  1. WiFi modul - ESP8266
  2. PIR senzor.
  3. Senzori temperature DHT11/DHT22 x2.
  4. 10k/4,7k otpornika (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 pokazuju da su točniji i nema potrebe za više od toga.
  • Jedan dio koda prati stanje izmjenične struje prema vrijednostima koje dolaze iz elektronskog mikrofona koji se nalazi iznad otvora izmjeničnog napona.
  • Drugi dio je praćenje očitanja koja dolaze s temperaturnih senzora, a razlika je definirana kao prihvatljiva za uključivanje izmjeničnog napona 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 web -dohvata koji šalju unaprijed definirane poruke korisniku putem Facebook Messengera
  • Posljednji dio vrijedan pažnje je dio koji obrađuje Blynk sučelje, kako dobivanjem promjena koje korisnik unosi u varijable, tako i na drugi način - guranjem podataka na Blynk sučelje kako bi ih korisnik mogao vidjeti.

Korak 2: Mnogo više detalja - senzori

U mnogo više detalja - senzori
U mnogo više detalja - senzori
U mnogo više detalja - senzori
U mnogo više detalja - senzori

Počnimo.

Prvo, moramo se pobrinuti da oba naša DHT senzora očitaju istu temperaturu kada se postave na isto mjesto. Za to smo napravili jednostavnu skicu priloženu na kraju ovog odjeljka (CompareSensors.ino). Spojite oba senzora i provjerite jeste li promijenili vrstu DHT osjetnika 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 pustite ih da djeluju neko vrijeme, osobito ako koristite DHT11 senzore, jer im je potrebno dulje vrijeme 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 osjetnik 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 u prostoriji, i postavite ga vani (lako se može izvesti kroz prozor). Drugi DHT osjetnik trebao bi biti postavljen na ploču, u prostoriji u kojoj koristimo izmjenični napon.

Električni mikrofon također bi trebao biti spojen na dovoljno dugačke kabele i postavljen 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 gumba, jedan kontrolira kašnjenje (koliko dugo se VISOKI signal detekcije pokreta drži VISOKIM), a drugi kontrolira osjetljivost (vidi sliku).

Možda ćete se morati poigrati s njim dok ne pročitate čitanje čime 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 ispise koji uključuju očitanja sa svih senzora koji će uvelike olakšati otklanjanje pogrešaka u takvim problemima.

Spajanje senzora:

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

Vanjski DHT osjetnik - D2.

Unutar DHT osjetnika - 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 u stilu "sheme PIR otpornika Arduino" (ne bismo ih željeli kopirati ovdje i prelaziti bilo koje autorske linije:)).

Priložili smo i sliku naše ploče, vjerojatno je teško stvarno 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 jednostavan način za čitanje, tako da možete otkloniti pogreške na njihovom načinu rada. Ako ne želite da se kôd pokuša spojiti na Blynk tijekom ispravljanja pogrešaka, samo komentirajte "Blynk.begin (auth, ssid, pass);" iz dijela za postavljanje koda, pokrenite ga i otvorite serijski monitor kako biste vidjeli ispise. Priložili smo i sliku otisaka.

Korak 3: U mnogo više detalja - IFTTT niz

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

Stoga želimo biti obaviješteni u dva scenarija:

1. Vanjska temperatura dovoljno je blizu onoj koju imamo unutra s AC -om koji radi.

2. Napustili smo sobu na duže vrijeme, a klima uređaj i dalje radi.

IFTTT nam omogućuje povezivanje mnogo različitih usluga koje obično nisu u interakciji, na vrlo jednostavan način. 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.

Postupak:

Na web stranici IFTTT 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 radnju, radnju ("ono"), odaberite Facebook Messenger> Pošalji poruku i upišite poruku koju želite primiti kada se ovaj događaj dogodi (npr. "Bok, čini se 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 s ključem u sljedećem formatu:

Korak 4: Mnogo više detalja - Blynk

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

Također želimo sučelje koje će imati sljedeće značajke:

1. Sposobnost postavljanja koliko dugo bi soba trebala biti prazna dok AC radi prije nego što nas obavijeste

2. Sposobnost odabira koliko bi vanjska temperatura trebala biti blizu unutarnje.

3. Zaslon za očitanja osjetnika temperature

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

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

Kako stvoriti Blynk sučelje:

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

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

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

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

Napomena - gumb "ažuriraj" koristi se za dohvaćanje temperature i stanja izmjeničnog napona 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 zaporka 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 knjižnice i instalirati ga. Također, svakako postavite datoteku generic8266_ifttt.h na isto mjesto kao i ACsaver.ino.

Jedan dio koda koji ćemo ovdje objasniti jer nismo htjeli zatrpati kôd, je način na koji odlučujemo kada ćemo promijeniti stanje izmjeničnog napona s uključenog na isključeno, a stanje prostorije s praznog na neprazno.

Čitamo sa senzora svake 3 sekunde, ali kako senzori nisu 100% točni, ne želimo da niti jedno očitanje promijeni stanje za koje vjerujemo da je sada u prostoriji. Da bismo to riješili, kôd radi, imamo li brojač koji ++ kada dobijemo očitanje u korist "AC je uključen", i - u protivnom. 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, a smatramo ga vrlo pouzdanim u otkrivanju samo ispravnih promjena.

Korak 6: Sve spojite

U redu, dakle, svi senzori su na mjestu i rade ispravno. Blynk sučelje je postavljeno (s ispravnim virtualnim pinovima!). IFTTT događaji čekaju naš okidač.

Umetnuli ste tajni ključ IFTTT u kôd, ključ za autorizaciju s 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 stupanj Celzija nego što bi trebao imati, pa smo upotrijebili 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 poigrati i vidjeti na djelu.

A ako ga samo želite vidjeti na djelu bez muke da sve spojite … Pa … Pomaknite se gore i pogledajte video. (Gledajte sa titlovima! 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 najjednostavniji način to učiniti s elektronskim mikrofonom, koji vrlo pouzdano detektira vjetar koji izlazi iz izmjenične struje

Pokretanje DHT senzora bilo je jednostavno;), ali tek kasnije smo shvatili da je jedan od njih malo udaljen od stvarne temperature. PIR osjetnik također je zahtijevao neke prilagodbe, kao što je prethodno opisano.

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

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

Drugi izazov, koji nismo uspjeli riješiti u vrijeme pisanja ovog uputstva, bio je dodati IR blaster koji će nam omogućiti isključivanje AC -a iz Blynk sučelja. 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 ponovnom reproduciranju signala koje smo snimili s daljinskog upravljača, natrag u AC pomoću ESP8266. Uspjeli smo kontrolirati AC pomoću Arduino Uno, slijedeći ove upute:

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

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

Drugo 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 da je potrebno izvući dugačak kabel. Rješenje bi moglo biti dohvaćanje vremenskih podataka vaše lokacije s interneta. Također, elektronski senzor koji se napaja iz izmjenične struje može se zamijeniti IC prijamnikom koji smo gore opisali, za modele izmjeničnog napona s poznatijim ili lakšim dekodiranjem IC kodova.

Projekt 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 izmjeničnom strujom, koja tada otvara potpuno novi svijet mogućnosti za uključivanje i isključivanje izmjenične struje s bilo kojeg mjesta u svijetu, ili postavljanje vremena uključivanja i isključivanja putem Blynka kao drugi primjer. Nakon što smo shvatili tehničke teškoće s IR -om, dodavanje koda prilično je jednostavno i jasno i ne bi trebalo dugo trajati.

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

Zaista, sve što nam treba je temperaturni senzor za unutarnju temperaturu, PIR senzor za detekciju kretanja, i IR LED kao blaster, te IR 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, osobito sa stajališ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 svoje slobodno vrijeme, ne bismo trebali uzeti u obzir više od tjedan ili dva. 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čeni: