Сделай сам: создание SmartLock для твоего дома, который открывается только со смартфона

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

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

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Автоматический дверной замок

Не теряя времени, давайте начнем изучать важные концепции и работать над этим проектом.

Как сделать Android управляемым SmartLock?

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

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

Шаг 2: Создание приложения

Поскольку мы собираемся сделать умный замок, которым будет управлять мобильный телефон, нам нужно разработать приложение для Android, которое будет содержать кнопку. Нажав эту кнопку, мы сможем открыть или закрыть умный замок. Ранее мы разработали несколько приложений для Android. Мы уже разработали приложение, которое состоит только из одной кнопки. Эта кнопка используется для отправки данных в базу данных. если в базу данных firebase помещается «1», блокировка коммутатора открывается, а если в эту базу данных вводится «0», блокировка будет закрыта.

Пожалуйста, обратитесь к нашей статье, озаглавленной «Создание переключателя беспроводного включения / выключения». Ваш ПК поможет вам разработать собственное приложение для Android, которое будет использоваться для управления умным замком.

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

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

Возьмите серводвигатель и подключите его Vcc и заземление к Vcc и заземлению платы ESP соответственно. Подсоедините контакт ШИМ вашего серводвигателя к контакту 34 вашей платы ESP32. Теперь посмотрим, что на серводвигателе есть шестеренчатая ручка. Извлеките ручку замка, повернув ее, и зафиксируйте ручку редукторного двигателя в замке с помощью некоторых клеев.

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

Шаг 4: Работа

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

ESP32 – это сердце этого проекта. К этой плате подключен серводвигатель, а этот микроконтроллер подключен к базе данных пожарной базы. Когда кнопка в приложении нажата, чтобы открыть блокировку, «1» помещается в базу данных Firebase, а когда кнопка нажимается, чтобы закрыть блокировку, «0» помещается в базу данных Firebase. Плата ESP постоянно читает это значение в базе данных firebase. Пока есть 0, ESP32 будет направлять серводвигатель, чтобы оставаться в своем исходном положении. Как только 1 входит в пожарную базу, плата ESP прочитает ее и скажет сервомотору сделать вращение, которое откроет замок.

Шаг 5: Начало работы с 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 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 jsonBuffer;

^

В файл включен из 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() .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, установите ее снова и перекомпилируйте код. На этот раз ваш код будет успешно скомпилирован.

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

Шаг 6: Код

код этого проекта очень прост, но некоторые его части описаны ниже.

1. В начале кода мы включим три библиотеки. Первый – включить Wifi на плате ESP, второй – разрешить ESP использовать серводвигатель, а третий – подключить плату ESP к базе данных Firebase. После этого мы добавим в код хост-базу firebase, аутентификацию, имя нашего локального интернет-соединения и его пароль. После этого создайте объект для использования серводвигателя.

#включают // включить библиотеку для использования WiFi
#включают // включить библиотеку для серводвигателя
#включают // включить библиотеку для подключения к Firebase

#define FIREBASE_HOST “xxxxxxxxxx” // замените xxxxxxxxxx вашим хостом firebase здесь
#define FIREBASE_AUTH “xxxxxxxxxx” // здесь замените xxxxxxxxxx вашей аутентификацией на основе firebase
#define WIFI_SSID “xx code, xxxxxxxx” // заменить xxxxxxxxxx именем нашего соединения Wi-Fi
#define WIFI_PASSWORD “xxxxxxxxxx” // заменить xxxxxxxxxx на ваш пароль Wi-Fi

Сервомеханизм; // создаем объект для серводвигателя
int pos = 0; // создаем переменную
Int State; // создаем переменную

2. void setup () – это функция, которая запускается в программе только один раз, когда плата микроконтроллера включена или нажата кнопка включения. Скорость передачи устанавливается в этой функции. Скорость передачи – это скорость передачи данных в битах в секунду, через которую микроконтроллер обменивается данными с внешними устройствами. Серводвигатель подключен к выводу 34 платы ESP. в этой функции написан код для подключения микроконтроллера к локальному интернет-соединению.

void setup () {
Serial.begin (115200); // установка скорости передачи
myservo.attach (34); // соединяем вывод ШИМ серводвигателя с выводом 34 ESP32
myservo.write (60);
Задержка (1000);

// подключаемся к 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 () – это функция, которая снова и снова запускается в цикле. В этой функции мы сообщаем микроконтроллеру, какие операции выполнять и как. Здесь данные читаются из базы данных и сохраняются в переменной с именем state. Если состояние имеет значение «0», положение серводвигателя устанавливается на 8 градусов. Если значение в состоянии переменной равно «1», положение серводвигателя будет установлено на 55 градусов.

void loop ()
{
state = Serial.println (Firebase.getFloat (“motor”)); // читаем данные из базы данных

// если состояние ‘0’, двигатель постоянного тока выключится
if (state == ‘0’)
{
myservo.write (8); // установить положение серводвигателя
Задержка (1000); // ждать второй секунды
Serial.println («Дверь закрыта»);
}
иначе if (state == ‘1’)
{
myservo.write (55); // установить новое положение серводвигателя
Задержка (1000); // ждать одну секунду
Serial.println («Дверь разблокирована»);
}

// обработать ошибку
if (Firebase.failed ()) {
Serial.print («сбой настройки / номера:»);
Serial.println (Firebase.error ());
возвращение;
}
Задержка (1000);

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

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

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

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