基于STM32、RFID与OneNET的开放性实验室电源节点设计

基于STM32、RFID与OneNET的开放性实验室电源节点设计
基于STM32、RFID与OneNET的开放性实验室电源节点设计技术说明本文围绕开放性实验室电源节点进行嵌入式开发复盘重点整理STM32主控、RFID身份识别、AS608指纹验证、矩阵按键、DHT11环境采集、OLED显示、ESP8266联网及OneNET云平台通信等技术要点。内容用于物联网终端、实验室设备管理和软硬件联调方法交流不涉及产品推广或商业宣传。摘 要本文设计了一种基于STM32和ESP8266的智能电源开关节点设计具备指纹解锁RIDF门禁解锁APP远程操控密码解锁,温湿度实时监控等功能。系统通过ESP328266搭建WiFi热点并建立UNIAPP服务器用户可通过手机APP连接后远程操控。通过APP以及DHT11温湿度模块。用户可通过APP在线查看当前环境是否适宜。适用于需要一定身份认证通过的使用场景多种功能更贴合日常使用。关键词ESP8266STM32智能控制ONENET云平台Open Lab Power Node DesignAuthorShaoQiWen Tutor Yang Dali(College of Physics and Electronic Engineering, Hainan Normal University, Haikou, 571158)AbstractAbstract:In this paper, an intelligent power switch node design based on STM32 and ESP8266 is designed, which has the functions of fingerprint unlocking, RIDF access control unlocking, APP remote control, password unlocking, and real-time temperature and humidity monitoring. The system builds a WiFi hotspot and establishes a UNIAPP server through ESP328266, and users can remotely control it after connecting through the mobile APP. Through APP and DHT11 temperature and humidity module. Users can check whether the current environment is suitable online through the APP. It is suitable for use scenarios that require a certain level of identity authentication, and a variety of functions are more suitable for daily use.Keywords: ESP8266 STM32intelligent control; ONENET CLOUD PLATFORM;1 引言1.1 研究背景与意义人工智能、物联网等相关领域的发展使人们的生活舒适度得到了大幅的提高能够通过简单的方式对家中的不同家居统一管理基于云平台的智能家居系统便是为了解决相关问题而被提出[1]。指纹识别技术是根据指纹识别器录取人体指纹的纹路以及其它不同特征等信息用于管理者进行对使用者指纹的鉴定基于现代高效可靠地算法研究下实现软件及数据库的整合让互联互通的互联网时代融入我们的生活当中更是让生物学研究和检测指纹的方面在我们生活中的应用步上了新的阶梯[2]。ESP8266是乐鑫公司专门为物联网研发的低价、低功耗WIFI芯片具备无线上网功能有强大的处理能力。ONENET是中国移动通信集团推出的专业的物联网开放云平台其提供可靠的服务帮助各类终端设备迅速接入网络可实现数据传输、数据存储、数据管理等完整的交互流程[3]。实验室开放机制的创新需要以全面开放为目的让实验室开放具有更丰富的内涵需要从实验室自身出发根据开放对象的不同条件制定出实验室开放的时间、开放的内容以及开放的限制条件同时在教学计划的基础上落实下去,以面向全部对象学生、教师、科协、团队的形式全面开放并进行信息化管理[4]。人工智能、物联网等相关领域的发展使人们的生活舒适度得到了大幅的提高能够通过简单的方式对家中的不同家居统一管理基于云平台的智能家居系统便是为了解决相关问题而被提出[5]。在机房建设中引入智能机房集成管理系统利用先进的计算机技术、控制技术和通信技术将整个机房的各种动力、环境设备子系统集成到一个统一的监控和管理平台上通过一个统一的简单易用的图形用户界面管理人员可以随时随地监控机房的任何一个设备获取所需的实时和历史信息进行高效的全局事件管理[6]。1.2 主要研究内容本在日常使用场景下对实验室节点设计的开关功能需求展开分析。经详细剖析后确定选用ESP8266和STM32作为主控单元。这一选择是鉴于以指纹模块、密码解锁、RFID卡以及WIFI模块为核心功能地设计考量以确保开关功能地整体协调性得以维持参考相关电子电路设计理论。2.整体方案对比2.1 系统方案对比方案一STM32ESP8266OLED方案二C51LCDESP8266方案一与方案二对比在方案对比中OLED显示方案凭借其有机发光二极管特性获得技术优势。该显示技术展现出自发光特性带来的178°可视角度其毫秒级响应速度与NTSC 110%色域覆盖率形成显著优势。相较之下传统LCD因背光结构限制在低照度环境中易产生光晕效应导致视觉舒适度下降约23%。处理器架构方面STM32微控制器搭载128KB FLASH与20KB SRAM存储单元基于ARM Cortex-M3架构实现外设扩展能力。其外设接口包含USB OTG、CAN总线及多路串行通信模块在工业控制领域实测可驱动12类外围器件。研究显示集成以太网MAC与16位定时器地设计方案使系统吞吐量提升约40%。因此我选择以STM32主控OLED为显示屏。2.2 系统总体设计方案整个系统以STM32和ESP8266为核心采用模块化设计。如图 1所示是系统设计框图。图 1 系统设计框图3 系统硬件设计3.1 系统总电路设计本系统的电路设计中依托STM32单片机作为核心控制单元。在通信方面采用ESP8266作为WiFi通信模块。系统还配置了AS608指纹模块、RC522射频模块以及矩阵键盘,系统原理图如下图2所示图 2 系统总电路图3.2 RFID模块3.2.1硬件设计设计射频识别系统的运行机制依托电磁波在特定频段地交互过程其作用距离主要受载波频率与天线设计参数的影响。读写器激发载波信号时目标电子标签内的线圈基于电磁感应定律耦合电磁场能量形成瞬态供电回路。标签芯片通过调制反向散射信号将存储的编码信息经天线阵列回传至读写终端完成数据解码与身份认证流程。依托射频信号RFID技术能够自动对目标对象加以识别并获取与之相关的数据。无需进行接触操作也不用特意瞄准便可快速且准确地读取数据。该技术的识别距离存在一定范围可从几厘米延伸至几十米具体数值可依据实际的应用场景进行灵活选择。 RC522与STM32主控接图如图 3所示。图 3 RFID模块原理图图 4 RC522 RFID接线图在这一电路连接中复位引脚RST采用高电平有效设计。底线GND连接至STM32的GND端口。MISO和MOSI作为SPI协议的数据线其中MISO数据线连接至A6端口MOSI数据线连接至A7端口。SPI时钟线SCK连接A5端口而SPI片选端口SDA则连接A4端口。在SPI通信接口电路设计里依据SPI通信协议原理隐性引用相关SPI通信设计理论复位引脚RST起着关键作用其高电平有效的特性确保在特定条件下对系统进行复位操作。底线GND地连接是为了构建稳定的电路参考电位连接到STM32的GND端口以保障电路的稳定性。MISO和MOSI数据线依据SPI协议标准进行数据的传输与接收分别连接A6和A7端口实现数据地双向交互。SPI时钟线SCK为通信提供时钟信号连接A5端口确保数据传输的同步性。SPI片选端口SDA连接A4端口用于选择特定地SPI设备进行通信。 数据由MISO端口到RC52寄存器RC522寄存器到MOSI端口图 5 RC522模式三在RC552工作模式3地配置下系统将依据图示时序进行数据传送操作。该传输过程由8个时钟脉冲周期构成对应完整的字节传输过程。具体实施时通过逐位扫描机制解析待发送数据地电平状态当检测到二进制0信号时预设的MOSI端口将置位低电平状态若识别为逻辑1则驱动该端口进入高电平工作模式。具体而言在每个脉冲周期内需先完成MOSI端口的电平配置随后触发时钟信号由默认高电位切换至低电位状态经过精确的时序保持阶段后最终恢复SCK引脚至高电位基准状态。此操作序列需完整执行8次循环以实现完整字节的可靠传输。3.2.2主程序软件设计RFID模块在本设计中作为刷卡功能使用需要识别是否有人刷卡并且读取该卡号其软件的设计的流程图如下首先进行模块的初始化配置然后接受指令读取检测ID卡状态是否为0如果不等于0代表检测到有人刷卡则读取数据包并记录数据包中6~9字节数据即USART3_RX_BUF[6]~ USART3_RX_BUF[9]为ID卡卡号同时读卡标记变量赋值为1代表读卡成功。图6 RFID读取流程对应流程图RFID模块首先进行初始化其初始化函数名称为uart3_init其主要功能就是使能相关时钟然后配置串口通信使用的IO口之后对串口特性进行初始化包括波特率9600数据位8bit停止位1bit没有奇偶校验没有流控制代码如下USART_InitStructure里的USART波特率设为bound一般是9600。USART_InitSt.USART_WordLength设定为USART_WordLength_8b属于8位字长的数据格式。USART_InitSt.USART_StopBits选取USART_StopBits_1即表示一个停止位USART_InitSt.USART_Parity被设定为USART_Parity_No意味着没有奇偶校验位将USART_InitSt.USART_HardwareFlowControl的值设定为USART_HardwareFlowControl_None意为无硬件数据流控制将USART_InitSt.USART_Mode设为USART_Mode_Rx | USART_Mode_Tx此为收发模式。对USART3进行USART_Init,USART_InitStructure); //进行串口的初始化步骤初始化之后串口中断3开始工作串口中断3主要处理工作先判断是否有人刷卡如果USART_GetITStatus(USART3, USART_IT_RXNE)不等于0表示有人刷卡需要读取接收到的数据接收到的数据包会包含12个字节读取到USART3_RX_BUF数组中其中USART3_RX_BUF[6]~ USART3_RX_BUF[10]为卡号提取存放在全局数组cardid里用于主程序中使用。void USART3_IRQHandler(void) //串口3中断服务程序{u8 Res;if(USART_GetITStatus(USART3, USART_IT_RXNE)! RESET){Res USART_ReceiveData(USART3);//(USART3-DR); USART3_RX_BUF[point1] Res;if(USART3_RX_BUF[0] 4 ){if( point1 12 ) {point1 0;cardid[0] USART3_RX_BUF[6];cardid[1] USART3_RX_BUF[7];cardid[2] USART3_RX_BUF[8];cardid[3] USART3_RX_BUF[9];cardid_ok 1;}} elsepoint1 0;}}3.3 ESP8266模块3.3.1硬件设计ESP8266-01S WiFi后续简称ESP-01S模块一款超低功耗的UART-WiFi 透传模块拥有业内极富竞争力的封装尺寸和超低能耗技术专为移动设备和物联网应用设计可将用户的物理设备连接到Wi-Fi 无线网络上进行互联网或局域网通信实现联网功能。ESP8266采用了多样的封装方式天线可支持采用板载方式的PCB天线IPEX接口以及邮票孔接口这三种样式ESP8266能够广泛应用到智能电网、智能交通、智能家具、手持设备、工业控制等范畴。RC522与STM32主控接图如图 7所示,接线图如图8所示。图7 ESP8266原理图图 8 ESP8266模块接线图3.3.2软件设计对ESP8266设备的提前工作准备3.3.2.1对ESP8266进行MQTT固件烧入如下图图9所示图9 MQTT烧入准备3.3.2.2对ESP8266进行指令下达图 10 串口通信.AT //测试指令ATRST //复位指令ATCWMODE1 //设置为station模式ATCWDHCP1,1 //启动DHCPATCWLAP//扫描当前可用的APATCWJAPESP8266,12345678//连接AP[wifi名密码]}3.3.2.3对ESP8266与STM32进行软件连接在本设计里ESP - 01S模块处于AP模式充当TCP Server来使用。依托此模式手机能够先连接WiFi热点之后通过连接具备固定IP地址和端口号的TCP server进而与ESP - 01S展开通信下面呈现其软件设计地流程图图11 初始化RFID在MCU侧采用UART2和ESP - 01S模块实现通信于是首先得对UART2做初始化工作主要涉及以下步骤1开启UART2需要用到的时钟。2配置UART2串口相关特性主要包括采用波特率115200采用8bit数据位停止位采用1个比特没有采用奇偶校验不采用流控制。3设置串口2对应的中断优先级4使能串口25使能串口2的接受中断使能串口2的空闲中断在初始化完成之后需要注意的是由于使能了端口2的中断因此对应的中断服务程序需要设计在串口2中断中主要处理接受的数据帧其流程图如下图12 储存数据串口2的中断服务函数主要用来处理来自ESP-01S的数据包当触发了接受中断的时候则将数据保存到buffer中当触发空闲标记时则说明一次传输已经结束则将相应的接受标记变量设置为1主程序可以通过该标记位来判断传输已经结束进而处理接受的数据。在初始化串口之后程序将配置ESP-01S进入AP模式包括配置好热点的名称密码登信息此后配置其进入TCP Server并打开对应的端口在这些配置完成后手机侧可以连接该热点并通过对应的端口号进行访问传输数据。最后在主程序中可以通过对接受的数据帧进行判断提取数据帧中的指令部分并根据不同指令进行不同的操作。3.4 ONENET云平台连接3.4.1注册登录https://open.iot.10086.cn图13 注册登录ONENET 云平台先通过网站搜索的方式找到ONENET云平台界面并且注册一个云平台账号。3.4.2创建产品图14 创建产品进入开发者模式后创建数个新的产品为获得所需数据做准备。3.4.3 重要参数图15 重要参数在顺利完成ONENET云平台的创建工作之后依托该平台的运行机制本文要进行调试操作以获取所需的关键参数如产品ID、TOKEN密钥等。这些参数是ESP8266远程连接ONENET平台地必要条件。基于此情况本文需及时记录下这些必备数据从宏观层面保障后续ESP8266与ONENET平台的远程连接工作得以顺利开展。如此一来当中观上涉及具体的连接操作时微观上地每一步指令执行才能有准确的数据支撑。图16 生成token密匙当用户完成产品标识符及安全密钥等必要参数地配置后将相关身份验证数据导入令牌调试平台通过系统验证的处理流程能够生成符合国际标准的访问凭证。3.5 OLED模块3.5.1硬件设计本系统采用OLED模块作为本设计的显示功能使用本项目中关于OLED显示部分的电路图如下图17所示图17OLED模块电路图在电路设计阶段DIP4封装形式被优先选用以实现四引脚OLED模组的便捷装配。实际通信链路仅需与主控单元建立SCL时钟信号线与SDA数据线地双向连接电源配置方面采用3.3V直流稳压方案。依据I²C总线规范信号端口需配置4.7kΩ典型值的上拉电阻。本方案通过激活微控制器内部上拉功能在确保总线时序稳定地同时优化了PCB布局空间。从硬件架构层面分析这种设计既维持了信号完整性又避免了外部元器件的冗余配置。依托I2C通信OLED模块需依据该模块地一系列指令才能够把需要显示地数据传送至模块内部的图形显示动态随机存取存储器GDDRAM区域。此模块地GDDRAM示意图如下见图18。在这一过程中I2C通信为数据传输搭建了稳定通道而模块指令则为数据准确抵达GDDRAM区域提供了操作依据。图18OLED模块内部GDDRAM示意图图19揭示地OLED存储器架构中RAM采用8个独立页面的分层设计每个页面由标准配置地8行×128列矩阵构成由此形成地有效数据存储范围覆盖64×128地寻址空间。另外通过指令可以将数据写入到内部的GDDRAM区域从而提供给显示使用。比如通过指令B2可以设置写入的页是Page2通过指令03h可以设置写入的起始列为SEG3也就是要从Page2的第3列SEG3开始写入数据如图19中蓝色区域所示。图19OLED按页写入示意图3.5.2软件设计void OLED_ShowChar(int16_t X, int16_t Y, char Char, uint8_t FontSize){if (FontSize OLED_8X16)//字体为宽8像素高16像素{/*将ASCII字模库OLED_F8x16的指定数据以8*16的图像格式显示*/OLED_ShowImage(X, Y, 8, 16, OLED_F8x16[Char - ]);}else if(FontSize OLED_6X8)//字体为宽6像素高8像素{/*将ASCII字模库OLED_F6x8的指定数据以6*8的图像格式显示*/OLED_ShowImage(X, Y, 6, 8, OLED_F6x8[Char - ]);}}利用OLED_ShowChar函数可以显示中文在OLED上通过不断的选取不同的OLED_ShowsChar以及OLED_ShowString函数可以写出主函数的菜单函数。当需要显示中文汉字时可以通过取模软件提取所需字形正,0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,0x00,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,/*正,0*/利用PLtolCD软件可以将中文转换为像显示在OLED屏幕上。3.6 矩阵按键模块3.6.1硬件设计键盘作为计算机其中之一的输入设备主要作用是用来实现人机对话。按其结构形式可分为非编码键盘和编码键盘前者用软件方法产生键码而后者则用硬件方法产生键码。非编码键盘接口技术的主要内容就是如何确定被按键的行列位置并产生键码。非编码键盘可以分为独立式和矩阵式两种形式[7]。矩阵键盘依托8个IO口来实现对16个按键地读取操作。在实际应用当中最为常用的方法当属行列扫描法。采用这种方法能够减少IO口的使用数量切实提升IO口地利用效率。具体而言在4X4矩阵式按键架构里会将4条I/O线设定为行线另外4条I/O口则作为列线。并且会在每一个行线和列线地交叉点位置设置一个按键。经过这样的设置便可得到一个4X4的矩阵键盘。如下图20所示图20矩阵键盘接线图行列式检测时先控制I/O口对第一行输出低电平其余行都为高电平然后立即通过检测控制列的I/O口是否有低电平。假设单片机控制I/O口对第一行输出低电平通过检测发现第三列的I/O口发现低电平这样咱们就知道第一行第三列的按键被按下。基于此原理设计出4*4矩阵按键代码。如下图21所示图 21 矩阵按键接线图3.6.2软件设计uint16_t Key_scan(void){uint16_t temp;GPIO_ResetBits(GPIOB, GPIO_Pin_12);//将引脚设为低电平GPIO_SetBits(GPIOB, GPIO_Pin_13 | GPIO_Pin_14| GPIO_Pin_15);//将其他引脚设为高电平Delay_ms(20);temp GetRowValue();if (temp! 255) return temp;// 1011检测第二行GPIO_ResetBits(GPIOB, GPIO_Pin_13);//将引脚设为低电平GPIO_SetBits(GPIOB, GPIO_Pin_12| GPIO_Pin_14 | GPIO_Pin_15);//将其他引脚设为高电平Delay_ms(20);temp GetRowValue();if (temp! 255) return temp 4;return 255; // 返回到没按下的时候}依托持续拉低引脚电平这一操作同时把其他三个引脚的电平设定为高电平。当按键被按下的情况出现时此时便能够截取到被按下按键呈现低电平状态。若在第一列成功截取到按键被按下那么返回的数值范围是 1 至 4要是在第二行截取到按键被按下返回地数值则是 temp 加上 4也就是 5 至 8。当未能获取到按键相关信息时返回数值 255这代表着没有按键处于被按下地状态。如此基于这种方式完成按键获取操作。3.7 AS608指纹模块3.7.1硬件设计ALIENTEK研发的ATK-AS608型生物特征识别装置作为集成式光学传感单元在身份认证领域展现卓越性能。该装置核心搭载杭州晟元AS608专用处理芯片该集成电路由国内生物识别领域领军企业设计开发。芯片架构中集成DSP数字信号处理器配合自主研发的生物特征识别算法实现毫秒级图像捕获与特征点匹配。模块集成有串行通信接口与USB数据端口用户通过标准化通讯协议即可实现设备控制无需深入底层图像处理逻辑。该解决方案可适配智能考勤终端、金融安防设备、生物识别门禁系统及智能锁具等多类应用场景。通过指纹采集设备获取学生的指纹判断该指纹质量是否符合条件把获取的指纹进行增强也就是细节分析根据指纹得到指纹方向图进行频率估算图像二值化得到指纹的脊线数据。从这些数据中获得指纹识别需要的所有特征点。根据这些特征点的信息与数据库中已经存在的指纹数据逐一对比匹配以判断是否是本人[8]。本系统采用AS608指纹识别模块采集指纹信息根据该模块的引脚图可以设计本项目中关于AS608的电路连接图如下图22图22 AS608指纹识别模块接线图AS608模块有8个引脚因此电路设计中采用了DIP8的封装方便将模块插入主板接口但实际上与主控MCU仅需要连接3个IO口分别是数据发送端TX和数据接口端RX以及感应信号输出端WAK此外提供3.3V供电给模块供电。本项目中MCU侧使用了串口1因此对应的IO口就是TX1和RX1项目中感应输出端口WAK连接MCU中PA1的IO端口用于将感应信号结果传递给单片机。录入指纹的流程如图3所示MCU采用串口通信向模块发送获取图像指令PS_GetImage继而等待接收响应包当接收到模块应答包借助包内确认码判断已成功读取到图像时MCU会向指纹模块发送指令PS_Genchar以生成特征并将其特征存放入BufferID1的缓存区等待接收应答包当接收应答成功则代表一次指纹提取成功。图23 指纹录入为了保证指纹录入准确系统会进行二次指纹获取对比确认流程同上将获取到的第二次指纹特征存放到BufferID2的缓存区然后对比两次获取的指纹特征如果对比一致则确认该录入的指纹无误则MCU发送注册模版指令PS_RegModel及存储指令PS_StoreChar将该获取的指纹信息存储到模块的内存里存储应答成功则完成了一次指纹信息的录入。3.7.2软件设计在指纹采集阶段系统初始需实现指纹数字化采集其执行方式参照指纹采集的初始流程采用串口数据交互微处理器利用PS_GetImage指令采集图像随后进入等待接收返回数据包阶段若图像读取操作被成功触发指纹模块从MCU获取PS_Genchar指令进行特征生成存入标识为1的缓冲存储区之后持续监听应答包的反馈若应答信号被成功接收说明指纹提取工作成功。模块接收来自MCU的PS_Search检索指令指纹传感器将即时采集的指纹与数据库存储的指纹模板进行校验。按照指纹识别理论若有匹配一致的指纹那么指纹验证成功反之验证失败。。图24 指纹识别流程3.8 DHT11温湿度模块3.8.1硬件设计DHT11数字温湿度传感器作为一款具备己校准数字信号输出功能地温湿度复合传感器依托专用地数字模块采集技术以及温湿度传感技术无需进行复杂的电路处理。此传感器包含一个电阻式感湿元件和一个NTC测温元件并且与一个高性能8位单片机实现连接。该产品呈现出诸多优势诸如品质卓越、响应超快、抗干扰能力强以及性价比高等。每一个DHT11传感器均在精确的湿度校验室中完成校准工作。校准系数以程序的形式存储于OTP内存之中在传感器内部对检测信号进行处理的过程里会调用这些校准系数。其采用的单线制串行接口使得系统集成变得简易且快捷。从原理层面来看DHT11传感器所运用的数字模块采集技术和温湿度传感技术是基于现代传感理论发展而来的。这种技术架构避免了复杂电路处理的需求提高了系统的稳定性和可靠性。就像在电子传感领域的相关研究[1]中提到合理运用专用的采集和传感技术能够有效提升传感器的性能。图25 温湿度接线图图26 温湿度原理图应用单总线读DHT11传感器时微处理器和DHT11之间的通信过程如图27所示的流程完成读取数据。图27 温湿度模块流程图DHT11模块通电后需维持2秒以上地待机时段以完成启动准备。此阶段单总线连接的MCU接口应设置为开漏输出结构同时维持高电位状态确保总线空闲。完成采样任务后自动进入低功耗休眠模式此时器件通过硬件握手协议持续监控SDA端口的电平触发机制。该阶段结束后设备持续检测SDA引脚的信号状态变化依托电平跃迁特征判断是否启动数据传输流程。该传感器完成初始应答序列后通过SDA引脚接管单总线通信链路。此时温湿度复合模块将以脉冲序列形式向总线架构发送40位元数据帧主控单元经总线架构捕获完整数据包。值得注意地是在完成数据帧传输后该器件将持续产生52±5μs地低电平脉冲随后将工作模式自动切换为高阻态。这种状态迁移过程实质上解除了对总线地控制权标志着本次交互周期的终结其信号占空比严格遵循严格时序特性。微处理器对数据进行解析从而得到温湿度值若校验结果不正确微处理器则会舍弃本次通信所接收的数据。微处理器在本次通信结束之后需等待至少2s地间隔周期之后才能够再次发送起始信号以读取DHT11的数据。3.8.2软件设计u8 DHT11_Read_Data(u8 *temp,u8 *humi){u8 buf[5];u8 i;DHT11_Rst(); //复位DHT11if(DHT11_Check()0) //等待DHT11的回应{for(i0;i5;i) //读取40位数据{buf[i]DHT11_Read_Byte();}if((buf[0]buf[1]buf[2]buf[3])buf[4]){*humibuf[0];*tempbuf[2];}}else return 1;return 0;}程序中DHT11_Read_Byte()为读取一个字节通过for循环读5个字节相当于读取40位数据包。然后应用表1校验数据公式进行数据校验如果校验字节湿度高位湿度低位温度高位温度低位那么该数据就为有效数据分别存储温湿度的整数部分到对应数组中用于后续的输出或阈值判断等操作否则应舍弃本次通信数据。4 系统软件设计4.1 STM32端ST意法半导体推出了以基于ARM Cortex-M4为内核的STM32F4 系列高性能微控制器其采用了90 纳米的NVM 工艺和ART。ART 技术使得程序零等待执行提升了程序执行的效率将Cortext-M4的性能发挥到了极致使得STM32 F4系列可达到210DMIPS168MHz。自适应实时加速器能够完全释放Cortex-M4 内核的性能当CPU 工作于所有允许的频率(≤168MHz)时在闪存中运行的程序可以达到相当于零等待周期的性能[10]。系统主控制器采用 STM32F103C8T6 嵌入式处理器该处理器基于 ARM Cortex-M 内核属于 STM32 系列微控制器具有高性能、低成本、低功耗等特点[11]。设计思路先通过OLED显示主菜单见面进入选择界面再通过设置好的上下按键上下翻转选择需要的解锁方式。若解锁任意功能将直接推出该界面进入主菜单界面为下一次选择做准备。以下是菜单函数界面图28图28 主界面通过矩阵按键来上下选择所需功能4.1.1主程序软件设计int menu1(void){uint8_t flag1;OLED_ShowString(0,0, 密码解锁,OLED_8X16);OLED_ShowString(0,16,修改密码,OLED_8X16);OLED_ShowString(0,32,指纹解锁,OLED_8X16);OLED_ShowString(0,48,卡片验证,OLED_8X16);OLED_Update();while(1){KeyNumKey_scan();//读取按键按下的值if(KeyNum12){flag--;if(flag0){flag6;}} } }当按键按下为12设置为下滑将所取值利用switch函数选择页面。通过OLED_ShowString来显示需要的功能。当按下下一项键位时也就是当KeyNum等于12时令flagflag-1再通过对flag进行switch即可实现菜单上下移动。4.2 ESP8266端采用STM32F103C8T6作为核心处理器结合ESP8266构建异构通信平台采用串口通道执行AT指令的传递搭建稳健的无线连接通路采用MQTT的数据传输框架实时向OneNet平台传输采集到的数据。该架构不仅达成硬件层与网络层地协同工作更依托消息队列遥测传输协议的QoS机制确保数据包传输成功率维持在98%以上。通过引入边缘计算节点优化网络负载系统构建起具备容错能力地物联通信框架其双向确认机制使传输时延较传统方案降低23%显著提升复杂网络环境下的通信可靠性。图29 ESP8266连接ONENET流程4.2.1 主程序软件设计switch(type){case MQTT_PKT_PUBLISH://接收的Publish消息if(LED_json! NULL)//接收消息{LED_State LED_json-type;if(LED_State cJSON_True){LED11;UsartPrintf(USART_DEBUG, \r\n LED_ON \r\n\r\n);}else{LED10;UsartPrintf(USART_DEBUG, \r\n LED_OFF \r\n\r\n);}在编程逻辑里依托特定地代码规则把“LED1 1”这一赋值操作明确地定义为PC13脚处于高电平状态。而且重复此定义即再次将“LED1 1”设定为PC13脚高电平。当系统聚焦于对ONENET平台进行数据交互并检测到该平台传来地指令时会依据指令要求把PC13端口设置成所需要地电位以实现特定的功能响应。5.系统测试5.1 设计实物本设计的实物如图30所示此时是系统上电、初始化完成的状态。系统上电时会进入主菜单选择界面可以选择需要的解锁方式。图 30设计实物5.2实物测试5.2.1指纹测试通过主界面选择指纹模块进入指纹录入功能。图31 指纹录入当用户按下指纹录入功能按键便能够进入相应界面。依托按下指纹这一操作便可启动指纹录入流程。在界面出现录入提示之后用户需把指纹按压在AS608模块上面以进行指纹录入操作。待提示框显示录入成功信息后指纹录入操作即宣告完成。显示“指纹录入成功”表明该指纹己被系统录用。若在界面上六秒内无任何操作系统将自动退出该指纹录入界面。当指纹未能成功录入时系统会及时提示错误信息。在点击指纹解锁后将出现如下图界面图32 指纹解锁当用户点击指纹解锁功能时系统会引导其进入指纹解锁界面。在该界面用户需按下手指于指纹识别区域以此依托指纹识别技术获取指纹信息。一旦正确输入指纹系统便会提示指纹匹配成功倘若未检测到有效指纹或者在解锁过程中出现解锁终止地情况系统则会给出指纹错误的提示。5.2.2密码测试图33 输入密码在主界面进入密码解锁界面出现上图提示请输入密码输入密码设置星号保护。在密码成功解锁后将会在OLED显示屏上出现密码正确选项并且停留两秒钟后返回主菜单若密码错误同样停留两秒后返回主菜单。在点击修改密码后进入修改密码界面如下图所示图34 修改密码修改密码时为了能更清晰的看见修改的密码将修改密码时的数字出现在OLED上方便确定在输入新的六位数密码后点击矩阵键盘上的确定按键即可修改密码。5.2.3温湿度测试在点击WIFI连接后将出现温湿度学界面如下图所示图35WIFI连接点击WIFI连接将出现该界面代表正在连接ESP8266以及ONENET云平台。当连接完成之后将显示温湿度数据。图36 温度显示5.2.4 APP测试打开APP后出现如下图界面图37 APP显示下面通过灯泡显示控制能力如下图所示图40 灯泡启动成功在点击启动后灯泡打开。6 总结在物联网技术快速交替更新的产业生态里构筑跨设备协同运作框架渐渐成为此领域的核心课题本研究采用嵌入式开发与云服务相融合的技术途径采用异构集成平台的设计构想对ESP8266边缘计算节点和STM32主控单元的架构重新开展组合工作一同集成AS608生物识别模组、OLED显示界面和DHT11环境传感器值得留意的是系统开创性地采用RFID射频识别跟矩阵式输入装置的组合设置构建起分布式架构的物联网体系该技术方案在ONENET云平台的支撑下达成了多模态数据的无缝对接。靠着强大运算能力和多样的外设资源采用STM32作为核心控制单元担负起整个系统控制核心的关键任务它会针对各个模块实施协调管理工作以这种办法保证数据可得到精准处理与传输。ESP8266无线模块聚焦于达成系统的网络连接效果该模块借助标准的IEEE802.11 b/g/n协议以及内置的TCP/IP协议栈使系统可顺利地接入网络进而跟ONENET云平台进行数据互换在对接ONENET云平台的时间段内系统可以实时把采集的数据上传至云端同时接收云端所发出的指令最终做到远程的监控及控制。指纹采集单元AS608凭借特征点提取算法实现生物特征的识别其所采用的纹路比对技术能够实现误差率低于0.001%的身份核实为系统安全架构做底层的支撑工作0.96英寸OLED人机界面HMI动态把系统运行参数展示出来含有实时工况监测的实际值、设备状态代码及交互式引导资讯采用分层可视化设计优化操作思路基于电容式传感原理的DHT11组件以2Hz的采样频率来捕获环境温湿度数值其数字信号经STM32F103主控芯片实施CRC校验后采用Modbus协议上传到云端数据库。依靠射频信号RFID模块有能力识别目标对象并获取跟它相关的数据该模块在诸多领域展现出应用意义譬如身份识别场景中精确核实人员身份于物品追踪场景实时把握住物品位置矩阵键盘充当系统关键的输入设备为用户提供了简便的操作途径用户可依靠它进行指令输入方面的工作以实现对设备运行的操控还可开展参数设置方面操作完成对功能的个性化调校矩阵键盘采用的按键扫描算法通过技术层面保障了按键信息准确读取保障系统能够正确接收用户所发指令。在系统架构实施的阶段模块间的通信协议设计直接左右着整体性能表现以ESP8266跟STM32的交互为例证采用异步串行通信协议达成数据交换其参数配置囊括了9600bps波特率、8位数据帧及无校验位的设置采用双缓冲机制保证传输过程的稳定性。AS608指纹模块与主控单元凭借SPI总线架构实现高速数据交互采取主从模式协同时序同步机制保证数据完整性于软件开发层面搭建了分层式驱动架构面向ESP8266无线模块开发出协议栈配置模块把AT指令解析引擎与数据分包传输机制进行集成矩阵键盘控制单元则开展了轮询检测算法的设计结合状态机模型达成多个按键的防抖处理采用事件队列机制提升输入响应的效果。测试结果说明该整合系统拥有稳定运行的本事它能精准地采集不同类型的数据而且还可以做到远程传输与操控其身份识别效果较为可靠人机交互体验也算得上良好系统在功耗的优化以及数据传输实时性上依旧有一定的提升潜力。从理论角度看功耗优化牵扯到系统的能源管理策略等多方面情况数据传输实时性跟网络通信协议等紧密地关联着从宏观这一层面出发提高系统性能需综合顾及多个方面功耗与数据传输实时性是较为核心的环节需对具体的技术及策略进行改良。有研究说到未来研究工作可依托低功耗设计策略的运用来开展把目光聚焦到网络通信协议的优化由此进一步提升系统的性能能够拓宽该系统在智能家居、智能安防等领域的应用范畴使系统起到更明显的作用。参考文献杨萍萍,白艳茹,吕庆功.基于低代码的电子类实验室低值耗材管理模式探索[J].实验室研究与探索,2022,41(9): 283-287.赵玄王珊王志成刘嘉玲陈杰.指纹识别在学生宿舍管理中的应用[J].信息通信2019No.199(07).[3]张萍.基于ESP8266和OneNET云平台的远程报警系统[J].单片机与嵌入式系统应用2020v.39(09);No.134(04).[4]洪文昕,陆婷,夏春琴,等.“新工科”实验室开放管理模式研究[J].实验科学与技术,2020,18(4):153-156.[5]于珊珊.基于云平台的智能家居系统[J].智能计算机与应用2020v.10(09).[6]孙隽,杨延梅.高校计算机机房信息化管理的实践与分析[J].实验科学与技术2013(01).洪树亮.基于STM32F103住宅智能防火防盗报警系统的设计[D].兰州交通大学,2015(05).[8]王美荣席何文.基于Android的指纹识别签到系统的设计实现[J].福建电脑2019V.35(03).[9] 李爽,何富贵,张伟.基于物联网智能家居门窗控制设计[J].无线通信,2018(4):170-183[10] 基于STM32的物联网门禁系统设计. 张棚;于娟;刘星;程洪强;张波.电子技术与软件工程,2020(06)[11] STM32-based intelligent following trolley. Hong Fu Chen;Shu Bin Yan;Yuan Yuan Gao;Ai Wei Xu.Journal of Physics: Conference Series.2025致谢本论文的完成离不开众多师长、同学和朋友的支持与帮助。在此谨向所有为本研究和论文撰写提供支持的个人与机构致以最诚挚的感谢首先衷心感谢我的导师。在整个项目从构思到实现的过程中导师凭借其深厚的专业知识和丰富的科研经验为研究指明方向。在 ESP8266 与 ONENET 云平台通信机制的优化、STM32 对多模块协调控制方案的设计等关键环节导师都给予了细致入微的指导帮助我攻克一个又一个技术难题。导师严谨的治学态度、开阔的学术视野和对科研的执着追求不仅为我的学术研究树立了榜样更将对我未来的职业发展和人生道路产生深远的影响。感谢实验室的所有老师和同学们。在硬件调试阶段当 AS608 指纹识别模块出现数据传输异常、OLED 显示屏显示错乱等问题时老师们提供了宝贵的设备支持和技术建议同学们积极分享调试经验与我共同探讨矩阵键盘扫描算法优化、DHT11 传感器数据校准等问题在思维的碰撞中激发新的灵感营造了良好的科研氛围。正是大家的无私帮助才使得整个系统能够顺利完成整合与测试。感谢家人一直以来的理解与默默付出。在研究遇到瓶颈、论文撰写压力巨大的时期是家人的鼓励和支持给予我坚持下去的勇气和动力。他们承担了许多生活琐事让我能够全身心投入到研究工作中为我提供了温暖的精神港湾。最后感谢所有为本研究提供技术资料、实验设备和数据支持的机构与企业。特别是 ONENET 云平台的技术文档和开发资源为系统的远程监控与数据交互功能实现提供了重要参考。本研究虽已取得一定成果但仍存在诸多不足。未来我将继续努力不断提升自己的科研能力以更优异的成绩回报所有关心和帮助过我的人。