- Робота регулятора стельових вентиляторів на основі IoT
- Матеріали, необхідні для схеми регулювання швидкості обертання вентилятора
- Схема управління регулятором вентилятора змінного струму
- Дизайн друкованої плати для регульованого IoT регулятора стельового вентилятора
- Налаштування облікового запису Firebase
- Код Arduino для управління регулятором вентилятора за допомогою NodeMCU
- Створення програми Fan Regulator за допомогою програми MIT App Inventor
- Тестування схеми сенсорного датчика на основі ESP32
- Подальші вдосконалення
У цій статті ми будуємо схему регулятора вентилятора змінного струму, яка може контролювати швидкість вентилятора, обмежуючи потік струму до вентилятора. Термін регулятор потолочного вентилятора змінного струму є перекусом, тому відтепер ми будемо просто називати його регулятором вентилятора. Схема регулятора вентилятора є найважливішим компонентом, який використовується для збільшення або зменшення швидкості вентилятора / двигуна змінного струму відповідно до потреб. Кілька років тому у вас був вибір між звичайним резистивним регулятором вентилятора чи електронним регулятором, але в наш час це все замінено електронною схемою регулятора вентилятора.
У попередній статті ми показали вам, як можна побудувати схему управління фазовим кутом змінного струму за допомогою Arduino, який міг управляти яскравістю лампочки розжарювання, а також регулювати швидкість вентилятора, щоб збільшити його у цій статті ми збираємося побудувати схему регулятора потолочного вентилятора змінного струму на основі IoT. Який зможе контролювати швидкість вашого стельового вентилятора за допомогою програми Android.
Робота регулятора стельових вентиляторів на основі IoT
Схема регулятора вентилятора - це проста схема, яка здатна контролювати швидкість потолочного вентилятора змінного струму, змінюючи фазовий кут синусоїди змінного струму або просто кажучи точне управління TRIAC. Оскільки я згадав усі основні роботи схеми регулятора вентилятора змінного струму в регуляторі фазового кута змінного струму за допомогою таймера 555 та ШІМ, ми зосередимося на власне побудові схеми. І ще раз, якщо ви хочете дізнатись більше про тему, перегляньте також статтю про світлорегулятор змінного струму за допомогою Arduino та TRIAC Project.
Основна блок-схема вище показує, як насправді працює схема. Як я вже говорив раніше, ми будемо генерувати ШІМ-сигнал за допомогою Firebase IoT і NodeMCU, потім ШІМ-сигнал буде передаватися через фільтр низьких частот, який буде керувати затвором МОП-транзистора, після чого таймер 555 буде керувати власне TRIAC за допомогою оптрона.
У цьому випадку додаток android змінює значення в firebaseDB, і ESP постійно перевіряє наявність будь-яких змін, що відбуваються з цією БД, якщо відбувається якась зміна, яка витягується вниз, і значення перетворюється на ШІМ-сигнал
Матеріали, необхідні для схеми регулювання швидкості обертання вентилятора
На малюнку нижче показано матеріал, який використовується для побудови цієї схеми, оскільки вона виготовлена з дуже загальних компонентів, ви зможете знайти всі перераховані матеріали у своєму місцевому магазині хобі.
Я також перерахував компоненти в таблиці нижче з типом та кількістю, починаючи з демонстраційного проекту, для цього я використовую один канал. Але схему можна легко масштабувати відповідно до вимог.
- Гвинтовий клем 5,04 мм - 2
- Штекерний роз'єм 2,54 мм - 1
- Резистор 56K, 1W - 2
- 1N4007 Діод - 4
- 0,1 мкФ, конденсатор 25 В - 2
- Регулятор напруги AMS1117 - 1
- Конденсатор 1000 мкФ, 25 В - 1
- Джек постійного струму - 1
- Резистор 1К - 1
- Резистор 470R - 2
- Резистор 47R - 2
- Резистори 82 К - 1
- Резистори 10 К - 5
- Оптрон PC817 - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- МОП-транзистор IRF9540 - 1
- Конденсатор 3,3 мкФ - 1
- Підключення проводів - 5
- 0,1 мкФ, конденсатор 1 кВ - 1
- ESP8266 (ESP-12E) Мікроконтролер - 1
Схема управління регулятором вентилятора змінного струму
Схема схеми регулятора вентилятора IoT наведена нижче, ця схема дуже проста і використовує загальні компоненти для досягнення контролю фазового кута.
Ця схема складається з дуже ретельно розроблених компонентів. Я пройдуся по кожному з них і поясни кожен блок.
ESP8266 (ESP-12E) чіп Wi-Fi:
Це перша частина нашої схеми, і це та частина, де ми багато чого змінили, інші частини залишаються точно такими ж, тобто якщо ви дотримувались попередньої статті.
У цьому розділі ми витягнули штифти Enable, Reset та GPIO0, а також GPIO15 та Ground Pin, які рекомендовані в таблиці даних мікросхеми. Що стосується програмування, ми розмістили 3-контактний заголовок, що виставляє TX, RX і штифт заземлення, за допомогою якого ми можемо запрограмувати мікросхему дуже легко. Крім того, ми встановили тактильний перемикач для встановлення GPIO0 на землю, це необхідний крок для переведення ESP в режим програмування. Ми вибрали штифт GPIO14 як вихід, через який генерується ШІМ-сигнал.
Примітка! Під час програмування ми повинні натиснути кнопку і включити пристрій за допомогою гнізда стовбура постійного струму.
Схема виявлення нульового перетину:
По-перше, у нашому списку є схема виявлення нульового перетину, виконана з двома резисторами 56K, 1 Вт у поєднанні з чотирма діодами 1n4007 та оптроном PC817. І ця схема відповідає за подачу сигналу перетину нуля на мікросхему 555 таймера. Крім того, ми зняли на плівку фазу та нейтральний сигнал для подальшого використання в розділі TRIAC.
Регулятор напруги AMS1117-3.3V:
Регулятор напруги AMS1117 використовується для живлення ланцюга, ланцюг відповідає за живлення всієї схеми. Крім того, ми використали два конденсатори 1000 мкФ та конденсатор 0,1 мкФ як роз'єднувальний конденсатор для мікросхеми AMS1117-3.3.
Схема управління з таймером NE555:
На зображенні вище показано схему управління таймером 555, 555 налаштований у моностабільній конфігурації, тому, коли сигнал тригера від схеми виявлення перетину нуля потрапляє на тригер, таймер 555 починає заряджати конденсатор за допомогою резистора (загалом), але наша схема має MOSFET замість резистора, і, керуючи затвором MOSFET, ми контролюємо струм, що надходить до конденсатора, ось чому ми контролюємо час зарядки, отже, ми контролюємо вихід 555 таймерів.
TRIAC і схема TRIAC-драйвер:
TRIAC виступає в ролі головного перемикача, який фактично вмикається і вимикається, таким чином управляючи виходом сигналу змінного струму. Керуючи TRIAC за допомогою приводу MOC3021 Opto-Triac, він не тільки керує TRIAC, але також забезпечує оптичну ізоляцію, високовольтний конденсатор 0,01 мкФ 2KV, а резистор 47R утворює звуковий ланцюг, який захищає нашу ланцюг від високі напруги, які виникають при підключенні до індуктивного навантаження. Несинусоїдальний характер комутованого сигналу змінного струму відповідає за спайки. Крім того, він відповідає за питання фактору потужності, але це тема для іншої статті.
Фільтр низьких частот і P-канальний MOSFET (виконуючи роль резистора в ланцюзі):
Резистор 82K та конденсатор 3,3 мкФ утворюють фільтр низьких частот, який відповідає за згладжування високочастотного ШІМ-сигналу, що генерується Arduino. Як вже зазначалося, P-канальний MOSFET виконує функцію змінного резистора, який контролює час зарядки конденсатора. Керуючи ним, ШІМ-сигнал згладжується фільтром низьких частот.
Дизайн друкованої плати для регульованого IoT регулятора стельового вентилятора
Друкована плата для нашої схеми регулятора стельового вентилятора IoT розроблена на односторонній платі. Я використовував програмне забезпечення для дизайну друкованих плат Eagle для проектування моєї друкованої плати, але ви можете використовувати будь-яке програмне забезпечення для дизайну на ваш вибір. Двовимірне зображення мого дизайну дошки показано нижче.
Достатнє заповнення грунтом використовується для належного з'єднання заземлення між усіма компонентами. Вхід постійного струму 3,3 В і вхід змінного струму 220 Вольт заповнені зліва, вихід розташований праворуч на друкованій платі. Повний файл дизайну для Eagle разом із Gerber можна завантажити за посиланням нижче.
- Дизайн друкованої плати, файли GERBER та PDF для схеми регулятора стельового вентилятора
Друкована плата ручної роботи:
Для зручності я зробив власну версію друкованої плати, і це показано нижче.
Завдяки цьому наше обладнання готове відповідно до нашої електричної схеми, тепер ми повинні підготувати наш додаток для Android та Google firebase.
Налаштування облікового запису Firebase
Для наступного кроку нам потрібно створити обліковий запис Firebase. Весь зв’язок проходитиме через обліковий запис Firebase. Щоб налаштувати обліковий запис Firebase, перейдіть на веб-сайт Firebase і натисніть "розпочати".
Клацнувши, потрібно увійти за допомогою свого облікового запису Google і
як тільки ви увійшли в систему, вам потрібно створити проект, натиснувши кнопку створити проект.
Це призведе до перенаправлення вас на сторінку, схожу на зображення вище. Введіть назву проекту та натисніть "Продовжити".
Знову натисніть кнопку продовжити.
Після цього вам потрібно погодитись з деякими умовами, встановивши прапорець, далі потрібно натиснути кнопку створення проекту.
Якщо ви все зробили правильно, через деякий час ви отримаєте таке повідомлення. Завершивши роботу, ваша консоль Firebase повинна виглядати як на малюнку нижче.
Тепер нам потрібно зібрати звідси дві речі. Для цього потрібно натиснути на назву проекту, який ви щойно створили. Для мене це CelingFanRegulator, після натискання на нього ви отримаєте інформаційну панель, подібну до зображення нижче.
Клацніть на налаштування, потім налаштування проекту, сторінка, яку ви отримаєте, буде виглядати як зображення нижче.
Клацніть на акаунт служби -> секрет бази даних.
Скопіюйте таємницю бази даних та збережіть її десь для подальшого використання.
Далі натисніть на базу даних у реальному часі та скопіюйте URL-адресу. також зберігайте це для подальшого використання.
І це все, що стосується камерної сторони.
Код Arduino для управління регулятором вентилятора за допомогою NodeMCU
Простий код Arduino піклується про зв'язок між firebase та модулем ESP-12E, пояснення щодо схеми та коду наведено нижче. По-перше, ми визначаємо всі необхідні необхідні бібліотеки, ви можете завантажити наступні бібліотеки з даних посилань Arduino JSON та бібліотека FirebaseArduino
#включати
Ми будемо використовувати в FirebaseArduino бібліотеку, щоб встановити зв'язок з firebase.
// Встановіть їх для запуску прикладів. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "your SSID" #define WID "WIFF" Wide WIF "#define WID" WIFF "
Далі ми визначили хост Firebase, firebase auth, який ми раніше зберігали під час створення облікового запису firebase. Потім ми визначили SSID та пароль нашого маршрутизатора.
String Resivedata; #define PWM_PIN 14;
Далі ми визначили змінну типу рядка, Resivedata, де будуть зберігатися всі дані, а також визначили PWM_PIN, де отримаємо вихідний сигнал ШІМ.
Далі, у розділі void setup () ми робимо необхідне,
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("підключення"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); затримка (500); } Serial.println (); Serial.print ("підключено:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Змінна / значення", "FirstTestStrig");
По-перше, ми вмикаємо серійний номер, викликаючи функцію Serial.begin () . Далі ми встановили ШІМ-штифт як ВИХІД. Ми починаємо з’єднання Wi-Fi за допомогою функції WiFi.begin () і передаємо в цю функцію SSID та Пароль. Ми перевіряємо стан з'єднання в циклі while, і після підключення розриваємо цикл і продовжуємо далі. Далі ми друкуємо підключене повідомлення з IP-адресою.
Нарешті, ми починаємо спілкування з firebase за допомогою функції Firebase.begin () і передаємо параметри FIREBASE_HOST та FIREBASE_AUTH, які ми визначили раніше. І ми встановлюємо рядок за допомогою функції setString () , яка позначає кінець функції налаштування. У розділі void loop () ,
Resivedata = Firebase.getString ("Змінна / значення"); Serial.println (Resivedata); analogWrite (PWM_PIN, карта (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); затримка (100);
Ми викликаємо функцію getString () зі змінною / значенням, де дані зберігаються у firebase, прикладом може бути як зображення нижче
Потім ми друкуємо значення лише для налагодження. Далі ми використовуємо функцію map для відображення значення, використовується 80, оскільки в діапазоні від 0 до 80 ми можемо точно керувати затвором MOSFET, і низькочастотний фільтр RC дещо відповідає за це значення. В межах цього діапазону схема управління фазовим кутом працює точно, ви можете назвати це значення як програмно-програмне забезпечення. Якщо ви робите цей проект і стикаєтесь із проблемами, вам потрібно зіграти зі значенням і визначити результати самостійно.
А після цього ми використовуємо функцію analogWrite () для подачі даних і ввімкнення ШІМ, після цього знову використовуємо функцію Serial.println () просто для перегляду результату, і нарешті, використовуємо функцію затримки для зменшення кількість підрахунків до API Firebase, що закінчує нашу програму.
Створення програми Fan Regulator за допомогою програми MIT App Inventor
За допомогою AppInventor ми збираємося створити додаток для Android, яке буде взаємодіяти з firebase і має повноваження змінювати дані, які зберігаються в базі даних firebase.
Для цього перейдіть на веб-сайт appInventors, увійдіть у свій обліковий запис Google і прийміть умови використання. Як тільки ви це зробите, перед вами з’явиться екран, схожий на малюнок нижче.
Клацніть на піктограму запуску нового проекту, дайте йому назву та натисніть кнопку ОК. Після цього перед вами з’явиться екран, як на зображенні нижче.
Опинившись там, вам потрібно спочатку поставити дві мітки, де це трохи покласти повзунок, далі потрібно втягнути деякі модулі, а це модуль FirebaseDB та веб-модуль.
Модуль firebaseDB взаємодіє з firebase, веб-модуль використовується для h andle запиту. Що схоже на малюнок нижче.
Після цього потрібно втягнути повзунок та мітку, яку ми назвали ШІМ. Якщо ви зараз заплуталися, ви можете ознайомитися з деякими іншими підручниками щодо створення програми разом із винахідником програми.
Після того, як ми закінчимо процес, натисніть на піктограму DB firebase і вставте маркер Firebase та URL-адресу Firebase, яку ми зберегли під час створення облікового запису Firebase.
Тепер ми закінчили з секцією проектування, і нам потрібно налаштувати секцію блоку. Для цього нам потрібно натиснути кнопку блокування у верхньому правому куті біля конструктора.
Після натискання на повзунок, перед вами з’явиться довгий список модулів, витягніть перший модуль і наведіть вказівник миші на кнопку позиціонування великого пальця, вас зустрінуть ще два модулі, витягніть обидва з них. Ми будемо використовувати їх пізніше.
Тепер ми приєднуємо змінну позиції великого пальця, округляємо її і отримуємо значення положення великого пальця. Далі ми натискаємо на firebasedb і витягуємо значення тегу виклику FirebaseDB.storeValue, щоб зберегти, модулювати та приєднати його до нижньої частини значення великого пальця.
Закінчивши, ми витягуємо порожнє текстове поле, клацнувши текстовий блок, і прикріплюємо його разом із тегом, це тег, який ми встановили в IDE Arduino для читання та запису даних у Firebase. Тепер приєднайте змінну значення великого пальця до значення, що зберігається тегом. Якщо ви все зробили правильно, перемістивши повзунок, ви зможете змінити значення в firebaseDB.
- .Aia (збережений файл) та.apk (скомпільований файл)
Що означає закінчення нашого процесу створення додатків. Знімок програми для Android, яку ми щойно створили, показаний нижче.
Тестування схеми сенсорного датчика на основі ESP32
Щоб перевірити схему, я підключив лампочку розжарювання паралельно стельовому вентилятору, і підключив схему до адаптера постійного струму 5 В, як ви можете бачити на малюнку вище, повзунок програми встановлений на низький рівень, ось чому лампочка світиться при низькій яскравості. І вентилятор також повільно обертається.
Подальші вдосконалення
Для цієї демонстрації схема виконана на друкованій платі ручної роботи, але її можна легко побудувати на друкованій платі хорошої якості, в моїх експериментах розмір друкованої плати насправді трохи залежить від розміру компонента, але у виробничому середовищі це можна зменшити, використовуючи дешеві компоненти SMD, я виявив, що використання таймера 7555 замість таймера 555 значно збільшує управління, крім того, стабільність схеми також зростає.