INHOUDSOPGAWE:

IDC2018IOT Vertel my wanneer ek die wisselstroom moet uitskakel: 7 stappe
IDC2018IOT Vertel my wanneer ek die wisselstroom moet uitskakel: 7 stappe

Video: IDC2018IOT Vertel my wanneer ek die wisselstroom moet uitskakel: 7 stappe

Video: IDC2018IOT Vertel my wanneer ek die wisselstroom moet uitskakel: 7 stappe
Video: Управляйте 10 выходными контактами или реле с помощью 10 кнопочных переключателей с 1 входным контактом Arduino ANPB-V2. 2024, Julie
Anonim
Image
Image

Baie van ons, veral in die somertyd, gebruik die AC amper onophoudelik, terwyl ons in werklikheid op sekere tye van die dag net 'n venster kan oopmaak en 'n lekker briesie kan geniet. Ons het ook persoonlik opgemerk dat ons soms net vergeet om die wisselstroom af te skakel wanneer ons die kamer verlaat en energie en geld mors.

Die oplossing wat ons gaan bou, sal die binnetemperatuur met die buitekant vergelyk, en as hulle naby genoeg is, sal ons via Facebook Messanger in kennis gestel word dat dit tyd is om 'n venster oop te maak en die AC te laat rus.

Ons sal ook 'n ander meganisme maak om ons in kennis te stel wanneer ons die AC aanskakel en die kamer verlaat.

Stap 1: 'n bietjie meer besonderhede

Ons versamel data van 4 verskillende sensors:

  • Twee DHT -sensors versamel die temperatuur binne en buite die huis.
  • Een PIR -sensor bespeur beweging in die kamer.
  • Een Electret -mikrofoon word gebruik om die wind op te spoor wat uit die ventilator se ventilasiegaatjie kom, 'n eenvoudige en betroubare manier om vas te stel of die wisselstroom aan is.

Die data wat van die sensors afkomstig is, word verwerk en na die Blynk gestuur waar dit vertoon sal word in 'n koppelvlak wat ons sal skep. Ons sal ook IFTTT -gebeurtenisse aktiveer om die gebruiker in kennis te stel wanneer hy 'n venster in plaas van die AC kan oopmaak, en wanneer hy die AC aanskakel en die kamer vir 'n voorafbepaalde tyd verlaat.

Die Blynk -koppelvlak gee ons ook 'n manier om relevante instellings te verander volgens gebruikersvoorkeur, soos ons later in meer besonderhede sal bespreek.

Vereiste onderdele:

  1. WiFi -module - ESP8266
  2. PIR sensor.
  3. DHT11/DHT22 temperatuursensors x2.
  4. 10k/4.7k weerstande (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Elektret mikrofoon.
  6. Springers.
  7. Lang kabels (telefoondraad werk uitstekend).

Die volledige kode van die projek is aan die einde aangeheg met kommentaar regdeur die kode.

Logies, dit het 'n paar verskillende lae funksies:

  • Die data van die sensors word met tussenposes van 3 sekondes gelees, aangesien dit meer akkuraat blyk te wees en meer as dit nie nodig is nie.
  • Een deel van die kode is om die wisselstatus dop te hou deur die waardes wat afkomstig is van die elektretmikrofoon wat oor die opening van die wisselstroom geplaas word.
  • 'N Ander deel is om die lesing van die temperatuursensors by te hou, en die verskil wat die gebruik omskryf as aanvaarbaar om die wisselstroom te skakel en eerder 'n venster oop te maak. Ons soek die oomblik wanneer die temperature naby genoeg kom.
  • 'N Derde deel hou die beweging in die kamer dop. As dit geen groot beweging opspoor nie (die manier om die hoofvak na te gaan, sal binnekort verduidelik word) vir 'n tydsraamwerk wat deur die gebruiker gedefinieer word, en die wisselstroom is AAN, sal 'n kennisgewing aan die gebruiker gestuur word.
  • Die kennisgewings word hanteer deur middel van IFTTT Webhooks wat vooraf gedefinieerde boodskappe na die gebruiker stuur via Facebook Messenger
  • Die laaste deel wat opgemerk moet word, is die deel wat die Blynk -koppelvlak hanteer, beide deur die veranderings wat die gebruiker aanbring aan veranderlikes aan te bring, en aan die ander kant - om data na die Blynk -koppelvlak te stuur sodat die gebruiker dit kan sien.

Stap 2: In baie meer besonderhede - Sensors

Meer besonderhede - Sensors
Meer besonderhede - Sensors
Meer besonderhede - Sensors
Meer besonderhede - Sensors

Kom ons begin.

Eerstens moet ons seker maak dat albei ons DHT -sensors dieselfde temperatuur lees as hulle op dieselfde plek geplaas word. Hiervoor het ons 'n eenvoudige skets gemaak aan die einde van hierdie afdeling (CompareSensors.ino). Koppel albei sensors en maak seker dat u die tipe DHT -sensors in die skets verander volgens die wat u het (die standaard is een DHT11 en een DHT22, sodat u kan sien hoe beide in die kode hanteer word). Maak die seriële monitor oop en laat hulle 'n rukkie werk, veral as u DHT11 -sensors gebruik, aangesien dit gewoonlik langer neem om aan te pas by temperatuurveranderinge.

Let op die verskil tussen die sensors en plaas dit later in die hoofkode in die 'offset' veranderlike.

Sensors plasing:

Een DHT -sensor moet op die buitemuur van die huis geplaas word, dus koppel dit aan 'n paar lang kabels, lank genoeg om by die ESP8266 in die kamer te kom, en plaas dit buite (kan maklik deur die venster gedoen word). Die ander DHT -sensor moet op die broodbord geplaas word, in die kamer waarin ons die AC gebruik.

Die elektretmikrofoon moet ook aan lang genoeg kabels gekoppel word en op 'n plek geplaas word waar die wind wat uit die wisselstroom kom, dit sal tref.

Laastens moet die PIR -sensor op 'n plek in die middel van die kamer geplaas word, sodat dit elke beweging in die kamer kan vasvang. Let daarop dat die sensor twee klein knoppies het, die een wat die vertraging beheer (hoe lank die HOOG sein van die opsporing van 'n beweging HOOG gehou word), en die ander een die sensitiwiteit (sien prentjie).

Miskien moet u daarmee speel totdat u lees waarvan u tevrede is. Vir ons was die beste resultaat vertraging tot links (laagste waarde) en sensitiwiteit regs in die middel. Die kode bevat reeksafdrukke, insluitend lesings van al die sensors, wat die ontfouting van sulke probleme baie makliker sal maak.

Koppel die sensors:

Die speldnommers wat ons gebruik het, is soos volg (en kan in die hoofkode verander word):

Buiten DHT -sensor - D2.

Binne DHT -sensor - D3.

Electret - A0 (analoog pen).

PIR - D5.

Die skema's vir die koppeling van elkeen kan maklik gevind word met behulp van 'n Google -beeldsoek, met iets soos "PIR -weerstand Arduino -skematiese" (ons wil dit nie hier kopieer en kopiereglyne oorsteek nie:)).

Ons het ook 'n foto van ons broodbord aangeheg; dit is waarskynlik moeilik om die verbindings regtig te volg, maar dit kan 'n goeie gevoel gee.

Soos u waarskynlik weet, werk dinge selde as ooit die eerste keer dat ons dit verbind. Daarom het ons 'n funksie gemaak wat die metings van die sensors op 'n maklik leesbare manier afdruk, sodat u dit kan ontfout sodat dit kan werk. As u nie wil hê dat die kode met Blynk probeer koppel tydens ontfouting nie, lewer dan 'Blynk.begin (auth, ssid, pass)'; vanaf die instellingsgedeelte van die kode, voer dit uit en maak die seriële monitor oop om die afdrukke te sien. Ons het ook 'n foto van die afdrukke aangeheg.

Stap 3: In baie meer besonderhede - IFTTT -volgorde

In baie meer besonderhede - IFTTT -volgorde
In baie meer besonderhede - IFTTT -volgorde

Ons wil dus in twee scenario's in kennis gestel word:

1. Die buitentemperatuur is naby genoeg aan die een wat ons binne het, terwyl die AC werk.

2. Ons het die kamer vir 'n lang tyd verlaat en die AC werk nog steeds.

IFTTT stel ons in staat om baie verskillende dienste wat gewoonlik nie interaksie het nie, op 'n baie eenvoudige manier aan te sluit. In ons geval kan ons baie maklik kennisgewings stuur deur baie dienste. Ons het Facebook Messanger gekies, maar nadat u dit met Facebook Messanger laat werk het, kan u dit maklik verander na enige ander diens wat u verkies.

Die proses:

Klik op die IFTTT -webwerf op u gebruikersnaam (regs bo) en dan op 'Nuwe applet', kies 'Webhooks' as die sneller (die 'hierdie') en kies 'Ontvang 'n webversoek'. Stel 'n gebeurtenisnaam in (bv. Leegkamer).

Vir die geaktiveerde diens, die aksie (die "dit"), kies Facebook Messenger> Stuur boodskap en tik die boodskap in wat u wil ontvang wanneer hierdie gebeurtenis plaasvind (bv. "Hallo, dit lyk asof u die skakelaar vergeet het:).

Terwyl ons hier is, moet u ook u geheime sleutel vind wat u op die toepaslike plek in die kode moet invoeg.

Om u geheime sleutel te vind, gaan na https://ifttt.com/services/maker_webhooks/settings Daar vind u 'n URL met u sleutel in die volgende formaat:

Stap 4: In baie meer besonderhede - Blynk

Image
Image
Meer besonderhede - Blynk
Meer besonderhede - Blynk
Meer besonderhede - Blynk
Meer besonderhede - Blynk

Ons wil ook 'n koppelvlak hê met die volgende funksies:

1. Die vermoë om in te stel hoe lank die kamer leeg moet wees terwyl die AC werk voordat ons in kennis gestel word

2. Vermoë om te kies hoe naby die buitentemperatuur aan die binnekant moet wees.

3. 'n Display vir die metings van die temperatuursensors

4. 'n LED wat ons die toestand van die AC (aan/af) vertel.

5. En die belangrikste, 'n skerm om te wys hoeveel $$$ en energie ons bespaar het.

Hoe om die Blynk -koppelvlak te skep:

Laai dit af na u telefoon as u nog nie die Blynk -app het nie. As u die app oopmaak en 'n nuwe projek skep, moet u die toepaslike toestel kies (bv. ESP8266).

U kry 'n e -pos met 'n verifikasietoken wat u op die toepaslike plek in die kode sal plaas (u kan dit ook later weer aan u self uit die instellings stuur as u dit verloor).

Plaas nuwe widgets op u skerm, klik op die + -teken bo -aan. Kies die widgets en klik dan op 'n widget om die instellings daarvan in te voer. Ons het foto's vir u verwysing bygevoeg van die instellings vir al die widgets wat ons gebruik het.

Nadat u klaar is met die app en as u dit uiteindelik wil gebruik, klik eenvoudig op die "speel" -ikoon in die regter boonste hoek om die Blynk -program uit te voer. U sal ook kan sien wanneer u ESP8266 aansluit.

Let wel - die 'opdatering' -knoppie word gebruik om die temperatuur en toestand van die wisselstroom te haal, sodat ons dit in die app kan sien. Dit is nie nodig as u instellings verander nie (soos die temperatuurverskil), aangesien dit outomaties gestoot word.

Stap 5: Die kode

Ons het baie moeite gedoen om elke deel van die kode te dokumenteer op 'n manier wat dit makliker sou maak om dit te verstaan.

Gedeeltes in die kode wat u moet verander voordat u dit kan gebruik (as die authenticiteitsleutel vir Blynk, u wifi -SSID en wagwoord, ens …) word gevolg deur die opmerking //* verandering*, sodat u dit maklik kan soek.

U moet die biblioteke in die kode gebruik, u kan dit via die Arduino IDE installeer deur op Skets> Biblioteke in te sluit> Biblioteke te bestuur. Daar kan u na die biblioteeknaam soek en dit installeer. Maak ook seker dat u die generic8266_ifttt.h -lêer op dieselfde plek as die ACsaver.ino plaas.

Een deel van die kode wat ons hier sal verduidelik, aangesien ons nie die kode wil deurmekaar maak nie, is hoe ons besluit wanneer die toestand van die AC van aan na af moet verander, en die toestand van die kamer van leeg na nie leeg nie.

Ons lees elke 3 sekondes van die sensors, maar aangesien sensors nie 100% akkuraat is nie, wil ons nie hê dat 'n enkele lesing die toestand verander wat ons glo in die kamer is nie. Om dit op te los, wat die kode doen, is dat ons 'n teller het wat ons ++ kry as ons 'n lesing kry ten gunste van "AC is on", en - andersins. As ons dan die waarde bereik wat in SWITCHAFTER (standaard na 4) gedefinieer word, verander ons die toestand na "AC is on", as ons by -SWITCHAFTER (negatief dieselfde waarde) kom, verander ons die toestand na "AC is off ".

Die impak op die tyd wat dit neem om oor te skakel, is onbeduidend, en ons vind dit baie betroubaar om slegs die regte veranderinge op te spoor.

Stap 6: Alles saamvoeg

Ok, dus is al die sensors op hul plek en werk hulle behoorlik. Die Blynk -koppelvlak is ingestel (met die regte virtuele penne!). En die IFTTT -gebeure wag op ons sneller.

U het die IFTTT -geheime sleutel in die kode ingevoeg, die authenticiteitsleutel van Blynk, die SSID van u WiFi en die wagwoord, en u het selfs nagegaan dat die DHT -sensors gekalibreer is, en indien nie, die offset dienooreenkomstig verander (byvoorbeeld ons buite DHT lees die temperature met 1 graad Celsius hoër as wat hy moet hê, dus gebruik ons offset = -1).

Maak seker dat u WiFi op is, begin u Blynk -app en laai die kode op u ESP8266.

Dis dit. As alles reg gedoen is, kan u nou speel en dit in aksie sien.

En as u dit net in aksie wil sien sonder om alles bymekaar te maak … Wel … Rol op en kyk na die video. (Kyk met onderskrifte! Geen stem oor nie)

Stap 7: Gedagtes

Ons het hier twee hoofuitdagings gehad.

In die eerste plek, hoe weet ons dat die wisselstroom aan is? Ons het probeer om 'n IR -ontvanger te gebruik wat sal luister na die kommunikasie tussen die AC en die afstandsbediening. Dit blyk te ingewikkeld te wees, aangesien die data baie morsig was en nie konsekwent genoeg was om te verstaan "ok, dit is 'n aan -sein". Ons het dus na ander maniere gesoek. Een idee was om 'n klein skroef te gebruik wat klein stroom sou genereer as dit van die wind van die AC af beweeg, 'n ander idee wat ons probeer het, was om 'n versnellingsmeter te laat meet die hoek van die roterende vlerke op die vents en hul beweging vanaf die OFF -posisie te bepaal.

Uiteindelik het ons besef dat die eenvoudigste manier om dit te doen, is met die elektretmikrofoon, wat die wind uit die wisselstroom baie betroubaar opspoor

Dit was 'n briesie om die DHT -sensors aan die werk te kry;), maar eers later het ons besef dat een daarvan 'n bietjie van die werklike temperatuur af was. Die PIR -sensor benodig ook 'n paar aanpassings, soos voorheen beskryf.

Die tweede uitdaging was om die hele oplossing eenvoudig en betroubaar te maak. In 'n sekere sin dat dit irriterend moet wees om te gebruik, moet dit net daar wees en druk wanneer u dit nodig het. Andersins sou ons waarskynlik self ophou om dit te gebruik.

Daarom het ons nadink oor wat in die Blynk -koppelvlak moet wees en probeer om die kode so betroubaar moontlik te maak, deur te sorg vir elke rand wat ons kan opspoor.

'N Ander uitdaging wat ons nie kon oplos teen die tyd dat ons hierdie instruksies geskryf het nie, was om 'n IR -blaster by te voeg waarmee ons die wisselstroom van die Blynk -koppelvlak kan afskakel. Wat is die punt om te weet dat u die wisselstroomnetwerk vergeet het sonder dat u kon uitskakel? (wel … jy kan iemand vra of hulle tuis is).

Ongelukkig het ons probleme ondervind met die herhaling van die seine wat ons vanaf die afstandsbediening opgeteken het, terug na die wisselstroom met die ESP8266. Ons het daarin geslaag om die AC deur 'n Arduino Uno te beheer, volgens hierdie instruksies:

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

Ons sal binnekort weer probeer en die instruksies opdateer met ons bevindings, en hopelik instruksies oor hoe om die vermoë by te voeg.

'N Ander beperking wat ons sien, is die feit dat ons 'n sensor buite die venster moet koppel, wat in sekere situasies moontlik nie moontlik is nie, en dit beteken ook dat 'n lang kabel buite moet gaan. 'N Oplossing kan wees om weerdata van u ligging van die internet af te haal. Die elektretsensor wat van die wisselstroom af loop, kan ook vervang word deur die IR -ontvanger wat ons hierbo beskryf het, vir modelle van wisselstroom met meer bekende of maklik om te dekodeer IR kodes.

Die projek kan op baie maniere uitgebrei word. Soos hierbo gesê, sal ons probeer om 'n manier te vind om IR -beheer oor die wisselstroom in te sluit, wat dan 'n hele nuwe wêreld bied van geleenthede om die wisselstroom van oral in die wêreld aan of uit te skakel, of deur middel van die Blynk tye aan en af te skakel. app, as 'n ander voorbeeld. Nadat u die tegniese IR -probleme ondervind het, is die byvoeging van die kode redelik eenvoudig en eenvoudig, en behoort nie lank te duur nie.

As ons regtig groot wil droom … Die projek kan omskep word in 'n volledige module, wat van elke AC 'n slim AC maak. En dit het nie veel meer nodig as ons nie. Net meer kode, meer gebruik van die IR, en as ons wil hê dat dit in massa geproduseer moet word, kan u seker maak dat ons weerdata per plek gaan haal, dan kan ons die hele ding in 'n klein boksie plaas.

Al wat ons nodig het, is eintlik 'n temperatuursensor vir die binnetemperatuur, 'n PIR -sensor om beweging op te spoor, en IR LED as 'n blaster, en 'n IR -ontvanger om te luister na die kommunikasie tussen die wisselstroom en die afstandsbediening wat ons gebruik.

Blynk bied alles wat ons nodig het om die magiese boks te beheer, op 'n baie eenvoudige en betroubare manier.

Dit sal 'n rukkie neem om so 'n volledige projek te maak, veral omdat dit veelsydig genoeg is om homself te konfigureer en die meeste AC's outomaties op te spoor en te verstaan.

Maar as u dit self doen, wel, as u dit in u vrye tyd doen, behoort ons ongeveer nie meer as 'n week of twee te neem nie. Dit hang af van hoeveel vrye tyd u het… (Alhoewel dit net makliker is om dit weer te speel).

Aanbeveel: