Как сделать систему умного дома с помощью модуля ESP32?
В эту современную эпоху концепция домашней автоматизации развивается с огромной скоростью. Интеллектуальные системы устанавливаются практически везде. Smart Home Systems – это концепция, в которой все электрические приборы или устройства управляются с помощью одного пульта дистанционного управления. В этих системах большую часть времени пульт дистанционного управления представляет собой мобильное приложение. Поскольку мобильный телефон для Android является наиболее распространенным среди людей, приложение для Android является лучшим вариантом для управления всеми этими устройствами.
Домашняя автоматизация
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Таким образом, в этом проекте мы собираемся подключить некоторые бытовые электроприборы к модулю реле и управлять им через микроконтроллер ESP32. Мы создадим базу данных Firebase в реальном времени и подключим ее из приложения Android. Это приложение для Android отправит данные в облако, а затем отправит их в микроконтроллер для включения или выключения электроприборов. Самое приятное то, что вы можете иметь полный контроль над переключением ваших приборов из любой точки мира. Вам просто нужно подключение к интернету для работы приложения Android.
Как управлять бытовой техникой через WiFi?
Системы домашней автоматизации, которые уже доступны на рынке, очень дороги. Мы можем использовать плату ESP32 для подключения различных бытовых приборов и управления ими с помощью приложения для Android. Это будет очень недорогой и эффективный способ автоматизации дома. Теперь давайте сделаем шаг вперед и начнем собирать информацию, чтобы начать проект.
Шаг 1: Сбор Компонентов
Лучший подход к запуску любого проекта – составить список компонентов и провести краткое изучение этих компонентов, потому что никто не захочет зацикливаться на середине проекта только из-за отсутствующего компонента. Список компонентов, которые мы собираемся использовать в этом проекте, приведен ниже:
Шаг 2: Изучение компонентов
Теперь, когда мы знаем реферат этого проекта, давайте продвинемся на один шаг вперед и проведем краткое изучение работы основных компонентов, которые мы собираемся использовать.
ESP32 – это энергосберегающая и недорогая плата микроконтроллера, которая имеет встроенный WiFi и двухрежимный модуль Bluetooth. Эта плата микроконтроллера создана и разработана Espressif Systems. Эта плата имеет встроенные усилители мощности, усилители низкого уровня приема, фильтры и антенные переключатели. Он питается от кабеля для передачи данных Android и может обеспечить до 3,3 В на выходе. ESP32 выполняет TCP / IP, полное соглашение 802.11 b / g / n / e / I WLAN MAC и, в частности, Wi-Fi Direct. Это подразумевает, что ESP 32 может адресовать большую часть WiFi-маршрутизаторов, когда они используются в режиме станции (клиента). Кроме того, он может сделать точку доступа с полной 802.11 b / g / n / e / I. ESP32 не просто поддерживает новейшую Bluetooth BLE 4.2, он дополнительно поддерживает отличный Bluetooth. Это в основном подразумевает, что он может обращаться к старым и новым телефонам / таблицам Bluetooth. Если у вас нет модуля ESP32, вы также можете использовать ESP8266 или Node MCU. Эти платы можно использовать для выполнения той же задачи, если они подключены к WiFi.
ESP32
Релейный модуль является коммутационным устройством. Он работает в двух режимах: нормально открытый (NO) и нормально закрытый (NC). В режиме NO цепь всегда разрывается, если только вы не отправите сигнал HIGH на реле через Arduino. Режим NC работает наоборот, цепь всегда завершена, если вы не включите модуль реле. Убедитесь, что вы подключили положительный провод вашего электрического прибора к релейному модулю, как показано ниже.
Сборка релейного модуля
Шаг 3: Блок-схема
Блок-схема
На приведенной выше блок-схеме показан поток этого проекта. Реле подключены к бытовым электроприборам или устройствам. Мобильное приложение отправит команду включения или выключения в базу данных. Это облако подключено к плате микроконтроллера ESP32 через WiFi. Чтобы включить электронное устройство, мы отправим «1» в базе данных, а чтобы выключить его, мы отправим «0» в базе данных. Затем эта команда будет извлечена микроконтроллером, поскольку она также подключена к базе данных. На основании этих 0 или 1 микроконтроллер включит или выключит релейный модуль, что в конечном итоге приведет к переключению электрических приборов.
Итак, здесь, в этой статье, я буду использовать два релейных модуля, чтобы показать вам всю процедуру. Но вы можете увеличить количество реле и добавить тот же кусок кода в вашу программу, если вы хотите контролировать большее количество бытовых электроприборов.
Шаг 4: Сборка компонентов
Теперь, когда у нас есть четкое видение того, что мы хотим сделать в этом проекте, давайте не будем больше тратить время и начнем собирать компоненты.
- Возьмите макет и зафиксируйте в нем микроконтроллер ESP32. Теперь возьмите два релейных модуля и подключите Vcc и землю модулей к Vin и земле платы микроконтроллера ESP32 параллельно. Подключите входной разъем релейных модулей к контакту 34 и контакту 35 платы ESP32. Вы увидите, что реле теперь включены.
- Подключите бытовую технику к релейному модулю. Убедитесь, что ваши соединения соответствуют соединениям, показанным на рисунке в шаге 2.
Теперь, когда мы подключили аппаратную часть нашей системы. Мы разработаем приложение для Android, которое будет подключено к базе данных Firebase. Мы сделаем базу данных и приложение для Android во второй части этой статьи.
Шаг 5: Начало работы с ESP32
Если вы раньше не работали с Arduino IDE, не беспокойтесь, потому что шаг за шагом по настройке Arduino IDE показан ниже.
- Загрузите последнюю версию Arduino IDE с Arduino.
- Подключите плату Arduino к ПК и откройте панель управления. Нажмите на Оборудование и звук. Теперь откройте «Устройства и принтер» и найдите порт, к которому подключена ваша плата. В моем случае это COM14, но он отличается на разных компьютерах.Поиск порта
- Нажмите Файл, а затем нажмите Настройки. Скопируйте следующую ссылку в URL-адрес менеджера дополнительного форума. «Https://dl.espressif.com/dl/package_esp32_index.json»предпочтения
- Теперь, чтобы использовать ESP32 с Arduino IDE, нам нужно импортировать специальные библиотеки, которые позволят нам записывать код на ESP32 и использовать его. эти две библиотеки прилагаются по ссылке, приведенной ниже. Чтобы включить библиотеку, выберите «Эскиз»> «Включить библиотеку»> «Добавить ZIP-библиотеку». Коробка появится. Найдите папку ZIP на вашем компьютере и нажмите OK, чтобы включить папки.Включить библиотеку
- Теперь перейдите в Sketch> Включить библиотеку> Управление библиотеками.Управление библиотеками
- Меню откроется. В строке поиска введите Arduino JSON. Список появится. Установите Arduino JSON от Бенуа Бланшона.Arduino JSON
- Теперь нажмите на Инструменты. Появится раскрывающееся меню. Установите плату в ESP Dev Module.Настольная доска
- Снова нажмите в меню «Инструменты» и установите порт, который вы наблюдали на панели управления ранее.Настройка порта
- Теперь загрузите код, который прикреплен по ссылке ниже, и нажмите кнопку загрузки, чтобы записать код на микроконтроллере ESP32.Загрузить
Так что теперь, когда вы загрузите код, может возникнуть ошибка. Это наиболее распространенная ошибка, которая может возникнуть, если вы используете новую версию Arduino IDE и Arduino JSON. Ниже приведены ошибки, которые вы можете увидеть на экране.
В файл включен из C: Users Pro Documents Arduino library IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0,
из C: Users Pro Desktop smartHome code code.ino: 2:
C: Users Pro Documents Arduino library IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: ошибка: StaticJsonBuffer – это класс из ArduinoJson 5. См. Arduinojson.org/upgrade, чтобы узнать, как обновить вашу программу до ArduinoJson версия 6
StaticJsonBuffer
^
В файл включен из C: Users Pro Documents Arduino library IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0,
из C: Users Pro Desktop smartHome code code.ino: 2:
C: Users Pro Documents Arduino library IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: ошибка: StaticJsonBuffer – это класс из ArduinoJson 5. См. Arduinojson.org/upgrade, чтобы узнать, как обновить вашу программу до ArduinoJson версия 6
вернуть StaticJsonBuffer
^
Для “WiFi.h” найдено несколько библиотек
Используется: C: Users Pro AppData Local Arduino15 packages esp32 hardware esp32 1.0.2 library WiFi
Не используется: C: Program Files (x86) Arduino library WiFi
Использование библиотеки WiFi версии 1.0 в папке: C: Users Pro AppData Local Arduino15 packages esp32 hardware esp32 1.0.2 library WiFi
Использование библиотеки IOXhop_FirebaseESP32-master в папке: C: Users Pro Documents Arduino library IOXhop_FirebaseESP32-master (устаревшая версия)
Использование библиотеки HTTPClient версии 1.2 в папке: C: Users Pro AppData Local Arduino15 packages esp32 hardware esp32 1.0.2 library HTTPClient
Использование библиотеки WiFiClientSecure версии 1.0 в папке: C: Users Pro AppData Local Arduino15 packages esp32 hardware esp32 1.0.2 library WiFiClientSecure
Использование библиотеки ArduinoJson версии 6.12.0 в папке: C: Users Pro Documents Arduino library ArduinoJson
статус выхода 1
Ошибка компиляции для платы ESP32 Dev Module.
Не о чем беспокоиться, потому что мы можем устранить эти ошибки, выполнив несколько простых шагов. Эти ошибки возникают потому, что в новой версии Arduino JSON вместо StaticJsonBuffer есть другой класс. Это класс JSON 5. Поэтому мы можем просто устранить эту ошибку, понизив версию Arduino JSON нашей Arduino IDE. Просто зайдите в Sketch> Включить библиотеку> Управление библиотеками. Ищите Arduino JSON от Benoit Blanchon, который вы установили ранее. Сначала удалите его, а затем установите его версию 5.13.5. Теперь, когда мы установили старую версию Arduino JSON, установите ее снова и перекомпилируйте код. На этот раз ваш код будет успешно скомпилирован.
Чтобы скачать код, щелчок Вот.
Шаг 6: Понимание кода
Код этого проекта очень прост и хорошо прокомментирован. Но все же код кратко поясняется ниже.
1. В начале включены библиотеки, так что плату ESP32 можно подключить к локальному WiFi-соединению дома или в офисе. После этого определяется ссылка на ваш проект Firebase и аутентификация вашего проекта Firebase. Затем определяются имя и пароль вашего локального соединения Wi-Fi, чтобы ESP32 мог быть подключен к Wi-Fi. Некоторые контакты ESP32 определены для подключения к релейным модулям. и, наконец, объявлена переменная, которая будет хранить некоторые временные данные, поступающие из облака базы данных.
#включают
#включают
#define FIREBASE_HOST “coma-patient.firebaseio.com” // включает ссылку на ваш проект firebase
#define FIREBASE_AUTH “UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf” // Включить аутентификацию вашего проекта Firebase
#define WIFI_SSID “abcd” // имя WiFi-соединения вашего дома или офиса
#define WIFI_PASSWORD “abcd” // пароль WiFi-соединения вашего дома или офиса
int r1 = 34; // контакт для подключения реле 1
int r2 = 35; // контакт для подключения реле 2
int temp; // переменная для переноса данных
2. void setup () – это функция, в которой мы инициализируем контакты INPUT или OUTPUT. Эта функция также устанавливает скорость передачи данных с помощью команды Serial.begin (). Скорость передачи – это скорость связи микроконтроллера. Здесь добавлено несколько строк кода для подключения ESP32 к локальному Wi-Fi-соединению. Плата попытается подключиться к локальному Wi-Fi-соединению и напечатает «соединение». в серийном мониторе. Когда будет установлено соединение, будет напечатано «Подключено». Таким образом, чтобы контролировать это, лучше открыть последовательный монитор и проверить его состояние там.
void setup () {
Serial.begin (115200); // установка скорости передачи
// подключаемся к wifi.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD);
Serial.println ( “соединение”);
while (WiFi.status ()! = WL_CONNECTED) {
Serial.print ( “”);
задержки (500);
}
Serial.println ();
Serial.print (“подключен:”);
Serial.println (WiFi.localIP ());
Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
}
3. void loop () – это функция, которая многократно запускается в цикле. В этом цикле мы пишем код, который сообщает плате микроконтроллера, какие задачи выполнять и как. Мы получили данные о свете и переменном токе из базы данных и сохранили их в двух временных переменных. Затем применяются четыре условия для переключения двух устройств в соответствии с выбранными 0 или 1 из базы данных.
void loop () {
// получить значение
temp1 = Serial.println (Firebase.getFloat (“light”)); // получаем значение для переключения света
temp2 = Serial.println (Firebase.getFloat (“AC”)); // получаем значение для переключения вентилятора
Задержка (1000);
if (temp1 == 1 && temp2 == 1) {// Включить свет и вентилятор
digitalWrite (r1, HIGH);
digitalWrite (г2, HIGH);
}
if (temp1 == 0 && temp2 == 1) {// Чтобы включить вентилятор и выключить свет
digitalWrite (r1, LOW);
digitalWrite (г2, HIGH);
}
if (temp1 == 1 && temp2 == 0) {// Выключить вентилятор и включить свет
digitalWrite (r1, HIGH);
digitalWrite (г2, LOW);
}
if (temp1 == 0 && temp2 == 0) {// Чтобы выключить вентилятор и выключить свет
digitalWrite (r1, LOW);
digitalWrite (г2, LOW);
}
}
Это была первая часть «Как сделать систему умного дома с использованием ESP32?». Вы можете добавить больше релейных модулей, если вы хотите управлять еще несколькими бытовыми приборами, единственное, что вам нужно будет сделать, это прочитать данные из пожарной базы и добавить еще несколько условий для переключения. В следующей статье я объясню, как разработать приложение для Android и базу данных Firebase. Я объясню пошаговую процедуру подключения приложения для Android к базе данных и отправки на него данных.
Чтобы перейти к следующему уроку, нажмите здесь
Appuals.com является участником партнерской программы Amazon Services LLC, и мы получаем комиссию за покупки, сделанные по нашим ссылкам.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)