使用 Arduino 和 ESP8266 的 WiFi 登录页面的智能门锁
组件和用品
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 1 |
应用和在线服务
![]() |
|
关于这个项目
您可以在上阅读本教程和其他精彩教程 ElectroPeak 的官方网站
在本教程中,您将学习如何创建基于 Arduino 的智能门锁;这款智能锁可以通过手机解锁。在这个项目结束时:
- 您将学习如何生成特定的二维码。
- 您将学习如何通过 ESP8266 创建登录页面。
- 您可以使用手机解锁一扇门。
通过智能锁保护门
如今,您可以使用最先进的技术来提高家庭或办公室的安全性。使用智能手机和智能设备对所有人来说都变得更容易、更实惠,而且让我们的东西更智能是一个不错的选择。每天,工程师和技术人员都在开发新的系统和工具,您可以通过使用它们来实现更智能的家庭自动化,并创造新的方式让您的生活更安全、更轻松。可能您已经看到过智能门锁,这些门带有键盘或使用指纹来设置门锁或解锁。

在这个项目中,我们想要制作一个基于 Arduino 的系统,帮助您通过 WiFi 和电磁锁为门制作登录部分。我们不使用键盘或复杂的机械元件,这些是该系统的优点。我们只需在门上贴一个二维码,允许的人可以扫描它以查看登录页面并输入他们的密码。输入密码后,电磁锁将被激活。我们仅使用 Arduino 板和螺线管驱动程序以及 ESP8266 来连接到本地 WiFi。让我们去做吧。
电路

代码
首先,我们为ESP-01编写一个代码来制作登录页面并从用户那里接收密码,然后通过串口将其发送到Arduino。然后我们为Arduino编写另一个代码来从ESP-01获取数据并控制伺服电机。您可以使用 Arduino IDE 编译这两个代码并将它们上传到板。
您必须添加库,然后上传代码。如果这是您第一次运行 Arduino 板,请不要担心。只需按照以下步骤操作:
- 前往 www.arduino.cc/en/Main/Software 并下载您操作系统的软件。按照说明安装 IDE 软件。
- 运行 Arduino IDE 并清除文本编辑器,然后在文本编辑器中复制以下代码。
- 在工具和板中选择板,选择您的 Arduino 板。
- 将 Arduino 连接到您的 PC 并在工具和端口中设置 COM 端口。
- 按下上传(箭头符号)按钮。
- 一切就绪!
String inputString =""; // 一个保存传入数据的字符串 stringComplete =false; // 字符串是否完整void setup() { // 初始化串行:Serial.begin(115200); // 为 inputString 保留 200 个字节: inputString.reserve(200); pinMode(9,OUTPUT);}void loop() { // 当换行符到达时打印字符串: if (stringComplete) { if (inputString=="your_password") { digitalWrite(9,HIGH);延迟(300);数字写入(9,低); Serial.println(inputString); // 清除字符串: inputString =""; stringComplete =假; } }}void serialEvent() { while (Serial.available()) { // 获取新字节:char inChar =(char)Serial.read(); // 将它添加到 inputString:inputString +=inChar; // 如果传入的字符是换行符,则设置一个标志,以便主循环可以 // 对此做一些事情: if (inChar =='\n') { stringComplete =true; } }}
现在,是时候上传 ESP-01 代码了。您应该使用 Arduino IDE 将草图上传到 ESP。在上传代码之前,您应该为IDE选择ESP板。
转到 File>Preferences 并在附加板中添加 http://arduino.esp8266.com/stable/package_esp8266com_index.json。然后下载并安装它。现在您可以在 Tools>Board 中看到 ESP 板。选择“Generic ESP8266 Module”并在新草图中复制代码。然后你应该将 USB to TTL Converter 设置为 Uploader 硬件。只需插入转换器并在工具>端口中设置正确的端口。可以上传了。
#include #include // WiFi networkconst char* ssid ="YourSSID";const char* password ="YourPASSWORD";ESP8266WebServer server ( 80 );char htmlResponse[ 3000];void handleRoot() { snprintf ( htmlResponse, 3000,"\\ \ \ \ \ \ \ \Electropeak 智能安全门 \
\
\请输入您的 ID \
\ ID: \ \
\
\ \ \" ); server.send ( 200, "text/html", htmlResponse ); }void handleSave() { if (server.arg("pass")!=""){ Serial.println(server.arg("pass")); }}void setup() { // 开始串行 Serial.begin(115200);延迟(10); // 连接到 WiFi 网络 Serial.println(); Serial.println(); Serial.print("连接到"); Serial.println(ssid); WiFi.begin(ssid, 密码);而(WiFi.status()!=WL_CONNECTED){延迟(500); Serial.print("."); Serial.println(""); Serial.println("WiFi 已连接"); Serial.println("IP地址:"); Serial.println(WiFi.localIP()); server.on ( "/", handleRoot ); server.on ("/save", handleSave); server.begin(); Serial.println ("HTTP 服务器启动");}void loop() { server.handleClient();}
上传代码后,打开Arduino IDE的串行监视器并获取您的IP。现在,如果您在浏览器 URL 栏中键入 IP,您可以看到 Web 服务器的 UI。在文本框中输入您的 ID,如果您输入正确,Arduino 将激活锁。请注意,您必须使用 ESP8266 连接到普通 WiFi 路由器。

现在是制作二维码并为用户提供访问此网页的简单方法的时候了。有很多在线工具可以为您生成特定的二维码。我们推荐这个。
只需在栏中复制您的 IP,然后点击“创建二维码”。

打印出来贴在门附近。要开门,您必须连接到 WiFi,扫描二维码,然后输入您的 ID。

下一步是什么?
以下是一些建议:
- 尝试为登录页面制作专业的 UI。
- 尝试为用户添加更多选项,例如不同的权限级别或基于时间的权限。
您可以在上阅读本教程和其他精彩教程 ElectroPeak 的官方网站
制造工艺