Съдържание:

Arduino базиран на глас контролиран IOT релеен превключвател (Google Home & Alexa се поддържа): 11 стъпки
Arduino базиран на глас контролиран IOT релеен превключвател (Google Home & Alexa се поддържа): 11 стъпки

Видео: Arduino базиран на глас контролиран IOT релеен превключвател (Google Home & Alexa се поддържа): 11 стъпки

Видео: Arduino базиран на глас контролиран IOT релеен превключвател (Google Home & Alexa се поддържа): 11 стъпки
Видео: STC-3028 Thermostat with Heat and Humidity Fully Explained and demonstrated 2024, Юни
Anonim
Arduino базиран на глас контролиран IOT релеен превключвател (Google Home и Alexa се поддържат)
Arduino базиран на глас контролиран IOT релеен превключвател (Google Home и Alexa се поддържат)

Този проект описва как да направите превключвател за реле, базиран на Arduino, с гласово управление, IOT. Това е реле, което можете да включите и изключите дистанционно с помощта на приложение за iOS и Android, както и да го свържете към IFTTT и да го контролирате с гласа си, като използвате Google Home и/или Alexa също. Ще обхванем всички стъпки, необходими за създаване на устройството, свързване на приложението и свързване в различните IOT услуги.

Консумативи

  • Wemos D1 Mini Lite ESP8285 (няколко долара на Amazon)
  • 5V релеен модул за Arduino/Raspberry Pi
  • 2N2222 NPN транзистор
  • Резистор 47K ома
  • 1K ом резистор

Стъпка 1: Изградете веригата

Изградете веригата
Изградете веригата
Изградете веригата
Изградете веригата
Изградете веригата
Изградете веригата

Първата стъпка е да свържете веригата. Включих схематична и традиционна електрическа схема, в зависимост от това, с което сте свикнали. Направих първата си схема на прототипна макет и след това я преместих на печатна платка за по -трайна настройка и я поставих в 3D отпечатана кутия за проекти.

Релето е оптоизолирано H/L 5V реле, което означава, че първо задействащата схема е оптически изолирана от самото активиране на релето, което премахва всеки потенциален проблем с обратна връзка от релето обратно към микроконтролера Wemos. Хубава безопасност да имаш. Второ, той може да се превключва високо/ниско, което означава, че може да бъде конфигуриран чрез преместване на жълтия джъмпер, който виждате на снимките, от задействане, когато сигналът е висок (+5V), или задействане, когато сигналът е нисък (0V). Самият Wemos изпраща 3.3V от своите цифрови пинове и ние използваме D1 като източник на задействане, което означава, че трябва да го усилим леко, така че да се доближим до цифров сигнал +5V, за да задействаме релето. Като алтернатива можете да използвате 3.3V реле и да елиминирате компонента на усилвателя на транзистора във веригата и да отидете направо от D1 към сигналния щифт на релето. Нямах 3.3V релета, затова използваме по -често 5V реле и веригата на усилвателя.

DC+ и DC- на релето се свързват към 5V и GND щифтовете на Wemos, което осигурява необходимото напрежение за работа на релето. Релето е оценено от малки напрежения чак до линейно напрежение, но използвам това за управление на приложение за окабеляване с ниско напрежение. Ако използвате това за управление на напрежението в мрежата, моля, уверете се, че знаете какво правите, квалифицирани ли сте и вземете съответните предпазни мерки. Ако не, тогава не използвайте това за управление на приложения за напрежение на мрежата.

Щифт D1 на Wemos се свързва с 47K омов резистор, който се захранва в основата на NPN транзистора. Излъчвателят се връзва към земята. Колекторът е свързан към входния сигнал на релето. Релето е настроено да се задейства на ниско ниво, така че когато D1 подава сигнал, 3.3v сигналът се усилва до приблизително 5V и релето е отворено. Когато D1 се понижи, сигналът към релето намалява и релето се затваря и завършва верига.

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

Стъпка 2: Програмиране на Wemos - Общ преглед

Едно от нещата, които харесвам в Wemos, е, че те могат да бъдат програмирани точно като Arduino, използвайки същата IDE. Тук обаче има няколко стъпки.

  1. Инсталирайте драйверите на Wemos на компютъра, можете да говорите с Wemos
  2. Актуализирайте IDE на Arduino, така че платката Wemos да е достъпна
  3. Направете бърз тест „Мигане“, за да се уверите, че всичко работи правилно
  4. Настройте се с Blynk (знам, че е объркващо, но всъщност е различно от "теста за мигане")
  5. Вземете код за приложение от Blynk
  6. Актуализирайте кода на Wemos/Arduino с информацията за Blynk
  7. Качете кода във вашата настройка на Wemos.

Стъпка 3: Програмиране на Wemos - Инсталиране на драйвери

Програмиране на Wemos - Инсталиране на драйвери
Програмиране на Wemos - Инсталиране на драйвери

Отидете тук (тази връзка изглежда се променя периодично, ще се опитам да я актуализирам):

www.wemos.cc/en/latest/ch340_driver.html

И изтеглете правилния пакет драйвери за вашата операционна система. След това извлечете ципа в директория и изпълнете приложението "SETUP", за да го инсталирате.

Когато направих това за първи път, получих някаква странна грешка, че не се инсталира. Видях бележка на някой друг за това и тяхното решение, което ми подейства. Така че, ако получите грешка, опитайте да използвате бутона „Деинсталиране“и след това отново използвайте „Инсталиране“. Надявам се това да изчисти проблема, както при мен.

Стъпка 4: Програмиране на Wemos - Актуализирайте Arduino IDE

Програмиране на Wemos - Актуализирайте Arduino IDE
Програмиране на Wemos - Актуализирайте Arduino IDE
Програмиране на Wemos - Актуализирайте Arduino IDE
Програмиране на Wemos - Актуализирайте Arduino IDE
Програмиране на Wemos - Актуализирайте Arduino IDE
Програмиране на Wemos - Актуализирайте Arduino IDE

Ако не сте инсталирали Arduino IDE, сега е подходящ момент да го направите. Можете да го изтеглите от www.arduino.cc

Ето справка за това, което ще направим в тази стъпка.

wiki.wemos.cc/tutorials:get_started:get_st…

  1. Нека инсталираме новата платка, така че да се появи като опция в Arduino IDE. Стъпки 2 - 4 са извадени от ръководството за инсталиране на следната страница на github.

    github.com/esp8266/Arduino

  2. Стартирайте Arduino IDE и отворете прозореца Предпочитания.
  3. Въведете „https://arduino.esp8266.com/stable/package_esp8266com_index.json“в полето Допълнителни URL адреси на мениджъра на борда. Можете да добавите няколко URL адреса, като ги разделите със запетаи.
  4. Отворете Boards Manager от Tools> Board> Boards Manager (в горната част), потърсете „esp8266“и инсталирайте изброената платформа esp8266.
  5. В този момент ще видите Wemos платки в Инструменти → Платка: xxx Изберете Wemos D1 Mini. В моя случай, както можете да видите от изображението, конкретното име беше "LOLIN (WEMOS) D1 R2 & mini"
  6. Свържете USB кабел между компютъра и Wemos
  7. Потвърдете, че „Портът“вече е активен в менюто Инструменти и изглежда правилно.

Стъпка 5: Програмиране на Wemos - Blink Test

Програмиране на Wemos - Blink Test
Програмиране на Wemos - Blink Test

Преди да продължим, трябва да се уверим, че можем да комуникираме с борда на Wemos и всичко изглежда наред. Най -лесният начин да направите това е да включите USB кабел и да опитате да натиснете проста програма към Wemos. Blink е най -лесният пример и ми спести много проблеми при работа с нови дъски, че винаги правя това първо.

  1. Отидете на: Файл> Примери> ESP8266> Мигане и заредете мигащата скица за устройство Wemos
  2. Компилирайте и качете скицата

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

Ако приемем, че всичко е наред, преминете към следващата стъпка.

Стъпка 6: Програмиране на Wemos - Настройка на Blynk

Програмиране на Wemos - Настройка на Blynk
Програмиране на Wemos - Настройка на Blynk
Програмиране на Wemos - Настройка на Blynk
Програмиране на Wemos - Настройка на Blynk
Програмиране на Wemos - Настройка на Blynk
Програмиране на Wemos - Настройка на Blynk

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

  1. Изтеглете приложението и създайте акаунт (безплатно)
  2. Създайте нов проект
  3. Изберете Wemos D1 като Хардуер под Изберете устройство
  4. Дайте име на проекта и запазете типа конектор като WiFi
  5. Щракнете върху Създаване на проект
  6. В този момент маркерът за удостоверяване ще бъде изпратен по имейл на имейл адреса, който сте използвали, когато сте създавали своя акаунт в Blynk. Запазете това за по -късно, ние ще вмъкнем стойностите в скицата в следващата стъпка.
  7. Когато стигнете до празния екран с платно, просто плъзнете наляво и ще получите менюто с приспособления. Изберете „Бутон“, за да добавите „бутон“към проекта
  8. Изберете бутона и след това конфигурирайте Pin, като щракнете върху него и изберете „Digital“и „D1“като pi и щракнете върху „Ok“
  9. В този момент всичко трябва да е готово. За да направите това активно, бихте искали да изберете иконата на триъгълник в горния десен ъгъл, но тя все още няма да работи, докато не качим и конфигурираме скицата, което е следващата стъпка!

Стъпка 7: Програмиране на Wemos - Инсталиране на библиотеката Blynk

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

github.com/blynkkk/blynk-library/releases

Също така, за известен фон, вижте основния им уебсайт тук (https://blynk.io/en/getting-started)

Това беше объркващо за мен в началото, но е много по -лесно, отколкото звучи. Просто разархивирайте файла в директорията на Arduino. За мен това беше в / user / Documents / Arduino. Там вече имаше папка, наречена „библиотеки“. Zip файлът съдържа директория "библиотека" и "инструменти". Когато го разархивирате в директорията Arduino, той добавя съдържанието му към библиотеките и създава инструменти, ако вече не е съществувал.

Стъпка 8: Програмиране на Wemos - скицата

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

examples.blynk.cc/?board=WeMos%20D1&shield=ESP8266%20WiFi&example=Widgets%2FTerminal

Или можете да използвате тази проба, която трябва да работи за вас. Просто не забравяйте да замените стойностите за маркера за удостоверяване и вашите идентификационни данни за вашата wifi мрежа.

/*************************************************************

Изтеглете най-новата библиотека на Blynk тук: https://github.com/blynkkk/blynk-library/releases/latest Blynk е платформа с приложения за iOS и Android за управление на Arduino, Raspberry Pi и други подобни по интернет. Можете лесно да изградите графични интерфейси за всичките си проекти, като просто плъзнете и пуснете джаджи. Изтегляния, документи, уроци: https://www.blynk.cc Генератор на скици: https://examples.blynk.cc Общност на Blynk: https://community.blynk.cc Следвайте ни: https://www.fb. com/blynkapp Библиотеката на Blynk е лицензирана под лиценз на MIT Този примерен код е обществено достояние. ************************************************** *********** Можете да изпращате/получавате всякакви данни, използвайки WidgetTerminal обект. Настройка на проект за приложение: Приспособление за терминал, прикрепено към Virtual Pin V1 *************************************** **********************//*Коментирайте това, за да деактивирате разпечатките и да спестите място*/ #define BLYNK_PRINT Serial #include #include // Трябва да получите Auth Токен в приложението Blynk. // Отидете на Настройки на проекта (икона на гайка). char auth = "YourAuthToken"; // Вашите идентификационни данни за WiFi. // Задайте парола на "" за отворени мрежи. char ssid = "YourNetworkName"; char pass = "Вашата парола"; // Прикачете виртуален сериен терминал към терминален терминал на Virtual Pin V1 WidgetTerminal (V1); // Можете да изпращате команди от терминала към вашия хардуер. Просто използвайте // същия виртуален щифт като вашия терминален приспособление BLYNK_WRITE (V1) {// ако въведете „Marco“в терминален приспособление - той ще отговори: „Polo:“if (String ("Marco") == param.asStr ()) {terminal.println ("Казахте:" Марко ""); terminal.println ("Казах:" Polo ""); } else {// Изпратете го обратно terminal.print ("Казахте:"); terminal.write (param.getBuffer (), param.getLength ()); terminal.println (); } // Уверете се, че всичко е изпратено terminal.flush (); } void setup () {// Конзола за отстраняване на грешки Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Можете също така да посочите сървър: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress (192, 168, 1, 100), 8080); // Това ще отпечата версията на софтуера на Blynk към приспособлението на терминала, когато // вашият хардуер се свърже към терминала на Blynk Server.println (F ("Blynk v" BLYNK_VERSION ": Устройството стартира")); terminal.println (F ("-------------")); terminal.println (F ("Въведете" Marco "и получете отговор или въведете")); terminal.println (F ("всичко друго и да го отпечатате обратно.")); terminal.flush (); } void loop () {Blynk.run (); }

Стъпка 9: Програмиране на Wemos - Последна стъпка

Image
Image

След като скицата се зареди, компилирайте и качете скицата и трябва да сте готови да тествате настройката си!

Отворете приложението Blynk, щракнете върху триъгълника в горния десен ъгъл за вашия проект Wemos

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

Сега можете да свържете релето към всяко приложение за ниско напрежение, което изисква прост превключвател и да го контролирате от приложението си Blynk. Последното нещо, което трябва да направим, е да свържем IFTTT и да използваме Google или Alexa, за да контролираме системата Blynk, така че да не се налага да го правим от нашето приложение Blynk.

Стъпка 10: Контролиране на Blynk с IFTTT и Google Home или Alexa

Предполагам, че на този етап сте запознати с IFTTT. Ако не, има някои отлични уроци, които ще ви помогнат да научите как да използвате и да използвате IFTTT. Той е много мощен и нещо, което ще искате да научите, ако вече не сте запознати.

  1. Създайте нов аплет в IFTTT
  2. Изберете Google Assistant като „If This“и използвайте „Simple Phrase“като спусък. За мен, тъй като това щеше да включи или изключи камината ми, фразата ми беше „включи камината“
  3. За частта „Тогава това“потърсете и използвайте Webhooks
  4. Изберете „Направете уеб заявка“
  5. За URL адреса, който искате да използвате:

    "https://blynk-cloud.com/XXXXYYYYZZZZZ/update/d5?value=1"

  6. Задайте метода на GET, типа съдържание на urlencoded и можете да оставите BODY празно и след това да запишете

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

ЗАБЕЛЕЖКА: още едно нещо, на което трябва да обърнете внимание тук. Забележете, че използвам "d5" в моето API обаждане, но се свързах с щифт D1 на платката. Отне ми около един ден, за да разбера, че номерирането на пино GPIO и екранната отпечатана номерация на дъската не са еднакви. След като промених стойностите с директни URL обаждания и тествах напреженията на различни щифтове с волтов метър, успях да забележа, че повикването към d1 чрез API наистина промени напрежението, но не и при D1 на платката. d5/GPIO 5 всъщност съответства на D1 на дъската. След като направих тази корекция, всичко работи прекрасно!

Свързването на Alexa е идентично с началната страница на Google, просто използвайте услугата Alexa на IFTTT.

Стъпка 11: Заключение

В този момент трябва да имате функциониращо IOT реле с гласов контрол, използващо Wemos D1 mini lite. Насладете се и късмет!

Отново, електричеството е опасно, така че, моля, вземете подходящи предпазни мерки и ако не сте квалифицирани, моля, не го правете.

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