Innehållsförteckning:
- Steg 1: Lite mer detaljer
- Steg 2: I mycket mer detaljer - Sensorer
- Steg 3: I mycket mer detaljer - IFTTT -sekvens
- Steg 4: I mycket mer detaljer - Blynk
- Steg 5: Koden
- Steg 6: Sätta ihop allt
- Steg 7: Tankar
Video: IDC2018IOT Berätta för mig när jag ska stänga av AC: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Många av oss, särskilt på sommaren, använder AC nästan direkt, när vi i verkligheten vid vissa tider på dygnet bara kan öppna ett fönster och njuta av en skön bris. Vi märkte också personligen att vi ibland bara glömmer att stänga av AC när vi lämnar rummet och slösar bort energi och pengar.
Lösningen vi kommer att bygga kommer att jämföra innertemperaturen med utsidan, och när de är tillräckligt nära kommer det att meddela oss via Facebook Messanger att det är dags att öppna ett fönster och ge AC lite vila.
Vi kommer också att göra en annan mekanism för att meddela oss när vi glömde strömmen och lämnade rummet.
Steg 1: Lite mer detaljer
Vi samlar in data från fyra olika sensorer:
- Två DHT -sensorer samlar temperaturen inuti huset och utanför huset.
- En PIR -sensor detekterar rörelse i rummet.
- En Electret -mikrofon används för att upptäcka vinden som kommer ut från AC -ventilen, ett enkelt och tillförlitligt sätt att avgöra om AC är på.
Data som kommer från sensorerna kommer att bearbetas och skickas till Blynk där det kommer att visas i ett gränssnitt som vi kommer att skapa. Vi kommer också att utlösa IFTTT -händelser för att meddela användaren när han kan öppna ett fönster istället för AC, och när han glömde strömmen och lämnade rummet under en fördefinierad tid.
Blynk -gränssnittet kommer också att ge oss ett sätt att ändra relevanta inställningar enligt användarens preferenser, eftersom vi kommer att diskutera mer detaljer senare.
Obligatoriska delar:
- WiFi -modul - ESP8266
- PIR -sensor.
- DHT11/DHT22 temperaturgivare x2.
- 10k/4.7k motstånd (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
- Electret mikrofon.
- Tröjor.
- Långa kablar (telefonkabel kommer att göra ett bra jobb).
Den fullständiga koden för projektet bifogas i slutet med kommentarer i hela koden.
Logiskt har den några olika funktionslager:
- Data från sensorerna läses i intervaller på 3 sekunder eftersom det visar sig vara mer exakt och det behövs inte mer än så.
- En del av koden är att hålla reda på AC -tillståndet genom värdena som kommer från elektretmikrofonen som placeras över AC: s öppning.
- En annan del är att hålla reda på avläsningen från temperatursensorerna och skillnaden i användningen som definieras som acceptabel för att slå på AC och öppna ett fönster istället. Vi letar efter det ögonblick då temperaturen kommer tillräckligt nära.
- En tredje del är att hålla reda på rörelse i rummet. Om den inte upptäcker någon större rörelse (sättet att kontrollera major kommer snart att förklaras) för en tidsram som definieras av användaren och AC -läget är PÅ, skickas ett meddelande till användaren.
- Meddelandena hanteras genom att utlösa IFTTT Webhooks som skickar fördefinierade meddelanden till användaren via Facebook Messenger
- Den sista delen som är värd att notera är den del som hanterar Blynk -gränssnittet, både genom att få ändringarna som användaren gör till variabler och på andra sätt - att skicka data till Blynk -gränssnittet för användaren att se.
Steg 2: I mycket mer detaljer - Sensorer
Låt oss börja.
Först måste vi se till att båda våra DHT -sensorer läser samma temperatur när de placeras på samma plats. För det gjorde vi en enkel skiss bifogad i slutet av detta avsnitt (CompareSensors.ino). Anslut båda sensorerna och se till att du ändrar typ av DHT -sensorer i skissen enligt de du har (standard är en DHT11 och en DHT22, så att du kan se hur båda hanteras i koden). Öppna seriemonitorn och låt dem fungera ett tag, särskilt om du använder DHT11 -sensorer, eftersom de tenderar att ta längre tid att anpassa sig till temperaturförändringar.
Notera skillnaden mellan sensorerna och sätt in den senare i huvudkoden i variabeln "offset".
Placering av sensorer:
En DHT -sensor bör placeras på husets yttervägg, så anslut den till några långa kablar, tillräckligt långa för att nå din ESP8266 inuti rummet och placera den utanför (kan enkelt göras genom fönstret). Den andra DHT -sensorn ska placeras på brödbrädan, inne i rummet där vi använder AC.
Elektretmikrofonen ska också vara ansluten till tillräckligt långa kablar och placeras på en plats där vinden som kommer ut från AC kommer att träffa den.
Slutligen bör PIR -sensorn placeras på en plats som vetter mot mitten av rummet så att den fångar varje rörelse i rummet. Observera att sensorn har två små rattar, en som styr fördröjningen (hur länge HIGH -signalen för att upptäcka en rörelse hålls HIGH), och den andra styr känsligheten (se bild).
Du kan behöva leka med det tills du läser vilket du är nöjd med. För oss var det bästa resultatet fördröjning ända till vänster (lägsta värde) och känslighet mitt i mitten. Koden innehåller seriella utskrifter som inkluderar avläsningar från alla sensorer som kommer att göra felsökning av sådana problem mycket lättare.
Anslutning av sensorer:
Stiftnumren vi använde är följande (och kan ändras i huvudkoden):
Utanför DHT -sensor - D2.
Inuti DHT -sensor - D3.
Electret - A0 (analog stift).
PIR - D5.
Schemat för att ansluta var och en av dem kan enkelt hittas med hjälp av google bildsökning med något i stil med "PIR -motstånd Arduino schematisk" (vi skulle inte vilja kopiera dem här och korsa alla upphovsrättsliga linjer:)).
Vi bifogade också en bild på vår brödbräda, det är nog svårt att verkligen följa kopplingarna, men det kan ge en bra känsla för det.
Som du säkert vet fungerar saker sällan om någonsin första gången vi ansluter dem. Därför har vi gjort en funktion som skriver ut avläsningarna från sensorerna på ett lättläst sätt, så att du kan felsöka ditt sätt för att de ska fungera. Om du inte vill att koden ska försöka ansluta till Blynk medan du felsöker, kommenterar du bara "Blynk.begin (auth, ssid, pass);" från installationsdelen av koden, kör den och öppna seriell bildskärm för att se utskrifterna. Vi bifogade också en bild på utskrifterna.
Steg 3: I mycket mer detaljer - IFTTT -sekvens
Så vi vill bli meddelade i två scenarier:
1. Utetemperaturen är tillräckligt nära den vi har inuti när AC fungerar.
2. Vi har lämnat rummet under en längre tid och AC fungerar fortfarande.
IFTTT gör det möjligt för oss att ansluta många olika tjänster som vanligtvis inte interagerar, på ett mycket enkelt sätt. I vårt fall låter det oss enkelt skicka aviseringar genom många tjänster. Vi valde Facebook Messanger, men efter att ha fått det att fungera med Facebook Messanger kan du enkelt ändra det till någon annan tjänst du väljer.
Processen:
På IFTTT -webbplatsen klickar du på ditt användarnamn (övre högra hörnet) och sedan "New Applet" väljer du "Webhooks" som utlösare ("detta") och väljer "Ta emot en webbförfrågan". Ange ett evenemangsnamn (t.ex. tomrum).
För den utlösta tjänsten, åtgärden ("det"), välj Facebook Messenger> Skicka meddelande och skriv in meddelandet du vill ta emot när den här händelsen inträffar (t.ex. "Hej, det verkar som om du har glömt AC på: ).
Medan vi är här bör du också hitta din hemliga nyckel som du måste infoga på rätt plats i koden.
För att hitta din hemliga nyckel gå till https://ifttt.com/services/maker_webhooks/settings Där hittar du en URL med din nyckel i följande format:
Steg 4: I mycket mer detaljer - Blynk
Vi vill också ha ett gränssnitt som har följande funktioner:
1. Möjlighet att ställa in hur länge rummet ska vara tomt med AC fungerar innan vi får ett meddelande
2. Möjlighet att välja hur nära yttertemperaturen ska vara inuti.
3. En display för avläsningar från temperaturgivarna
4. En lysdiod som berättar för AC -läget (på/av).
5. Och viktigast av allt, en display som visar hur mycket $$$ och energi vi sparat.
Så här skapar du Blynk -gränssnittet:
Om du ännu inte har Blynk -appen kan du ladda ner den till din telefon. När du öppnar appen och skapar ett nytt projekt, se till att välja rätt enhet (t.ex. ESP8266).
Du får ett e -postmeddelande med en autentiseringstoken, som du kommer att infoga i koden på rätt plats (du kan också skicka den igen till dig själv från inställningarna senare om du förlorar den).
Placera nya widgetar på skärmen, klicka på + -tecknet högst upp. Välj widgetarna och klicka sedan på en widget för att ange dess inställningar. Vi har lagt till bilder av inställningarna för alla widgets vi använde, som referens.
När du är klar med appen och när du så småningom vill använda den klickar du bara på ikonen "spela" i det övre högra hörnet för att köra Blynk -appen. Du kommer också att kunna se när din ESP8266 ansluts.
Observera - knappen "uppdatera" används för att hämta temperaturen och tillståndet för AC för att vi ska se i appen. Det krävs inte när du ändrar inställningar (t.ex. temperaturskillnaden), eftersom de trycks automatiskt.
Steg 5: Koden
Vi ansträngde oss mycket för att dokumentera varje del av koden på ett sätt som skulle göra det lättare att förstå den.
Delar i koden som du måste ändra innan du använder den (som autentiseringsnyckel för Blynk, ditt wifi -SSID och lösenord, etc. …) följs av kommentaren //* change* så att du enkelt kan leta efter dem.
Du måste använda biblioteken i koden, du kan installera dem via Arduino IDE genom att klicka på Skiss> Inkludera bibliotek> Hantera bibliotek. Där kan du söka efter bibliotekets namn och installera det. Se också till att du lägger generic8266_ifttt.h -filen på samma plats som ACsaver.ino.
En del av koden kommer vi att förklara här eftersom vi inte ville störa koden, är hur vi bestämmer när vi ska ändra AC -läget från på till av, och rummets tillstånd från tomt till inte tomt.
Vi läser från sensorerna var tredje sekund, men eftersom sensorer inte är 100% korrekta vill vi inte att en enda läsning ska ändra det tillstånd vi tror är i rummet nu. För att lösa detta, vad koden gör, är att vi har en räknare som vi ++ när vi får en läsning till förmån för "AC är på", och - annars. När vi kommer till det värde som definieras i SWITCHAFTER (standard till 4), ändrar vi tillståndet till "AC är på", när vi kommer till -SWITCHAFTER (negativt samma värde), ändrar vi tillståndet till "AC är av ".
Påverkan på den tid det tar att byta är försumbar, och vi tycker att det är mycket tillförlitligt när det gäller att upptäcka endast korrekta förändringar.
Steg 6: Sätta ihop allt
Ok, så att alla sensorer är på plats och fungerar som de ska. Blynk -gränssnittet är inställt (med rätt virtuella stift!). Och IFTTT -händelserna väntar på vår trigger.
Du har infogat IFTTT -hemliga nyckeln i koden, autentiseringsnyckeln från Blynk, SSID för din WiFi och lösenordet, och du har till och med kontrollerat att DHT -sensorerna är kalibrerade och om inte, ändrade förskjutningen i enlighet med detta (till exempel vår utanför DHT läs temperaturer högre med 1 grad Celsius som vad han borde ha, så vi använde offset = -1).
Se till att din WiFi är igång, starta din Blynk -app och ladda koden till din ESP8266.
Det är allt. Om allt gjordes korrekt kan du spela runt nu och se det i aktion.
Och om du bara vill se den i handling utan att behöva lägga ihop allt … Tja … Bläddra upp och titta på videon. (Titta med undertexter! Ingen röst över)
Steg 7: Tankar
Vi hade två huvudutmaningar här.
Först och främst, hur vet vi att AC är på? Vi försökte använda en IR -mottagare som "lyssnar" på kommunikationen mellan AC och fjärrkontrollen. Det verkade vara för komplicerat, eftersom data var mycket rörigt och inte var tillräckligt konsekvent för att förstå "ok, det här är en ON -signal". Så vi letade efter andra sätt. En idé var att använda en liten propeller som genererar liten ström när den rör sig från AC: s vind, en annan idé som vi försökte var att få en accelerometer att mäta vinkeln på de roterande vingarna på ventilerna och upptäcka deras rörelse från OFF -läget.
Så småningom insåg vi att det enklaste sättet att göra det är med elektretmikrofonen, som mycket tillförlitligt detekterar vinden som kommer ut ur AC
Att få DHT -sensorerna att fungera var en vind;), men först senare insåg vi att en av dem var lite avstängd från den verkliga temperaturen. PIR -sensorn krävde också vissa justeringar, som beskrivits tidigare.
Den andra utmaningen var att göra hela lösningen enkel och pålitlig. I en mening att det ska vara irriterande att använda, det ska bara vara där och knuffa när du behöver. Annars skulle vi förmodligen själva sluta använda den.
Så vi funderade på vad som borde finnas i Blynk -gränssnittet och försökte göra koden så tillförlitlig som möjligt genom att ta hand om alla kantfall som vi kunde komma på.
En annan utmaning, som vi inte lyckades lösa när vi skrev detta instruerbara, var att lägga till en IR -blaster som gör att vi kan stänga av AC från Blynk -gränssnittet. Vad är poängen med att veta att du har glömt strömmen utan möjlighet att stänga av? (ja … du kan fråga någon om de är hemma).
Tyvärr hade vi vissa svårigheter att spela upp signalerna som vi spelade in från fjärrkontrollen, tillbaka till AC med ESP8266. Vi lyckades styra AC: n med en Arduino Uno, enligt denna instruerbara:
www.instructables.com/id/How-to-control-th…
Vi kommer att försöka igen snart och uppdatera instruerbara med våra resultat, och förhoppningsvis instruktioner om hur man lägger till den funktionen.
En annan begränsning vi ser är det faktum att vi måste ansluta en sensor utanför fönstret, vilket kanske inte är möjligt i vissa situationer, och betyder också att en lång kabel måste gå ut. En lösning kan vara att hämta väderdata från din plats från internet. Elektretsensorn som går från växelströmmen kan också ersättas av den IR -mottagare som vi beskrev ovan, för modeller av växelström med mer kända eller lätt avkodade IR -koder.
Projektet kan förlängas på många sätt. Som sagt ovan kommer vi att försöka hitta ett sätt att inkludera IR -kontroll över AC, som sedan öppnar en helt ny värld av möjligheter att slå på och av AC från var som helst i världen, eller sätta på och av tider via Blynk app, som ett annat exempel. Efter att ha tagit reda på de tekniska IR -svårigheterna är det ganska enkelt och enkelt att lägga till koden och bör inte ta lång tid.
Om vi verkligen vill drömma stort … Projektet kan förvandlas till en komplett modul som gör varje AC till en smart AC. Och det behöver inte mycket mer än vi gjorde. Bara mer kod, mer utnyttjande av IR, och om vi vill att den ska massproduceras, kanske se till att hämta väderdata efter plats, då kan vi lägga det hela i en liten låda.
Allt vi behöver är verkligen en temperatursensor för innertemperaturen, en PIR -sensor för att upptäcka rörelser och IR -LED som en blaster och en IR -mottagare för att "lyssna" på kommunikationen mellan AC och fjärrkontrollen som vi använder.
Blynk tillhandahåller alla de funktioner vi behöver för att styra den magiska lådan, på ett mycket enkelt och pålitligt sätt.
Att göra ett så komplett projekt kommer att ta lite tid, särskilt med tanke på att göra det mångsidigt nog att konfigurera sig själv och automatiskt upptäcka och förstå de flesta AC -enheter.
Men att göra det själv, ja, om du gör det på fritiden, bör vi ungefärligen inte ta mer än en vecka eller två. Beror på hur mycket ledig tid du har … Den största utmaningen här skulle vara att spara alla de olika signalerna som AC -fjärrkontrollen kan skicka och förstå dem. (Även om det bara skulle vara ännu enklare att spela om dem).
Rekommenderad:
SMD -lödningspaket, eller hur jag lärde mig att sluta oroa mig och älska det billiga kinesiska kit: 6 steg
SMD -lödningspaket, eller hur jag lärde mig att sluta oroa mig och älska det billiga kinesiska kitet: Detta är inte en instruktion om lödning. Detta är en instruktion om hur man bygger ett billigt kinesiskt kit. Ordspråket är att du får vad du betalar för, och här är vad du får: Dåligt dokumenterat. Tvivelaktig kvalitet. Inget stöd. Så varför köpa en
Få Alexa att stänga av telefonen när du går och lägger dig: 6 steg
Få Alexa att stänga av din telefon när du går och lägger dig: Få alexa på att stänga av telefonen när du går och lägger dig med IFTTT och eko -enhet
Vad ska jag göra om laddaren inte ser 18650 Li-ion-batteri: 9 steg
Vad ska jag göra om laddaren inte ser 18650 Li-ion-batteri: Vad ska jag göra om batteriet inte laddas, laddaren ser inte batteriet av två skäl: låg spänning på det eller utlöst termiskt skydd
Vad ska jag göra om trakasseras på instruktioner: 7 steg
Vad ska jag göra om trakasserier på instruktioner: Instructables är en familj av hantverkare med medlemmar över hela världen. Lägg märke till tonvikten på familjen. Ibland (tack och lov inte så ofta) smyger några dåliga äpplen in och stör vår familj. Att hantera denna typ av situation är föremål för denna instruktion
Dödens boll: eller hur jag lärde mig att sluta oroa mig och älska Apple Pro -högtalare: 11 steg (med bilder)
Dödens boll: eller hur jag lärde mig att sluta oroa mig och älska Apple Pro -högtalare: Jag har alltid sagt att Apple har alltid lett inom det industriella designområdet sedan jag slängde den "beige lådan". Integrationen av form och funktion kan inte beröras av någon annan tillverkare i någon bransch (Porsche kommer nära). Dess