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

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

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

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

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

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

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

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

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

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

  1. Откройте панель управления и нажмите «Система и безопасность».
  2. Нажмите на систему.система
  3. Нажмите на Advanced System Setting, а затем нажмите на переменные среды.Расширенные настройки системыРасширенные настройки системы
  4. В разделе «Системная переменная» щелкните путь, а затем нажмите «Изменить». Появится новое поле «Изменить переменную среды».Изменить путь
  5. Теперь перейдите в C: Program Files Java на вашем ПК. Откройте папку JDK, щелкните папку bin и скопируйте путь к этой папке.Путь Бин Папка
  6. Теперь перейдите в поле «Изменить переменную среды» и нажмите «Создать», чтобы создать новую переменную. Вставьте путь, который вы скопировали в предыдущем шаге, в новую переменную и сохраните его.
  7. Теперь, чтобы подтвердить, если он полностью установлен, откройте командную строку и введите java –version.Версия JAVA

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

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

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

  1. Запустите Android Studio и создайте новый проект, нажав «Пустое действие».
  2. Теперь назовите свой проект как computerSwitc, выберите Kotlin в качестве языка и выберите минимальный уровень API в соответствии с вашим мобильным телефоном.
  3. Так как мы собираемся использовать Интернет для управления булавками Raspberry Pi. Мы установим разрешение в нашем приложении для доступа к локальному Wi-Fi. Для этого перейдите в app> manifest> AndroidManifest.xml и добавьте следующую команду.Интернет-разрешение
  4. Теперь нажмите n Инструменты. Появится раскрывающееся меню, из которого выберите Firebase.Firebase Connection
  5. В правой части экрана появится большое меню, в котором будет представлено меню почти всех сервисов, предоставляемых Firebase. Но сейчас мы сосредоточены на базе данных в реальном времени. Так что нажмите на базу данных в реальном времени. Появится ссылка на «Сохранить и восстановить данные». Нажмите на эту ссылку.Firebase Assistant
  6. Соединитесь на кнопке Connect To Firebase. Это приведет вас к веб-браузеру по умолчанию. Сначала вам будет предложено войти в свою учетную запись Gmail. Затем нажмите «Добавить базу данных реального времени» в свое приложение и примите изменения.
  7. Теперь иди в Консоль Firebase, Там вы увидите уже выполненный проект. Логотип Android на значке этого проекта означает, что он уже принадлежит приложению Android.
  8. В меню «Разработка», которое появляется в левой части экрана, выберите «База данных». Кнопка Создать базу данных появится справа. Нажмите на эту кнопку.
  9. Появится меню с просьбой установить режим вашей базы данных. Нажмите на тестовый режим, а затем нажмите Включить.Тестовый режим
  10. Теперь действительно важный шаг, который нужно помнить, — это изменить Cloud Firestore на Real-Time Database. Для этого нажмите на кнопку, показанную на рисунке ниже, и измените желаемую опцию.Firebase в реальном времени
  11. Теперь нажмите на вкладку «Правила» и измените настройки на «Истина». Как только все будет сделано, нажмите «Опубликовать».Изменение конфигурации
  12. Единственное, что вам нужно сделать, кроме подключения Firebase, это обновить версию базы данных. Для этого нажмите на перейти к документам. Теперь нажмите на направляющие и выберите Android Guides из списка, который появляется на экране. Прокрутите вниз, пока не появится таблица. Найдите в этой таблице базу данных реального времени и найдите ее версию. в моем случае это 19.1.0.Версия
  13. , Нажмите на Gradle Scripts, меню в левой части экрана. Затем выберите встроенный. Gradle (Модуль: приложение). Теперь в коде найдите версию базы данных в реальном времени и замените ее новой.Версия Firebase
  14. Теперь синхронизируйте проект, нажав на кнопку синхронизации, появляющуюся в верхней части экрана.

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

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

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

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

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

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

  1. Загрузите последнюю версию Arduino IDE с Arduino.
  2. Подключите плату Arduino к ПК и откройте панель управления. Нажмите на Оборудование и звук. Теперь откройте «Устройства и принтер» и найдите порт, к которому подключена ваша плата. В моем случае это COM14, но он отличается на разных компьютерах.Поиск порта
  3. Нажмите Файл, а затем нажмите Настройки. Скопируйте следующую ссылку в URL-адрес менеджера дополнительного форума. «Https://dl.espressif.com/dl/package_esp32_index.json»предпочтения
  4. Теперь, чтобы использовать ESP32 с Arduino IDE, нам нужно импортировать специальные библиотеки, которые позволят нам записывать код на ESP32 и использовать его. эти две библиотеки прилагаются по ссылке, приведенной ниже. Чтобы включить библиотеку, выберите «Эскиз»> «Включить библиотеку»> «Добавить ZIP-библиотеку». Коробка появится. Найдите папку ZIP на вашем компьютере и нажмите OK, чтобы включить папки.Включая библиотеку
  5. Теперь перейдите в Sketch> Включить библиотеку> Управление библиотеками.Управление библиотеками
  6. Меню откроется. В строке поиска введите Arduino JSON. Список появится. Установите Arduino JSON от Бенуа Бланшона.Arduino JSON
  7. Теперь нажмите на Инструменты. Появится раскрывающееся меню. Установите плату в ESP Dev Module.Настройка платы
  8. Снова нажмите в меню «Инструменты» и установите порт, который вы наблюдали на панели управления ранее.Настройка порта
  9. Теперь загрузите код, который прикреплен по ссылке ниже, и нажмите кнопку загрузки, чтобы записать код на микроконтроллере ESP32.Загрузить

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

В файл включен из C: Users Pro Documents Arduino library IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0,

из C: Users Pro Desktop airconditioner 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 jsonBuffer;
^
В файл включен из C: Users Pro Documents Arduino library IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0,

из C: Users Pro Desktop airconditioner 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() .ParseObject (_data);

^
Для «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, установите ее снова и перекомпилируйте код. На этот раз ваш код будет успешно скомпилирован.

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

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

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

#включают
#включают
#включают

#define FIREBASE_HOST «coma-patient.firebaseio.com»
#define FIREBASE_AUTH «UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf»
#define WIFI_SSID «PRO»
#define WIFI_PASSWORD «abcdefgh»

FirebaseData firebaseData;
int RECV_PIN = 19;
IRrecv irrecv (RECV_PIN);
результаты decode_results;

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

void setup () {
Serial.begin (115200);
pinMode (RECV_PIN, INPUT);
irrecv.enableIRIn (); // Запустить приемник

// подключаемся к 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);
Firebase.enableClassicRequest (firebaseData, true);
}

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

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

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

void dump (decode_results * results) {
int count = results-> rawlen;
if (results-> decode_type == UNKNOWN) {
Serial.print («Неизвестная кодировка:»);
}
иначе if (results-> decode_type == NEC) {
Serial.print («Декодированный NEC:»);
}
еще если (результаты-> decode_type == SONY) {
Serial.print («Декодированный SONY:»);
}
иначе if (results-> decode_type == RC5) {
Serial.print («Декодированный RC5:»);
}
иначе if (results-> decode_type == RC6) {
Serial.print («Декодированный RC6:»);
} для
иначе if (results-> decode_type == PANASONIC) {
Serial.print («Декодированный PANASONIC — Адрес:»);
Serial.print (конечные результаты> panasonicAddress, HEX);
Serial.print («Значение:»);
}
иначе 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 i = 0; i < count; i++) { if ((i % 2) == 1) { Serial.print(results->rawbuf[i]* USECPERTICK, DEC);
}
еще {
Serial.print (- (целое) конечные результаты> rawbuf[i]* USECPERTICK, DEC);
}
Serial.print («»);
}
Serial.println ( «»);
}

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

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

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

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

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

Appuals.com является участником партнерской программы Amazon Services LLC, и мы получаем комиссию за покупки, сделанные по нашим ссылкам.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *