智能语音家居系统设计与实现
实验题目:智能语音家居系统
1. 课程简要信息
课程名称:(嵌入式系统原理)
课程学时:(72 学时)
项目学时:(12 学时)
适用专业:(物联网工程、计算机科学与技术)
学生年级:(本科三年级,第六学期)
2. 实验内容与任务
1)掌握 ARM 开发板的原理以及使用;
2)掌握各类外设的驱动程序及应用方法;
3)学会利用嵌入式开发板收集各类传感器数据并利用 WIFI 模块将数据上传云平台;
4)学会在云平台上创建自己的产品和设备,并利用数据可视化实时展示收集来的数据;
5)学会利用云平台控件控制各类硬件设备;
6)学会利用微信小程序开发移动端应用程序访问云平台,实现实时监测数据的获取和硬件控制。
3. 实验过程及要求
1)查阅相关资料,对智能家居系统进行需求分析;
2)设计完成智能家居系统系统总体结构图;
3)自主查阅各类芯片以及器件的参考资料、文献、手册,对需要用到的器件进行选择;
4)设计一个智能家居系统,利用温湿度、光照、烟雾、火焰传感器模块实现对室内环境情况的监测,并将数据上传到云平台。
5)利用语音模块,通过单片机主控芯片实现对灯光的开关状态以及光照强弱的语音控制;
6)利用手势识别模块实现对窗帘开关状态的手势控制;
7)当收集到的烟雾浓度,火焰等数据信息超过阈值时可以进行声光报警,并通过 GSM 通信模块给手机发送报警信息;
8)设计微信小程序,利用 API 接口接入云平台,实现通过移动端显示传感模块获取的各类数据,以及控制各类家居设备的功能。
9)小组协作完成一个智能家居系统从无到有的设计实现过程,并学会综合应用所学知识分析解决实际问题;
10)撰写设计总结报告,通过分组展示,取长补短,学习交流不同设计实现方案的优缺点。
4. 相关知识及背景
当今社会,随着物联网技术的广泛使用,生活工作中的各个领域都实现了一定程度的智能化。因此,运用物联网技术设计并实现一个实用的智能家居系统的实验案例具有很强的实用性,涉及到嵌入式系统,传感器、计算机网络、云平台、数据可视化、微信小程序开发等相关知识与技术方法。有助于学生将所学专业知识融会贯通,并应用于生活实践中。
5. 实验环境条件
实验所需设备包括硬件设备、软件工具和云平台有:
(1)硬件设备➢ STM32F103ZET6 控制器➢ LD3320 语音识别模块➢ ESP8266 无线模块➢ 火焰模块➢ MQ-4 天然气传感器模块➢ BH1750 数字光照传感模块➢ DHT11 温湿度传感器➢ 步进电机➢ 继电器➢ 语音播报模块➢ LCD 显示屏(2)软件工具➢ Keil➢ 微信开发者工具➢ 串口调试工具➢ FLYMCU 烧写工具(3)云平台➢ OneNET 云平台
6. 教学目标与目的
在较为完整的智能家居项目实现过程中引导学生掌握嵌入式系统原理及应用、传感器技术,计算机网络通信技术、微信小程序实现技术、数据可视化技术等和物联网技术息息相关的技术领域。引导学生利用软件工程思想对项目进行需求分析和设计,并根据需要选择元器件,构建测试环境与条件,最后对成品电路进行测试,并针对不足之处进行完善和改进。
7. 教学设计与实施过程
该系统使用STM32单片机为主控制器实现智能语音家居系统,基于LD3320非特定人声语音识别技术,通过接口电路外接功能模块实现家用电器的智能化自动控制,使用ESP8266模块与OneNET云平台进行数据交换,微信小程序利用OneNET提供的接口,通过请求Web API获取或下发JSON数据,达到用户可以在手机端通过微信小程序界面对家居中的各类电器进行远程控制的效果。本次实验项目共占用10个学时。
第一阶段(2课时):利用ESP8266连接OneNET云平台
实验目的:
(1)熟悉ESP8266;(2)学会在OneNET云平台上创建自己的产品和设备。
实验步骤:
(1)在OneNET云平台上创建自己的产品和设备。保存好产品密钥和设备ID。

(2)使用串口助手连接OneNET并且传输数据。

(3)在云平台上看到上传的数据

(4)实现数据可视化

第二阶段(2课时):获取传感器数据并上传云平台
实验目的:
(1)学会利用stm32收集传感器数据;(2)学会利用stm32和WIFI模块上传数据到云平台;(3)学会利用数据可视化实时展示收集来的数据。
实验步骤:
(1)利用STM32获取温湿度传感器的数据,打印在串口或者显示在LCD。

(2)利用WIFI模块连接云平台,并将数据上传至云端

云平台设备收集到的实时温度数据如下图:

(3)利用可视化组件对信息进行展示

第三阶段(2课时):利用云平台下发数据
实验目的:
(1)学会利用stm32收集不同传感器数据;(2)学会利用LCD同步显示数据信息;(3)学会利用云平台控件控制开发板上的器件。
实验步骤:
(1)利用STM32获取光照等不同传感器的数据。

(2)将获取到的各类传感器数据信息显示在LCD上。
(3)利用云平台按键控件控制开发板上LED的开关和强度。

第四阶段(2课时):语音模块
实验目的:
(1)学会利用LD3320语音模块接收语音指令控制单片机动作(2)学会利用语音播报模块和扬声器配合实现人机对话。
实验步骤:
(1)利用STM32获取LD3320语音模块接收到的语音指令。

(2)利用语音播报模块和扬声器配合实现人机对话。
(3)利用接收到的语音指令控制相应硬件动作。
第五阶段(2课时):微信小程序接入云平台
实验目的:
(1)熟悉微信开发者工具开发环境;(2)学会开发简单的微信小程序界
面;(3)学会利用微信小程序接入云平台对器件进行控制。
实验步骤:
(1)使用微信开发者工具开发微信小程序控制界面。

(2)利用微信小程序接入 OneNET 云平台获取数据流。
var that = this wx.request({ url: "https://api.heclouds.com/devices/900884096/datapoints" //将请求行中的数字换成自己的设备 ID header: "api-key" "**********ETj2gEN=RSw=" //自己的 api-key } data: limit: 1 } method: "GET",
success: function (e) { console.log(e.data.data) //此处打印 GET 回来的 json 数据 that.setData({ temperature: e.data.data.datastreams[0].datapoints[0].value, light: e.data.data.datastreams[1].datapoints[0].value, humidity : e.data.data.datastreams[2].datapoints[0].value, }) } });
(3)利用微信小程序接入云平台上传数据流并实现开发板硬件控制。
kai:function(){const apikey "**************=RSw="//自己的 api-keyconst devicesid '900884096'//自己的设备号let data={"datastreams": [{"id": "led","datapoints":[{"value": 132}]}//led 是数据流的名称,value 是要传上去的数值]}//按钮发送命令控制硬件wx.request({url:'https://api.heclouds.com/devices/900884096/datapoints'header: {'content-type 'application/json''api-key':apikey},method: 'POST'data: JSON.stringify(data),//data 数据转换成 JSON 格式success(res){console.log("成功",res.data)fail(res){console.log("失败",res)}
实验目的:
(1)学会利用手势识别、GSM、LCD显示屏等模块完善整个智能家居系统功能;(2)小组展示讨论,取长补短,互通有无,进一步改进完善系统。
8. 实验原理及方案
1)系统结构

图 1 系统结构图
2)实现方案

图 2 实现方案
该系统硬件以 STM32F103ZET6 控制器为核心,LD3320 语音识别模块为辅助,ESP8266 无线模块与云平台服务器协作,进行信息反馈和远程操作。一方面,将传感器采集到的所有数据上传至物联网云平台,用户利用客户端的微信小程序对智能家居进行远程控制,另一方面,用户在室内也可通过语音识别模块、手势识别模块对家居设备进行控制。除此之外,采集到的数据将会与数据阈值作比较,如果出现异常,语音播报模块就会发出相应的报警,同时用户手机端也会收到对应的报警信息。
9. 实验报告要求
设计报告需要反映以下工作:
1)需求分析通过查找资料,对智能家居系统进行功能需求分析、性能需求分析和可行性分析。
2)器件选择依据系统需求分析,合理选择器件,同时兼顾可靠性,成本、体积和功耗等问题。
3)系统总体设计依据需求分析,设计出系统总体框图,明确各个功能模块的关系和位置。
4)系统硬件设计依据系统总体设计框图,对各个模块的硬件电路进行详细设计并搭建好实物电路。
5)系统软件设计编写主控程序和各个功能模块的驱动程序。
6)系统运行测试
针对不同情况设计测试用例,并测试验证系统运行结果是否如预期。如有不符的地方及时进行修正。
7)项目总结对系统设计实现过程中遇到的难题和解决的方法,整个学习过程的收获,以及存在的不足和日后可以改进的地方等等进行总结。
10. 考核要求与方法
考核包括对整个系统设计实现过程的考核评分标准如表3所示。
表3 考核评分标准
| 项目 | 分值 (%) |
| 需求分析是否清晰 | 10 |
| 器件选择是否合适 | 10 |
| 系统实物搭建情况 | 30 |
| 系统运行情况 | 30 |
| 自主创新 | 10 |
| 设计报告 | 10 |
11. 项目特色或创新
项目的特色在于:
-
通过一个完整的项目开发,让学生熟悉一个实用智能系统的开发过程,培养学习成就感的同时因为以后的毕业设计打下基础。
-
实际项目开发涉及到专业知识的方方面面,将嵌入式系统、传感器技术、通信技术,网络技术,前端微信小程序开发,甚至 Gitee 代码协作平台的使用结合在一起,实现知识融会贯通,活学活用。
参赛信息表
| 案例提供单位 | 榆林学院 | 相关专业 | 物联网工程 | |||
| 设计者姓名 | 高燕 | 电子邮箱 | yulinqaoyan@126.com | |||
| 移动电话 | 18909125518 | 通讯地址 | 陕西省榆林市榆林学院信息工程学 | |||
| 设计者姓名 | 封蕾 | 电子邮箱 | 99982753@qq.com | |||
| 移动电话 | 17792178815 | 通讯地址 | 陕西省榆林市榆林学院信息工程学 | |||
| 设计者姓名 | 田建学 | 电子邮箱 | 327046127@qq.com | |||
| 移动电话 | 18991912488 | 通讯地址 | 陕西省榆林市榆林学院信息工程学 | |||
| 相关课程名称 | 嵌入式系统原理 | 学生年级 | 本科三年级 | 学时(课内+课外) | 12 | |
| 支撑条件 | 仪器设备 | 嵌入式开发板 | ||||
| 软件工具 | Keil、微信开发者工具 | |||||
| 主要器件 | 各类传感器、语音识别模块、无线传输模块、步进电机、继电器 | |||||