Съдържание:

Wifi синхронизирани лампи: 10 стъпки (със снимки)
Wifi синхронизирани лампи: 10 стъпки (със снимки)

Видео: Wifi синхронизирани лампи: 10 стъпки (със снимки)

Видео: Wifi синхронизирани лампи: 10 стъпки (със снимки)
Видео: Камера-ЛАМПА с проследяване и идентификация на човек. 2024, Юли
Anonim
Image
Image

Проект за някой, който осветява живота ви …

Преди 2 години, като коледен подарък за приятел на дълги разстояния, създадох лампи, които да синхронизират анимации чрез интернет връзка. Тази година, 2 години по -късно, създадох тази актуализирана версия със знанията, придобити от допълнителните години на електроника. Тази версия е много по -проста, без да са необходими никакви външни монитори или клавиатури (и само един прост чип, а не два!) В допълнение към лесен интерфейс за приложение на телефона (благодарение на Blynk IoT) вместо уебсайт и физически мек потенциометър.

В приложението има бутони, които осигуряват по -голяма гъвкавост в това какви анимации искате да добавите: има 3 плъзгача за RGB контрол, в допълнение към приспособлението в долната част, което ви позволява да избирате цветове от картата (така че нямате за да разберете какви са RGB номерата за желания от вас цвят). Има и предварително зададени бутони за щастлив, ядосан, тъжен и "мех", така че можете лесно да предадете емоциите си на другия човек под формата на анимации с лампа, за времето, когато имате нещо, за което искате да говорите, но не искате да притеснявате човека с много текстове.

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

Ако използвате точно това, което направих аз и качвате точно това, което имам, би трябвало да сте добре, дори ако никога не сте работили с електроника. Дори и да направите корекции в проекта, четенето на този урок трябва да ви даде представа какво трябва да промените, ако използвате това като ръководство. Разходите също бяха възможно най -ниски: общата цена, ако нямате абсолютно нито един от компонентите, е ~ $ 40 макс за лампа.

Стъпка 1: Материали

Това са материалите, от които се нуждаете за ЕДНА лампа (умножете по броя на лампите, които искате да направите):

  • 1x чипове NodeMCU ESP8266 ($ 7 всеки, $ 13 за 2)
  • 1x протоборд или макет (~ $ 1 всеки)
  • поялник и спойка
  • 1x неопикселови пръстени ($ 10 всеки, $ 8, ако купувате от adafruit.com)
  • 1x 5V захранване (най -малко 500mA изход, така че 1A или 2A ще бъдат идеални) с microUSB връзка (или жак за варел, но купете конвертор за барел жак към голи проводници) ($ 8 всеки)
  • Не е строго необходимо, но силно се препоръчва за защита на веригата (няколко цента всеки, но може да се наложи да купувате на едро)

    • 1x 300-500Ohm резистор (използвах 200Ohm и се разминах)
    • 1x 100-1000uF кондензатор
  • електрически проводник (или получавате тези типове ленти) (едножилното е най -доброто) (няколко цента за 5 )

    Нямате нужда от толкова много жица; само 5 инча ще бъдат достатъчни

  • Можете да направите каквото искате за външната лампа (горе са части само за електрониката). Отидох с лазерно рязано дърво и акрил, с хартия за скициране за разсейване на светлината.

Прикачих по -горе връзки на Amazon за най -евтините опции, които можах да намеря (към 20 декември 2018 г.), но определено можете да намерите по -евтини компоненти от различни места. Все още съм студент, така че имах достъп до кондензатори и резистори: опитайте да попитате всички приятели, които работят с електроника. Неопикселите могат да бъдат закупени от adafruit.com за по -евтино, ако имате други неща, които искате да поръчате от там (за да спестите от разходите за доставка..). Можете да получите резистори и кондензатори от DigiKey или Mouser също за много по -евтино, въпреки че доставката може да е по -висока. За захранващите устройства ще е добре старо зарядно устройство за телефон (или просто microUSB кабел, ако искате да включите лампата в USB порт вместо в контакта в стената). Ако нямате абсолютно нито един от тези компоненти, цената ви ще бъде максимум ~ 40 долара на лампа (и по -малко на лампа, колкото повече правите, тъй като обикновено ще купувате тези компоненти на едро: протобордът може да се предлага в опаковки от 5 например). Имах лежащи неща, така че това беше само 5 долара за мен (да, аз съм трупач с приятели, които случайно са пуснали много неща - плюс повторно използвах неопикселови пръстени от последния път).

Кодът Arduino и файловете на Adobe Illustrator (за кутията за лазерно изрязване) са приложени по -долу.

Стъпка 2: Общ преглед: Как работят лампите

Добре, така че след като имате материалите, може да се чудите как всички те се събират. Ето обяснение:

NodeMCU ESP8266 е микроконтролер, който работи на 3.3V логика (за разлика от 5V логика като повечето Arduinos). Той включва вграден wifi чип и GPIO пинове за използване на цифрови и аналогови сигнали с компоненти, които свързвате. Ще използвате един от щифтовете, способни да извеждат PWM сигнали (вижте разклонението тук: всеки щифт с ~ до него може да генерира аналогови сигнали, за разлика от цифровите сигнали само с 0 или 1, LOW или HIGH), за да контролирате неопикселов пръстен. За да го програмирате, можете да направите това лесно чрез Arduino IDE, лесно за изтегляне тук. (забележете, предоставих ръководството на Adafruit на техния ESP8266 HUZZAH вместо този на NodeMCE, който имаме. Ръководството все още е приложимо и за двете платки, но просто ще трябва да изберете различна дъска за качване в Arduino.)

Неопикселовият пръстен създава цветните анимации на лампата. Той има адресируеми светодиоди във формирането на пръстена, всеки от които може да се управлява индивидуално. Обикновено работи с 5V логика, която обикновено изисква промяна на нивото (обяснено тук), но за щастие библиотеката на неопикселите Adafruit е актуализирана, за да поддържа ESP8266. Докато 5V компонентите не реагират толкова надеждно на 3.3V сигнали, той работи доста надеждно, когато неопикселът се захранва при по -ниско напрежение (така че 3.3V вместо 5V). Вижте подробности за това тук.

По отношение на връзката от микроконтролера към неопиксела, най-безопасно е да поставите 300-500 ома резистор между линията за данни на неопиксела и GPIO пина, от който ще изпращате сигнали (за да предпазите светодиодите от всякакви внезапни пренапрежения). Трябва също да добавите 1000uF кондензатор, свързан паралелно към захранващите и заземителните проводници на неопикселовия пръстен: това е за осигуряване на защита от внезапни пренапрежения на тока. Прочетете това за още най -добри практики за използване на тези LED пръстени (и тук за пълното ръководство за потребителя от Adafruit).

За свързване с платформата Blynk IoT, Arduino има библиотека за използване на Blynk. Можете да прочетете документацията тук, за да научите повече за използването на Blynk като цяло. За начало това беше удобна инструкция специално за NodeMCU ESP8266 и Blynk.

Не се притеснявайте, ако някои от тези неща нямат смисъл! Бъдещите стъпки ще очертаят точно какво да качите, изтеглите, свържете и т.н. Прочетете всичко (да, това е дълъг урок, но поне преглед), преди да започнете да изграждате !!! Това ще ви помогне да разберете как се събират нещата, а не просто сляпо да следвате инструкциите.

Стъпка 3: Хардуер

Образ
Образ
Образ
Образ

За да започнете, свържете вашия хардуер, както е показано на снимките по -горе. Neopixel трябва да дойде при вас с отвори за запояване на проводници. Първо ще трябва да запоите проводници към отворите, обозначени с PWR (захранване), GND (заземяване) и IN (вход за аналогови сигнали), преди да свържете проводниците към 3.3V, заземяване и D2 щифтове на ESP8266 (вижте това за изводи). Като общо правило, червеният проводник е за захранване, черните проводници показват заземяване, а аз обичам да използвам синьо за линията за данни на неопиксела (свързан с щифта D2, който е способен да ШИМ сигнали).

Не забравяйте да свържете кондензатора в правилната посока: кондензаторът има полярност, което означава, че има значение коя страна свързвате успоредно на земята и захранването на неопиксела. Ако погледнете вашия 1000uF кондензатор, има сива лента от страната, която показва отрицателната страна на кондензатора (можете да го видите и на диаграмата за фризиране по -горе). Това е страната, която трябва да бъде свързана успоредно на земята на неопиксела. Резисторът няма полярност, така че няма нужда да се притеснявате за посоката.

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

Стъпка 4: Arduino код

Кодът.ino Arduino е приложен в долната част на тази стъпка за справка. Изглежда дълго и многословно, но не се притеснявайте: голяма част от него включва коментари, които обясняват всичко. Също така обичам да пропускам редове, за да добавям интервали за разграничаване на секции, което прави кода да изглежда по -дълъг.

Основни части, които да редактирате, за да отговарят на вашия код:

  • Токен/код за оторизация на Blynk (изпратен ви по имейл от Blynk, когато създавате устройство в приложението: вижте следващата страница за повече информация)

    Ще ви е необходим отделен код за оторизация за всяка лампа

  • име на домейн на wifi (между двата апострофа ")
  • парола за wifi (между двата апострофа ")

Освен това, стига да използвате точното ми приложение Blynk и цялостния хардуер (така че използвайте моята точна конфигурация на приложението Blynk в следващата стъпка, имайте 12 светодиода във вашия неопикселов пръстен, използвайте D2 щифта на ESP8266 за неопикселова линия за данни и т.н.), просто трябва да качите този код точно във вашия ESP8266. Обърнете внимание, че ще трябва да използвате различни кодове за разрешение за всяка от вашите лампи! Вижте следващата страница за добавяне на отделни устройства и получаване на тези кодове. Не забравяйте да съпоставите wifi домейна и паролата с лампата, ако те ще бъдат на различни места. Вероятно ще искате да редактирате други неща в зависимост от това какви анимации и цветове искате, или може би дори какви щифтове използвате. Коментирах кода, за да ви помогна да промените нещата, ако е необходимо. (прочетете и най -последния примерен код на библиотеката на Adafruit Neopixel за идеи).

Преди да можете да използвате кода, ще трябва да изтеглите библиотеките, които кодът използва (тези в горната част на кода). Прочетете и следвайте това ръководство от Adafruit (започнете от „Използване на Arduino IDE“) за това, което трябва да направите, за да настроите ESP8266. Да: ще трябва да инсталирате драйвера CP2104, да добавите към допълнителните URL адреси на мениджъра на борда в предпочитанията на Arduino, да инсталирате пакета ESP8266 (отидете на Sketch> Include Library> Manage Libaries … и потърсете каквото ви трябва - вижте снимката по -долу), а също така инсталирайте другите библиотеки в горната част на кода за neopixel, Blynk и т.н.

Образ
Образ

За да качите код на чипа ESP8266 от IDE на Arduino, ще трябва да изберете правилната платка (NodeMCU ESP8266 ESP-12E), размера на флаш паметта, порта и т.н. (вижте снимката по-долу). Правилният порт SLAB_USBtoUART няма да се покаже, освен ако не включите ESP8266 към компютъра си. Но след като е свързан и сте сигурни, че сте свързали правилно вашата верига в предишната стъпка, можете да продължите и да натиснете стрелката в горния ляв ъгъл, за да качите кода си на дъската. Да, това отнема повече време от обичайния процес на качване в Arduino. Ще видите, че бавно компилира кода, след това низ от оранжеви точки ………………, докато се качва (показва се в долната черна част на прозореца Arduino).

Образ
Образ

Ето разбивка на кода. Първият раздел включва библиотеки, които функциите ще използват и инициализира глобални променливи (променливи, които могат да бъдат достъпни от всяка функция в кода). Частите BLYNK_WRITE (virtualPin) контролират какво се прави, когато джаджите в приложението Blynk (които са свързани с виртуални щифтове) се превключват (т.е. включват/изключват, позициите на плъзгача се променят). Има 7 от тях за 7 -те виртуални пина, които използвам в приложението си Blynk. Следващият раздел на void colorWipe (), rainbow () и т.н. са за дефиниране на функции, които останалата част от кода използва. Тези функции са заимствани най -вече от примерния код на библиотеката на неопикселите на Adafruit (по -специално strandtest). Последните части са вашите стандартни void setup () и void loop (), които влизат във всички кодове на Arduino: void setup () дефинира операции, които се случват само веднъж, когато платката е включена, а void loop () определя операции, които платката непрекъснато циклично, когато се захранва. void loop () определя най -вече през каква анимация ще премине лампата въз основа на променливата "animation", която създадох.

Стъпка 5: Blynk IoT

Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT

Избрах Blynk пред Adafruit IO за тази версия 2.0 лампа. Adafruit IO е страхотен, но имаше две неща, които Blynk имаше, за разлика от Adafruit IO: интерфейс на приложение и възможност за приемане на „празно“като парола за wifi (така че ако се свързвате с обществен wifi, който няма парола, можете да оставите раздела за пароли празен, т.е. само ""). Приятелят ми ходи често в болници за лечение, затова исках да имам тази възможност в случаите, когато има нощувки, но иска някаква виртуална компания: тя все още ще може да се свърже с wifi в болницата.

Започнете, като отидете в магазина на Google Play или App Store на iPhone, за да изтеглите приложението Blynk на телефона си. Създайте безплатен акаунт и направете нов проект. В горния десен ъгъл ще видите бутон за скенер на QR код: използвайте го, за да сканирате QR кода на снимката по -долу, за да копирате всичките ми бутони и такива в новия проект. Вижте тази страница за повече информация как работи това („споделете конфигурацията на вашия проект“). Тази страница също така предоставя полезна информация за споделяне на проекта с получателя на вашата лампа по -късно.

Образ
Образ

Разбира се, можете да персонализирате бутоните, както искате! Плъзнете надясно, за да разкриете какви джаджи можете да добавите. Трябва да разберете какви опции имате за приспособленията: Прикачих снимки (с бележки във всяка снимка) на настройките на бутоните и предложения за използването им в горната част на тази стъпка.

Между другото, добавянето на приспособления струва точки в приложението и всеки започва с определена сума безплатно. Добавянето на допълнителни точки струва пари ($ 2 за 1000 допълнителни точки). В крайна сметка добавих 1000 точки, за да работи конфигурацията ми, но можете просто да премахнете бутон или два, за да работи с безплатната сума.

В проекта трябва да натиснете бутона с гайка в горния ляв ъгъл (до триъгълния бутон „възпроизвеждане“) за достъп до настройките на проекта.

Образ
Образ

Трябва да добавите устройства към проекта, за да получите токени/кодове за оторизация за всяка лампа, които промените в кода на Arduino, както бе споменато по -горе. Натиснете стрелката надясно за устройства, за да създадете нови устройства. Когато създавате устройство, ще видите символа му, както е на снимката по -долу (замъглено в червено).

Образ
Образ

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

Включете приложението, за да използвате бутоните си! Когато приложението е „включено“(натиснете бутона за възпроизвеждане в горния десен ъгъл, до бутона с гайка за настройки), фонът ще стане плътен черен вместо пунктираната мрежа, която виждате, когато сте в режим на редактиране. Ако сте качили кода на Arduino във вашия ESP8266 и сте го включили, чипът трябва автоматично да се свърже с wifi. Проверете това, като натиснете малката икона на микроконтролер в горния десен ъгъл (видима само когато приложението е включено): трябва да видите списък с устройства, които сте създали за проекта и кои са онлайн.

Образ
Образ

Стъпка 6: Капак на лампата

За истинската лампа отидох с лазерно рязано дърво (1/8 "брезов шперплат) и акрил (прозрачен, 1/4", за долната страна, така че светлината да просветва). Дървото имаше изрези, които бяха уникални за моя приятел и мен, но прикачих файлове на Adobe Illustrator за дизайна на лицето на пъзела (прави 4 -инчов куб), за да го изрежете, ако ви харесва формата (файловете са приложени към тази стъпка, Предупреждение: долната страна трябва да е с дебелина 1/4 ", за да могат парчетата да се поберат заедно в тези файлове. Ако искате да направите различен размер или да имате всичко с една дебелина, използвайте makercase.com за генериране на файлове за лазерно изрязване на кутия.

Образ
Образ
Образ
Образ

Не забравяйте да оставите дупка за захранващия кабел да излезе от лампата. Забравих да го включа, но успях да използвам резачки за тел, за да изрежа малка триъгълна дупка през дървото 1/8.

Стъпка 7: Споделяне на лампи с получатели

Когато изпращате лампата на получателя си, те също ще трябва да изтеглят приложението Blynk на телефона си от Google Play Store или App Store на Apple, за да контролират лампата. Можете или да ги накарате да направят отделен акаунт, или да използвате същия вход. Ако те направят отделен акаунт, можете да споделите специален QR код, който другите да могат да използват за 1000 точки (НЕ този, който споделих в предишната стъпка на Blynk; този QR код предоставя разрешение за използване на същото приложение като вас, но те могат ' t промяна на някоя от настройките или конфигурацията на бутоните - прочетете тази страница, по -специално „споделете достъпа до вашия хардуер“). Трябва да се уверите, че сте включили приложението (натиснете бутона за възпроизвеждане в горния десен ъгъл, за да видите бутона на микроконтролера вместо бутона за настройки на гайката), за да могат другите да използват приложението.

Получих около 1000 точки, като дадох на приятелката си данните си за вход, за да може тя да влезе в приложението чрез моя акаунт. Ако изпращате тези лампи на хора, които не се справят добре с електрониката (възрастни хора като цяло), бих препоръчал да похарчите 2 долара за създаване на споделена връзка, така че да нямат достъп до вашия акаунт и да могат “да обърка настройките на приложението ви. С тази опция QR (цена от 1000 точки) те все още имат клонинг на приложението ви, но не могат да променят нищо.

Стъпка 8: Използване на приложението

Сега, как можете да използвате приложението за управление на лампите?

Включете и изключете лампата с големия бутон за захранване (червен, когато е изключен, зелен, когато е включен). Ако лампата е изключена, тя автоматично изключва всички останали бутони в приложението и задава RGB на 0, 0, 0. Когато натиснете, за да включите лампата отново, лампата започва да пулсира бяло.

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

В лявата част на приложението има бутони с предварително зададени анимации за щастлив, ядосан, тъжен и мек. „Щастлив“кара лампата да мига през цветовете на дъгата, „ядосан“кара лампата да мига между червено и жълто, „тъжно“кара лампата да мига през синьо и небесно синьо, а „мех“кара лампата да създава въртяща се дъга колело. Избрах дъговите за щастливи и меки, тъй като е по -вероятно те да бъдат анимации по подразбиране, ежедневни. Всеки път, когато натиснете един от предварително зададените бутони, всички други бутони ще бъдат изключени (т.е. ако сте били на „щастлив“, но натиснете „ядосан“, щастливият бутон автоматично ще се изключи след няколко секунди). Имайте предвид, че преминаването от щастливите и меки анимации ще отнеме повече време, защото лампата трябва да премине през пълната анимация на дъгата, преди да може да промени анимацията. Ако изключите някой от предварително зададените бутони, лампата по подразбиране ще започне да мига, в зависимост от цвета, на който съответстват RGB плъзгачите. Ако сте включили някоя от предварително зададените анимации, но смените RGB плъзгачите, нищо няма да се случи: предварително зададената анимация доминира.

Преди да изключите лампата, натиснете бутона за изключване в приложението като добро правило. След това натиснете бутона за включване в приложението, когато отново включите лампата. НЕ регулирайте бутоните на приложението, когато някоя от лампите не е включена или свързана с wifi (не е краят на света, но това ще обърка лампата) операция). Вижте следващата стъпка защо…

Стъпка 9: ** ПРЕДУПРЕЖДЕНИЕ ЗА ПРАВИЛНА РАБОТА **

Има една вратичка в работата на лампите. Интерфейсът Blynk не ми позволява да контролирам избирателно какво може да се превключва, когато нещо друго е включено или изключено, но поставям условия в кода така, че ако превключвате нещо, което не трябва да се превключва, когато лампата е изключена или друга анимация е включен, превключвателят ще се отмени: това отне много отстраняване на грешки, но работи доста добре (демонстрирано във видеото по -горе: приложението отхвърля промените, които се случват, когато лампата е изключена, и ако предварително зададените анимации са включени, тогава всички промени в плъзгачите не влияят на анимацията, докато предварително зададеният бутон не бъде изключен)!

Единствената останала клопка е, че ако превключвате нещата в приложението, когато чипът не е свързан с интернет, тази функция за автоматично „отмяна“няма да работи и лампата няма да следва инструкциите на приложението. След това, когато включите лампата, тя няма да отразява точно това, което правите (без значение какво, лампата започва да мига с бяло, когато включите). За да поправите това, просто натиснете големия бутон за включване/изключване: цикълът на захранване ще нулира всичко в приложението, така че лампата да функционира според очакванията.

Накратко: всеки път, когато стартирате лампата, просто направете цикъл на захранване на бутона за захранване в приложението, за да нулирате всичко. Просто направете това, ако някога изключвате лампата или използвате приложението, когато лампата не е включена (или ако лампата изведнъж не реагира правилно, дори когато й дадете време да реагира, може би, ако вашият wifi случайно се изключи)

Стъпка 10: Готово

И това е обвивка! Това е хубав подарък за всеки, с когото споделяте връзка на дълги разстояния: направете такъв за родителите си, преди да заминете за колеж или да се преместите в друго състояние за новата си работа, направете такъв за баба и дядо, когато имате по-малко време да ги посетите, направете един, който да поддържа вашата SO компания на работа и т.н.

Ето някои допълнителни варианти, които можете да направите:

  • Можете да преминете през множество цветове (червено оранжево жълто) вместо избледнелите пулсиращи, които имам

    • Имайте контрол на цветовете за тези множество светкавици (първа червена, втора оранжева, трета жълта), вместо просто да мигате ярки и приглушени версии на същия нюанс
    • За целта бихте добавили отделна цветова карта или набор от плъзгачи за контролиране на цветовете, през които всяка анимация преминава през цикъла (така че вместо винаги червено оранжево жълто, да го управлявате индивидуално, за да можете да имате розово бяло, зелено лилаво синьо и т.н.)
  • Има и други типове анимация, които можете да изпробвате в примерния код на Straftest Adafruit Neopixel, като опцията TheaterChase.
  • Ако искате да добавите табла за пробиване на високоговорители, можете също да имате музикална опция за вашите лампи. Може би да ги накарате да пускат различна музика за различни поводи. Или вместо музика, гласово записани съобщения.

Забавлявайте се при персонализирането на лампите! Не се колебайте да ми пишете с въпроси или коментари.

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