- Схема електричної схеми для керованої Google Assistant домашньої автоматизації
- Налаштування програми Blynk
- Налаштування IFTTT за допомогою Google Assistant і Blynk для читання рядків
- Програмування Arduino для домашньої автоматизації Blynk
- Виготовлення друкованої плати з використанням PCBGoGo
- Складання друкованої плати
- Підключення плати до блоків живлення змінного струму / подовжувачів
З розвитком віртуальних асистентів, таких як Google Assistant та Alexa, програми для домашньої автоматизації та голосового управління стають звичними. Зараз ми самі побудували безліч проектів автоматизації дому, від простих автоматичних підсвічувачів до Інтернету речей, керованих Інтернетом домашньої автоматизації за допомогою Raspberry Pi. Але цей проект тут інший, ідея тут полягає в тому, щоб створити практичну плату домашньої автоматизації, яка може вписуватися в наші блоки живлення змінного струму на наших стінах і залишатися прихованою всередині неї. Плата не повинна переривати нормальну роботу наших вимикачів силових агрегатів, тобто вони повинні вмикатися або вимикатись також ручними перемикачами. І, не кажучи про це, він також повинен мати можливість керувати одним і тим же навантаженням за допомогою голосу за допомогою асистента Google, а також встановити таймер, щоб будь-яке навантаження могло автоматично вмикатись або вимикатись протягом заданого часу доби.
Цей проект дуже схожий на наш роз'єм ESP8266 Smart Wi-Fi, але тут, оскільки ми будемо використовувати ESP12, у нас буде більше контактів GPIO, що дозволить нам контролювати чотири навантаження змінного струму одночасно. Крім того, оскільки ми інтегрували Blynk та Google Assistant, проект стає цікавим та практичним у використанні. Для цього проекту ми побудували друковані плати з використанням послуги з виготовлення друкованих плат PCBGOGO. У наступному розділі статті ми надали файл Gerber, розроблений для схеми, а також пояснив повну процедуру замовлення друкованих плат з PCBGOGO.
Попередження: Цей проект передбачає роботу зі змінною напругою мережі. Майте на увазі, що слід працювати з особливою обережністю при роботі з високими напругами змінного струму. Якщо ви новачок, переконайтеся, що за вами стежить досвідчена людина.
Схема електричної схеми для керованої Google Assistant домашньої автоматизації
Повну електричну схему домашньої автоматизації можна знайти нижче.
Як бачите, схема дуже проста, почнемо пояснення з модуля Wi-Fi ESP12E. Ви також можете переглянути відео нижче для детального пояснення проекту. Модуль можна програмувати так само, як і плати розробки nodeMCU, і це зменшує багато місця. За замовчуванням при включенні ESP12E переходить у режим роботи. Для того, щоб його запрограмувати, ми повинні скористатися кнопкою Reset і Flash. Тобто, щоб перевести ESP12 в режим програмування, натисніть і утримуйте кнопки скидання та спалаху, а потім відпустіть кнопку скидання. При цьому завантажиться ESP12E із натисканням кнопки спалаху, тепер відпустіть кнопку спалаху, і ESP12E перейде в режим програмування. Після програмування вам потрібно ще раз натиснути кнопку скидання, щоб завантажити ESP12E у звичайному режимі роботи, щоб виконати завантажену програму. Шпильки програмування Rx, Rx,і Ground розширені, щоб мати можливість підключатися до плати FTDI або перетворювача USB в TTL. Переконайтеся, що ви підключили Tx-штифт ESP12 до Rx-штифта програміста і навпаки.
Інші штирі прапорців I1 - I4 і R1 - R4 використовуються для з'єднання вимикачів і реле. Піни I1 - I4 означають вхідні штифти. Всі ці штирі підтримують внутрішній підтягуючий резистор, тому нам просто потрібно підключити перемикачі на подовжувачі до нашого вхідного штифта через висувний резистор, як показано нижче.
Подібним чином, вихідні виводи реле R1 до R4 використовуються для управління реле. Ми використовували стандартну схему драйвера реле з діодом BC547 та IN4007, як показано нижче. Зверніть увагу, що реле повинні спрацьовувати з напругою 5 В, але вихідні висновки ESP12E складають лише 3,3 В. Отже, обов’язковим є використання транзистора для приводу реле. Ми також розмістили світлодіод у базовій траєкторії транзистора, щоб при кожному спрацьовуванні транзистора світлодіод також включався.
Нарешті, для живлення всіх наших схем ми використали перетворювач AC-DC Hi-Link для перетворення нашого змінного струму 220 В у 5 В постійного струму. Потім цей 5 В постійного струму перетворюється на 3,3 В за допомогою регулятора напруги AMS117-3,3 В. 5 В використовується для спрацьовування реле, а 3,3 В - для живлення модуля Wi-Fi ESP21.
Налаштування програми Blynk
Раніше ми створили багато проектів Blynk, таких як керований Wi-Fi робот Arduino, тому ми не будемо вдаватися до деталей налаштування програми blynk. Але простіше кажучи, просто встановіть програму, створіть новий проект для NodeMCU і починайте розміщувати свої віджети, як показано нижче.
Я використовував віртуальні штифти V1-V4 для управління реле 1-4 на нашому проекті. Не забудьте змінити тип кнопки для перемикання. Параметр таймера також можна використовувати для автоматичного спрацьовування віртуальних контактів протягом встановленого часу, навіть якщо телефон вимкнено. Наприклад, я використовував тут таймер лише для віртуального контакту V1, але ви можете використовувати його для всіх чотирьох контактів, якщо це потрібно.
Не забудьте отримати значення маркера автентичності blynk зі сторінки проекту. Просто натисніть на значок горіха (обведений червоним кольором на малюнку вище) і скопіюйте маркер автентифікації, скориставшись опцією скопіювати всі, і вставте його кудись безпечно, нам знадобиться при програмуванні плати Arduino.
Налаштування IFTTT за допомогою Google Assistant і Blynk для читання рядків
Найпростіший спосіб використовувати Google Assistant для домашньої автоматизації - це використання IFTTT. Раніше ми також побудували багато проектів IFTTT за допомогою NodeMCU та Raspberry Pi. У цьому проекті ми будемо використовувати додаток Blynk для запуску веб-хука за допомогою Google помічника. Це дуже схоже на наш проект голосової автоматизованої домашньої автоматизації та голосовий проект FM-радіо. Крім того, тут ми будемо використовувати blynk з IFTTT для надсилання рядка, що робить його набагато простішим та цікавішим.
В основному, ми будемо використовувати віртуальні штифти V5 і V6 на blynk для надсилання команди тригера. V5 буде використовуватися для команд включення, а V6 - команд вимкнення. Наприклад, якщо ми кажемо увімкнути телевізор і лампу. Рядова команда тут "TV and Lamp" буде надіслана на NodeMCU за допомогою API. Синтаксис API такий, як показано нижче.
http://188.166.206.43//update/V5?value=TV та лампа
Тепер все, що нам потрібно зробити в IFTTT, це використання асистента Google як IF та веб-хуків як ТАК, тому слухайте цю команду та надсилайте інформацію до NodeMCU за допомогою вищезгаданого API. Форма включення аплету така ж, як показано нижче.
Зверніть увагу, що під час створення рецепта для Google Assistant вам потрібно вибрати опцію вимовити фразу з текстовим компонентом. Подібним чином вам доведеться повторити те ж саме для віртуального виводу V6, щоб вимкнути реле. Ви можете переглянути відео внизу цієї сторінки для отримання детальної інформації.
Програмування Arduino для домашньої автоматизації Blynk
Повний код Arduino для цього проекту можна знайти внизу цієї сторінки. Пояснення того ж полягає в наступному. Перед цим переконайтеся, що ви можете використовувати Blynk та Program NodeMCU від Arduino IDE. Якщо не дотримуйтесь статей про ESP12. Крім того, додайте бібліотеку blynk до Arduino IDE за допомогою диспетчера плат.
Як завжди, ми починаємо наш код з визначення вхідних та вихідних контактів, тут вхід буде надходити від перемикачів, а вихід - від реле. Ми визначили назви контактів для всіх чотирьох перемикачів як sw та реле як rel, як ви можете бачити нижче.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
На наступному етапі вам потрібно буде ввести деякі облікові дані, такі як маркер автентичності blynk, а також ім’я користувача та пароль для маршрутизатора Wi-Fi, до якого має підключатися ваш nodeMCU. Токен блимання автентичності можна отримати з програми blynk. Ми дізнаємось більше про це в розділі налаштування програми blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // отримати з програми blynk char ssid = "home_wifi"; char pass = "fakepass123";
Далі ми дали визначення функції з назвою read_switch_toggle () . У цій функції ми порівняємо поточний стан та попередній стан наших комутаторів. Якщо перемикач був увімкнений або вимкнений, тобто якщо перемикач перемикався. Буде змінено стан перемикача, функція буде контролювати цю зміну і повертати номер перемикача. Якщо жодної зміни не виявлено, вона поверне 0.
int read_switch_toggle () {int результат = 0; // Відзначимо всі попередні значення для (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Зчитування поточного стану комутаторів crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // порівнюємо поточний і pvs-стан для (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // якщо будь-який перемикач перемикається, ми отримуємо номер перемикача як результат повернення результату; } ще результат = 0; // якщо результату зміни немає 0} повернути результат; // повернути результат}
Далі у нас є код для програми blynk. Ми будемо використовувати віртуальний штифт V1 до V6 для управління нашою розумною розподільною коробкою. Виводи V1-V4 будуть використовуватися для управління реле 1-4 відповідно безпосередньо з програми blynk. Наведений нижче код показує, що відбувається, коли V1 запускається із програми blynk. Ми просто зчитуємо статус (ВИСОКИЙ або НИЗКИЙ) і відповідно керуємо реле.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Подібним чином, віртуальні шпильки також можна використовувати для читання рядка з програми blynk. Пізніше ми дізнаємося, як надіслати рядок від асистента google до NodeMCU за допомогою IFTTT та асистента Google, але наразі давайте подивимося, як код NodeMCU зчитує цей рядок і шукає певне ключове слово та відповідно запускає реле.
У наведеному нижче коді ви можете бачити, що коли спрацьовує віртуальний вивід V5, ми отримуємо рядок, переданий ним, у рядкову змінну ON_message . Потім за допомогою цієї рядкової змінної та методу inderOf ми шукаємо, чи є такі ключові слова, як «лампа», «світлодіод», «музика», «ТБ», якщо так, ми вмикаємо саме це навантаження. Якщо виявлено ключове слово «все», ми вмикаємо все. Те саме можна зробити і для V6 для вимкнення реле. Ми дізнаємось більше про це, коли потрапимо до розділу IFTTT.
BLYNK_WRITE (V5) {Рядок ON_message = param.asStr (); Serial.println (ON_message); якщо (ON_message.indexOf ("лампа")> = 0) digitalWrite (rel1, HIGH); якщо (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); якщо (ON_message.indexOf ("музика")> = 0) digitalWrite (rel3, HIGH); якщо (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("everything")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Нарешті, всередині функції циклу, нам залишається лише перевірити, чи не змінилася якась кнопка положення перемикача. Якщо так, тоді ми використовуємо корпус перемикача, як показано нижче, для перемикання положення цього конкретного реле.
перемикач (toggle_pin) {випадок 0: перерва; випадок 1: Serial.println ("Перемикання реле 1"); digitalWrite (rel1, relay_state); перерву; випадок 2: Serial.println ("Перемикання реле 2"); digitalWrite (rel2, relay_state); перерву; випадок 3: Serial.println ("Перемикання реле 3"); digitalWrite (rel3, relay_state); перерву; випадок 4: Serial.println ("Перемикання реле 4"); digitalWrite (rel4, relay_state); перерву; }}
Виготовлення друкованої плати з використанням PCBGoGo
Тепер ми розуміємо, як працюють схеми, і можемо приступити до створення друкованої плати для нашого проекту автоматизації будинку. Схема друкованої плати для вищезазначеної схеми також доступна для завантаження як Gerber за посиланням.
- Завантажте GERBER для домашньої автоматизованої голосової автоматизації за допомогою Google Assistant
Тепер наш дизайн готовий, пора їх виготовити за допомогою файлу Гербера. Отримати друковану плату з PCBGOGO досить просто, просто виконайте наведені нижче дії.
Крок 1: Зайдіть на www.pcbgogo.com, підпишіться, якщо це ваш перший раз. Потім на вкладці «Прототип друкованої плати» введіть розміри вашої друкованої плати, кількість шарів та кількість необхідної вам друкованої плати. Припускаючи, що друкована плата становить 80 см × 80 см, ви можете встановити розміри, як показано нижче.
Крок 2: Продовжуйте, натискаючи кнопку Quote Now . Ви потрапите на сторінку, де за необхідності можна встановити кілька додаткових параметрів, наприклад, використовуваний інтервал між доріжками тощо. Але в основному значення за замовчуванням будуть працювати нормально. Єдине, що ми маємо тут врахувати, це ціна та час. Як бачите, час збірки складає лише 2-3 дні, а на нашу друковану плату вона коштує лише 5 доларів. Потім ви можете вибрати бажаний спосіб доставки відповідно до ваших вимог.
Крок 3: Останнім кроком є завантаження файлу Gerber і продовження платежу. Щоб переконатися, що процес є безперебійним, PCBGOGO перевіряє, чи дійсний ваш файл Gerber, перш ніж продовжувати оплату. Таким чином, ви можете бути впевнені, що ваша друкована плата є зручною для виготовлення та зв’яжеться з вами як докладена.
Складання друкованої плати
Після замовлення плати вона через кілька днів дійшла до мене через кур’єра в акуратно поміченій добре упакованій коробці, і як завжди, якість друкованої плати була надзвичайною. Отримана мною друкована плата показана нижче. Як бачите, і верхній, і нижній шар вийшли, як очікувалося.
Віази та прокладки були всіх розмірів. Мені знадобилося близько 15 хвилин, щоб зібрати до плати друкованої плати, щоб отримати робочу схему. Зібрана дошка показана нижче.
Підключення плати до блоків живлення змінного струму / подовжувачів
Плата призначена для кріплення всередині розеток змінного струму в наших будинках. Але заради цього проекту ми будемо використовувати подовжувач. Якщо ви хочете отримати більш стійке рішення, підключіть його до розеток змінного струму, як ви можете побачити нижче, довжина друкованої плати досить компактна, щоб розмістити її в розетці змінного струму.
Обов’язково дотримуйтесь техніки безпеки під час роботи з мережею змінного струму. Дотримуйтесь наведеної нижче схеми, щоб зрозуміти, як підключити реле та вимикачі до нашої плати друкованої плати.
Схема підключення недоступна лише для одного реле і комутатора, але ви можете просто повторити те ж саме для решти трьох. Після того, як підключення завершено, ваша плата повинна виглядати так
Після підключення переконайтеся, що ви надійно закріпили їх гвинтовими клемами, а також використовуйте гарячий клей для додаткової безпеки. Покладіть все назад у коробку, і ми повинні бути готові до тестування. Ви можете знайти повну роботу цього проекту у відео нижче.
Сподіваюся, вам сподобалась стаття і ви дізналися щось корисне. Якщо у вас виникли запитання, залиште їх у розділі коментарів нижче або скористайтеся нашими форумами.