Innholdsfortegnelse:

IDC2018IOT Fortell meg når jeg skal slå av strømmen: 7 trinn
IDC2018IOT Fortell meg når jeg skal slå av strømmen: 7 trinn

Video: IDC2018IOT Fortell meg når jeg skal slå av strømmen: 7 trinn

Video: IDC2018IOT Fortell meg når jeg skal slå av strømmen: 7 trinn
Video: TEMPLE RUN 2 SPRINTS PASSING WIND 2024, Juli
Anonim
Image
Image

Mange av oss, spesielt om sommeren, bruker AC nesten direkte, når vi i virkeligheten på bestemte tider av dagen bare kan åpne et vindu og nyte en fin bris. Vi merket også personlig at vi noen ganger glemmer å slå av strømmen når vi forlater rommet, og kaster bort energi og penger.

Løsningen vi skal bygge vil sammenligne innetemperaturen med utsiden, og når de er nær nok, vil det varsle oss via Facebook Messanger at det er på tide å åpne et vindu og gi AC litt hvile.

Vi vil også lage en annen mekanisme for å varsle oss når vi glemte AC -en og forlot rommet.

Trinn 1: Litt flere detaljer

Vi samler inn data fra 4 forskjellige sensorer:

  • To DHT -sensorer samler temperaturen inne i huset og utenfor huset.
  • En PIR -sensor registrerer bevegelse i rommet.
  • En Electret -mikrofon brukes til å oppdage vinden som kommer ut fra AC -ventilen, en enkel og pålitelig måte å finne ut om AC er på.

Dataene som kommer fra sensorene vil bli behandlet og sendt til Blynk hvor de vil bli vist i et grensesnitt vi vil lage. Vi vil også utløse IFTTT -hendelser for å varsle brukeren når han kan åpne et vindu i stedet for AC, og når han glemte AC -en og forlot rommet i en forhåndsdefinert periode.

Blynk -grensesnittet vil også gi oss en måte å endre relevante innstillinger i henhold til brukerens preferanser, som vi vil diskutere mer detaljer senere.

Nødvendige deler:

  1. WiFi -modul - ESP8266
  2. PIR -sensor.
  3. DHT11/DHT22 temperatursensorer x2.
  4. 10k/4.7k motstander (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Electret mikrofon.
  6. Gensere.
  7. Lange kabler (telefonkabel vil gjøre en god jobb).

Den komplette koden til prosjektet er vedlagt på slutten med kommentarer gjennom hele koden.

Logisk sett har den noen forskjellige lag med funksjonalitet:

  • Dataene fra sensorene leses i intervaller på 3 sekunder da de viser seg å være mer nøyaktige og det er ikke behov for mer enn det.
  • En del av koden er å holde styr på vekselstrømstilstanden etter verdiene som kommer fra elektretmikrofonen som er plassert over åpningen av vekselstrømmen.
  • En annen del er å holde oversikt over avlesningen fra temperatursensorene, og forskjellen i bruken som er definert som akseptabel for å slå på AC og åpne et vindu i stedet. Vi ser etter øyeblikket når temperaturene kommer nær nok.
  • En tredje del er å holde oversikt over bevegelser i rommet. Hvis den ikke oppdager noen større bevegelse (måten å sjekke major vil bli forklart snart) for en tidsramme definert av brukeren, og AC -tilstanden er PÅ, vil en melding bli sendt til brukeren.
  • Varslene håndteres ved å utløse IFTTT Webhooks som sender forhåndsdefinerte meldinger til brukeren via Facebook Messenger
  • Den siste delen verdt å merke seg er delen som håndterer Blynk -grensesnittet, både ved å få endringene brukeren gjør i variabler og på den andre måten - skyve data til Blynk -grensesnittet for brukeren å se.

Trinn 2: I mange flere detaljer - Sensorer

I mye mer detaljer - Sensorer
I mye mer detaljer - Sensorer
I mye mer detaljer - Sensorer
I mye mer detaljer - Sensorer

La oss begynne.

Først må vi sørge for at begge våre DHT -sensorer leser samme temperatur når de plasseres på samme sted. For det laget vi en enkel skisse festet på slutten av denne delen (CompareSensors.ino). Koble til begge sensorene, og sørg for at du endrer typen DHT -sensorer i skissen i henhold til de du har (standard er en DHT11 og en DHT22, slik at du kan se hvordan begge behandles i koden). Åpne den serielle skjermen og la dem fungere en stund, spesielt hvis du bruker DHT11 -sensorer, da de pleier å ta lengre tid å tilpasse seg temperaturendringer.

Legg merke til forskjellen mellom sensorene, og sett den inn senere i hovedkoden i varianten "offset".

Plassering av sensorer:

En DHT -sensor bør plasseres på husets yttervegg, så koble den til noen lange kabler, lenge nok til å nå ESP8266 inne i rommet, og plasser den utenfor (kan enkelt gjøres gjennom vinduet). Den andre DHT -sensoren skal plasseres på brødbrettet, inne i rommet der vi bruker AC.

Elektretmikrofonen bør også kobles til lange nok kabler og plasseres på et sted der vinden som kommer ut av vekselstrømmen vil treffe den.

Til slutt bør PIR -sensoren plasseres på et sted som vender mot midten av rommet, slik at den fanger hver bevegelse i rommet. Vær oppmerksom på at sensoren har to små knapper, den ene styrer forsinkelsen (hvor lenge det HØYe signalet for å oppdage en bevegelse holdes HØY), og den andre styrer følsomheten (se bildet).

Du må kanskje leke med det til du leser noe du er fornøyd med. For oss var det beste resultatet forsinkelse helt til venstre (laveste verdi) og sensitivitet midt på midten. Koden inneholder serieutskrifter som inneholder avlesninger fra alle sensorene som vil gjøre feilsøking av slike problemer mye enklere.

Koble til sensorene:

PIN -numrene vi brukte er som følger (og kan endres i hovedkoden):

Utenfor DHT -sensor - D2.

Innvendig DHT -sensor - D3.

Electret - A0 (analog pin).

PIR - D5.

Skjemaene for å koble hver av dem kan enkelt bli funnet ved hjelp av google bildesøk med noe i stil med "PIR -motstand Arduino -skjematisk" (vi vil ikke kopiere dem her og krysse eventuelle opphavsrettslinjer:)).

Vi har også lagt ved et bilde av brødbrettet vårt, det er sannsynligvis vanskelig å virkelig følge sammenhengene, men det kan gi en god følelse for det.

Som du sikkert vet, fungerer ting sjelden eller aldri den første gangen vi kobler dem til. Derfor har vi laget en funksjon som skriver ut avlesningene fra sensorene på en lettlest måte, slik at du kan feilsøke måten de skal fungere på. Hvis du ikke vil at koden skal prøve å koble til Blynk mens du feilsøker, bare kommenter "Blynk.begin (auth, ssid, pass);" fra installasjonsdelen av koden, kjør den og åpne seriell skjerm for å se utskriftene. Vi har også lagt ved et bilde av utskriftene.

Trinn 3: I mange flere detaljer - IFTTT -sekvens

I mye mer detaljer - IFTTT -sekvens
I mye mer detaljer - IFTTT -sekvens

Så vi ønsker å bli varslet i to scenarier:

1. Utetemperaturen er nær nok til den vi har inne når AC fungerer.

2. Vi har forlatt rommet i en lengre periode, og AC -en fungerer fortsatt.

IFTTT lar oss koble til mange forskjellige tjenester som vanligvis ikke samhandler, på en veldig enkel måte. I vårt tilfelle lar det oss enkelt sende varsler gjennom mange tjenester. Vi valgte Facebook Messanger, men etter å ha fått det til å fungere med Facebook Messanger vil du enkelt kunne endre det til en hvilken som helst annen tjeneste du ønsker.

Prosessen:

På IFTTT -nettstedet klikker du på brukernavnet ditt (øverst til høyre) og deretter "Ny applett" velger du "Webhooks" som utløser ("dette"), og velger "Motta en webforespørsel". Angi et hendelsesnavn (f.eks. Tomt rom).

For den utløste tjenesten, handlingen ("det"), velg Facebook Messenger> Send melding, og skriv inn meldingen du vil motta når denne hendelsen skjer (f.eks. "Hei, det virker som om du har glemt AC på:).

Mens vi er her, bør du også finne din hemmelige nøkkel som du må sette inn på det riktige stedet i koden.

For å finne din hemmelige nøkkel, gå til https://ifttt.com/services/maker_webhooks/settings Der finner du en URL med nøkkelen i følgende format:

Trinn 4: I mye mer detaljer - Blynk

Image
Image
I mye mer detaljer - Blynk
I mye mer detaljer - Blynk
I mye mer detaljer - Blynk
I mye mer detaljer - Blynk

Vi ønsker også et grensesnitt som har følgende funksjoner:

1. Evne til å angi hvor lenge rommet skal være tomt mens AC -en fungerer før vi blir varslet

2. Evne til å velge hvor nær utetemperaturen skal være på innsiden.

3. Et display for avlesningene fra temperatursensorene

4. En LED som forteller oss tilstanden til AC (av/på).

5. Og viktigst av alt, en skjerm som viser hvor mye $$$ og energi vi sparte.

Slik oppretter du Blynk -grensesnittet:

Hvis du ikke har Blynk -appen ennå, kan du laste den ned til telefonen. Når du åpner appen og oppretter et nytt prosjekt, må du velge riktig enhet (f.eks. ESP8266).

Du vil få en e -post med et godkjenningstoken, som du vil sette inn i koden på riktig sted (du kan også sende den til deg selv fra innstillingene senere hvis du mister den).

Plasser nye widgets på skjermen, klikk på + -tegnet øverst. Velg widgets, og klikk deretter på en widget for å angi innstillingene. Vi har lagt til bilder av innstillingene for alle widgetene vi brukte, som referanse.

Etter at du er ferdig med appen, og når du til slutt vil bruke den, klikker du bare på "spill" -ikonet øverst til høyre for å kjøre Blynk -appen. Du vil også kunne se når ESP8266 kobles til.

Merk - "oppdatering" -knappen brukes til å hente temperaturen og tilstanden til vekselstrømmen slik at vi kan se den i appen. Det er ikke nødvendig når du endrer innstillinger (for eksempel temperaturforskjellen), da de blir presset automatisk.

Trinn 5: Koden

Vi gjorde en stor innsats for å dokumentere alle deler av koden på en måte som ville gjøre det enklere å forstå det.

Deler i koden som du må endre før du bruker den (som autentiseringsnøkkel for Blynk, wifi -SSID og passord osv.) Blir fulgt av kommentaren //* endring* slik at du enkelt kan lete etter dem.

Du må ha bibliotekene brukt i koden. Du kan installere dem gjennom Arduino IDE ved å klikke Sketch> Include Libraries> Manage Libraries. Der kan du søke etter biblioteksnavnet og installere det. Sørg også for at du legger generic8266_ifttt.h -filen på samme sted som ACsaver.ino.

En del av koden vi vil forklare her ettersom vi ikke ønsket å rote koden, er hvordan vi bestemmer når vi skal endre AC -tilstanden fra på til av, og tilstanden til rommet fra tomt til ikke tomt.

Vi leser fra sensorene hvert 3. sekund, men ettersom sensorer ikke er 100% nøyaktige, ønsker vi ikke at en enkelt lesning skal endre tilstanden vi tror er i rommet nå. For å løse dette, hva koden gjør, er at vi har en teller som vi ++ når vi får en avlesning til fordel for "AC er på", og - ellers. Når vi kommer til verdien definert i SWITCHAFTER (standard til 4), endrer vi tilstanden til "AC er på", når vi kommer til -SWITCHAFTER (negativ samme verdi), endrer vi tilstanden til "AC er av ".

Virkningen på tiden det tar å bytte er ubetydelig, og vi synes det er veldig pålitelig når det gjelder å oppdage bare riktige endringer.

Trinn 6: Sett alt sammen

Ok, så alle sensorene er på plass og fungerer som de skal. Blynk -grensesnittet er satt (med riktige virtuelle pinner!). Og IFTTT -hendelsene venter på utløseren vår.

Du har satt inn den hemmelige IFTTT -nøkkelen i koden, autentiseringsnøkkelen fra Blynk, SSID -en til WiFi -en og passordet, og du har til og med kontrollert at DHT -sensorene er kalibrert, og hvis ikke, endret du forskyvningen tilsvarende (for eksempel vår utenfor DHT lese temperaturer høyere med 1 grad Celsius at det han skulle ha, så vi brukte offset = -1).

Sørg for at WiFi er på, start Blynk -appen og last koden på ESP8266.

Det er det. Hvis alt ble gjort riktig, kan du spille rundt nå og se det i aksjon.

Og hvis du bare vil se det i aksjon uten problemer med å sette alt sammen … Vel … Rull opp og se videoen. (Se med undertekster! Ingen stemme over)

Trinn 7: Tanker

Vi hadde to hovedutfordringer her.

Først av alt, hvordan vet vi at AC -en er slått på? Vi prøvde å bruke en IR -mottaker som vil "lytte" til kommunikasjonen mellom AC og fjernkontrollen. Det så ut til å være for komplisert, da dataene var veldig rotete og ikke var konsekvente nok til å forstå "ok, dette er et PÅ -signal". Så vi så etter andre måter. En idé var å bruke en liten propell som vil generere liten strøm når den beveger seg fra AC -vinden, en annen idé vi prøvde var å få et akselerometer til å måle vinkelen på de roterende vingene på ventilasjonsåpningene og oppdage bevegelsen fra AV -stillingen.

Etter hvert innså vi at den enkleste måten å gjøre det på er med elektretmikrofonen, som pålitelig oppdager vinden som kommer ut av vekselstrømmen

Å få DHT -sensorene til å fungere var en lek;), men først senere innså vi at en av dem var litt utenfor virkeligheten. PIR -sensoren krevde også noen justeringer, som beskrevet tidligere.

Den andre utfordringen var å gjøre hele løsningen enkel og pålitelig. På en måte at det burde være irriterende å bruke, bør det bare være der og dytte når du trenger det. Ellers ville vi nok selv slutte å bruke den.

Så vi tenkte litt på hva som skulle være i Blynk -grensesnittet, og prøvde å gjøre koden så pålitelig som mulig, ved å ta vare på alle kanttilfeller vi kunne finne på.

En annen utfordring, som vi ikke klarte å løse da vi skrev dette instruerbare, var å legge til en IR -blaster som lar oss slå av AC fra Blynk -grensesnittet. Hva er poenget med å vite at du glemte AC -en uten mulighet til å slå av? (vel … du kan spørre noen om de er hjemme).

Dessverre hadde vi noen problemer med å spille av signalene vi tok opp fra fjernkontrollen, tilbake til vekselstrømmen med ESP8266. Vi klarte å kontrollere AC -en av en Arduino Uno, etter denne instruksen:

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

Vi vil prøve igjen snart, og oppdatere instruksjonsboken med funnene våre, og forhåpentligvis instruksjoner om hvordan vi kan legge til den evnen.

En annen begrensning vi ser er det faktum at vi må koble til en sensor utenfor vinduet, noe som kanskje ikke er mulig i visse situasjoner, og betyr også at en lang kabel må gå utenfor. En løsning kan være å hente værdata fra din posisjon fra internett. Også elektret -sensoren som går fra AC -en kan erstattes av IR -mottakeren vi beskrev ovenfor, for modeller av AC med mer kjente eller enkle å dekode IR -koder.

Prosjektet kan utvides på mange måter. Som sagt ovenfor, vil vi prøve å finne en måte å inkludere IR -kontroll over AC, som deretter åpner en helt ny verden av muligheter for å slå av og på AC fra hvor som helst i verden, eller sette på og av tider gjennom Blynk app, som et annet eksempel. Etter å ha funnet ut de tekniske IR -problemene, er det ganske enkelt og greit å legge til koden, og det bør ikke ta lang tid.

Hvis vi virkelig ønsker å drømme stort … Prosjektet kan gjøres om til en komplett modul som gjør enhver vekselstrøm til en smart vekselstrøm. Og det trenger ikke så mye mer enn vi gjorde. Bare mer kode, mer utnyttelse av IR, og hvis vi vil at den skal masseproduseres, kan du sørge for å hente værdata etter sted, så kan vi legge det hele i en liten boks.

Alt vi trenger er egentlig en temperatursensor for innetemperaturen, en PIR -sensor for å oppdage bevegelse, og IR -LED som blaster, og en IR -mottaker for å "lytte" til kommunikasjonen mellom AC og fjernkontrollen vi bruker.

Blynk gir alle funksjonene vi trenger for å kontrollere den magiske boksen, på en veldig enkel og pålitelig måte.

Å lage et så fullstendig prosjekt vil ta litt tid, spesielt med tanke på å gjøre det allsidig nok til å konfigurere seg selv og automatisk oppdage og forstå de fleste AC -er.

Men å lage det selv, vel, hvis du gjør det på fritiden, bør vi omtrentlige ikke ta mer enn en uke eller to. Avhenger av hvor mye fritid du har … Hovedutfordringen her ville være å lagre alle de forskjellige signalene som AC -fjernkontrollen kan sende, og forstå dem. (Selv om det bare skal være enda enklere å spille dem på nytt).

Anbefalt: