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

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



Управление кондиционером

Как настроить все необходимые периферийные устройства с помощью ESP32?

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



Шаг 1. Используемые компоненты (оборудование)

  • ESP32
  • Модуль дисплея MakerFocus I2C OLED
  • Светозависимый резистор
  • Кнопочный переключатель
  • ИК-приемник
  • Резистор 1 кОм (x4)
  • BC 338 NPN транзистор
  • Соединительные кабели
  • Приемник TSOP
  • Макетная плата
  • Зарядное устройство для Android

Шаг 2: Используемые компоненты (программное обеспечение)

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



  • Android Studio
  • JAVA JDK

Шаг 3. Установка Android Studio

Перед установкой Android Studio , сначала мы установим JAVA JDK. Чтобы установить это, нажмите на Exe файл который вы загрузили по указанной выше ссылке, и нажимайте 'Далее', пока он не будет успешно установлен. Теперь выполните следующие шаги, чтобы ваша командная строка распознала Ява как внешняя или внутренняя команда.



  1. открыто Панель управления и нажмите на Система и безопасность .
  2. Нажмите на Система.

    Система

  3. Нажмите на Расширенная настройка системы а затем нажмите на Переменные среды. Расширенные системные настройки

    Расширенные системные настройки

  4. В разделе «Системная переменная» щелкните путь, а затем нажмите «Изменить». Новый Изменить переменную среды появится окно.

    Изменить путь



  5. Теперь перейдите к C: Program Files Java на вашем ПК. Откройте папку JDK, щелкните папку bin и скопируйте путь к этой папке.

    Путь к папке Bin

  6. Теперь перейдите в поле Edit Environment Variable и нажмите New, чтобы создать новую переменную. Вставьте путь, который вы скопировали на предыдущем шаге, в новую переменную и сохраните его.
  7. Теперь, чтобы подтвердить, что он полностью установлен, откройте командную строку и введите java –version.

    Версия JAVA

Теперь, когда вы успешно установили Java JDK на свой компьютер. Давайте теперь установим Android Studio на ваш компьютер. Установить это программное обеспечение очень просто. Вам необходимо открыть загруженный файл и нажимать кнопку «Далее», пока ваше программное обеспечение не будет полностью установлено.

Шаг 4: Подключение к Firebase

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

  1. Запустите Android Studio и создайте новый проект, нажав на Пустое действие .
  2. Теперь назовите свой проект как computerSwitc, Выбрать Котлин в качестве языка и выберите минимальный уровень API в соответствии с вашим мобильным телефоном.
  3. Поскольку мы собираемся использовать Интернет для управления контактами raspberry pi. Мы установим разрешение в нашем приложении для доступа к локальному Wi-Fi. Для этого перейдите в приложение> манифесты> AndroidManifest.xml и добавьте следующую команду.

    Интернет-разрешение

  4. Теперь нажмите n Инструменты. Появится раскрывающееся меню, в котором выберите Firebase.

    Подключение Firebase

  5. В правой части экрана появится большое меню, в котором будут представлены меню почти всех услуг, предоставляемых firebase. Но сейчас мы сосредоточены на базе данных реального времени. Итак, щелкните по базе данных в реальном времени. Ссылка на « Сохранить и получить данные ' будет появляться. Щелкните эту ссылку.

    Помощник Firebase

  6. Подключиться Подключиться к Firebase кнопка. Вы перейдете в веб-браузер по умолчанию. Во-первых, он попросит вас войти в свою учетную запись Gmail. Затем нажмите на Добавьте базу данных Realtime в свое приложение и примите изменения.
  7. Теперь перейдите к Консоль Firebase . Там вы увидите уже сделанный проект. Логотип Android на значке этого проекта означает, что он уже принадлежит приложению Android.
  8. Из Разработать меню, которое появляется в левой части экрана, выберите База данных. Кнопка Создать базу данных появится справа. Щелкните по этой кнопке.
  9. Появится меню с просьбой установить режим вашей базы данных. Нажмите на тестовый режим а затем щелкните включить .

    Тестовый режим

  10. Теперь действительно важный шаг, о котором следует помнить, - это изменить Cloud Firestore к База данных в реальном времени. Для этого нажмите кнопку, показанную на изображении ниже, и измените желаемый параметр.

    Firebase в реальном времени

  11. Теперь нажмите на Правила вкладка и измените конфигурации на Правда . Когда все будет готово, нажмите Публиковать .

    Изменение конфигураций

  12. Единственное, что вам нужно сделать, кроме подключения firebase, - это обновить версию базы данных. Для этого нажмите на перейти к документации . Теперь нажмите на гиды и выберите Руководства по Android из списка, который появляется на экране. Прокрутите вниз, пока не появится таблица. Найдите в этой таблице базу данных реального времени и найдите ее версию. в моем случае это 19.1.0.

    Версия

  13. . Нажмите на Скрипты Gradle, меню в левой части экрана. Затем выберите построен. gradle (Модуль: приложение). Теперь в коде найдите версию базы данных реального времени и замените ее новой.

    Версия Firebase

  14. Теперь синхронизируйте проект, нажав кнопку синхронизации, которая появляется в верхней части экрана.

Шаг 5: Создание макета

Теперь, когда наше приложение для Android подключено к firebase, давайте создадим макет нашего приложения, который будет использоваться пользователем для включения или выключения компьютера. Чтобы сделать макет, перейдите в приложение> res> layout> activity_main.xml. где мы разработаем макет. Скопируйте приведенный ниже код, чтобы создать текстовое представление.

 

Макет нашего приложения будет выглядеть так:

Макет приложения

Шаг 6: Начало работы с 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  airconditioner  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  airconditioner  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, установите ее снова и перекомпилируйте код. На этот раз ваш код будет успешно скомпилирован.

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

Код этого проекта очень прост и кратко поясняется ниже. Кроме того, код с необходимыми библиотеками также можно скачать с Вот.

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

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_FASSID 'abdata' abdata 'WIFI_SSIDBORD' # firebase '' int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); decode_results результаты;

2. установка void () , это цикл, который запускается при нажатии кнопки включения или при включении микроконтроллера. Здесь мы запустим приемник нашего ИК-датчика и напишем код, чтобы начать подключение нашего микроконтроллера к локальному интернет-соединению.

void setup () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Запускаем приемник // подключаемся к 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); Firebase.enableClassicRequest (firebaseData, true); }

3. пустой цикл () - это функция, которая многократно выполняется в цикле. Здесь этот код проверяет, поступают ли значения от датчика.

void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); дамп (& результаты); irrecv.resume (); // Получение следующего значения} delay (500); }

Четыре. пустой дамп () - это функция, которая используется для первой идентификации модели пульта дистанционного управления, отправляющего сигнал на датчик. он также выгружает структуру decode_results.

недействительный дамп (decode_results * результаты) {int count = results-> rawlen; if (results-> decode_type == UNKNOWN) {Serial.print ('Неизвестная кодировка:'); } else if (results-> decode_type == NEC) {Serial.print ('Декодированный NEC:'); } else if (results-> decode_type == SONY) {Serial.print ('Декодированный SONY:'); } else if (results-> decode_type == RC5) {Serial.print ('Декодированный RC5:'); } else if (results-> decode_type == RC6) {Serial.print ('Декодированный RC6:'); } в else if (results-> decode_type == PANASONIC) {Serial.print ('Декодированный PANASONIC - Адрес:'); Serial.print (результаты-> panasonicAddress, HEX); Serial.print ('Значение:'); } else if (results-> decode_type == JVC) {Serial.print ('Декодированный JVC:'); } Serial.print (результаты-> значение, HEX); Serial.print ('('); Serial.print (результаты-> биты, DEC); Serial.println ('биты)'); Serial.print ('Raw ('); Serial.print (количество, DEC); Serial.print ('):'); для (int я = 0; я rawbuf [я] * USECPERTICK, DEC); } else {Serial.print (- (int) results-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (''); } Serial.println (''); }

Шаг 8: Подготовка оборудования

После записи кода в ESP32 нам нужно подготовить оборудование и прикрепить его к стене или в любом другом подходящем месте рядом с кондиционером. Установите компоненты на макетную плату, следуя схеме, представленной вверху. После сборки схемы включите модуль ESP с помощью зарядного устройства Android. Лучше спроектировать корпус оборудования дома или просто поместить оборудование внутрь корпуса Raspberry Pi.

Шаг 9: г последние штрихи

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

На сегодня все, надеюсь, вам понравится эта статья, и после создания собственного прототипа для управления кондиционером дома не забудьте поделиться своим опытом!