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

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

**技术说明:**本文围绕开放性实验室电源节点进行嵌入式开发复盘,重点整理STM32主控、RFID身份识别、AS608指纹验证、矩阵按键、DHT11环境采集、OLED显示、ESP8266联网及OneNET云平台通信等技术要点。内容用于物联网终端、实验室设备管理和软硬件联调方法交流,不涉及产品推广或商业宣传。

摘 要:本文设计了一种基于STM32和ESP8266的智能电源开关节点设计,具备指纹解锁,RIDF门禁解锁,APP远程操控,密码解锁,温湿度实时监控等功能。系统通过ESP328266搭建WiFi热点并建立UNIAPP服务器,用户可通过手机APP连接后远程操控。通过APP以及DHT11温湿度模块。用户可通过APP在线查看当前环境是否适宜。适用于需要一定身份认证通过的使用场景,多种功能更贴合日常使用。

关键词:ESP8266;STM32;智能控制;ONENET云平台;

Open Lab Power Node Design

Author:ShaoQiWen Tutor: Yang Dali

(College of Physics and Electronic Engineering, Hainan Normal University, Haikou, 571158)

Abstract:Abstract: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; STM32;intelligent 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 系统方案对比

方案一:STM32+ESP8266+OLED

方案二:C51+LCD+ESP8266

方案一与方案二对比:在方案对比中,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_BUF6~ USART3_RX_BUF9,为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_BUF6~ USART3_RX_BUF10为卡号,提取存放在全局数组cardid里,用于主程序中使用。

void USART3_IRQHandler(void) //串口3中断服务程序

{u8 Res;if(USART_GetITStatus(USART3, USART_IT_RXNE)!= RESET)

{

Res =USART_ReceiveData(USART3);//(USART3->DR); USART3_RX_BUFpoint1++ = Res;

if(USART3_RX_BUF0 == 4 ){if( point1 >= 12 ) {point1 = 0;cardid0 = USART3_RX_BUF6;

cardid1 = USART3_RX_BUF7;

cardid2 = USART3_RX_BUF8;

cardid3 = USART3_RX_BUF9;

cardid_ok = 1;

}

} else

point1 = 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 //测试指令

AT+RST //复位指令

AT+CWMODE=1 //设置为station模式

AT+CWDHCP=1,1 //启动DHCP

AT+CWLAP//扫描当前可用的AP

AT+CWJAP="ESP8266","12345678"//连接APwifi名,密码

}

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)使能串口2

(5)使能串口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所示:

图17:OLED模块电路图

在电路设计阶段,DIP4封装形式被优先选用以实现四引脚OLED模组的便捷装配。实际通信链路仅需与主控单元建立SCL时钟信号线与SDA数据线地双向连接,电源配置方面采用3.3V直流稳压方案。依据I²C总线规范,信号端口需配置4.7kΩ典型值的上拉电阻。本方案通过激活微控制器内部上拉功能,在确保总线时序稳定地同时优化了PCB布局空间。从硬件架构层面分析,这种设计既维持了信号完整性,又避免了外部元器件的冗余配置。

依托I2C通信,OLED模块需依据该模块地一系列指令,才能够把需要显示地数据传送至模块内部的图形显示动态随机存取存储器(GDDRAM)区域。此模块地GDDRAM示意图如下,见图18。在这一过程中,I2C通信为数据传输搭建了稳定通道,而模块指令则为数据准确抵达GDDRAM区域提供了操作依据。

图18:OLED模块内部GDDRAM示意图

图19揭示地OLED存储器架构中,RAM采用8个独立页面的分层设计,每个页面由标准配置地8行×128列矩阵构成,由此形成地有效数据存储范围覆盖64×128地寻址空间。

另外,通过指令可以将数据写入到内部的GDDRAM区域,从而提供给显示使用。比如:通过指令B2,可以设置写入的页是Page2,通过指令03h可以设置写入的起始列为SEG3,也就是要从Page2的第3列(SEG3)开始写入数据,如图19中蓝色区域所示。

图19:OLED按页写入示意图

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_F8x16Char - ' ');

}

else if(FontSize == OLED_6X8)//字体为宽6像素,高8像素

{

/*将ASCII字模库OLED_F6x8的指定数据以6*8的图像格式显示*/

OLED_ShowImage(X, Y, 6, 8, OLED_F6x8Char - ' ');

}

}

利用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以生成特征,并将其特征存放入BufferID=1的缓存区,等待接收应答包,当接收应答成功则代表一次指纹提取成功。

图23 指纹录入

为了保证指纹录入准确系统会进行二次指纹获取对比确认,流程同上,将获取到的第二次指纹特征存放到BufferID=2的缓存区;然后对比两次获取的指纹特征,如果对比一致,则确认该录入的指纹无误,则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 buf5;

u8 i;

DHT11_Rst(); //复位DHT11

if(DHT11_Check()==0) //等待DHT11的回应

{

for(i=0;i<5;i++) //读取40位数据

{

bufi=DHT11_Read_Byte();

}

if((buf0+buf1+buf2+buf3)==buf4)

{

*humi=buf0;

*temp=buf2;

}

}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系列可达到210DMIPS@168MHz。自适应实时加速器能够完全释放Cortex-M4 内核的性能;当CPU 工作于所有允许的频率(≤168MHz)时,在闪存中运行的程序,可以达到相当于零等待周期的性能10。系统主控制器采用 STM32F103C8T6 嵌入式处理器,该处理器基于 ARM Cortex-M 内核,属于 STM32 系列微控制器,具有高性能、低成本、低功耗等特点11

设计思路:先通过OLED显示主菜单见面进入选择界面,再通过设置好的上下按键上下翻转选择需要的解锁方式。若解锁任意功能将直接推出该界面进入主菜单界面,为下一次选择做准备。

以下是菜单函数界面图28:

图28 主界面

通过矩阵按键来上下选择所需功能

4.1.1主程序软件设计

int menu1(void)

{

uint8_t flag=1;

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)

{

KeyNum=Key_scan();//读取按键按下的值

if(KeyNum==12)

{flag--;if(flag==0){flag=6;}} } }

当按键按下为12(设置为下滑),将所取值利用switch函数选择页面。通过OLED_ShowString来显示需要的功能。当按下下一项键位时,也就是当KeyNum等于12时,令flag=flag-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)

{

LED1=1;

UsartPrintf(USART_DEBUG, "\r\n LED_ON \r\n\r\n");

}

else

{

LED1=0;

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.信息通信,2019,No.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.福建电脑,2019,V.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 云平台的技术文档和开发资源,为系统的远程监控与数据交互功能实现提供了重要参考。

本研究虽已取得一定成果,但仍存在诸多不足。未来,我将继续努力,不断提升自己的科研能力,以更优异的成绩回报所有关心和帮助过我的人。

相关推荐
殷忆枫3 小时前
基于STM32+OV2640+ESP8266的无线图像采集系统设计与实现
stm32·单片机·嵌入式硬件
rfidwlw7 小时前
机房U位资产管理系统:数据中心精细化运维的基石
rfid
qq_283720057 小时前
STM32F103 GPIO 端口配置寄存器 CRL / CRH 详解
stm32·单片机·嵌入式硬件
振南的单片机世界8 小时前
NVIC:Cortex-M内核的“中断CPU”
stm32·单片机·嵌入式硬件
论迹复利9 小时前
第 2 章 PSA Certified 四级认证体系
物联网·安全·security·cra·psa
K成长日志10 小时前
BLE链路层空口包--数据物理信道PDU
网络·物联网·网络协议·嵌入式·蓝牙·iot·ble
星恒讯工业路由器17 小时前
AGV集群通信架构:从单点到百台级调度的挑战与对策
网络·物联网·信息与通信·工业物联网·通信架构·agv集群·实时调度
技术硬汉18 小时前
4G/5G蜂窝天线增益越大越好吗?怎么选适合自己的天线
物联网·5g·信息与通信·iot