Satura rādītājs:

IDC2018IOT Pastāsti, kad izslēgt maiņstrāvu: 7 soļi
IDC2018IOT Pastāsti, kad izslēgt maiņstrāvu: 7 soļi

Video: IDC2018IOT Pastāsti, kad izslēgt maiņstrāvu: 7 soļi

Video: IDC2018IOT Pastāsti, kad izslēgt maiņstrāvu: 7 soļi
Video: Вторая Ночь в квартире с полтергейстом 2024, Jūlijs
Anonim
Image
Image

Daudzi no mums, it īpaši vasaras laikā, gandrīz nepārtraukti izmanto maiņstrāvu, lai gan patiesībā noteiktā dienas laikā mēs varam vienkārši atvērt logu un baudīt jauku vēju. Turklāt mēs personīgi pamanījām, ka dažreiz pat aizmirstam izslēgt maiņstrāvu, izejot no istabas, tērējot enerģiju un naudu.

Risinājums, ko mēs izveidosim, salīdzinās iekšējo temperatūru ar ārpusi un, kad tie būs pietiekami tuvu, paziņos mums, izmantojot Facebook Messanger, ka ir pienācis laiks atvērt logu un dot maiņstrāvai atpūtu.

Mēs izveidosim arī citu mehānismu, lai mūs informētu, kad aizmirsām maiņstrāvu un atstājām telpu.

1. darbība: mazliet sīkāka informācija

Mēs apkopojam datus no 4 dažādiem sensoriem:

  • Divi DHT sensori savāc temperatūru mājā un ārpus mājas.
  • Viens PIR sensors nosaka kustību telpā.
  • Viens Electret mikrofons tiek izmantots, lai noteiktu vēju, kas izplūst no maiņstrāvas atveres - vienkāršs un uzticams veids, kā noteikt, vai maiņstrāva ir ieslēgta.

Dati, kas nāk no sensoriem, tiks apstrādāti un nosūtīti uz Blynk, kur tie tiks parādīti mūsu izveidotajā saskarnē. Mēs arī aktivizēsim IFTTT notikumus, lai informētu lietotāju, kad viņš var atvērt logu maiņstrāvas vietā un kad viņš aizmirsis maiņstrāvu un atstājis telpu uz iepriekš noteiktu laiku.

Blynk saskarne arī dos mums iespēju mainīt attiecīgos iestatījumus atbilstoši lietotāja vēlmēm, kā mēs sīkāk apspriedīsim vēlāk.

Nepieciešamās detaļas:

  1. WiFi modulis - ESP8266
  2. PIR sensors.
  3. DHT11/DHT22 temperatūras sensori x2.
  4. 10k/4,7k rezistori (DHT11 - 4,7k, DHT22 - 10k, PIR - 10k).
  5. Elektreta mikrofons.
  6. Džemperi.
  7. Garie kabeļi (telefona vads darīs lielisku darbu).

Pilns projekta kods ir pievienots beigās ar komentāriem visā kodā.

Loģiski, tam ir daži dažādi funkcionalitātes slāņi:

  • Dati no sensoriem tiek nolasīti 3 sekunžu intervālos, jo tie ir precīzāki, un nav nepieciešams vairāk.
  • Viena koda daļa ir maiņstrāvas stāvokļa izsekošana, izmantojot vērtības, kas nāk no elektreta mikrofona, kas novietots virs maiņstrāvas atveres.
  • Vēl viena daļa ir temperatūras sensoru rādījumu uzskaite un atšķirība, kā lietojums definēts kā pieņemams, lai ieslēgtu maiņstrāvu un atvērtu logu. Mēs meklējam brīdi, kad temperatūra kļūst pietiekami tuvu.
  • Trešā daļa ir kustības uzskaite telpā. Ja lietotājs noteiktu laika periodu neatklāj lielas kustības (drīzumā tiks izskaidrots veids, kā pārbaudīt galveno) un maiņstrāvas stāvoklis ir ieslēgts, lietotājam tiks nosūtīts paziņojums.
  • Paziņojumi tiek apstrādāti, aktivizējot IFTTT Webhooks, kas lietotājam nosūta iepriekš noteiktus ziņojumus, izmantojot Facebook Messenger
  • Pēdējā atzīmējamā daļa ir daļa, kas apstrādā Blynk saskarni, gan iegūstot izmaiņas, ko lietotājs veic mainīgajos, gan arī otrādi - pārsūtot datus uz Blynk saskarni, lai lietotājs to varētu redzēt.

2. solis: daudz vairāk informācijas - sensori

Daudz vairāk informācijas - sensori
Daudz vairāk informācijas - sensori
Daudz vairāk informācijas - sensori
Daudz vairāk informācijas - sensori

Sāksim.

Pirmkārt, mums jāpārliecinās, ka abi mūsu DHT sensori nolasa vienādu temperatūru, ja tie tiek novietoti vienā vietā. Šim nolūkam mēs izveidojām vienkāršu skici, kas pievienota šīs sadaļas beigās (CompareSensors.ino). Pievienojiet abus sensorus un noteikti mainiet skices DHT sensoru tipu atbilstoši tiem, kas jums ir (noklusējums ir viens DHT11 un viens DHT22, lai kodā varētu redzēt, kā tiek apstrādāti abi). Atveriet seriālo monitoru un ļaujiet tiem kādu laiku darboties, it īpaši, ja izmantojat DHT11 sensorus, jo tiem ir nepieciešams ilgāks laiks, lai pielāgotos temperatūras izmaiņām.

Ievērojiet atšķirību starp sensoriem un ievietojiet to vēlāk galvenajā kodā mainīgā "nobīde".

Sensora izvietojums:

Viens DHT sensors jānovieto uz mājas ārējās sienas, tāpēc pievienojiet to dažiem gariem kabeļiem, kas ir pietiekami gari, lai sasniegtu jūsu ESP8266 telpā, un novietojiet to ārpusē (to var viegli izdarīt caur logu). Otrs DHT sensors jānovieto uz maizes dēļa telpā, kurā izmantojam maiņstrāvu.

Elektreta mikrofons arī jāpievieno pietiekami gariem kabeļiem un jānovieto vietā, kur no maiņstrāvas nāk vējš.

Visbeidzot, PIR sensors jānovieto vietā, kas vērsta pret telpas centru, lai tas uztvertu visas kustības telpā. Ņemiet vērā, ka sensoram ir divas mazas pogas, no kurām viena kontrolē aizkavi (cik ilgi kustības noteikšanas HIGH signāls tiek turēts HIGH), bet otra - jutību (skat. Attēlu).

Jums, iespējams, vajadzēs ar to spēlēties, līdz jūs lasīsit, kas jūs apmierina. Mums labākais rezultāts bija aizkavēšanās līdz kreisajai pusei (zemākā vērtība) un jutība tieši vidū. Kods nodrošina sērijas izdrukas, kas ietver visu sensoru rādījumus, kas ievērojami atvieglos šādu problēmu atkļūdošanu.

Sensoru pievienošana:

Izmantotie pin numuri ir šādi (un tos var mainīt galvenajā kodā):

Ārējais DHT sensors - D2.

DHT sensora iekšpusē - D3.

Elektrets - A0 (analogā tapa).

PIR - D5.

Shēmas katras no tām savienošanai var viegli atrast, izmantojot google attēlu meklēšanu ar kaut ko līdzīgu "PIR rezistors Arduino shematic" (mēs negribētu tās šeit kopēt un šķērsot autortiesību līnijas:)).

Mēs pievienojām arī mūsu maizes dēļa attēlu, iespējams, ir grūti patiešām sekot savienojumiem, taču tas var radīt labu sajūtu.

Kā jūs droši vien zināt, lietas pirmo reizi, kad tās savienojam, reti kad darbojas. Tāpēc mēs izveidojām funkciju, kas viegli nolasāmā veidā izdrukā sensoru rādījumus, lai jūs varētu atkļūdot, lai tie darbotos. Ja nevēlaties, lai kods mēģinātu izveidot savienojumu ar Blynk atkļūdošanas laikā, vienkārši komentējiet "Blynk.begin (auth, ssid, pass);" no koda iestatīšanas daļas palaidiet to un atveriet sērijas monitoru, lai redzētu izdrukas. Pievienojām arī izdruku attēlu.

3. darbība. Daudz vairāk informācijas - IFTTT secība

Daudz vairāk informācijas - IFTTT secība
Daudz vairāk informācijas - IFTTT secība

Tāpēc mēs vēlamies saņemt paziņojumu divos gadījumos:

1. Ārējā temperatūra ir pietiekami tuvu tai, kas mums ir iekšpusē, kad darbojas maiņstrāva.

2. Mēs esam atstājuši telpu uz ilgu laiku, un maiņstrāva joprojām darbojas.

IFTTT ļauj mums ļoti vienkāršā veidā savienot daudzus dažādus pakalpojumus, kas parasti nesadarbojas. Mūsu gadījumā tas ļauj mums ļoti viegli nosūtīt paziņojumus, izmantojot daudzus pakalpojumus. Mēs izvēlējāmies Facebook Messanger, bet pēc tam, kad esat to sācis strādāt ar Facebook Messanger, jūs varēsit to viegli mainīt uz jebkuru citu pakalpojumu pēc jūsu izvēles.

Process:

IFTTT vietnē noklikšķiniet uz sava lietotājvārda (augšējā labajā stūrī) un pēc tam "Jauna sīklietotne" kā aktivizētāju izvēlieties "Webhooks" ("šis") un izvēlieties "Saņemt tīmekļa pieprasījumu". Iestatiet notikuma nosaukumu (piemēram, empty_room).

Lai aktivizētu pakalpojumu, veiciet darbību ("tas"), izvēlieties Facebook Messenger> Sūtīt ziņojumu un ierakstiet ziņojumu, kuru vēlaties saņemt, kad notiek šis notikums (piemēram, "Sveiki, šķiet, ka esat aizmirsis AC: \".

Kamēr mēs esam šeit, jums vajadzētu arī atrast savu slepeno atslēgu, kas jums būs jāievieto atbilstošajā koda vietā.

Lai atrastu savu slepeno atslēgu, dodieties uz vietni https://ifttt.com/services/maker_webhooks/settings Tur jūs atradīsit URL ar savu atslēgu šādā formātā:

4. solis: daudz vairāk informācijas - Blynk

Image
Image
Daudz vairāk informācijas - Blynk
Daudz vairāk informācijas - Blynk
Daudz vairāk informācijas - Blynk
Daudz vairāk informācijas - Blynk

Mēs arī vēlamies saskarni ar šādām funkcijām:

1. Spēja iestatīt, cik ilgi telpai jābūt tukšai, kamēr maiņstrāva darbojas, pirms mēs saņemam paziņojumu

2. Spēja izvēlēties, cik tuvu ārējai temperatūrai jābūt iekšpusē.

3. Displejs temperatūras sensoru rādījumiem

4. Vadītājs stāsta mums maiņstrāvas stāvokli (ieslēgts/izslēgts).

5. Un pats galvenais - displejs, kas parāda, cik mēs ietaupījām $$$ un enerģiju.

Kā izveidot Blynk saskarni:

Ja jums vēl nav lietotnes Blynk, lejupielādējiet to savā tālrunī. Atverot lietotni un izveidojot jaunu projektu, noteikti izvēlieties piemērotu ierīci (piemēram, ESP8266).

Jūs saņemsiet e -pastu ar autentifikācijas marķieri, kuru jūs ievietojat kodā attiecīgajā vietā (ja to pazaudējat, vēlāk to varat arī nosūtīt sev no iestatījumiem).

Novietojiet ekrānā jaunus logrīkus, augšpusē noklikšķiniet uz + zīmes. Izvēlieties logrīkus un pēc tam noklikšķiniet uz logrīka, lai ievadītu tā iestatījumus. Mēs esam pievienojuši visu izmantoto logrīku iestatījumu attēlus.

Kad esat pabeidzis lietotni un beidzot vēlaties to izmantot, vienkārši noklikšķiniet uz ikonas "atskaņot" augšējā labajā stūrī, lai palaistu lietotni Blynk. Jūs varēsit arī redzēt, kad jūsu ESP8266 tiks izveidots savienojums.

Piezīme - pogu “atjaunināt” izmanto, lai iegūtu maiņstrāvas temperatūru un stāvokli, ko mēs varētu redzēt lietotnē. Tas nav nepieciešams, mainot iestatījumus (piemēram, temperatūras starpību), jo tie tiek automātiski nospiesti.

5. darbība: kods

Mēs daudz centāmies, lai dokumentētu katru koda daļu tā, lai pēc iespējas vieglāk to saprastu.

Daļām kodā, kas jāmaina pirms tā lietošanas (kā Blynk autentifikācijas atslēgai, jūsu wifi SSID un parolei utt.), Seko komentārs //* mainīt*, lai jūs varētu tās viegli atrast.

Kodā jāizmanto bibliotēkas, kuras var instalēt, izmantojot Arduino IDE, noklikšķinot uz Skice> Iekļaut bibliotēkas> Pārvaldīt bibliotēkas. Tur jūs varat meklēt bibliotēkas nosaukumu un instalēt to. Tāpat pārliecinieties, ka esat ievietojis failu generic8266_ifttt.h tajā pašā vietā kā ACsaver.ino.

Viena no koda daļām, ko mēs šeit izskaidrosim, jo mēs negribējām traucēt kodu, ir tas, kā mēs izlemjam, kad mainīt maiņstrāvas stāvokli no ieslēgšanas uz izslēgtu un telpas stāvokli no tukšas uz tukšu.

Mēs lasām no sensoriem ik pēc 3 sekundēm, bet, tā kā sensori nav 100% precīzi, mēs nevēlamies, lai viena lasīšana mainītu stāvokli, kas, mūsuprāt, atrodas telpā. Lai to atrisinātu, kods to dara, vai mums ir skaitītājs, ko mēs ++, kad iegūstam nolasījumu par labu “AC ir ieslēgts”, un - citādi. Tad, kad mēs nokļūstam pie SWITCHAFTER definētās vērtības (noklusējuma vērtība ir 4), mēs mainām stāvokli uz "AC ir ieslēgts", kad nokļūstam uz -SWITCHAFTER (negatīva tā pati vērtība), mēs mainām stāvokli uz "AC ir izslēgts" ".

Ietekme uz laiku, kas nepieciešams, lai pārslēgtos, ir niecīga, un mēs uzskatām, ka tā ir ļoti uzticama, nosakot tikai pareizas izmaiņas.

6. solis: salieciet to visu kopā

Labi, tāpēc visi sensori ir savās vietās un darbojas pareizi. Blynk interfeiss ir iestatīts (ar pareizām virtuālajām tapām!). Un IFTTT notikumi gaida mūsu sprūdu.

Jūs esat ievietojis kodā IFTTT slepeno atslēgu, Blynk autentifikācijas atslēgu, jūsu WiFi SSID un paroli un pat pārbaudījāt, vai DHT sensori ir kalibrēti, un, ja nē, tad attiecīgi mainījāt nobīdi (piemēram, ārpus DHT lasīja temperatūru, kas viņam bija augstāka par 1 grādu pēc Celsija, tāpēc mēs izmantojām nobīdi = -1).

Pārliecinieties, vai jūsu WiFi ir aktivizēts, palaidiet lietotni Blynk un ielādējiet kodu savā ESP8266.

Tieši tā. Ja viss tika izdarīts pareizi, tagad varat spēlēties un redzēt to darbībā.

Un, ja jūs vienkārši vēlaties redzēt to darbībā, nesaglabājot visu kopā … Nu … Ritiniet uz augšu un noskatieties video. (Skatieties ar subtitriem! Bez balss)

7. solis: domas

Šeit mums bija divi galvenie izaicinājumi.

Pirmkārt, kā mēs zinām, ka maiņstrāva ir ieslēgta? Mēs mēģinājām izmantot IR uztvērēju, kas "klausīsies" komunikāciju starp maiņstrāvu un tālvadības pulti. Šķita, ka tas ir pārāk sarežģīti, jo dati bija ļoti netīri un nebija pietiekami konsekventi, lai saprastu “labi, tas ir ON signāls”. Tāpēc mēs meklējām citus veidus. Viena ideja bija izmantot nelielu dzenskrūvi, kas ģenerēs nelielu strāvu, pārvietojoties no maiņstrāvas vēja, vēl viena ideja, kuru mēs mēģinājām, bija panākt, lai akselerometrs mēra ventilācijas atveru rotējošo spārnu leņķi un nosaka to kustību no pozīcijas OFF.

Galu galā mēs sapratām, ka vienkāršākais veids, kā to izdarīt, ir ar elektreta mikrofonu, kas ļoti droši nosaka vēju, kas nāk no maiņstrāvas

DHT sensoru iedarbināšana bija vienkārša;), bet tikai vēlāk mēs sapratām, ka viens no tiem ir nedaudz atkāpies no reālās temperatūras. PIR sensoram bija nepieciešami arī daži pielāgojumi, kā aprakstīts iepriekš.

Otrs izaicinājums bija padarīt visu risinājumu vienkāršu un uzticamu. Tādā ziņā, ka to vajadzētu lietot kaitinoši, tam vienkārši jābūt klāt un jāstumj, kad jums tas nepieciešams. Pretējā gadījumā mēs paši droši vien pārstātu to lietot.

Tāpēc mēs nedaudz pārdomājām, kam vajadzētu būt Blynk saskarnē, un mēģinājām padarīt kodu pēc iespējas uzticamāku, rūpējoties par katru malu, ko mēs varētu izdomāt.

Vēl viens izaicinājums, kuru mums neizdevās atrisināt, rakstot šo pamācību, bija pievienot IR blasteru, kas ļaus mums izslēgt maiņstrāvu no Blynk saskarnes. Kāda jēga zināt, ka esat aizmirsis maiņstrāvu bez iespējas izslēgt? (nu … jūs varētu kādam pajautāt, vai viņš ir mājās).

Diemžēl mums bija dažas grūtības, atskaņojot no tālvadības pults ierakstītos signālus atpakaļ uz maiņstrāvu, izmantojot ESP8266. Mums izdevās kontrolēt maiņstrāvu ar Arduino Uno, ievērojot šo pamācību:

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

Mēs drīz mēģināsim vēlreiz un atjaunināsim pamācību ar saviem atklājumiem un, cerams, norādījumus par šīs iespējas pievienošanu.

Vēl viens ierobežojums, ko mēs redzam, ir fakts, ka mums ir jāpievieno sensors ārpus loga, kas dažās situācijās varētu nebūt iespējams, un tas nozīmē arī garu kabeli, kas jāiet ārā. Risinājums varētu būt no interneta iegūt jūsu atrašanās vietas laika apstākļu datus. Arī elektrotīkla sensoru, kas darbojas no maiņstrāvas, var nomainīt ar iepriekš aprakstīto IR uztvērēju modeļiem ar maiņstrāvu ar vairāk zināmiem vai viegli atkodējamiem IR kodiem.

Projektu var pagarināt dažādos veidos. Kā minēts iepriekš, mēs centīsimies atrast veidu, kā iekļaut IS vadību pār maiņstrāvu, kas pēc tam paver pilnīgi jaunu iespēju pasauli ieslēgt un izslēgt maiņstrāvu no jebkuras vietas pasaulē vai iestatīt ieslēgšanas un izslēgšanas laikus, izmantojot Blynk. lietotne, kā vēl viens piemērs. Pēc tehnisko IR grūtību noteikšanas koda pievienošana ir diezgan vienkārša un vienkārša, un tai nevajadzētu aizņemt ilgu laiku.

Ja mēs patiešām vēlamies sapņot par lielu… Projektu var pārvērst par pilnu moduli, kas jebkuru maiņstrāvu padara par gudru maiņstrāvu. Un tam nevajag daudz vairāk nekā mums. Tikai vairāk kodu, vairāk IR izmantošanas un, ja mēs vēlamies, lai tas tiktu ražots masveidā, varbūt pārliecinieties, ka iegūstat laika apstākļu datus pēc atrašanās vietas, tad mēs varam visu ievietot nelielā kastītē.

Patiešām, viss, kas mums nepieciešams, ir temperatūras sensors iekšējai temperatūrai, PIR sensors kustības noteikšanai un IR gaismas diodes kā blaster, kā arī IR uztvērējs, lai "klausītos" sakarus starp maiņstrāvu un mūsu izmantoto tālvadības pulti.

Blynk ļoti vienkāršā un uzticamā veidā nodrošina visas nepieciešamās iespējas, lai kontrolētu burvju kastīti.

Šāda pilna projekta izstrāde prasīs zināmu laiku, jo īpaši no tā viedokļa, ka tas būs pietiekami universāls, lai konfigurētu sevi un automātiski noteiktu un saprastu lielāko daļu maiņstrāvas.

Bet padarot to sev, labi, ja jūs to darāt brīvajā laikā, mēs aptuvenam nevajadzētu aizņemt vairāk kā nedēļu vai divas. Atkarīgs no tā, cik daudz brīvā laika jums ir … Galvenais izaicinājums šeit būtu saglabāt visus dažādus signālus, ko var nosūtīt maiņstrāvas pults, un to jēgu. (Lai gan tikai atkārtot to atskaņošanu vajadzētu būt vēl vienkāršākam).

Ieteicams: