- Компоненти, необходими за изграждане на автоматизирани щори Arduino
- Управление на ролетни щори с помощта на Arduino
- Проектирайте и изградете щората за прозорец
- 3D отпечатване на държача на двигателя и щората
- Електрическа схема за управление на щорите Arduino
- Приложение Blynk за Arduino Blind Control
- Програмиране на NodeMCU за управление на щори с помощта на Blynk
- Управление на щори за прозорци с помощта на Google Assistant
- Базиран на Arduino автоматичен контрол на слепите прозорци - демонстрация
"Добро утро. В 7 часа е сутринта Времето в Малибу е 72 градуса… ”това бяха първите думи на JARVIS, когато бяха въведени във Вселената на Marvel Cinematics. Повечето фенове на Iron Man трябва да могат да си припомнят тази сцена и да помнят, че JARVIS успя да отвори прозорец (вид) сутрин и да дава актуализации за времето и времето. Във филма очилата на прозореца всъщност бяха направени от прозрачни сензорни дисплеи и по този начин JARVIS успя да го превърне от черно в прозрачно и също така да показва статистика за времето върху него. Но в действителност сме далеч от прозрачните сензорни екрани и колкото по-близо можем да се приближим, това е да контролираме автоматично щорите на прозорците или ограниченията.
И така, в този проект ще изградим точно това, ще изградим автоматизирана моторизирана щора, която ще се отваря и затваря автоматично в предварително определени часове. Преди това изградихме много проекти за домашна автоматизация, в които автоматизирахме осветлението, двигателите и т.н. Можете да ги проверите, ако се интересувате. Така че, връщайки се, тези щори, контролирани от Arduino, могат също да приемат команди от асистент на Google, така че да можете да отваряте или затваряте щорите на прозореца си дистанционно чрез гласови команди. Интригуващо? Тогава, нека го построим.
Компоненти, необходими за изграждане на автоматизирани щори Arduino
Проектът е относително прост и не се изискват много компоненти. Просто съберете елементите, изброени по-долу.
- NodeMCU
- Стъпков двигател - 28BYJ-48
- Модул за драйвер на стъпков двигател
- LM117-3.3V
- Кондензатори (10uf, 1uf)
- 12V DC адаптер
- Perf Board
- Комплект за запояване
- 3D принтер
Управление на ролетни щори с помощта на Arduino
Сега на пазара има много видове щори, но най-често използваният има въже с перли (както е показано по-долу), което може да се изтегли за отваряне или затваряне на щорите.
Когато издърпаме това кръгло въже по посока на часовниковата стрелка, щорите на прозореца ще се отворят и когато издърпаме това въже в посока, обратна на часовниковата стрелка, щорите на прозорците ще се затворят. Така че, ако трябваше да автоматизираме този процес, всичко, което трябва да направим, е да използваме мотор, за да издърпаме това въже по посока на часовниковата стрелка или обратно на часовниковата стрелка и ще приключим с него. Всъщност това ще направим в този проект; ще използваме стъпков двигател 28BYJ-48 заедно с NodeMCU за изтегляне на мънистото въже.
Проектирайте и изградете щората за прозорец
Частта от електрониката на този проект беше доста опростена и права, предизвикателната част беше в изграждането на Blind Gear, която можеше да издърпа мънистото въже. Така че нека започнем тази статия с дизайна на сляпата предавка, няма да навлизам в подробности как да проектирам предавката, но тази основна идея трябва да ви помогне. Изображение на въжето с мъниста върху него е показано по-долу.
Отново има много видове въжета, но най-често използваните въжета са междуцентровото разстояние на всяка перла е 6 мм и диаметърът на всяка мъниста е 4 мм. Използвайки тази информация, можем да започнем дизайна на нашето съоръжение. Ако въжето на вашите щори има същите размери, както е обсъдено, можете просто да пропуснете тази стъпка и да изтеглите STL файла, предоставен в тази статия, и да отпечатате съоръжението. Ако въжето ви има различно подреждане на перлите, ето как трябва да препроектирате щората.
Реших да имам 24 мъниста на зъбното колело, за да получа оптимален размер на зъбното колело, можете да изберете произволно число, близко до това, за да бъде вашето зъбно колело голямо или малко. И така, сега знаем, че разстоянието между всяка мъниста е 6 мм и се нуждаем от 24 мъниста на нашето съоръжение. Умножаването на двете ще даде обиколката на зъбното колело. С тези данни можете да изчислите радиуса на зъбното колело. Както можете да видите на горното изображение, диаметърът на моето зъбно колело е изчислен около 46 мм. Но не забравяйте, това не е действителният диаметър на зъбното колело, тъй като не сме отчели диаметъра на гранулите, който е 4 мм. И така, действителният диаметър на зъбното колело ще бъде 42 мм, отпечатах и тествах много зъбни колела, преди да намеря това, което работи най-добре. Ако не се занимавате с дизайн,просто изтеглете и отпечатайте STL файловете от следващия параграф и продължете с проекта си.
3D отпечатване на държача на двигателя и щората
Заедно със зъбното колело ще ни е необходим и малък корпус, който може да се пробие на стената и да държи стъпковия двигател в положение, както корпусът, така и зъбното колело, използвани в този проект, са показани по-долу.
Можете да намерите пълни дизайнерски файлове и STL файлове на страницата Arduino Blind Control Thingiverse, дадена по-долу. Можете просто да изтеглите и отпечатате вашето сляпо зъбно колело и калъф на мотора.
Изтеглете STL файлове за калъф за щори и мотор
Електрическа схема за управление на щорите Arduino
След като сте готови със зъбното колело и сглобката, лесно можете да продължите с електрониката и софтуерната част. Пълната схема на схемата за IoT проект за управление на слепи е показана по-долу.
Използвахме адаптер 12V за захранване на цялата настройка; регулаторът LM1117-3.3V преобразува 12V в 3.3V, които могат да се използват за захранване на платката NodeMCU. Модулът на драйвера на стъпковия двигател се захранва директно от 12V адаптер. Опитах да пусна стъпковия двигател на 5V, но тогава той не осигури достатъчно въртящ момент за изтегляне на щорите, така че се уверете, че използвате и 12V.
Отделно от това, веригата е доста проста, ако сте нов в стъпковите двигатели, разгледайте основите на статията на стъпковите двигатели, за да разберете как работи и как може да се използва с микроконтролер.
Приложение Blynk за Arduino Blind Control
Преди да влезем в програмата Arduino за управление на щори, нека отворим приложението blynk и създадем някои бутони, с помощта на които можем да отваряме или затваряме нашите щори. Това ще ни е необходимо по-късно и за управление от дома на Google.
Току-що добавих два бутона за отваряне и затваряне на щорите и еднократен таймер за отваряне на щорите в 10:00 сутринта всеки ден. Можете да добавите множество таймери за отваряне или затваряне на щорите през различни интервали от деня. По принцип, когато трябва да затворим щорите, трябва да задействаме виртуален щифт V1, а когато трябва да отворим щорите, трябва да задействаме виртуален щифт V2. Програмата за управление на стъпковия двигател въз основа на натиснатия тук бутон ще бъде написана на Arduino IDE, същото е обсъдено по-долу.
Програмиране на NodeMCU за управление на щори с помощта на Blynk
Пълният код ESP8266 за този проект за контрол на слепи може да бъде намерен в долната част на тази страница. Нашата програма трябва да изчака команда от приложението blynk и въз основа на тази команда, ние трябва да завъртим стъпковия двигател или по посока на часовниковата стрелка, или в посока, обратна на часовниковата стрелка. Важните сегменти на кода са разгледани по-долу.
Според нашата електрическа схема сме използвали цифрови щифтове 1, 2, 3 и 4 на nodemcu, за да контролираме нашия стъпков двигател. И така, трябва да създадем екземпляр, наречен стъпков, като използваме тези щифтове, както е показано по-долу. Забележете, че сме дефинирали щифтовете в ред 1, 3, 2 и 4. Това е направено умишлено и не е грешка; трябва да сменим щифтове 2 и 3, за да работи двигателят правилно.
// създаване на екземпляр на стъпковия клас, използвайки стъпките и щифтовете Stepper stepper (STEPS, D1, D3, D2, D4);
В следващата стъпка трябва да споделим нашия токен за удостоверяване на приложението blynk и идентификационните данни за Wi-Fi, към които трябва да бъде свързан нашият IoT Blind контролер. Ако не сте сигурни как да получите този токен за автентичност на Blynk, обърнете се към проекта Blynk LED Control, за да разберете основите на приложението blynk и как да го използвате.
// Трябва да получите Auth Token в приложението Blynk. // Отидете в Project Settings (икона на гайка). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Вашите идентификационни данни за WiFi. // Задайте парола на "" за отворени мрежи. char ssid = "CircuitDigest"; char pass = "dummy123";
Продължавайки с нашия код, след функцията за настройка, дефинирахме два метода за blynk. Както споменахме по-рано, трябва да определим какво трябва да правят виртуалните щифтове V1 и V2. Кодът за същото е даден по-долу.
BLYNK_WRITE (V1) // ЗАКРЕТЕТЕ СЛЕПКИ {Serial.println ("Затваряне на щори"); ако (отворено == вярно) {за (int c_val = 0; c_val <= 130; c_val ++) // завъртане в обратна на часовниковата стрелка за затваряне {stepper.step (c_val); добив (); } затворено = вярно; отворен = невярно; disable_motor (); // винаги използваеми стъпкови двигатели след употреба за намаляване на консумацията на енергия и отопление}} BLYNK_WRITE (V2) // ОТВАРЯНЕ НА ЖЛАТИТЕ {Serial.println ("Отваряне на щори"); if (closed == true) {for (int cc_val = 0; cc_val> = -130; cc_val--) // завърти се по часовниковата стрелка за отваряне {stepper.step (cc_val); добив (); } отворено = вярно; затворено = невярно; } disable_motor (); // винаги използваеми стъпкови двигатели след употреба за намаляване на консумацията на енергия и отопление}
Както можете да видите V1 се използва за затваряне на щорите, а V2 се използва за отваряне на щорите. А за линия се използва да се върти на двигателите в посока на часовниковата стрелка или обратно на часовниковата стрелка за 130 стъпки. Експериментирах с моите щори, за да открия, че със 130 стъпки съм в състояние напълно да отворя и затворя щорите си. Вашият номер може да варира. В продължение на линия на завъртане стъпков двигател в посока на часовниковата стрелка и обратно на часовниковата стрелка е показано по-долу.
за (int c_val = 0; c_val <= 130; c_val ++) // завъртане в обратна на часовниковата стрелка за затваряне {stepper.step (c_val); добив (); } for (int cc_val = 0; cc_val> = -130; cc_val--) // завъртане по часовниковата стрелка за отваряне {stepper.step (cc_val); добив (); }
Можете също така да забележите две булеви променливи „отворени“ и „затворени“ в нашата програма. Тези две променливи се използват, за да се предотврати двукратното отваряне или затваряне на щорите. Това означава, че щорите ще се отворят само когато са затворени преди това и ще се затворят само когато са отворени преди това.
Как да увеличим скоростта на стъпковия двигател 28BJY-48?
Един недостатък на използването на стъпков двигател 28BJY-48 е, че той е много бавен. Тези двигатели първоначално са били произведени, за да се използват във високопрецизни нискоскоростни приложения, така че не очаквайте тези двигатели да се въртят с висока скорост. Ако искате да увеличите скоростта на стъпковия двигател с помощта на Arduino, има два параметъра, които можете да промените. Единият е #define STEPS 64, открих, че когато стъпките се определят като 64, двигателят е сравнително по-бърз. Друг параметър е stepper.setSpeed (500); отново открих, че 500 е оптимална стойност, нещо повече от това всъщност прави стъпковия двигател по-бавен.
Знаете ли някакъв друг начин за увеличаване на скоростта на тези двигатели? Ако отговорът е да, оставете ги в раздела за коментари по-долу.
Как да се предпазим от прегряване на стъпковия мотор?
Стъпковите двигатели винаги трябва да се деактивират, когато не се използват, за да се предотврати прегряване. Деактивирането на стъпков двигател е много просто; просто променете състоянието на щифтовете на всичките четири GPIO щифта, които контролират стъпковия двигател, на ниско. Това е много важно, в противен случай двигателят ви може да се нагрее много при + 12V и да се повреди трайно. Програмата за деактивиране на стъпковия двигател е дадена по-долу.
void disable_motor () // изключете двигателя, когато сте готови, за да избегнете нагряване {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Управление на щори за прозорци с помощта на Google Assistant
Ще използваме API на blynk за управление на щорите чрез асистент на Google, той ще бъде подобен на нашия проект за гласова контролирана домашна автоматизация, така че проверете това, ако се интересувате. По принцип трябва да задействаме връзката по-долу, когато казваме предварително дефинирана фраза на Google Assistant.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Уверете се, че сте сменили маркера за удостоверяване на този, предоставен от вашето приложение blynk. Можете дори да тествате тази връзка в браузъра си chrome, за да видите дали работи както се очаква. Сега, когато връзката е готова, ние просто трябва да преминем към IFTTT и да създадем два аплета, които могат да задействат виртуални щифтове V1 и V2, когато поискаме да затворим и отворим щорите. Отново не навлизам в подробностите около това, защото сме правили това много пъти. Ако имате нужда от допълнителна помощ, обърнете се към този гласов проект за FM радио, просто заменете услугите на adafruit с уеб куки. Също така споделям екранна снимка на моя фрагмент за справка.
Базиран на Arduino автоматичен контрол на слепите прозорци - демонстрация
След като схемите и корпусите с 3D печат са готови, просто сглобете устройството на стената, като пробиете две дупки на стената. Моята настройка за монтаж е показана на снимките по-долу.
След това се уверете, че щорите ви са в отворено състояние и след това включете веригата. Сега можете да опитате да затворите щорите от приложението blynk или чрез Google Assistant и то трябва да работи. Можете също така да настроите таймери в приложението blynk за автоматично отваряне и затваряне на щората в определен час от деня.
Цялостната работа на проекта може да бъде намерена във видеото, дадено по-долу; ако имате някакви въпроси, не се колебайте да ги напишете в раздела за коментари по-долу. Също така можете да използвате нашите форуми за други технически дискусии.