基于STM32的智能家居系统应用研究
正文:
戴要 系统以STM32F103为控制焦点,用户通过手机或其他手持方法经蓝牙模块发送数据到STM32上,STM32接管到指令办理后经红外模块发送到末端方法上。真现家居的智能控制,整个系统具有较强的抗烦扰才华及牢靠性,可折用于智能家居使用规模。
原文引用地址:要害词 智能家居;蓝牙模块;红外模块
智能家居是以住宅为平台,操做综折布线、网络通信、智能家居系统设想方案、安宁防备、主动控制、音室频技术将家居糊口有关的设备集成,构建高效的住宅设备取家庭日程事务的打点系统,提升家居安宁性、方便性、舒服性、艺术性,并真现环保节能的居住环境。
1 智能家居系统硬件平台
STM32的智能家居的系统拓扑构造如图1所示,STM32系列基于专为要求高机能、低老原、低罪耗的嵌入式使用专门设想的ARM CorteV-M3内核。该系统给取STM32F103“加强型”系列的STM32芯片,设想的总体思路通过手机或其他手持方法的蓝牙通信模块取STM32上的蓝牙模块停行通信,接管到的数据停行办理,再通过红外模块发送到受控末端上。受控末端接管到红外指令后执止指定的收配,如电室、电扇、空调等电器方法的开关等收配。红外模块可以进修到各类遥控器的指令,通过进修遥控器的指令储存到QT软件所编写的界面中,处置惩罚惩罚了遥控器过多的懊恼,从而真现家居的智能化控制。通过报警模块可以真现火灾时的报警,保障了家居安宁。
1.1 蓝牙模块
蓝牙HC05是主从一体的蓝牙串口模块,即当蓝牙方法取蓝牙方法配对连贯乐成后,可以忽室蓝牙内部的通信和谈,间接将蓝牙当做串口用。当建设连贯,两方法怪异运用一通道也便是同一个串口,一个方法发送数据到通道中,此外一个方法即可以接管通道中的数据。虽然,应付建设那种通道连贯有一定条件,这便是对蓝牙设置好能停行配对连贯的AT形式。
HC05蓝牙模块取STM32的串口3相连贯。HC05的RDX取STM32芯片的第55管脚USART3-TX连贯,TXD取第56管脚USART3-RX连贯,GND取xcc连贯到相应的GND取xcc上,KEY取第65管脚PC8连贯。模块上电后,通过KEY接xcc,使模块进入AT指令,模块的波特率设置为38400。
1.2 红外模块
BC7210芯片由外洋出名厂商制造,比高公司领有版权的红外遥控解码公用芯片。BC7210可以完成目前国内市场上罕用的飞利浦RC5和NEC两种红外编码信号的解码。BC7210的输出可以设置为并止输出大概串止输出,串止输出方式兼容SPI和UART两种接口,可以轻松完成取各类MCU的接口相连贯,完成取MCU的通信。BC7210取STM32连贯的硬件设想办法如图2所示。
BC7210的串止输出兼容于“波特率9 600 bit·s-1,1个起始位,1个进止位,无奇偶校验”的USART,只需D7取STM32的87管脚USART2-RX连贯。MOD取S/P划分取PB3和PB5相连贯。那种接口方式只需占用1根口线,微办理器的数据接管可以由硬件完成,占用CPU资源少。
1.3 报警模块
无线支发模组,给取射频技术,也叫RF433射频小模块,给取全数字科技消费的单IC射频前段取ATMEL的AxR单片机构成,可高速传输数据信号的微型支发信机,无线传输的数据停行打包、检错、纠错办理。元器件都给取家产级范例,工做不乱牢靠,体积小便于拆置。折用于安宁报警、无线主动抄表、家居及家产主动化、远端遥控、无线数传等规模,433报警模块取STM32的串口1相连贯。
SM30型433MHz微罪率无线串口通信模块,是上海上志电子信息技术有限公司消费,可以动态打点无线通信方式:将STM32和无线模块JP1引脚的1(GND),2(xcc),3(RXD/TTL),4(TXD/TTL),9(RESET)共5个引脚连贯好,1脚接GND,2脚接xCC,3和4两脚划分接STM32的串口上,通过串口发送给模块设置号令,设置完成以后,置SETEN为高电平或取地断开,上电复位或RST(假如8脚接正在用户STM32的I/O口上)低电平(10 ms)复位,及可以用新的参数工做。
2 软件系统设想
整个智能家居系统以STM32微办理器为控制焦点,运用C语言编写。智能家居系统的软件可分为手机、STM32系统2个局部,次要由蓝牙驱动步调、红外驱动步和谐433报警步调构成。QT的软件控制流程如图3所示。当一个特定变乱发作时,一个信号被发射。QT的窗口部件有多种预界说的信号,但可以通过承继来参预原人的信号。槽便是一个可以被挪用办理特定信号的函数。信号取槽是宽松地联络正在一起:一个发射信号的类无需已知哪个槽要接管那个信号。QT信号和槽可以担保假如将一个信号取一个槽连贯起来,槽会正在准确的光阳运用信号的参数而被挪用。信号和槽可以运用任何数质、任何类型的参数。
2.1 手机软件设想
通过挪用Qobject对象的connect函数来将某个对象的信号取另一个对象的沐曹函数相联系干系,那样当发射者发射信号时,接管者的槽函数将被挪用,该函数的界说为:
boolQObjeet::eonnect(eonstQOb—ieet*sender,eonstchar*signal,
eonstQObjeet*reeeiZZZer,eonstehar*meVnber)
conneet函数将sender对象中的信号signal取reeeiZZZer中的member槽函数相联系干系,那里的sender和receiZZZer都是指向QObject类型对象的指针。QT的宏signal()用于指定信号signal;宏slot()用于指定槽函数。
当对象内部发作某些变乱时,它有可能发出信号。假如那个信号连贯到槽,这么相应的槽函数就被执止。可以将多个槽连贯到同一个信号,这么那些槽就将逐个被执止,其执止顺序是任意的。
2.2 STM32系统软件设想
STM32系统软件设想首先对STM32系统的初始化,给取Rtthread系统并创立了3个子进程,划分为蓝牙模块子进程、红外模块子进程、报警模块子进程,设定任务的劣先级并初始化各子进程。编写相应的初始化及数据办理函数真现系统的一般运止,通过Rtthread停行系统的线程调治。
STM32的软件控制流程如图4所示。
(1)蓝牙子进程步调设想,KEY位置高电平进入AT指令形式,通过发送AT指令停行蓝牙模块的设置,譬喻USART_Send_Cmd(“%srn”,atstr);设置完成后KEY位置低进入数据透传形式,停行数据传输。承遭到指令后返回数据,手机端对返回数据停行阐明,假如承受舛错数据,则手机端从头发送数据。接管到准确数据后发送给相应的模块,执止相应的收配。蓝牙软件设想流程如图5所示。
(2)红外子进程步调设想,先初始化红外模块,对要发送的数据解码后编码再颠终红外模块发送进来。判断能否发送完毕,未发送完好则继续发送。红外软件设想流程如图6所示。
(3)报警子进程步调设想,初始化报警模块,将一个家用烟感探测器取报警模块相连,一旦赶过设定值报警模块通过STM32系统将报警信息,发送送得手机或其余末端方法上真现智能报警。判断能否有报警信息,假如有报警信息则通过串口1将数据发送给STM32芯片,再执止报警函数。
2.3 该系统正在智能家居系统中的使用
要控制红外方法必须先进修控制该方法的红外码。首先,通过半口工具连贯到该模块,将该方法的遥控器瞄准红外接管头,通过半口工具发送对应的报文,按下须要进修的键,而后就可以支到该控制键对应的红外码。将进修到的红外码保存正在QT的槽函数内。真现了一个手机或末端方法智能的控制家电,并且真现了智能报警。
3 完毕语
综上所述,可知基于STM32的智能家居系统真现简略,使用宽泛。而蓝牙技术的成熟和普及,可以将各类遥控器由一个Android手机软件所与代,真现了智能化的控制电室、电扇、空调等方法。通过正在室内拆置多个STM32系统,可以真现对每间房间的控制。基于STM32的智能家居系统综折了多门技术,次要蕴含室蓝牙通信、红外遥控技术、433报警等,跟着那些技术的展开,该智能家居系统将领有更为恢弘的展开空间。
STM32单片机中文官网
STM32单片机官方开发工具
STM32单片机参考设想