乔大伟QIAODa-wei曰王丹丹WANGDan-dan
(山东轻工职业学院,淄博255300)
(ShandongVocationalCollegeofLightIndustry,Zibo255300,China)
摘要:文章的目的是实现一个低端实用的智能家居系统,核心是利用STM32位单片机配合编制的相关程序实现智能家居的基本功能。
Abstract:Thepurposeofthearticleistoimplementapracticallow-endsmarthomesystem,andthecoreistheuseofSTM32bitmicrocontrollerforassociatingtheprogrammingandrealizingthebasicfunctionsofsmarthome.
关键词:职业教育;STM32;Zigbee;智能家居
Keywords:vocationaleducation;STM32;Zigbee;smarthome
中图分类号:TP39文献标识码院A文章编号院1006-4311(2014)24-0227-02
0引言
上个世纪微软公司提出了“Venusplans”从而引发中国智能家居概念。目前,在物联网的全面发展新时期,智能家居行业具有巨大开发潜力。[1]在高等职业学校中主导实验平台依旧是8位内核的51类单片机。8位单片机以其结构简单,易于理解和操作的特点深入人心。STM32具有运算速度非常快,FLASH、RAM容量大,能操作SD卡等很多优势。在此,选取具有巨大开发潜力智能家居行业,通过利用STM32位单片机配合编制的相关程序,实现智能家居的基本功能,从而实现一个低端实用的智能家居系统,在整个搭建过程中讲授STM32的相关知识点,从而尝试探索新的职教课改之路。
1设计思路
系统设计目标和原则:本课题的设计目的是实现一个简单的智能家居系统,能够在普通家庭中得到应用,因此在设计的时候遵循以下原则:淤简单实用;于价格低廉;盂稳定耐用;榆可扩展性。文章所设计的智能家居系统由单片机和各种外设组成。单片机作为核心的处理芯片,通过其内部的丰富的接口,连接外围设备,外围器件通过输入信号或输出信号与实际的控制物品相连。其架构如图1所示。
从控制的方式上来看,系统框架分为本地控制单元和远程控制单元。本地控制单元的设计思路是通过接入触摸屏,由触摸屏上的人机交互界面实现;远程控制单元的设计思路可以通过架设Web服务器,远程网络登录网页,来控制系统接入的外设,也可以通过GSM模块,由移动终端通过短信的方式来控制。从功能上大致分为报警传感器(温度,湿度,火警,煤气)、家电控制、开关控制,灯光控制,家庭安全监控。
2无线照明控制模块设计示例
无线照明在教学中是一个入门的很好经典实例,虽然还没有用到协议栈,但它具有数据发送、接收和用协议栈,而且代码容易学习,如果把这个模块掌握了,到后面的协议栈就比较方便学习。在此需要掌握ZigBee有关内容,ZigBee节点所属类别主要分三种,分别是协调器、路由器、终端。同一网络中至少需要一个协调器,也只能有1个协调器,负责各个节点16位地址分配(自动分配)。理论上可以连上65536个节点,组网方式千变万化。BasicRF软件文件中主要内容有三部分,如图2所示。
讲授思路简要叙述如下:
2.1工程文件介绍
docs文件夹:主要内容是介绍BasicRF的特点、结构及使用,阅读这个文档就可以做BasicRF里面的实验了。Ide文件夹:打开文件夹后会有三个文件夹,及一个cc2530_sw_1.eww工程,其中这个工程是三个实验例程工程的集合,期中包含无线点灯的实验工程。在IAR软件环境中打开,在workspace看到Ide\Settings文件夹:是在每个基础实验的文件夹里面都会有的,它主要保存有学生自己的IAR环境里面的设置。
source文件夹:打开文件夹里面有apps文件夹和components文件夹;
Source\apps文件夹:存放BasicRF三个实验的应用实现的源代码。
Source\components文件夹:包含着BasicRF的应用程序使用不同组件的源代码;在介绍BasicRF之前,来看看这个实验例程设计的大体结构,如图3所示BasicRF例程的软件设计框图,Hardwarelayer放在最底,是实现数据传输的基础。HardwareAbstractionlayer它提供了一种接口来访问TIMER,GPIO,UART,ADC等。这些接口都通过相应的函数进行实现。
2.2启动
淤确保外围器件没有问题。于创建一个basicRfCfg_t的数据结构,并初始化其中的成员。盂调用basicRfIni(t)函数进行协议的初始化,在basic_rf.c代码中可以找到uint8basicRfIni(tbasicRfCfg_t*pRfConfig)。函数功能:对BasicRF的数据结构初始化,设置模块的传输通道,短地址,PADID。
2.3发送
淤创建一个buffer,把Payload放入其中。于调用basicRfSendPacke(t)函数发送,并查看其返回值。pPayload指向发送缓冲区的指针length发送数据长度函数功能:给目的短地址发送指定长度的数据,发送成功刚返回SUCCESS,失败则返回FAILED。
2.4接收
淤上层通过basicRfPacketIsReady()函数来检查是否收到一个新数据包在basic_rf.c中可以找到uint8basicRfPacketIsReady(void)函数功能:检查模块是否已经可以接收下一个数据,如果准备好刚返回TRUE。于调用basicRfReceive()函数,把收到的数据复制到buffer中。代码可以在basic_rf.c中可以找到uint8basicRfReceive(uint8*pRxData,uint8len,int16*pRssi)。
2.5light_switch.c部分代码及解释
第22耀23行:关闭WeBee底板的LED2,开LED1。由于WeBee设计的LED电路是低电平点亮的,与TI不同,更符合以前学生学习单片机的习惯,所以halLedSe(t)置1是使灯熄灭。第26耀27行:选择其中的一行,并把另外一行屏蔽掉;一个是实现发射按键信息的功能,另一个是接收按键信息并改变LED状态的功能。
3总结
当前在高职教育课程改革中众多的老师和学生在共同探索一条可以终身学习之路,让学生们学以致用,以技能培养为学生学习的主旨、以设计的教学项目作为学生学习和研究的重点,老师重在引导学生,与学生一起去探索,把职业和教育融为一体,拓展职业教育的外延,向着终身教育发展。
参考文献:
[1]葛年明等.基于STM32的物联网开发应用系统设计[J].微型机与应用,2012(17).
[2]蒋立兵.基于STM32的智能家居控制系统的设计与开发.
[3]李文仲,段朝玉.ZigBee无线网络技术入门与实战,2007.