Как сделать систему автоматизации умного дома с помощью модуля ESP32?

В эту современную эпоху концепция домашней автоматизации растет с огромной скоростью. Умные системы устанавливаются практически везде. Системы умного дома - это концепция, в которой все электроприборы или устройства управляются с помощью одного пульта дистанционного управления. В этих системах большую часть времени пульт дистанционного управления представляет собой мобильное приложение. Поскольку мобильный телефон Android является наиболее распространенным среди людей, приложение для Android - лучший вариант для управления всеми этими устройствами.



Домашняя автоматизация

Итак, в этом проекте мы собираемся подключить некоторые домашние электроприборы к релейному модулю и управлять им через микроконтроллер ESP32. Мы сделаем базу данных firebase в реальном времени и подключим ее из приложения для Android. Это приложение для Android отправит данные в облако, а затем они будут отправлены в микроконтроллер для включения или выключения электрического устройства. Самое приятное то, что вы можете полностью контролировать переключение своих устройств из любой точки мира. Вам просто нужно подключение к Интернету для работы с приложением Android.



Как управлять бытовой техникой через WiFi?

Системы домашней автоматизации, которые уже доступны на рынке, очень дороги. Мы можем использовать плату ESP32 для подключения различных бытовых приборов и управления ими с помощью приложения для Android. Это будет очень дешевым и эффективным способом автоматизации дома. Теперь давайте сделаем шаг вперед и начнем сбор информации для запуска проекта.



Шаг 1: Сбор компонентов

Лучший способ начать любой проект - это составить список компонентов и провести краткое изучение этих компонентов, потому что никто не захочет оставаться в середине проекта только из-за отсутствия компонента. Список компонентов, которые мы собираемся использовать в этом проекте, приведен ниже:



  • ESP32
  • Макетная плата
  • Подключение проводов

Шаг 2: Изучение компонентов

Теперь, когда мы знаем аннотацию этого проекта, давайте продвинемся на шаг вперед и проведем краткое изучение работы основных компонентов, которые мы собираемся использовать.

ESP32 это маломощная и недорогая плата микроконтроллера со встроенным Wi-Fi и двухрежимным модулем Bluetooth. Эта плата микроконтроллера создана и разработана Системы Эспресси . Эта плата имеет встроенные усилители мощности, усилители приема с низким уровнем шума, фильтры и антенные переключатели. Он питается от кабеля для передачи данных 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 не просто поддерживает самый последний BLE Bluetooth 4.2, он также поддерживает отличный Bluetooth. По сути, это означает, что он может обращаться к старым и новым телефонам / таблицам Bluetooth. Если у вас нет модуля ESP32, вы также можете использовать ESP8266 или Node MCU. Эти платы можно использовать для выполнения той же задачи, если они подключены к Wi-Fi.

ESP32



Релейный модуль - это переключающее устройство. Работает в двух режимах, Нормально открытый (НЕТ) и Обычно Закрыто (NC) . В режиме NO цепь всегда разрывается, если вы не отправляете сигнал HIGH на реле через Arduino. Режим NC работает наоборот. Схема всегда замкнута, если вы не включите модуль реле. Убедитесь, что вы подключили положительный провод вашего электрического устройства к модулю реле, как показано ниже.

Сборка схемы модуля реле

Шаг 3: блок-схема

Блок-схема

На приведенной выше блок-схеме показан поток этого проекта. Реле подключаются к домашним электроприборам или устройствам. Мобильное приложение пришлет На или же ВЫКЛ. команду в базу данных. Это облако подключено к плате микроконтроллера ESP32 через WiFi. Чтобы включить электронное устройство, мы отправим «1» в базу данных, а для его выключения - «0» в базе данных. Затем эта команда будет загружена микроконтроллером, поскольку он также подключен к базе данных. На основе этого 0 или 1 микроконтроллер будет включать или выключать релейный модуль, что в конечном итоге приведет к переключению электрических приборов.

Итак, в этой статье я буду использовать два релейных модуля, чтобы показать вам всю процедуру. Но вы можете увеличить количество реле и добавить тот же кусок кода в свою программу, если хотите управлять большим количеством бытовых электроприборов.

Шаг 4: Сборка компонентов

Теперь, когда у нас есть четкое представление о том, что мы хотим сделать в этом проекте, давайте не будем больше тратить время и начнем сборку компонентов.

  1. Возьмите макет и закрепите в нем микроконтроллер ESP32. Теперь возьмите два релейных модуля и подключите Vcc и заземление модулей к Vin и заземлению платы микроконтроллера ESP32 параллельно. Подключите в штыре модулей реле к контактам 34 и 35 платы ESP32. Вы увидите, что реле включены.
  2. Подключите бытовую технику к релейному модулю. Убедитесь, что ваши соединения соответствуют соединениям, показанным на рисунке в шаге 2.

Теперь, когда мы подключили аппаратную часть нашей системы. Мы разработаем приложение для Android, которое будет подключено к базе данных firebase. Мы создадим базу данных и приложение для Android во второй части этой статьи.

Шаг 5: Начало работы с ESP32

Если вы раньше не работали над Arduino IDE, не беспокойтесь, потому что пошаговые инструкции по настройке Arduino IDE показаны ниже.

  1. Загрузите последнюю версию Arduino IDE из Ардуино.
  2. Подключите плату Arduino к ПК и откройте панель управления. Нажмите на Оборудование и звук. Теперь откройте Устройства и принтер и найдите порт, к которому подключена ваша плата. В моем случае это COM14 но на разных компьютерах он разный.

    Поиск порта

  3. Щелкните Файл, а затем щелкните Настройки. Скопируйте следующую ссылку в Дополнительный URL менеджера совета директоров. « https://dl.espressif.com/dl/package_esp32_index.json '

    Предпочтения

  4. Теперь, чтобы использовать ESP32 с Arduino IDE, нам нужно импортировать специальные библиотеки, которые позволят нам записывать код на ESP32 и использовать его. эти две библиотеки прикреплены по приведенной ниже ссылке. Чтобы включить библиотеку, goto Эскиз> Включить библиотеку> Добавить библиотеку ZIP . Появится окно. Найдите папку ZIP на вашем компьютере и нажмите OK, чтобы включить папки.

    Включить библиотеку

  5. Теперь перейти Эскиз> Включить библиотеку> Управление библиотеками.

    Управление библиотеками

  6. Откроется меню. В строке поиска введите Ардуино JSON. Появится список. Установить Arduino JSON от Бенуа Бланшона.

    Ардуино JSON

  7. Теперь нажмите на Инструменты. Появится раскрывающееся меню. Установите доску на Модуль разработки ESP.

    Доска настроек

  8. Снова щелкните меню «Инструменты» и установите порт, который вы наблюдали на панели управления ранее.

    Настройка порта

  9. Теперь загрузите код, который прикреплен по ссылке ниже, и нажмите кнопку загрузки, чтобы записать код на микроконтроллер ESP32.

    Загрузить

Так что теперь, когда вы загрузите код, может возникнуть ошибка. Это наиболее распространенная ошибка, которая может возникнуть, если вы используете новую версию Arduino IDE и Arduino JSON. Ниже приведены ошибки, которые вы можете увидеть на экране.

В файле, включенном в C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, из C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer - это класс из ArduinoJson 5. Пожалуйста, посетите arduinojson.org/upgrade, чтобы узнать, как обновить вашу программу до ArduinoJson StaticJsonBuffer jsonBuffer версии 6; ^ В файле, включенном в C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, из C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer - это класс из ArduinoJson 5. Пожалуйста, посетите arduinojson.org/upgrade, чтобы узнать, как обновить вашу программу до ArduinoJson версии 6 возвращает StaticJsonBuffer (). ParseObject (_data); ^ Для 'WiFi.h' обнаружено несколько библиотек Используется: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Не используется: C:  Program Files ( x86)  Arduino  libraries  WiFi Использование библиотеки WiFi версии 1.0 в папке: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Использование библиотеки IOXhop_FirebaseESP32-master в папке: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Использование библиотеки HTTPClient в версии 1.2 в папке: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Использование библиотеки WiFiClientSecure версии 1.0 в папке: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Использование библиотеки ArduinoJson в версия 6.12.0 в папке: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson статус выхода 1 Ошибка компиляции для модуля ESP32 Dev для платы.

Не о чем беспокоиться, потому что мы можем устранить эти ошибки, выполнив несколько простых шагов. Эти ошибки возникают из-за того, что новая версия Arduino JSON имеет другой класс вместо StaticJsonBuffer. Это класс JSON 5. Таким образом, мы можем просто устранить эту ошибку, понизив версию Arduino JSON нашей Arduino IDE. Просто зайдите в Эскиз> Включить библиотеку> Управление библиотеками. Искать Arduino JSON от Бенуа Бланшона которые вы установили раньше. Сначала удалите его, а затем установите его версию на 5.13.5. Теперь, когда мы установили старую версию Arduino JSON, установите ее снова и перекомпилируйте код. На этот раз ваш код будет успешно скомпилирован.

Чтобы скачать код, щелкнуть Вот.

Шаг 6: понимание кода

Код этого проекта очень прост и хорошо прокомментирован. Но все же код кратко объяснен ниже.

1. Вначале включены библиотеки, так что плату ESP32 можно подключить к локальному Wi-Fi-соединению дома или в офисе. После этого определяется ссылка на ваш проект firebase и аутентификация вашего проекта firebase. Затем определяются имя и пароль вашего локального Wi-Fi-соединения, чтобы ESP32 мог быть подключен к Wifi. Некоторые контакты ESP32 предназначены для подключения к модулям реле. и, наконец, объявляется переменная, в которой будут храниться некоторые временные данные, поступающие из облака firebase.

#include // включить библиотеку для подключения к локальному Wi-Fi-соединению #include // включить библиотеку для подключения к базе данных Firebase #define FIREBASE_HOST 'coma-patient.firebaseio.com' // включить ссылку на ваш проект firebase #define FIREBASE_AUTH 'UrzlDWXMBNRhNddc5i73 '// Включите аутентификацию вашего проекта firebase #define WIFI_SSID' abcd '// имя соединения WiFi вашего дома или офиса #define WIFI_PASSWORD' abcd '// пароль соединения WiFi вашего дома или офиса int r1 = 34; // контакт для подключения реле 1 int r2 = 35; // контакт для подключения реле 2 int temp; // variabe для переноса данных

2. установка void () это функция, в которой мы инициализируем контакты INPUT или OUTPUT. Эта функция также устанавливает скорость передачи с помощью Serial.begin () команда. Baud Rate - это скорость передачи данных микроконтроллера. Здесь добавлены несколько строк кода для подключения ESP32 к локальному Wi-Fi-соединению. Плата попытается подключиться к локальному Wi-Fi-соединению и напечатает «соединение». в серийном мониторе. Когда соединение будет установлено, он напечатает «Подключено». Поэтому, чтобы отслеживать это, лучше открыть серийный монитор и проверить его состояние там.

void setup () {Serial.begin (115200); // установка скорости передачи // подключаемся к Wi-Fi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('соединение'); в то время как (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); задержка (500); } Serial.println (); Serial.print ('подключено:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. пустой цикл () - это функция, которая многократно выполняется в цикле. В этом цикле мы пишем код, который сообщает плате микроконтроллера, какие задачи и как выполнять. Мы получили данные по свет и AC из базы данных и хранится в двух временных переменных. Затем применяются четыре условия для переключения двух устройств в соответствии с выбранным 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 (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Чтобы включить вентилятор и выключить свет digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Чтобы выключить вентилятор и включить свет digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Чтобы выключить вентилятор и выключить свет, digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Это была первая часть «Как сделать систему умного дома с помощью ESP32?». Вы можете добавить дополнительные релейные модули, если хотите управлять еще некоторыми бытовыми приборами, единственное, что вам нужно сделать, это прочитать данные из базы данных и добавить еще несколько условий для переключения. В следующей статье я объясню, как разработать приложение для Android и базу данных Firebase. Я объясню пошаговую процедуру подключения приложения Android к firebase и отправки в него данных.

Чтобы перейти к следующему руководству Кликните сюда