Съдържание:

IDC2018IOT Кажи ми кога да изключвам променливотоковия ток: 7 стъпки
IDC2018IOT Кажи ми кога да изключвам променливотоковия ток: 7 стъпки

Видео: IDC2018IOT Кажи ми кога да изключвам променливотоковия ток: 7 стъпки

Видео: IDC2018IOT Кажи ми кога да изключвам променливотоковия ток: 7 стъпки
Видео: Демистифицируем виртуальные машины: Руководство ИТ-администраторов по Hyper-V 2024, Юли
Anonim
Image
Image

Много от нас, особено през лятото, използват AC почти непрекъснато, когато в действителност в определени часове на деня можем просто да отворим прозорец и да се насладим на приятен ветрец. Също така, ние лично забелязахме, че понякога дори просто забравяме да изключим климатика, когато излизаме от стаята, губейки енергия и пари.

Решението, което ще изградим, ще сравнява вътрешната температура с външната и когато те са достатъчно близо, ще ни уведоми чрез Facebook Messanger, че е време да отворим прозорец и да дадем малко почивка на климатика.

Също така ще направим друг механизъм, който да ни уведомява, когато сме забравили включения климатик и сме напуснали стаята.

Стъпка 1: Малко повече подробности

Събираме данни от 4 различни сензора:

  • Два DHT сензора събират температурата вътре в къщата и извън нея.
  • Един PIR сензор открива движение в стаята.
  • Един микрофон Electret се използва за откриване на вятъра, излизащ от вентилационния отвор на променлив ток, прост и надежден начин да се определи дали променливотоковият ток е включен.

Данните, идващи от сензорите, ще бъдат обработени и изпратени до Blynk, където ще бъдат показани в интерфейс, който ще създадем. Също така, ние ще задействаме IFTTT събития, за да уведомим потребителя, когато той може да отвори прозорец вместо AC, и когато е забравил AC и е напуснал стаята за предварително определен период от време.

Интерфейсът Blynk също ще ни даде начин да променим съответните настройки според предпочитанията на потребителя, както ще обсъдим по -подробно по -късно.

Необходими части:

  1. WiFi модул - ESP8266
  2. PIR сензор.
  3. DHT11/DHT22 температурни сензори x2.
  4. 10k/4.7k резистори (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Електретен микрофон.
  6. Джъмпери.
  7. Дълги кабели (Телефонният проводник ще свърши чудесна работа).

Пълният код на проекта е приложен в края с коментари по целия код.

Логично, той има няколко различни слоя функционалност:

  • Данните от сензорите се четат на интервали от 3 секунди, тъй като показват, че са по -точни и няма нужда от повече от това.
  • Една част от кода следи състоянието на променливотоковото напрежение чрез стойностите, идващи от електретен микрофон, който е поставен над отвора на променливотоковия ток.
  • Друга част е проследяването на показанията, идващи от температурните сензори, и разликата, която използването е определено като приемливо за включване на климатика и отваряне на прозорец вместо това. Търсим момента, когато температурите се приближат достатъчно.
  • Трета част е проследяване на движението в стаята. Ако не открие никакво голямо движение (начинът за проверка на мажора ще бъде обяснен скоро) за период от време, определен от потребителя, и състоянието на AC е ВКЛЮЧЕНО, на потребителя ще бъде изпратено известие.
  • Известията се обработват чрез задействане на IFTTT Webhooks, които изпращат предварително зададени съобщения до потребителя чрез Facebook Messenger
  • Последната част, която заслужава да се отбележи, е частта, която обработва интерфейса на Blynk, както чрез получаване на промените, които потребителят прави в променливите, така и по другия начин - придвижване на данни към интерфейса на Blynk, за да може потребителят да ги види.

Стъпка 2: В много повече подробности - сензори

В много повече подробности - сензори
В много повече подробности - сензори
В много повече подробности - сензори
В много повече подробности - сензори

Да започваме.

Първо, трябва да се уверим, че и двата ни DHT сензора отчитат една и съща температура, когато са поставени на едно и също място. За целта направихме проста скица, приложена в края на този раздел (CompareSensors.ino). Свържете двата сензора и не забравяйте да промените типа на DHT сензорите в скицата според тези, които имате (по подразбиране е един DHT11 и един DHT22, така че можете да видите как се обработват и двата в кода). Отворете серийния монитор и ги оставете да работят известно време, особено ако използвате сензори DHT11, тъй като те са склонни да отнемат повече време, за да се приспособят към температурните промени.

Отбележете разликата между сензорите и я вмъкнете по -късно в основния код в променливата "offset".

Разположение на сензори:

Един DHT сензор трябва да бъде поставен на външната стена на къщата, така че го свържете към някои дълги кабели, достатъчно дълги, за да достигнете до вашия ESP8266 вътре в стаята, и го поставете навън (може да се направи лесно през прозореца). Другият DHT сензор трябва да бъде поставен на дъската, вътре в помещението, в което използваме променлив ток.

Електретният микрофон също трябва да бъде свързан към достатъчно дълги кабели и да се постави на място, където вятърът, излизащ от променливотоковия ток, ще го удари.

И накрая, PIR сензорът трябва да бъде поставен на място, обърнато към центъра на стаята, така че да улавя всяко движение в стаята. Обърнете внимание, че сензорът има две малки копчета, единият контролира закъснението (колко дълго ВИСОКИЯТ сигнал за откриване на движение се задържа ВИСОК), а другият контролира чувствителността (вижте снимката).

Може да се наложи да си поиграете с него, докато не прочетете, от което сте доволни. За нас най -добрият резултат беше забавяне чак наляво (най -ниската стойност) и чувствителност точно в средата. Кодът предоставя серийни разпечатки, които включват показания от всички сензори, което ще направи много по -лесно отстраняването на грешки в такива проблеми.

Свързване на сензорите:

ПИН номерата, които използвахме, са следните (и могат да се променят в основния код):

Външен DHT сензор - D2.

Вътрешен DHT сензор - D3.

Електрет - A0 (аналогов извод).

PIR - D5.

Схемите за свързване на всяка от тях могат лесно да бъдат намерени с помощта на търсене на изображения в Google с нещо подобно на "схемата на PIR резистор Arduino" (не бихме искали да ги копираме тук и да пресичаме всякакви авторски линии:)).

Прикачихме и снимка на нашата макет, вероятно е трудно наистина да се следват връзките, но това може да даде добро усещане за това.

Както вероятно знаете, нещата рядко, ако някога работят, за първи път, когато ги свържем. Ето защо направихме функция, която отпечатва показанията от сензорите по лесен за четене начин, така че можете да отстраните грешките си в начина им на работа. Ако не искате кодът да се опитва да се свърже с Blynk по време на отстраняване на грешки, просто коментирайте "Blynk.begin (auth, ssid, pass);" от частта за настройка на кода, стартирайте го и отворете сериен монитор, за да видите отпечатъците. Прикачихме и снимка на отпечатъците.

Стъпка 3: В много повече подробности - IFTTT последователност

В много повече подробности - IFTTT последователност
В много повече подробности - IFTTT последователност

Затова искаме да получим известие в два сценария:

1. Външната температура е достатъчно близка до тази, която имаме вътре, когато AC работи.

2. Напуснахме стаята за продължителен период от време и климатикът все още работи.

IFTTT ни позволява да свързваме много различни услуги, които обикновено не взаимодействат, по много прост начин. В нашия случай тя ни позволява да изпращаме известия много лесно чрез много услуги. Избрахме Facebook Messanger, но след като го заработите с Facebook Messanger, ще можете лесно да го промените на всяка друга услуга по ваш избор.

Процеса:

На уебсайта на IFTTT кликнете върху вашето потребителско име (горе вдясно) и след това „Нов аплет“изберете „Webhooks“като задействане („това“) и изберете „Получаване на уеб заявка“. Задайте име на събитие (напр. Empty_room).

За задействаната услуга действието („това“), изберете Facebook Messenger> Изпращане на съобщение и въведете съобщението, което искате да получите, когато това събитие се случи (напр. „Здравей, изглежда, че си забравил AC на:).

Докато сме тук, вие също трябва да намерите своя секретен ключ, който ще трябва да вмъкнете на съответното място в кода.

За да намерите вашия секретен ключ, отидете на https://ifttt.com/services/maker_webhooks/settings Там ще намерите URL с вашия ключ в следния формат:

Стъпка 4: В много повече подробности - Blynk

Image
Image
В много повече подробности - Blynk
В много повече подробности - Blynk
В много повече подробности - Blynk
В много повече подробности - Blynk

Искаме също интерфейс, който ще има следните функции:

1. Възможност да зададете колко време трябва да бъде празна стаята с работещ климатик, преди да получим известие

2. Възможност за избор колко близка трябва да бъде външната температура към вътрешната.

3. Дисплей за показанията от температурните сензори

4. Светодиод, който ни показва състоянието на AC (включване/изключване).

5. И най -важното, дисплей, който показва колко $$$ и енергия спестихме.

Как да създадете интерфейса на Blynk:

Ако все още нямате приложението Blynk, изтеглете го на телефона си. Когато отворите приложението и създадете нов проект, не забравяйте да изберете подходящото устройство (например ESP8266).

Ще получите имейл с маркер за удостоверяване, който ще вмъкнете в кода на съответното място (можете също да го изпратите отново от настройките по -късно, ако го загубите).

Поставете нови джаджи на екрана си, щракнете върху знака + в горната част. Изберете приспособления и след това щракнете върху приспособление, за да въведете настройките му. Добавихме снимки за настройките за всички приспособления, които използвахме, за ваше сведение.

След като приключите с приложението и когато в крайна сметка искате да го използвате, просто кликнете върху иконата „възпроизвеждане“в горния десен ъгъл, за да стартирате приложението Blynk. Ще можете също да видите кога вашият ESP8266 се свързва.

Забележка - бутонът „актуализация“се използва за извличане на температурата и състоянието на климатика, за да ги видим в приложението. Не се изисква при промяна на настройките (като температурната разлика), тъй като те се натискат автоматично.

Стъпка 5: Кодът

Положихме много усилия да документираме всяка част от кода по начин, който ще направи разбирането му възможно най -лесно.

Части от кода, които трябва да промените, преди да го използвате (като ключ за удостоверяване за Blynk, вашият wifi SSID и парола и т.н …), са последвани от коментара //* промяна*, за да можете лесно да ги потърсите.

Ще трябва да използвате библиотеките в кода, можете да ги инсталирате чрез IDE на Arduino, като щракнете върху Sketch> Include Libraries> Manage Libraries. Там можете да потърсите името на библиотеката и да го инсталирате. Също така се уверете, че сте поставили файла generic8266_ifttt.h на същото място като ACsaver.ino.

Една част от кода, който ще обясним тук, тъй като не искахме да затрупваме кода, е как решаваме кога да променим състоянието на AC от on към off и състоянието на помещението от празен до не празен.

Четем от сензорите на всеки 3 секунди, но тъй като сензорите не са 100% точни, не искаме нито едно четене да промени състоянието, което смятаме, че е в стаята сега. За да разрешим това, това, което прави кодът, е, че имаме брояч, който ние ++, когато получим четене в полза на "AC е включен", и - в противен случай. След това, когато стигнем до стойността, дефинирана в SWITCHAFTER (по подразбиране на 4), променяме състоянието на „AC е включен“, когато стигнем до -SWITCHAFTER (отрицателен същата стойност), променяме състоянието на „AC е изключен ".

Въздействието върху времето, необходимо за превключване, е незначително и ние го намираме за много надеждно при откриване само на правилни промени.

Стъпка 6: Съберете всичко заедно

Добре, така че всички сензори са на място и работят правилно. Интерфейсът Blynk е настроен (с правилните виртуални щифтове!). Събитията от IFTTT чакат нашия спусък.

Вкарали сте секретния ключ IFTTT в кода, ключа за удостоверяване от Blynk, SSID на вашия WiFi и паролата и дори сте проверили дали DHT сензорите са калибрирани и ако не, променихте съответно отместването (например, извън DHT температурите на четене са по -високи с 1 градус по Целзий от това, което трябва да има, затова използвахме отместване = -1).

Уверете се, че WiFi е включен, стартирайте приложението Blynk и заредете кода във вашия ESP8266.

Това е. Ако всичко е направено правилно, можете да си поиграете сега и да го видите в действие.

И ако просто искате да го видите в действие, без да се налага да съберете всичко … Е … Превъртете нагоре и гледайте видеоклипа. (Гледайте със субтитри! Без глас)

Стъпка 7: Мисли

Тук имахме две основни предизвикателства.

Първо, как да разберем, че AC е включен? Опитахме се да използваме IR приемник, който да "слуша" комуникацията между AC и дистанционното. Изглеждаше твърде сложно, тъй като данните бяха много разхвърляни и не бяха достатъчно последователни, за да се разбере „добре, това е сигнал за включване“. Затова потърсихме други начини. Една идея беше да се използва малък витло, което ще генерира малък ток, когато се движи от вятъра на АС, друга идея, която опитахме, беше да имаме акселерометър, който да измерва ъгъла на въртящите се крила на вентилационните отвори и да открива тяхното движение от позиция OFF.

В крайна сметка осъзнахме, че най -простият начин да го направим е с електретен микрофон, който много надеждно открива вятъра, излизащ от променлив ток

Да накараме DHT сензорите да работят е лесно;), но едва по -късно разбрахме, че един от тях е малко по -далеч от реалната температура. PIR сензорът също изисква някои настройки, както е описано по -горе.

Второто предизвикателство беше да направим цялото решение просто и надеждно. В смисъл, че би трябвало да е досадно да се използва, трябва просто да е там и да тласка, когато имате нужда. В противен случай ние самите вероятно бихме спрели да го използваме.

Затова се замислихме какво трябва да има в интерфейса на Blynk и се опитахме да направим кода възможно най -надежден, като се погрижим за всеки край, който можем да измислим.

Друго предизвикателство, което не успяхме да разрешим по време на писането на тази инструкция, беше да добавим IR бластер, който ще ни позволи да изключим AC от интерфейса Blynk. Какъв е смисълът да знаеш, че си забравил включването на климатика без възможност за изключване? (ами … можеш да попиташ някого дали е у дома).

За съжаление, имахме известни затруднения при възпроизвеждането на сигналите, които записахме от дистанционното управление, обратно към променливотоковото устройство с ESP8266. Успяхме да контролираме AC чрез Arduino Uno, следвайки тази инструкция:

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

Скоро ще опитаме отново и ще актуализираме инструкциите с нашите констатации и се надяваме инструкции как да добавим тази възможност.

Друго ограничение, което виждаме, е фактът, че трябва да свържем сензор извън прозореца, което може да не е възможно в определени ситуации, а също така означава, че дълъг кабел трябва да излезе навън. Решение може да бъде извличането на метеорологични данни за вашето местоположение от интернет. Също така, електрическият сензор, който работи от AC, може да бъде заменен от IR приемника, който описахме по -горе, за модели на AC с по -известни или лесни за декодиране IR кодове.

Проектът може да бъде разширен по много начини. Както беше казано по -горе, ние ще се опитаме да намерим начин да включим IR контрол върху AC, което след това отваря изцяло нов свят от възможности за включване и изключване на AC от всяка точка на света, или задаване на времена за включване и изключване чрез Blynk приложение, като друг пример. След като разберете техническите трудности с IR, добавянето на кода е доста просто и ясно и не трябва да отнема много време.

Ако наистина искаме да мечтаем мащабно … Проектът може да се превърне в цялостен модул, който превръща всеки AC в интелигентен AC. И не се нуждае от много повече от нас. Просто повече код, повече използване на IR и ако искаме да се произвежда масово, може би не забравяйте да извлечете метеорологични данни по местоположение, тогава можем да поставим всичко в малка кутия.

Наистина, всичко, от което се нуждаем, е температурен сензор за вътрешната температура, PIR сензор за откриване на движение и IR LED като бластер, и IR приемник за „слушане“на комуникацията между AC и дистанционното, което използваме.

Blynk предоставя всички възможности, от които се нуждаем, за да контролираме магическата кутия, по много прост и надежден начин.

Изработването на такъв цялостен проект ще отнеме известно време, особено от гледна точка на това да го направите достатъчно гъвкав, за да се конфигурира и автоматично да открива и разбира повечето AC.

Но ако го направите сами, добре, ако го правите в свободното си време, ние приблизително не трябва да отнеме повече от седмица или две. Зависи от това колко свободно време имате … Основното предизвикателство тук би било да запазите всички различни сигнали, които дистанционното управление може да изпраща, и да ги осмислите. (Макар че просто преиграването им трябва да е още по -лесно).

Препоръчано: