Turinys:

IDC2018IOT Pasakykite man, kada išjungti AC: 7 žingsniai
IDC2018IOT Pasakykite man, kada išjungti AC: 7 žingsniai

Video: IDC2018IOT Pasakykite man, kada išjungti AC: 7 žingsniai

Video: IDC2018IOT Pasakykite man, kada išjungti AC: 7 žingsniai
Video: ТАКОЙ РЫНОК ВИЖУ ВПЕРВЫЕ!! ОДЕССА ПРИВОЗ. САМЫЙ БЫСТРЫЙ РЕЦЕПТ САЛА "ОЙ" 2024, Liepa
Anonim
Image
Image

Daugelis iš mūsų, ypač vasarą, beveik nuolatos naudojasi kintamosios srovės prietaisu, nors iš tikrųjų tam tikru paros metu galime tiesiog atidaryti langą ir pasimėgauti maloniu vėju. Be to, mes asmeniškai pastebėjome, kad kartais net išeidami iš kambario pamirštame išjungti AC, švaistydami energiją ir pinigus.

Mūsų sukurtas sprendimas palygins vidinę temperatūrą su išorine, o kai jos bus pakankamai arti, pranešė mums per „Facebook Messanger“, kad atėjo laikas atidaryti langą ir leisti AC pailsėti.

Be to, padarysime kitą mechanizmą, kad praneštų mums, kai pamirštame AC ir išėjome iš kambario.

1 žingsnis: šiek tiek daugiau informacijos

Mes renkame duomenis iš 4 skirtingų jutiklių:

  • Du DHT jutikliai renka temperatūrą namuose ir už jos ribų.
  • Vienas PIR jutiklis aptinka judėjimą patalpoje.
  • Vienas „Electret“mikrofonas naudojamas vėjui iš kintamosios srovės angos aptikti - paprastas ir patikimas būdas nustatyti, ar kintamosios srovės įjungta.

Duomenys, gaunami iš jutiklių, bus apdorojami ir siunčiami į „Blynk“, kur jie bus rodomi mūsų sukurtoje sąsajoje. Be to, suaktyvinsime IFTTT įvykius, norėdami pranešti vartotojui, kada jis gali atidaryti langą vietoj kintamosios srovės, ir kada jis pamiršo įjungti kintamąją ir išėjo iš kambario iš anksto nustatytam laikui.

„Blynk“sąsaja taip pat suteiks mums galimybę pakeisti atitinkamus nustatymus pagal vartotojo pageidavimus, kaip vėliau aptarsime išsamiau.

Reikalingos dalys:

  1. „WiFi“modulis - ESP8266
  2. PIR jutiklis.
  3. DHT11/DHT22 temperatūros jutikliai x2.
  4. 10k/4,7k rezistoriai (DHT11 - 4,7k, DHT22 - 10k, PIR - 10k).
  5. Elektretinis mikrofonas.
  6. Džemperiai.
  7. Ilgi kabeliai (telefono laidas puikiai atliks darbą).

Pabaigoje pridedamas visas projekto kodas su viso kodo komentarais.

Logiškai mąstant, jis turi keletą skirtingų funkcijų sluoksnių:

  • Duomenys iš jutiklių skaitomi kas 3 sekundes, nes jie yra tikslesni ir daugiau nereikia.
  • Viena kodo dalis yra kintamosios srovės būsenos stebėjimas pagal vertes, gaunamas iš elektreto mikrofono, esančio virš kintamosios srovės angos.
  • Kita dalis yra sekti temperatūros jutiklių rodmenis ir skirtumą, kurį naudojimo būdas apibrėžė kaip priimtiną kintamosios srovės įjungimui ir lango atidarymui. Ieškome to momento, kai temperatūra priartės pakankamai arti.
  • Trečioji dalis - judėjimo kambaryje stebėjimas. Jei jis nenustato esminių judesių (kaip greitai patikrinti pagrindinį, paaiškės) vartotojo nustatytą laikotarpį ir kintamosios srovės būsena įjungta, vartotojui bus išsiųstas pranešimas.
  • Pranešimai tvarkomi suaktyvinant IFTTT žiniatinklio kabliukus, kurie naudotojui siunčia iš anksto nustatytus pranešimus per „Facebook Messenger“
  • Paskutinė dalis, į kurią verta atkreipti dėmesį, yra ta dalis, kuri tvarko „Blynk“sąsają, gaudama kintamųjų pakeitimus, kuriuos atlieka vartotojas, ir, kita vertus, perkelia duomenis į „Blynk“sąsają, kad vartotojas galėtų juos pamatyti.

2 žingsnis: daug daugiau informacijos - jutikliai

Daug daugiau informacijos - jutikliai
Daug daugiau informacijos - jutikliai
Daug daugiau informacijos - jutikliai
Daug daugiau informacijos - jutikliai

Pradėkime.

Pirma, turime įsitikinti, kad abu mūsų DHT jutikliai nuskaito tą pačią temperatūrą, kai jie yra toje pačioje vietoje. Norėdami tai padaryti, šio skyriaus pabaigoje pridėjome paprastą eskizą („CompareSensors.ino“). Prijunkite abu jutiklius ir būtinai pakeiskite eskizo DHT jutiklių tipą pagal tuos, kuriuos turite (numatytasis yra vienas DHT11 ir vienas DHT22, kad galėtumėte pamatyti, kaip abu sprendžiami kode). Atidarykite serijinį monitorių ir leiskite jiems kurį laiką veikti, ypač jei naudojate DHT11 jutiklius, nes jie paprastai užtrunka ilgiau, kol prisitaiko prie temperatūros pokyčių.

Atkreipkite dėmesį į jutiklių skirtumą ir vėliau įterpkite jį į pagrindinį kodą kintamajame „poslinkis“.

Jutiklių išdėstymas:

Vienas DHT jutiklis turėtų būti dedamas ant išorinės namo sienos, todėl prijunkite jį prie ilgų kabelių, pakankamai ilgų, kad pasiektų jūsų ESP8266 kambario viduje, ir padėkite jį lauke (tai galima padaryti lengvai per langą). Kitas DHT jutiklis turėtų būti dedamas ant duonos lentos, patalpos, kurioje mes naudojame AC, viduje.

Elektreto mikrofonas taip pat turėtų būti prijungtas prie pakankamai ilgų laidų ir pastatytas ten, kur iš kintamosios srovės sklindantis vėjas jį paspaus.

Galiausiai PIR jutiklis turėtų būti pastatytas vietoje, nukreiptoje į kambario centrą, kad jis užfiksuotų kiekvieną kambario judesį. Atkreipkite dėmesį, kad jutiklis turi dvi mažas rankenėles, kurių viena valdo uždelsimą (kiek laiko HIGH signalas judesio aptikimui laikomas HIGH), o kitas - jautrumą (žr. Paveikslėlį).

Jums gali tekti žaisti su juo, kol perskaitysite, kas jus tenkina. Mums geriausias rezultatas buvo vėlavimas iki kairės (mažiausia vertė) ir jautrumas tiesiai viduryje. Kodas pateikia serijinius spaudinius, kuriuose yra visų jutiklių rodmenys, kurie palengvins tokių problemų derinimą.

Jutiklių prijungimas:

Naudoti PIN kodai yra tokie (ir gali būti pakeisti pagrindiniame kode):

Išorinis DHT jutiklis - D2.

Viduje DHT jutiklis - D3.

Elektretas - A0 (analoginis kaištis).

PIR - D5.

Kiekvieno iš jų prijungimo schemas galima lengvai rasti naudojant „Google“vaizdų paiešką ir kažką panašaus į „PIR rezistorius Arduino schematiškas“(nenorėtume jų čia kopijuoti ir kirsti autorių teisių linijų:)).

Mes taip pat pridėjome savo duonos lentos paveikslėlį, tikriausiai sunku sekti ryšius, tačiau tai gali suteikti gerą jausmą.

Kaip jūs tikriausiai žinote, viskas retai, jei kada nors veikia, pirmą kartą juos sujungus. Štai kodėl mes sukūrėme funkciją, kuri lengvai nuskaito jutiklių rodmenis, kad galėtumėte juos derinti. Jei nenorite, kad derinant derėtų kodas prisijungti prie „Blynk“, tiesiog pakomentuokite „Blynk.begin (auth, ssid, pass);“iš kodo sąrankos dalies paleiskite jį ir atidarykite serijinį monitorių, kad pamatytumėte atspaudus. Mes taip pat pridėjome spaudinių nuotrauką.

3 žingsnis: daug daugiau informacijos - IFTTT seka

Daug daugiau informacijos - IFTTT seka
Daug daugiau informacijos - IFTTT seka

Taigi norime gauti pranešimą dviem atvejais:

1. Išorinė temperatūra yra pakankamai arti tos, kurią turime viduje, kai veikia kintamoji srovė.

2. Mes palikome kambarį ilgesniam laikui, o AC vis dar veikia.

IFTTT leidžia mums labai paprastai sujungti daugybę skirtingų paslaugų, kurios paprastai nesąveikauja. Mūsų atveju tai leidžia mums labai lengvai siųsti pranešimus per daugelį paslaugų. Mes pasirinkome „Facebook Messanger“, tačiau, pradėję dirbti su „Facebook Messanger“, galėsite lengvai jį pakeisti į bet kurią kitą pasirinktą paslaugą.

Procesas:

IFTTT svetainėje spustelėkite savo vartotojo vardą (viršutiniame dešiniajame kampe), tada „New Applet“pasirinkite „Webhooks“kaip aktyviklį („šis“) ir pasirinkite „Gauti žiniatinklio užklausą“. Nustatykite įvykio pavadinimą (pvz., Tuščias kambarys).

Norėdami suaktyvinti paslaugą, atlikite veiksmą („tą“), pasirinkite „Facebook Messenger“> Siųsti pranešimą ir įveskite pranešimą, kurį norite gauti, kai įvyks šis įvykis (pvz., „Sveiki, atrodo, kad pamiršote AC:).

Kol esame čia, taip pat turėtumėte rasti savo slaptą raktą, kurį turėsite įterpti į atitinkamą kodo vietą.

Norėdami rasti slaptą raktą, eikite į https://ifttt.com/services/maker_webhooks/settings. Čia rasite URL su raktu tokiu formatu:

4 žingsnis: daug daugiau informacijos - „Blynk“

Image
Image
Daug daugiau informacijos - Blynk
Daug daugiau informacijos - Blynk
Daug daugiau informacijos - Blynk
Daug daugiau informacijos - Blynk

Mes taip pat norime sąsajos, kuri turėtų šias funkcijas:

1. Galimybė nustatyti, kiek laiko patalpa turi būti tuščia, kai veikia kintamoji srovė, kol gausime pranešimą

2. Galimybė pasirinkti, kiek artima lauko temperatūra turi būti vidui.

3. Temperatūros jutiklių rodmenų ekranas

4. Vadovas, nurodantis AC būseną (įjungta/išjungta).

5. Ir svarbiausia, ekranas, rodantis, kiek sutaupėme $$$ ir energijos.

Kaip sukurti „Blynk“sąsają:

Jei dar neturite „Blynk“programos, atsisiųskite ją į savo telefoną. Kai atidarote programą ir sukuriate naują projektą, būtinai pasirinkite tinkamą įrenginį (pvz., ESP8266).

Gausite el. Laišką su autentifikavimo prieigos raktu, kurį įterpsite į atitinkamą vietą (jei pamesite, vėliau galėsite persiųsti jį sau iš nustatymų).

Įdėkite naujus valdiklius į savo ekraną, spustelėkite + ženklą viršuje. Pasirinkite valdiklius, tada spustelėkite valdiklį, kad įvestumėte jo nustatymus. Mes pridėjome visų naudojamų valdiklių nustatymų nuotraukas.

Baigę naudoti programą ir kai galiausiai norite ją naudoti, tiesiog spustelėkite „žaisti“piktogramą viršutiniame dešiniajame kampe, kad paleistumėte „Blynk“programą. Taip pat galėsite pamatyti, kada prisijungs jūsų ESP8266.

Pastaba - mygtukas „atnaujinti“naudojamas norint gauti kintamosios srovės temperatūrą ir būseną, kurią galime pamatyti programoje. Tai nebūtina keičiant nustatymus (pvz., Temperatūros skirtumą), nes jie automatiškai stumiami.

5 žingsnis: Kodas

Mes labai stengėmės dokumentuoti kiekvieną kodo dalį taip, kad būtų kuo lengviau ją suprasti.

Prie kodo dalių, kurias turite pakeisti prieš naudodami (kaip „Blynk“autentifikavimo raktą, jūsų „Wi -Fi“SSID ir slaptažodį ir tt), seka komentaras //* pakeisti*, kad galėtumėte lengvai jų ieškoti.

Jums reikės turėti kode naudotas bibliotekas, jas galite įdiegti naudodami „Arduino IDE“spustelėdami Eskizas> Įtraukti bibliotekas> Tvarkyti bibliotekas. Ten galite ieškoti bibliotekos pavadinimo ir jį įdiegti. Be to, būtinai įdėkite generic8266_ifttt.h failą į tą pačią vietą kaip ir ACsaver.ino.

Viena kodo dalis, kurią mes čia paaiškinsime, nes nenorėjome perkrauti kodo, yra tai, kaip mes nusprendžiame, kada pakeisti kintamosios srovės būseną iš įjungimo į išjungimą, o kambario būseną - iš tuščios į tuščią.

Mes skaitome iš jutiklių kas 3 sekundes, tačiau kadangi jutikliai nėra 100% tikslūs, nenorime, kad vienas skaitymas pakeistų būseną, kuri, mūsų manymu, dabar yra kambaryje. Kad tai išspręstume, kodas veikia, jei turime skaitiklį, kurį ++, kai gauname rodmenį „AC įjungta“, ir - kitaip. Tada, kai pasiekiame SWITCHAFTER nustatytą vertę (numatytoji reikšmė yra 4), būseną pakeičiame į „AC yra įjungta“, o kai pasiekiame –SWITCHAFTER (neigiama ta pati vertė), būseną pakeičiame į „AC is off“.

Poveikis perjungimo laikui yra nereikšmingas, ir mes manome, kad jis yra labai patikimas nustatant tik teisingus pakeitimus.

6 žingsnis: sudėkite viską kartu

Gerai, todėl visi jutikliai yra vietoje ir veikia tinkamai. „Blynk“sąsaja nustatyta (su tinkamais virtualiais kaiščiais!). Ir IFTTT įvykiai laukia mūsų trigerio.

Jūs įterpėte IFTTT slaptąjį raktą į kodą, „Blynk“autentifikavimo raktą, „WiFi“SSID ir slaptažodį ir netgi patikrinote, ar DHT jutikliai yra sukalibruoti, o jei ne, atitinkamai pakeitėte poslinkį (pvz. lauke DHT skaitė 1 laipsnio Celsijaus temperatūrą aukštesnę nei jis turėtų turėti, todėl mes naudojome poslinkį = -1).

Įsitikinkite, kad „WiFi“veikia, paleiskite „Blynk“programą ir įkelkite kodą į savo ESP8266.

Viskas. Jei viskas buvo padaryta teisingai, dabar galite žaisti ir pamatyti, kaip tai veikia.

Ir jei jūs tiesiog norite pamatyti, kaip tai veikia be jokių sunkumų viską sujungti … Na … Slinkite aukštyn ir žiūrėkite vaizdo įrašą. (Žiūrėkite su subtitrais! Nėra balso)

7 žingsnis: mintys

Čia turėjome du pagrindinius iššūkius.

Visų pirma, kaip mes žinome, kad AC yra įjungtas? Mes bandėme naudoti IR imtuvą, kuris „klausys“ryšio tarp kintamosios srovės ir nuotolinio valdymo pulto. Atrodė, kad tai per daug sudėtinga, nes duomenys buvo labai netvarkingi ir nepakankamai nuoseklūs, kad suprastų „gerai, tai yra įjungimo signalas“. Taigi mes ieškojome kitų būdų. Viena idėja buvo naudoti mažą sraigtą, kuris sukurs mažą srovę, kai juda nuo kintamosios srovės vėjo, kita idėja, kurią bandėme, buvo tai, kad akselerometras išmatuotų besisukančių sparnų kampą ant angų ir nustatytų jų judėjimą iš OFF padėties.

Galiausiai supratome, kad paprasčiausias būdas tai padaryti yra su elektreto mikrofonu, kuris labai patikimai nustato vėją, sklindantį iš kintamosios srovės.

DHT jutiklių veikimas buvo lengvas;), bet tik vėliau supratome, kad vienas iš jų buvo šiek tiek nukrypęs nuo tikrosios temperatūros. PIR jutiklį taip pat reikėjo sureguliuoti, kaip aprašyta anksčiau.

Antrasis iššūkis buvo padaryti visą sprendimą paprastą ir patikimą. Ta prasme, kad ja naudotis turėtų būti erzina, ji turėtų būti ten ir stumti, kai reikia. Priešingu atveju mes patys tikriausiai nustotume jį naudoti.

Taigi mes šiek tiek pagalvojome, kas turėtų būti „Blynk“sąsajoje, ir stengėmės, kad kodas būtų kuo patikimesnis, rūpindamiesi kiekvienu krašto atveju.

Kitas iššūkis, kurio mums nepavyko išspręsti rašant šią instrukciją, buvo pridėti IR blasterį, kuris leis mums išjungti AC iš „Blynk“sąsajos. Kokia prasmė žinoti, kad pamiršote įjungtą kintamosios srovės srovę be galimybės išjungti? (na … galite kažko paklausti, ar jie namie).

Deja, turėjome tam tikrų sunkumų atkurdami signalus, kuriuos įrašėme iš nuotolinio valdymo pulto, atgal į kintamąją srovę naudodami ESP8266. Mums pavyko valdyti AC naudojant „Arduino Uno“, vadovaudamiesi šia instrukcija:

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

Netrukus bandysime dar kartą ir atnaujinsime nurodymus savo išvadomis ir, tikiuosi, instrukcijas, kaip pridėti šią galimybę.

Kitas apribojimas, kurį matome, yra tai, kad turime prijungti jutiklį už lango, o tai gali būti neįmanoma tam tikrose situacijose, taip pat reiškia, kad reikia ilgo kabelio išeiti į lauką. Sprendimas gali būti jūsų interneto orų duomenų gavimas iš interneto. Be to, elektritų jutiklį, veikiantį iš kintamosios srovės, galima pakeisti aukščiau aprašytu IR imtuvu, kai naudojami kintamosios srovės modeliai su labiau žinomais ar lengvai iššifruojamais IR kodais.

Projektą galima pratęsti įvairiais būdais. Kaip minėta aukščiau, mes stengsimės rasti būdą, kaip įtraukti IR valdymą AC, o tai atveria visiškai naują galimybių pasaulį įjungti ir išjungti AC iš bet kurios pasaulio vietos arba nustatyti ir išjungti laiką per „Blynk“programa, kaip dar vienas pavyzdys. Išsiaiškinus techninius IR sunkumus, kodo pridėjimas yra gana paprastas ir paprastas ir neturėtų trukti ilgai.

Jei mes tikrai norime svajoti daug … Projektą galima paversti užbaigtu moduliu, kuris paverčia bet kokią kintamąsias kintamąja srove. Ir nereikia daug daugiau nei mums. Tiesiog daugiau kodo, daugiau IR panaudojimo ir, jei norime, kad jis būtų gaminamas masiškai, galbūt būtinai gaukite orų duomenis pagal vietą, tada galime viską sudėti į mažą dėžutę.

Tikrai viskas, ko mums reikia, yra vidinės temperatūros temperatūros jutiklis, PIR jutiklis judesiui aptikti, IR šviesos diodas kaip blasteris ir IR imtuvas, skirtas „klausytis“ryšio tarp mūsų naudojamo kintamosios srovės ir nuotolinio valdymo pulto.

„Blynk“suteikia visas galimybes, kurių mums reikia norint valdyti stebuklingą dėžę, labai paprastai ir patikimai.

Tokio išsamaus projekto sukūrimas užtruks šiek tiek laiko, ypač tuo požiūriu, kad jis būtų pakankamai universalus, kad galėtų sukonfigūruoti save ir automatiškai aptiktų bei suprastų daugumą kintamųjų.

Bet jei pasigaminsite sau, gerai, jei tai darysite laisvalaikiu, apytiksliai neturėtume užtrukti ilgiau nei savaitę ar dvi. Priklauso nuo to, kiek turite laisvo laiko … Pagrindinis iššūkis būtų išsaugoti visus skirtingus signalus, kuriuos gali siųsti kintamosios srovės nuotolinio valdymo pultas, ir juos suprasti. (Nors tiesiog juos pakartoti turėtų būti dar lengviau).

Rekomenduojamas: