Цей проект пояснює розробку системи домашньої автоматизації, яка управляється комп’ютером для ввімкнення та вимкнення різних електричних та електронних пристроїв. Для демонстрації ми використали 3 лампи нульової вати, що вказує на СВІТЛО, ВЕНТИЛЯТОР та телевізор. Він використовує плату Arduino Uno як контролер і реле 5 В для підключення лампочок до схеми.
Можуть існувати різні типи зв'язку для управління такими пристроями, як побутова техніка, промислові прилади тощо. Ми можемо класифікувати їх як дротові та бездротові. Наприклад, у бездротовому зв'язку ми передаємо сигнал за допомогою радіочастот (РЧ), а в дротовому - використовуємо дроти. Провідний зв’язок можна додатково класифікувати як:
Паралельне спілкування
Послідовний зв’язок
При паралельному зв'язку ми використовуємо багато проводів залежно від розміру даних у бітах, тобто якщо нам потрібно передати 8 біт, тоді нам знадобиться 8 бітний провід. Але при послідовному зв'язку ми використовували лише два дроти для передачі даних та прийому даних, оскільки при послідовному зв'язку дані передаються послідовно, тобто побітно.
Потрібні компоненти
Arduino UNO
Послідовний кабель
ULN2003
Реле 5 вольт
Лампочка з тримачем
Підключення проводів
Хлібна дошка
РК-дисплей 16x2
Ноутбук
Блок живлення
PVT
Естафета
Нам потрібне реле для підключення ланцюгів з пристроями змінного струму вищої напруги, такими як лампочка, телевізор, вентилятор тощо. Реле - це свого роду перемикач, який використовується для електронного та електричного з'єднання. Реле містять котушку і деякі жили перемикання контактів. Існують різні типи реле, такі як:
Однополюсний однопрохідний (SPST).
Однополюсний подвійний наскрізний (SPDT).
Двополюсний однопрохідний (DPST).
Двополюсний подвійний наскрізний (DPDT).
Тут ми використовували однополюсне двопрохідне реле (SPDT). Реле SPDT містять п'ять висновків, у яких 2 висновки для котушки і один для полюса, а два інших - "нормально з'єднані" (NC) і "нормально розімкнуті" (NO).
Принципова схема та пояснення
Як показано на наведеній вище схематичній схемі вище, РК-модуль 16x2 використовується для відображення стану побутової техніки, яка безпосередньо підключена до arduino в 4-бітному режимі. Штифти даних РК-дисплея, а саме RS, EN, D4, D5, D6, D7, підключені до цифрового висновку arduino 7, 6, 5, 4, 3, 2. Для передачі команд на arduino з ноутбука або ПК ми використовуємо USB-кабель, який ми використовується для завантаження програми в arduino. А драйвер реле IC ULN2003 також використовується для керування реле. 5-вольтові реле SPDT 3 використовуються для управління СВІТЛОМ, ВЕНТИЛЯТОРОМ і телевізором. А реле підключаються до виводів номер 3, 4 і 5 Arduino через драйвер реле IC ULN2003 для управління СВІТЛОМ, ВЕНТИЛЯТОРОМ і телевізором відповідно.
Тут послідовний зв’язок використовується для управління побутовою технікою. Для управління побутовою технікою змінного струму ми надсилаємо такі команди, як LIGHT ON, LIGHT OFF, FAN ON, FAN OFF, TV ON і TV OFF. Після отримання заданих команд, arduino надсилає сигнал реле, яке відповідає за ввімкнення або вимкнення приладів.
Коли ми натискаємо клавішу ENTER після введення будь-якої із заданих команд на гіпертерміналі чи послідовному терміналі, arduino виконує відносні завдання, такі як включення «вентилятора», а також інші завдання. І відповідне повідомлення також відображається на РК-дисплеї 16x2, який запрограмований в коді. (Див. Розділ коду внизу)
Пояснення коду
Перш за все ми включаємо бібліотеку для рідкокристалічного дисплея, а потім визначаємо дані та керуючі штифти для РК-дисплеїв та побутової техніки.
Після цього послідовний зв’язок ініціалізується зі швидкістю 9600 біт / с і дає вказівку використовувати пін.
Для отримання даних послідовно ми використовуємо дві функції - одна - Serial.available, яка перевіряє, чи надходять будь-які послідовні дані, а інша - Serial, читання, яка читає дані, які надходять послідовно.
Отримавши дані послідовно, ми зберігаємо їх у рядку, а потім чекаємо Enter.
При натисканні клавіші «Enter» програма починає порівнювати отриманий рядок із уже визначеним рядком, і якщо рядок відповідає, то виконується відносна операція за допомогою відповідної команди, заданої в коді.
Для використання рядка порівняння ми використали бібліотеку string.h, яка містить деякі ключові слова, такі як strcmp, strncmp, strcpy тощо.