浅谈在高职教课改中基于STM32智能家居设计探索

2014-10-08 07:33:46乔大伟QIAODawei王丹丹WANGDandan
价值工程 2014年24期
关键词:文件夹智能家居单片机

乔大伟 QIAO Da-wei;王丹丹 WANG Dan-dan

(山东轻工职业学院,淄博 255300)

(Shandong Vocational College of Light Industry,Zibo 255300,China)

0 引言

上个世纪微软公司提出了“Venus plans”从而引发中国智能家居概念。目前,在物联网的全面发展新时期,智能家居行业具有巨大开发潜力。[1]在高等职业学校中主导实验平台依旧是8位内核的51类单片机。8位单片机以其结构简单,易于理解和操作的特点深入人心。STM32具有运算速度非常快,FLASH、RAM容量大,能操作SD卡等很多优势。在此,选取具有巨大开发潜力智能家居行业,通过利用STM32位单片机配合编制的相关程序,实现智能家居的基本功能,从而实现一个低端实用的智能家居系统,在整个搭建过程中讲授STM32的相关知识点,从而尝试探索新的职教课改之路。

1 设计思路

系统设计目标和原则:本课题的设计目的是实现一个简单的智能家居系统,能够在普通家庭中得到应用,因此在设计的时候遵循以下原则:①简单实用;②价格低廉;③稳定耐用;④可扩展性。文章所设计的智能家居系统由单片机和各种外设组成。单片机作为核心的处理芯片,通过其内部的丰富的接口,连接外围设备,外围器件通过输入信号或输出信号与实际的控制物品相连。其架构如图1所示。

从控制的方式上来看,系统框架分为本地控制单元和远程控制单元。本地控制单元的设计思路是通过接入触摸屏,由触摸屏上的人机交互界面实现;远程控制单元的设计思路可以通过架设Web服务器,远程网络登录网页,来控制系统接入的外设,也可以通过GSM模块,由移动终端通过短信的方式来控制。从功能上大致分为报警传感器(温度,湿度,火警,煤气)、家电控制、开关控制,灯光控制,家庭安全监控。

图1 智能家居系统框架

2 无线照明控制模块设计示例

无线照明在教学中是一个入门的很好经典实例,虽然还没有用到协议栈,但它具有数据发送、接收和用协议栈,而且代码容易学习,如果把这个模块掌握了,到后面的协议栈就比较方便学习。在此需要掌握ZigBee有关内容,ZigBee节点所属类别主要分三种,分别是协调器、路由器、终端。同一网络中至少需要一个协调器,也只能有1个协调器,负责各个节点16位地址分配(自动分配)。理论上可以连上65536个节点,组网方式千变万化。BasicRF软件文件中主要内容有三部分,如图2所示。

图2 BasicRF软件文件夹框架

图3 软件设计框架图

讲授思路简要叙述如下:

2.1 工程文件介绍

docs文件夹:主要内容是介绍BasicRF的特点、结构及使用,阅读这个文档就可以做Basic RF里面的实验了。

Ide文件夹:打开文件夹后会有三个文件夹,及一个cc2530_sw_1.eww工程,其中这个工程是三个实验例程工程的集合,期中包含无线点灯的实验工程。在IAR软件环境中打开,在workspace看到IdeSettings文件夹:是在每个基础实验的文件夹里面都会有的,它主要保存有学生自己的IAR环境里面的设置。

source文件夹:打开文件夹里面有apps文件夹和components文件夹;

Sourceapps文件夹:存放BasicRF三个实验的应用实现的源代码。

Sourcecomponents文件夹:包含着BasicRF的应用程序使用不同组件的源代码;在介绍Basic RF之前,来看看这个实验例程设计的大体结构,如图3所示Basic RF例程的软件设计框图,Hardware layer放在最底,是实现数据传输的基础。Hardware Abstraction layer它提供了一种接口来访问TIMER,GPIO,UART,ADC等。这些接口都通过相应的函数进行实现。

2.2 启动

①确保外围器件没有问题。②创建一个basicRfCfg_t的数据结构,并初始化其中的成员。③调用basicRfInit()函数进行协议的初始化,在basic_rf.c代码中可以找到uint8 basicRfInit(basicRfCfg_t*pRfConfig)。

函数功能:对Basic RF的数据结构初始化,设置模块的传输通道,短地址,PAD ID。

2.3 发送

①创建一个buffer,把Payload放入其中。②调用basicRfSendPacket()函数发送,并查看其返回值。pPayload指向发送缓冲区的指针length发送数据长度函数功能:给目的短地址发送指定长度的数据,发送成功刚返回SUCCESS,失败则返回FAILED。

2.4 接收

①上层通过basicRfPacketIsReady()函数来检查是否收到一个新数据包在basic_rf.c中可以找到uint8 basicRfPacketIsReady(void)函数功能:检查模块是否已经可以接收下一个数据,如果准备好刚返回TRUE。②调用basicRfReceive()函数,把收到的数据复制到buffer中。代码可以在basic_rf.c中可以找到uint8 basicRfReceive(uint8*pRxData,uint8 len,int16*pRssi)。

2.5 light_switch.c部分代码及解释

第 22~23行:关闭WeBee底板的LED2,开LED1。由于WeBee设计的LED电路是低电平点亮的,与TI不同,更符合以前学生学习单片机的习惯,所以halLedSet()置1是使灯熄灭。第26~27行:选择其中的一行,并把另外一行屏蔽掉;一个是实现发射按键信息的功能,另一个是接收按键信息并改变LED状态的功能。

3 总结

当前在高职教育课程改革中众多的老师和学生在共同探索一条可以终身学习之路,让学生们学以致用,以技能培养为学生学习的主旨、以设计的教学项目作为学生学习和研究的重点,老师重在引导学生,与学生一起去探索,把职业和教育融为一体,拓展职业教育的外延,向着终身教育发展。

[1]葛年明等.基于STM32的物联网开发应用系统设计[J].微型机与应用,2012(17).

[2]蒋立兵.基于STM32的智能家居控制系统的设计与开发.

[3]李文仲,段朝玉.ZigBee无线网络技术入门与实战,2007.

猜你喜欢
文件夹智能家居单片机
磁力文件夹
基于单片机的SPWM控制逆变器的设计与实现
电子制作(2019年13期)2020-01-14 03:15:28
基于单片机的层次渐变暖灯的研究
电子制作(2019年15期)2019-08-27 01:12:10
基于单片机的便捷式LCF测量仪
电子制作(2019年9期)2019-05-30 09:42:02
基于Zigbee的无线通信技术在智能家居中的应用
电子制作(2018年1期)2018-04-04 01:48:28
调动右键 解决文件夹管理三大难题
关于智能家居真正需求的探讨
工业设计(2016年10期)2016-04-16 02:44:05
TC一键直达常用文件夹
电脑迷(2015年1期)2015-04-29 21:24:13
Microchip推出两个全新PIC单片机系列
智能家居更贴心
科学生活(2015年3期)2015-01-03 09:41:18