基于ESP32的智能门禁系统

AI助手已提取文章相关产品:

基于ESP32的家庭监控门禁安全系统

引言

门是维护房屋物理安全的首要防护设施之一。如果房屋的门可以轻易打开,小偷便能轻易进入并盗窃屋内物品。最初,门只能通过物理钥匙来锁门或开锁;但随着技术的进步,一种更为现代的门被发明出来,即无需物理钥匙即可实现锁门或开锁的数字门。然而,当房屋无人时,数字门也可能遭到破坏或损坏,而住户只有在回家后才会发现。为了持续保障房屋的安全,住户通常会在外出或居家休息时始终保持门处于锁定状态。但有时,住户因匆忙离开而忘记锁门,或无法确定自己是否已经锁门,这种情况可能对家庭安全构成威胁。

物联网(IoT)是一种结构,其中物体和人被赋予独特的身份,并能够在网络上无需人对人(即源到目的地)或人机交互进行双向握手的情况下传输数据。物联网利用传感器的能力,例如被动红外传感器(PIR)用于检测移动,磁性传感器用于检测门的开启或关闭状态,以及内部触摸传感器用于检测传感器是否被触碰。物联网还利用各种设备的功能,例如可控制其他设备的微控制器、MOSFET(一种可作为自动开关的晶体管)、无需物理钥匙即可锁定或解锁的电控数码门锁、可根据接收到的输入响起或停止响铃的警报器,以及可打开或关闭的LED灯。

消息队列遥测传输(MQTT)协议广泛用于物联网中的网络通信协议。它实现了发布/订阅机制。接收设备可以一次性连接到服务器,订阅特定主题。此后,每当有针对该特定主题生成的消息时,消息将被发送到接收设备。相比之下,使用HTTP时,希望接收消息的设备(客户端)需要定期向服务器请求以检查是否有新消息。通过关注门的安全级别,可以提高房屋的安全性。本研究将通过实施物联网技术来提高家庭门的安全性,该技术能够监控房屋门的状态,并通过加密MQTT云使用智能手机远程锁门和开门。如果门被强行打开,系统还将触发警报器,并通过MQTT云向住户的智能手机发送通知。

本文的结构分为五个部分。第2节讨论了该领域研究者之前所做的工作。第3节描述了系统设计方法。第4节展示了性能评估结果与讨论。最后,第5节总结了本研究的结果。

相关工作

物联网已应用于先前的智能家居技术研究中,用于远程控制和监控各种电器,即火灾、燃气、水、空调和风扇。一些研究还关注效率以降低能耗。以下是一些关于家庭安防系统的研究。Agarwal 等人提出了一种名为 HDSL系统 的家庭安防系统,该系统将摆脱因懒惰而产生的恐惧。HDSL系统本身提供两个主要功能,即“家庭安全”,可分析门外人员,以及“智能锁控”,可让房屋成员通过手机自由控制锁具系统。该系统需要一个树莓派3来控制摄像头、运动传感器和电子锁等硬件。

本研究采用的方法是通过蓝牙控制锁门系统,并从互联网接收消息。系统始终首先检查蓝牙握手。如果发生握手,系统将开锁,并在指定时间后再次锁门。如果没有蓝牙握手,系统将检查是否接收到任何消息。如果系统接收到“开锁”消息,则会执行开锁操作;当系统接收到“锁门”消息时,则会执行锁门操作。如果没有收到消息,系统将检测是否存在访客的可能性。如果门铃发出信号,系统将通过摄像头拍照,并将照片发送至用户的电子邮件。如果没有门铃信号,但运动传感器检测到移动,系统将判定为有入侵者,因此会通过摄像头拍照,将照片作为警告信息发送至用户的电子邮件,并通过互联网发送警告信息以提示有入侵者。

纳雷什库马尔、卡马特和辛德开展的一项研究描述了一种通过移动设备操作的智能手机来控制门的系统。该系统需要摄像头、内置Wi-Fi/GSM模块的树莓派Model B3、PIR传感器、生物识别系统以及移动设备。当有人站在门前时,摄像头会检测并发送图像到移动设备。用户可以通过智能手机控制门。在移动设备上,提供了电器的规格信息,从而实现对系统的控制。当检测到有人出现时,网络摄像头将接收到信号,随后捕捉该人员的图像,并通过物联网(Internet of Things)经由树莓派发送至用户的移动设备。

古普塔等人提出了一种用于家庭和办公楼的远程门禁控制系统。远程访问控制系统通过互联网控制家庭或办公室中的设备和电器,使用者可在全球任何地点进行控制。所使用的设备包括树莓派主板、用于访客身份验证的摄像头、电磁阀、扬声器组和门铃开关。

当访客来访时,访客将按下门铃开关,随后扬声器会开启录音,提示访客站在摄像头前以便拍照。拍摄的照片将发送至主用户的电子邮件,如有需要,也会同时发送至次用户,邮件主题为“有人在门口”。如果主用户希望开门,可回复邮件,主题为“允许进入”。如果主用户不想开门,则无需更改邮件内容直接回复即可。主用户有时间限制来决定是否开门。若主用户未在规定时间内回复,系统将把访客照片发送给次用户,并告知访客主用户未作回应。次用户也有时间限制来决定是否开门。若次用户也未在规定时间内回复,系统将告知访客没有收到回复。

科达利等人提出了一种利用PIR运动传感器检测入侵者的家庭安防系统。当检测到运动时,系统将触发语音电话通知家庭所有者。所有者需要判断是否为入侵者。科达利2016的研究仍未说明该原型如何帮助所有者区分入侵者与访客。但文中提到在后续研究中将使用摄像头。

萨胡和帕蒂提出了一种家庭安防系统模型,该模型包含用于生成警报的PIR运动检测和用于验证的网络摄像头。该模型基于Zigbee协议运行,并可通过GSM向房主的手机发送短信。坦瓦尔等人也提出了一种类似的基于PIR运动传感器和网络摄像头的入侵检测模型。在该模型中,单个树莓派微型计算机连接到布置在住宅/建筑物周围的多个传感器。当检测到运动时,树莓派会向用户发送电子邮件。库马尔等人提出了一种智能家居安全模型,不仅能在检测到入侵者时发出警报,还能通过相应传感器对火灾和燃气进行报警。当任一传感器检测到某一事件时,将通过GSM模块以短信或电话方式向所有者的手机发出警报。科达利2016、萨胡、坦瓦尔和库马尔的研究均未提及任何门锁的开关控制方法,它们主要关注入侵检测及向房主远程发送警报。

普拉巴哈兰等人进行了一项研究,以实现包含安全模块的智能家居,即报警蜂鸣器和门锁/解锁器。基于MQTT的原型通过GSM模块与房主的手机连接。从家庭安全的角度来看,当存在潜在入侵者时,手机可以接收到警报声,并能够远程锁门或开门。然而,这两个相关安全功能之间仍然没有关联。报警蜂鸣器和门锁/解锁器仍然是相互独立的模块。潘迪特等人的研究中使用了磁性传感器来判断门是关闭还是打开。当门应处于锁定状态但实际上被打开时,系统将检测到一次入侵。磁性传感器还可用于在门关闭后自动锁门。除了磁性传感器外,该模型还结合了通过蓝牙使用所有者的智能手机进行的门禁认证,以及通过网络摄像头进行的人脸识别。杜塔等人提出了一种基于物联网的公共建筑中住户或访客授权的模型。在该模型中,住户需要将其个人RFID卡靠近Arduino微控制器进行读取,而访客信息则需由楼宇安保人员手动输入。通过这一机制,所有人员进出建筑物的活动均可记录在数据库中,以便未来审计。

根据已讨论的文献综述,目前很少有研究人员探讨物联网、家庭安防系统和远程门控。因此,我们开展了一项研究,能够实现远程监控和控制门,在检测到门附近有移动时接收警报,向可信的门控人员授予门禁权限,查看门禁历史日志和用户访问记录,并在门开启超过特定时限后收到门仍处于开启状态的通知。本研究提出的系统与相关工作之间的主要区别在于,我们的程序可以向其他人员授予权限,用户和房屋所有者可以查看门的活动日志历史,例如谁打开或关闭了门,以及活动发生的时间。

系统设计方法

该系统采用ESP32微控制器、Arduino编程语言以及基于安卓的移动应用实现。ESP32微控制器用于将所有电子设备集成在一个环境中。选用ESP32是因为它具有双核,其中一个核心用于运行无线网络功能,另一个核心用于执行上传的程序。ESP32还具备无线网络和蓝牙模块,以及36个GPIO。ESP32具有较大的内存,且功耗较低,并带有内部触摸传感器,因此适用于门禁安全系统开发项目。为了检测运动,系统使用了PIR传感器,此外还使用磁性传感器来检测门的开关状态。本节中,我们讨论所提出的家庭安防系统的设计方法。

系统架构

门禁系统移动应用与门锁之间的通信采用具有SSL加密的MQTT协议系统。系统设计如图1所示,包含4个主要部分:云MQTT、手机、门锁和监听器。

示意图0

A部分表示MQTT代理。云MQTT本身是一家通过互联网提供MQTT代理服务的公司,因此可以通过互联网进行访问。MQTT代理负责接收发送到该代理的所有消息,并将接收到的消息传递给订阅了特定主题的客户端。B部分表示发布者与订阅者(设备),例如智能手机。在此设计中,设备是一部智能手机,它使用应用程序向特定主题的MQTT代理发送命令形式的消息,这些消息随后将被发布给订阅了特定主题的客户端,即微控制器和Spring MQTT监听器。该设备还具有订阅者功能,能够从MQTT代理接收其订阅主题对应的消息,并将其处理为通知消息。C部分表示发布者与订阅者(微控制器)/物联网设备。微控制器是一种专用于运行特定程序的小型计算机。在此方案中,微控制器负责向MQTT代理发送消息,所生成的消息是来自微控制器上使用的多个传感器的数据。微控制器还具备订阅者功能,能够接收其订阅主题对应的消息,并将该消息作为执行指令的命令进行处理。D部分表示订阅者。订阅者是向MQTT代理中的主题发起订阅的客户端。当有新消息发布到MQTT代理的主题时,一个消息将发送给订阅了该主题的客户端。此处的订阅者是一个使用Spring框架的基于Java的程序,用作MQTT代理上所有主题的监听器。监听程序的任务是更新到Firebase数据库。更新的数据包括在线设备的状态和其他命令。

硬件设计

硬件设计包括电子设备的选型以及所有组件的集成。图2展示了我们的安全监控系统的硬件设计。图2中各组件的规格由表1定义。图2中的编号对应表1中组件的顺序。处理模块采用搭载Lolin D32开发板的ESP32。该开发板配备无线局域网模块用于通信。ESP32使用Arduino编程语言进行编译。系统使用两个LED,其中第一个是红色LED,用作电源指示灯。当电器通电后,ESP32将发送指令使红色LED点亮。第二个是绿色LED,用作WiFi指示灯。当ESP32未连接到无线网络时,ESP32将发送指令使绿色LED闪烁,直到成功连接无线网络为止。ESP32通过PIR传感器检测移动。ESP32采集磁性传感器的信号以获取门状态。为发出警告,ESP32使用蜂鸣器报警模块。为实现门的锁定或解锁,ESP32使用电控锁模块。

No Name 描述
1 适配器 适配器,用于从插座向系统供应12伏特电力
2 降压 降压以将电压从12伏特降至5伏特
3 印刷电路板 用于连接所有设备
4 ESP32 使用Wemos LOLIN D32、2.4吉赫兹无线网络和蓝牙组合芯片。台积电低功耗40纳米技术。
5 复位按钮 用于重置ESP32的按钮
6 PIR传感器 用于移动检测的PIR传感器
7 LED LED 用作电源指示灯和无线网络指示灯
8 磁性传感器 磁性传感器用于指示门状态
9 内部触摸传感器 用于检测门是否从内部打开
10 MOSFET 用于自动开关的MOSFET
11 报警蜂鸣器 当门被强行打开时,报警蜂鸣器发出叮当声
12 电控锁扣 电控锁扣用于锁定或解锁门

示意图1

软件设计

软件设计分为两部分:门禁安全系统移动应用和门锁软件。首先,我们进行门锁系统流程分析,如图3所示。

示意图2

如图3所示,所提出的系统首先在MQTT代理上订阅主题。当MQTT代理上有消息发送时,门锁将接收该消息并解析所接收到的命令顺序。如果命令为开锁,则门锁将打开电控门锁,记录门开始解锁的时间(毫秒),并在门被请求者姓名开锁后发布消息。如果在发出开锁命令后的十秒内门未被打开,则无论门打开的输入时间如何,门将自动上锁,并将最后请求者姓名更改为未知。如果在少于10秒内门被打开,则请求者姓名将被保存为最后请求者姓名,并保存门打开的输入时间(秒数)。如果输入的开门时间大于0,系统将记录门开始打开的时间。

如果命令是锁定门,则门锁将检查门是否已关闭。如果门未关闭,门锁将发布一条消息,提示门未关闭。如果门已关闭,则门锁会锁定门,将门的输入时间初始化为0,并发布一条消息,说明门已被请求者姓名锁定,同时将最后请求者姓名更改为未知。如果命令是关闭蜂鸣器,则门锁将检查蜂鸣报警器是否正在响起。如果蜂鸣报警器未响起,则门锁将发布一条警报器已关闭的消息;如果蜂鸣报警器正在响起,则门锁将关闭蜂鸣报警器。如果命令是重置,则门锁将清空其凭证并重启。由于门锁不再为专有的系统,因此可以与其他移动应用连接。

如果未从MQTT代理接收到消息,则门锁将检测内部触摸传感器。如果内部触摸传感器被触碰超过指定的时间限制,门锁将等待门被打开并再次关闭。然后,门锁将根据特定的时间间隔执行默认门监控。当到达检查时间时,系统将检查门是否已关闭、蜂鸣报警器是否响起、门是否尚未锁定,并重置下个时间间隔的计时。接下来,如果门的输入时间大于0,门锁将安排锁门操作。如果打开的门的输入时间为0,则系统不会安排锁门。此外,系统还将在门打开时检查当前邮件列表是否减少,以及该时间是否大于或等于开门时间。如果是,则系统将锁门,并将打开的门的输入时间设置为0。

门锁将检查门的状态。如果门的当前状态为关闭,而门的新状态为打开,则门会将门的当前状态设置为打开,然后发布消息,记录最后请求者姓名为打开门的人,并将该信息存储到数据库中。如果最后请求者姓名未知,系统将启动蜂鸣报警器。如果门的当前状态为打开,而门的新状态为关闭,则门会将门的当前状态设置为关闭,然后发布消息,记录最后请求者姓名为关门的人,并将该信息存储到数据库中。如果门锁检测到移动,门锁将发布一条已检测到移动的消息。如果按下门锁的重置按钮,门锁将执行重置功能。

除了门锁重置外,门锁还将循环检查是否从代理接收到消息。

要访问门禁系统移动应用,用户必须拥有一个账户。如果用户已有账户,可以登录;若没有账户,则可以注册。系统随后会发送一封验证邮件,用户需验证电子邮件。如果未收到验证邮件,用户可点击重新发送邮件按钮。验证电子邮件后,用户可以退出并重新登录。如果用户忘记账户密码,可使用忘记密码功能,系统将发送链接以修改密码。

登录后,系统将显示设备页面。用户可以查看门的所有状态,并对门进行管理,例如添加门、选择门以解锁或锁定门。当用户是房屋的住户时,该住户可以选择门并删除门,或更改门的名称,或将门的访问权限授予其他用户。门的所有者可以查看其所拥有的门的日志历史以及访问该门的用户信息。

门状态分为三种:门是打开还是关闭,门是锁定还是未锁定,蜂鸣报警门是响起还是未响起。如果用户想要解锁门,系统会要求用户输入在多少秒内门将自动解锁,随后门将执行自动上锁。如果用户不希望门执行自动上锁,可以输入零值。用户可以打开和关闭门。如果用户打开了门,设备页面上的门的状态将变为打开。当用户从外部打开门而未通过应用程序解锁时,系统会认为门被强制打开,并启动蜂鸣报警门。如果房间内部的内部触摸传感器被触碰,并且即使门仍处于锁定状态时门被打开,门的蜂鸣报警器不会响起,因为系统认为门是从内部打开的。

用户可以通过点击“管理其他用户访问”子菜单查看被授予访问权限的其他用户列表,然后选择另一个用户名以查看授予该用户的访问详情。如果用户希望更改授予其他用户的访问权限,可以在查看该用户的访问详情后,通过添加或减少授予的门禁权限,甚至将其从访问列表中移除来管理该用户的访问权限。此外,用户还可以在点击“管理其他用户访问”子菜单后,通过其他用户的电子邮件地址将其添加到授权访问列表中,并向该用户授予多个门禁权限。

用户可以通过点击“管理我的访问”子菜单查看可被授予访问权限的其他用户名列表。通过选择用户名,用户可以查看门禁授权的详细信息。通过点击已授予权限的门旁边的取消链接按钮,用户可以移除门禁授权。用户可以通过点击“查看门禁报告”子菜单,查看其对门的访问次数报告。该报告分为两类:基于被访问门的报告和基于访问用户的报告。如果用户希望查看基于被访问门的报告,则可选择“门禁报告”,此时将显示用户所拥有的所有门及其被访问次数的统计信息。如果用户希望查看基于访问用户的报告,则可选择“用户访问报告”,此时将显示所有被授予权限的用户及其访问门次数的统计信息。

用户可以通过点击“管理个人资料”子菜单来更改其账户名称、密码或两者。如果用户想要更改名称,可以点击用户名字段并修改名称。如果用户想要更改密码,用户可以勾选名为“更改密码”的复选框并输入新密码。用户可以仅更改姓名,或仅更改密码,或同时更改姓名和密码,然后单击“更新个人资料”按钮并输入旧密码。

内部系统评估测试结果与讨论

示意图3
示意图4

在本节中,我们将讨论物联网安全监控系统的实现及评估结果。首先,我们集成并实现了如图4所示的设计系统,图4展示了ESP32与复位按钮、PIR传感器、绿色LED、红色LED、磁性传感器、内部触摸传感器、通过MOSFET连接的报警蜂鸣器,以及通过MOSFET连接的电控门锁之间的连接。

PIR传感器

运动检测测试在每个区域(方框)相距80厘米 x 80厘米的条件下进行。PIR传感器安装高度为48.5厘米,固定在原型门上,方向朝下。以下是移动检测测试的结果。根据以下测试结果可以总结出,当PIR传感器安装高度为48.5厘米时,其可准确检测前方最远1.6米范围内的运动。

示意图5

Zone A B C D E F G H I
Fail 0 0 1 0 0 1 1 1 1
成功 5 5 4 5 5 4 4 4 4

MQTT测试

在测试不使用SSL的MQTT消息发送和接收时,使用了Wireshark应用程序。Wireshark是一种用于分析网络流量以保障安全的工具。

示意图6
示意图7
示意图8
示意图9

  1. 测试通过不使用SSL加密的MQTT发送消息
    首次测试通过向主题 /Door/Andreas@gmail.com/DREXE-PROTO-13597/input 发送/发布一条持续门锁解锁 with 10秒的消息进行。在使用Wireshark工具进行搜索后发现,发送至MQTT代理的消息在未进行加密处理的情况下可被清晰查看,无法防止嗅探行为。

  2. 测试接收不使用SSL加密的MQTT消息
    第二次测试通过订阅主题 /Door/Andreas@gmail.com/DREXE-PROTO-13597/input 来接收已发送或发布的消息。在使用Wireshark工具进行搜索后同样发现,在从MQTT代理接收消息时,消息尚未加密,因此消息可能被他人查看,存在安全隐患。

  3. 测试通过使用SSL加密的MQTT发送消息
    第三次测试通过在主题 /Door/Andreas@gmail.com/DREXE-PROTO-13597/input 上使用SSL发送/发布一条持续10秒开锁的消息。在使用Wireshark工具进行搜索后发现,当消息在网络中传输时已被加密,因此即使消息被截获,也无法读取其内容。

  4. 测试接收使用SSL加密的MQTT消息
    第四次测试通过订阅主题 /Door/Andreas@gmail.com/DREXE-PROTO-13597/input 来接收通过SSL发送或发布的消息。在使用Wireshark工具搜索后发现,通过消息网络接收消息时,消息也是加密的。因此,即使消息已成功获取,仍然无法读取该消息。

结论

本文提出了一种基于物联网技术的安全监控系统。我们所提出的系统由ESP32、印刷电路板、降压模块 12V转5V、12V适配器、复位按钮、PIR传感器、绿色LED、红色LED、磁性传感器、内部触摸传感器、两个MOSFET、报警蜂鸣器和电控门锁组成。我们提出的系统是一种能够远程监控和控制门的系统,当检测到门附近有移动时会发出警告,允许受信任人员访问以控制门,查看门禁历史日志和用户访问记录,在超过设定时间后若门仍处于开启状态则收到通知,并在门被强行打开时启动警报器。仿真结果表明,当传感器安装高度为48.5厘米且方向朝下时,系统可准确检测前方1.6米范围内的移动;但当移动距离超过1.6米时,检测精度会降低。仿真结果还表明,当智能手机与门锁之间发布或订阅消息时,这些消息均通过SSL加密进行正确加密,因此发送的消息不会被黑客窃取。由于黑客没有解密密钥,无法查看或篡改消息。

对于未来的研究,我们计划探索:1)摄像头的使用,以便用户可以知道谁在访问;2)新的紧急呼叫功能,可直接报警;3)查看报告时的新过滤功能;4)门所有者与访客之间双向通信的新功能。

您可能感兴趣的与本文相关内容

### ESP32智能门禁系统与手机连接方案 ESP32智能门禁系统的开发可以通过Wi-Fi或蓝牙技术实现与手机的连接。以下是具体的实现方式和相关功能描述: #### 1. Wi-Fi连接方案 通过ESP32内置的Wi-Fi模块,可以将门禁系统接入互联网,并与用户的手机进行通信。以下为关键实现步骤和技术点: - **AP模式**:ESP32可以作为Wi-Fi热点运行,在初次配置时,用户可以通过手机连接到该热点并设置网络参数[^4]。 - **STA模式**:在正常工作状态下,ESP32以客户端模式连接到家庭或办公Wi-Fi网络,从而实现与云端服务器或其他设备的通信。 - **Web服务器**:ESP32可以运行一个简单的Web服务器,允许用户通过手机浏览器访问门禁系统的状态信息或执行控制操作[^5]。 ```python import network from machine import Pin # 初始化Wi-Fi sta_if = network.WLAN(network.STA_IF) ap_if = network.WLAN(network.AP_IF) # 连接到Wi-Fi网络 def connect_wifi(ssid, password): sta_if.active(True) sta_if.connect(ssid, password) while not sta_if.isconnected(): pass print("Connected to Wi-Fi:", sta_if.ifconfig()) # 启动AP模式 def start_ap(ssid, password): ap_if.active(True) ap_if.config(essid=ssid, password=password) print("AP mode started:", ap_if.ifconfig()) ``` #### 2. 蓝牙连接方案 ESP32支持经典蓝牙和低功耗蓝牙(BLE),可以通过蓝牙直接与手机进行短距离通信。这种方式适用于无需互联网的场景。 - **蓝牙串口通信**:用户可以通过手机上的蓝牙串口工具发送指令给ESP32,例如解锁门禁或查询状态[^5]。 - **BLE应用开发**:通过开发一个基于BLE的手机应用程序,用户可以更方便地与门禁系统交互。 ```python from machine import UART # 蓝牙串口通信示例 uart = UART(1, baudrate=9600, tx=Pin(4), rx=Pin(5)) def read_bluetooth_data(): if uart.any(): data = uart.read() print("Received from Bluetooth:", data.decode()) ``` #### 3. 手机APP集成 为了提升用户体验,可以开发一个专用的手机应用程序,用于管理ESP32智能门禁系统。以下是主要功能模块: - **远程解锁**:用户可以通过APP发送解锁命令给ESP32,实现远程开门[^2]。 - **实时监控**:通过摄像头或传感器,用户可以查看门的状态、环境温湿度等信息[^4]。 - **通知提醒**:当有人尝试进入或门未关闭时,系统会向手机发送通知[^4]。 #### 4. 安全性考虑 在实现手机连接的过程中,必须注意数据传输的安全性: - **加密通信**:使用TLS/SSL协议保护Wi-Fi通信中的数据安全[^5]。 - **身份验证**:确保只有授权用户能够通过手机控制门禁系统[^3]。 ### 示例代码 以下是一个简单的ESP32 Web服务器示例,允许用户通过手机浏览器访问并控制门禁系统: ```python from machine import Pin from time import sleep try: import usocket as socket except: import socket # 初始化GPIO引脚 relay = Pin(2, Pin.OUT) # 创建Web服务器 def web_server(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 80)) s.listen(5) while True: conn, addr = s.accept() request = conn.recv(1024) request = str(request) if 'GET /open' in request: relay.value(1) # 打开继电器 sleep(1) relay.value(0) # 关闭继电器 response = "HTTP/1.1 200 OK\nContent-Type: text/html\n\n<!DOCTYPE html><html><body><h1>Door Control</h1><a href='/open'>Open Door</a></body></html>" conn.send(response) conn.close() web_server() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值