Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

WiFi-умный замок на Arduino и ESP8266 — открывание с телефона

Компоненты и материалы

Arduino UNO R3 1
ESP8266 WiFi-модуль (с PCB-антенной) 1
Дарлингтонский высоковольтный транзистор 1
Соленоид-замок (lock-style) 1

Приложения и онлайн-сервисы

О проекте

Это и другие уроки можно прочитать на официальном сайте ElectroPeak.

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

Надежная защита дверей с умным замком

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

В этом проекте мы создадим систему на базе Arduino для организации входа по WiFi с соленоидным замком. Мы не используем клавиатуру или сложные механические элементы — это и есть преимущество системы. Мы просто наклеиваем QR-код на дверь, а допущенные люди сканируют его, попадают на страницу входа и вводят пароль. После ввода правильного пароля срабатывает соленоид-замок. Нам понадобятся только Arduino, драйвер для соленоида и ESP8266 для подключения к локальной WiFi-сети. Приступим!

Схема подключения

Схема подключения показана на рисунках выше. Основные соединения:

Код

Сначала пишем код для ESP-01: он создает веб-страницу входа, принимает пароль от пользователя и передает его Arduino через последовательный порт. Затем пишем код для Arduino: он получает данные от ESP-01 и управляет соленоидом. Оба кода компилируются и загружаются через Arduino IDE.

Настройка Arduino IDE (если первый запуск)

  1. Скачайте Arduino IDE с официального сайта и установите.
  2. Запустите IDE, очистите редактор и вставьте код.
  3. В Tools > Board выберите вашу плату Arduino.
  4. Подключите Arduino к ПК и выберите COM-порт в Tools > Port.
  5. Нажмите кнопку Upload (стрелка).
  6. Готово!

Код для Arduino

String inputString = "";         // строка для входящих данных
bool stringComplete = false;     // флаг завершения строки

void setup() {
  Serial.begin(115200);
  inputString.reserve(200);
  pinMode(9, OUTPUT);
}

void loop() {
  if (stringComplete) {
    if (inputString == "your_password") {
      digitalWrite(9, HIGH);
      delay(300);
      digitalWrite(9, LOW);
      Serial.println(inputString);
      inputString = "";
      stringComplete = false;
    }
  }
}

void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}

Загрузка кода на ESP-01

Для загрузки скетча на ESP-01 также используется Arduino IDE. Перед загрузкой нужно добавить поддержку плат ESP8266:

  1. В File > Preferences в поле «Additional Boards Manager URLs» добавьте: https://arduino.esp8266.com/stable/package_esp8266com_index.json
  2. В Tools > Board > Boards Manager найдите и установите «esp8266 by ESP8266 Community».
  3. В Tools > Board выберите «Generic ESP8266 Module».
  4. Подключите USB-TTL конвертер, выберите правильный порт в Tools > Port.
  5. Загрузите скетч.

Код для ESP8266

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

// Настройки WiFi
const char* ssid = "YourSSID";
const char* password = "YourPASSWORD";

ESP8266WebServer server(80);
char htmlResponse[3000];

void handleRoot() {
  snprintf(htmlResponse, 3000,
    "<!DOCTYPE html>\n"
    "<html lang=\"en\">\n"
    "<head>\n"
    "<style>\n"
    "body {background-color: rgb(160, 0, 53);}\n"
    "h3 {color: white;text-align:center;}\n"
    "p {color: white; text-align:center;}\n"
    "div {color: white; text-align:center;}\n"
    "input {text-align:center;}\n"
    "</style>\n"
    "<meta charset=\"utf-8\">\n"
    "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n"
    "</head>\n"
    "<body>\n"
    "<h3><center>Electropeak Smart Security Door</center></h3>\n"
    "<p><center>Please type your ID</center></p>\n"
    "<div>ID: <input type='text' name='pass_word' id='pass_word' align='center' size=10 autofocus></div>\n"
    "<div><br><button id=\"save_button\">Log In</button></div>\n"
    "<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js\"></script>\n"
    "<script>\n"
    "var pass;\n"
    "$('#save_button').click(function(e){\n"
    "  e.preventDefault();\n"
    "  pass = $('#pass_word').val();\n"
    "  $.get('/save?pass=' + pass, function(data){\n"
    "    console.log(data);\n"
    "  });\n"
    "});\n"
    "</script>\n"
    "</body>\n"
    "</html>");
  server.send(200, "text/html", htmlResponse);
}

void handleSave() {
  if (server.arg("pass") != "") {
    Serial.println(server.arg("pass"));
  }
}

void setup() {
  Serial.begin(115200);
  delay(10);
  
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  
  server.on("/", handleRoot);
  server.on("/save", handleSave);
  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
}

После загрузки кода откройте Serial Monitor в Arduino IDE и узнайте IP-адрес ESP8266. Введите этот IP в адресной строке браузера — откроется веб-интерфейс. Введите пароль в текстовое поле, и если он верный, Arduino активирует замок. Обратите внимание: телефон и ESP8266 должны быть подключены к одному WiFi-роутеру.

Создание QR-кода

Теперь создадим QR-код для удобного доступа к веб-странице. Существует множество онлайн-генераторов QR-кодов. Мы рекомендуем один из них.

Просто введите IP-адрес в поле и нажмите «Create QR Code». Распечатайте полученный код и наклейте рядом с дверью. Чтобы открыть дверь, нужно подключиться к WiFi, отсканировать QR-код и ввести пароль.

Что дальше?

Несколько идей для развития проекта:

Это и другие уроки можно прочитать на официальном сайте ElectroPeak.

Производственный процесс

  1. Внутри банковских хранилищ: история, дизайн и будущее безопасности
  2. Построение Wi-Fi-управляемого робота на Raspberry Pi с Python — пошаговое руководство
  3. Создание потрясающей системы Ambilight для монитора на Arduino
  4. Создание надежного RFID-замка на Arduino — пошаговое руководство
  5. Умные шторы: автоматическое управление светом на Arduino с солнечной энергией
  6. Умный вольтметр на Arduino и смартфоне — простое DIY-проект
  7. IoT-монитор пульса в реальном времени на Arduino и MAX30100
  8. Умная банка на ESP8266 + Arduino: мониторинг наполненности в реальном времени
  9. Веб-сервер на Arduino Uno WiFi: управление LED через браузер
  10. WiFi-умный замок на Arduino и ESP8266 — открывание с телефона