辜渝傧

13037102709

027-87870986

教学实训

您当前的位置:首页 > 教学资源 > 实训方案 >

物联网智能家居实训||实验十 语音播报控制实验

发布者:唯众    布时间:2020-09-23 14:29:36    点击量:

实验十 语音播报控制实验

 
实验环境
 
软件环境:JDK1.6、SDK、ADT、Eclipse
 
硬件环境:DC5V2个、DC12V1个、节点板1块、ZIGBEE节点1个、ZIGBEE协调器1个、A9网关1块、语音播报模块1个
 
实验内容
 
       CC2530节点通过串口给语音播放模块发送文本,语音播放模块文本转换成语音并通过喇叭播放出来,A9通过ZIGBEE协调器发送文本或者命令给节点,节点处理后在发送相应的文本给语音播放模块,即可实现播放的内容。 
语音播报控制实验
实验原理
 
      唯众语音模块采用科大讯飞最新语音合成芯片XFS5152。本模块自带3W功放,真人发音,音质好,支持5种中英文男女、童声,音量实时可调,每次可播放4K字节的文本内容,支持多种编码格式,真正做到发送什么文本就播放什么声音。传感器使用通用2排7pin排针与节点底板连接,排针功能如图所示。 
语音播报控制实验原理
硬件接口原理
 
      如图3.19所示,XFS5152CE是一款高集成度的语音合成芯片,可实现中文,英文语音合成;并集成了语音编码,解码功能,可支持用户进行录音和播放。
语音识别控制实验原理图
图3.19
 
软件设计
 
1. CC2530语音播放流程图
 
CC2530语音播放流程图
 
2. CC2530语音播放软件
 
1. void GenericApp_Init( uint8 task_id )
 
2. {
 
3. GenericApp_TaskID = task_id;
 
4. GenericApp_NwkState = DEV_INIT;
 
5. GenericApp_TransID = 0;
 
6.
 
7. GenericApp_Rout_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
 
8. GenericApp_Rout_DstAddr.endPoint = GENERICAPP_ENDPOINT;
 
9. GenericApp_Rout_DstAddr.addr.shortAddr = 0x0000;
 
10.
 
11. GenericApp_Rout_epDesc.endPoint = GENERICAPP_ENDPOINT;
 
12. GenericApp_Rout_epDesc.task_id = &GenericApp_TaskID;
 
13. GenericApp_Rout_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&GenericApp_SimpleDesc;
 
14. GenericApp_Rout_epDesc.latencyReq = noLatencyReqs;
 
15. afRegister( &GenericApp_Rout_epDesc );
 
16.
 
17. aps_AddGroup(GENERICAPP_ENDPOINT, &Group_Rout);
 
18.
 
19. init_buzzer();
 
20. init_key();
 
21. init_sensor_io();
 
22. SensorId = *get_sensor_id(); 
 
23.
 
24. //初始化oled显示屏
 
25. oled_initial();
 
26. oled_disp_string(1,1,"武汉唯众智创科技");
 
27. oled_disp_string(3,1,"有限公司");
 
28. Delay_ms(500);
 
29.
 
30. //对传感器数据口P0.0 P0.1 P0.2 P0.3进行分类初始化
 
31. yuyin_trform("[m53][f1]欢迎使用[p100]唯众智创[p100]智能家居实践教学系统");
 
32. Delay_ms(500);
 
33. }
 
34.
 
35. static void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )//接受处理函数
 
36. {
 
37. RfPacket_t rf;
 
38. unsigned char irCmd[5];
 
39. osal_memcpy(rf.Buf,pkt->cmd.Data,sizeof(RfPacket_t));
 
40. if(rf.Pack.Head!='#' || rf.Pack.Tail!='$')
 
41. {
 
42. oled_clear_vertical(2);
 
43. oled_disp_string(3,1,"Recv error!");
 
44. return;
 
45. }
 
46. if(pkt->clusterId != SensorId) return;
 
47. switch(SensorId){
 
48. case S1_JDQ:
 
49. if(rf.Pack.Cmd[0] == 1){
 
50. set_p0_bit(1,1);
 
51. JdqOpenFlag = 1;
 
52. }else {
 
53. set_p0_bit(1,0);
 
54. }
 
55. break;
 
56. case S11_CK:
 
57. HalUARTWrite(0,rf.Pack.Data,rf.Pack.Len);
 
58. break;
 
59. case S10_WNHW:
 
60. if(rf.Pack.Data[1] == 1) //学习
 
61. {
 
62. oled_clear_vertical(2);
 
63. sprintf(Str2,"Study:%d",rf.Pack.Data[0]);
 
64. oled_disp_string(3,1,Str2);
 
65. InitIrCmd(irCmd,0x88,rf.Pack.Data[0],0,0); //发送后,模块闪烁提示学习
 
66. HalUARTWrite(0,irCmd,5);
 
67. }
 
68. if(rf.Pack.Data[1]==0){ //执行
 
69. oled_clear_vertical(2);
 
70. sprintf(Str2,"Control:%d",rf.Pack.Data[0]);
 
71. oled_disp_string(3,1,Str2);
 
72. InitIrCmd(irCmd,0x86,rf.Pack.Data[0],0,0); //发送后,模块闪烁提示学习
 
73. HalUARTWrite(0,irCmd,5);
 
74. }
 
75. break;
 
76. case S12_DZ:
 
77. LedDisplayLen = rf.Pack.Len; //有效字节个数,一个汉字2个字节
 
78. if(LedDisplayLen > sizeof(rf.Pack.Data)){
 
79. LedDisplayLen = sizeof(rf.Pack.Data);
 
80. }
 
81. osal_memcpy(TempBuf,rf.Pack.Data,LedDisplayLen);
 
82. TempBuf[LedDisplayLen]='\0';
 
83. //ChineseUpdate(TempBuf); //更新字模
 
84. oled_clear_vertical(2);
 
85. sprintf(Str2,"Update:%d word",LedDisplayLen/2);
 
86. oled_disp_string(3,1,Str2);
 
87. break;
 
88. case S14_485:
 
89. break;
 
90. case S15_YYBF:
 
91. if(rf.Pack.Cmd[0] == 'Y' && rf.Pack.Cmd[1] == 'S')
 
92. {
 
93. yuyin_trform("主人 您好");
 
94.
 
95. if(rf.Pack.Cmd[0] == 'Z' && rf.Pack.Cmd[1] == 'J')
 
96. {
 
97. yuyin_trform("主人 再见");
 
98. }
 
99. if(rf.Pack.Cmd[0] == 'R' && rf.Pack.Cmd[1] == 'E')
 
100. {
 
101. yuyin_trform("请再说一遍");
 
102. }
 
103. if(rf.Pack.Cmd[0] == 'W' && rf.Pack.Cmd[1] == 'D')
 
104. {
 
105. char wendu[]="当前温度  摄氏度";
 
106. wendu[8] = rf.Pack.Data[0]/10+0x30;
 
107. wendu[9] = rf.Pack.Data[0]%10+0x30;
 
108. yuyin_trform((uchar*)wendu);                    
 
109. }
 
110. if(rf.Pack.Cmd[0] == 'S' && rf.Pack.Cmd[1] == 'D')
 
111. {
 
112. char shidu[]="当前湿度  ";
 
113. shidu[8] = rf.Pack.Data[0]/10+0x30;
 
114. shidu[9] = rf.Pack.Data[0]%10+0x30;
 
115. yuyin_trform((uchar*)shidu); 
 
116. }
 
117. if(rf.Pack.Cmd[0] == 'K' && rf.Pack.Cmd[1] == 'Q')
 
118. {
 
119. char kongqi[]="空气质量  ";
 
120. kongqi[8]=rf.Pack.Data[0]/10+0x30;
 
121. kongqi[9]=rf.Pack.Data[0]%10+0x30;
 
122. yuyin_trform((uchar*)kongqi); 
 
123. }
 
124. if(rf.Pack.Cmd[0] == 'G' && rf.Pack.Cmd[1] == 'Z')
 
125. {
 
126. char guangzhao[]="光照度  ";
 
127. guangzhao[6]=rf.Pack.Data[0]/10+0x30;
 
128. guangzhao[7]=rf.Pack.Data[0]%10+0x30;
 
129. yuyin_trform((uchar*)guangzhao); 
 
130. }
 
131. if(rf.Pack.Cmd[0] == 'S' && rf.Pack.Cmd[1] == 'F')
 
132. {
 
133. yuyin_trform("已设防");
 
134. }
 
135. if(rf.Pack.Cmd[0] == 'C' && rf.Pack.Cmd[1] == 'F')
 
136. {
 
137. yuyin_trform("已撤防");
 
138. }                 
 
139. if(rf.Pack.Cmd[0] == 'R' && rf.Pack.Cmd[1] == 'P')
 
140. {
 
141. yuyin_trform("未注册");
 
142. }
 
143. if(rf.Pack.Cmd[0] == 'K' && rf.Pack.Cmd[1] == 'M')
 
144. {
 
145. yuyin_trform("刷卡成功,已开门");
 
146. }
 
147. if(rf.Pack.Cmd[0] == 'R' && rf.Pack.Cmd[1] == 'Q')
 
148. {
 
149. yuyin_trform("有人入侵");
 
150.
 
151. break;
 
152. }
 
153. rf.Pack.Sid[0] = 0;
 
154. rf.Pack.Data[1] = 0xFF;
 
155. }
 
156.
 
157. void yuyin_trform(uint8 *HZdata)
 
158. {
 
159. unsigned  char Frame_Info[100]; 
 
160. unsigned  int  HZ_Length;  
 
161. HZ_Length =strlen((char*)HZdata); 
 
162. Frame_Info[0] = 0xFD ; 
 
163. Frame_Info[1] = 0x00 ;
 
164. Frame_Info[2] = HZ_Length+4; 
 
165. Frame_Info[3] = 0x01 ;
 
166. Frame_Info[4] = 0x01; 
 
167. Frame_Info[HZ_Length+5] = 0x0D;
 
168. Frame_Info[HZ_Length+6] = 0x0A;
 
169. memcpy(&Frame_Info[5], HZdata, HZ_Length);
 
170. HalUARTWrite(0,Frame_Info,7+HZ_Length);171. }
 
3. Android端软件代码:
 
语音播报控制实验Android端软件代码语音播报控制实验Android端软件代码
 
 
 
实验步骤
 
1) 将ZIGBEE协调器插在A9网关上
 
2) 将ZIGBEE节点插在节点底板上
 
3) 将语音播放模块插在节点底板上
 
4) 用DC5V电源给A9网关供电,同时按下电源键3S开启网关
 
5) 用DC5V电源给节点底板供电
 
6) 打开语音播报传感器节点 ;
 
7) 打开A9网关,并打开指定APP ;
 
8) 点击 来设置 串口的波特率和串口号,并设置wifi服务器的端口号(默认情况下,wifi服务器自动开启);
 
9) 点击智能监控模块 ,再环境检测视图中 ,温湿度检测,空气质量检测中,点击小喇叭按钮 ,则可播报当前温湿度和空气质量指数。
 
 
 

唯众物联网工程应用实训装置带你快速掌握物联网关键技术

唯众物联网实训室工程应用装置
一、产品名称:物联网工程应用实训装置
二、产品型号和技术规格
1.  产品型号:WZ-IOT-ATP
2.  外型尺寸:
桌面式操作台1个操作台底座1个
3.  电压/功率:220V
4.  配套设备
实训台:
温湿度传感器1个
人体红外监测器1个
高频RFID阅读器1个
光照强度检测器1个
可燃气体监测器1个
RGB三色灯执行器1个
LED显示屏2个
智能语音播放设备1个
继电器1个
 
       物联网教学实训主要用于对物联网核心课程的知识点学习,能够服务于相关课程的实验和实训需求。
       核心课程主要针对学科基础技术的培养,掌握物联网概论,传感器和RFID 等感知设备认知和开发,ZigBee/Wi-Fi/蓝牙等无线网络的配置、维护和开发,物联网互联接入及存储,物联网应用层软件开发,物联网产品整合等基本知识。
       核心课程采用全模块化的实验箱教学产品进行实验,具备优良的教学实验特性:全模块化的设计、开放式的硬件接口、开源的实验代码、完整的教学资源、贴心的售后服务。
       基于ARM Cortex-M4核心的通信网关,支持无线节点模块的双向连接及组网,与配套“可视化编辑器”和“可视化控制器”进行配置和控制。物联网关可以管理不同协议的无线节点模块,并能将多个无线节点模块视作不同设备,将无线节点模块的数据转换为TCP网络通信进行传输,网关同无线节点模块可以互通互联,轻松构建物联网络,共同构成物联应用开发平台。通过本物联网平台,可以迅速降低物联网应用的开发成本和开发时间,开发者即便不会编程,也可以在一两天之内,就迅速使用本平台开发搭建出自己的物联网应用。
       通过电脑PC端可直接以“可见即可得”的方式在此工具上生成不同的设备操作界面,支持指示灯、按键、图片集合、变量视窗、图文链接等五种可视化控件。所有控件的动作都可以直接反应到实际的物联设备(即无线节点模块)上。界面生成后,可以直接导入App使用,而不需要重新编译或安装App。
       通过物联网关、可视化控制器、可视化界面生成器编辑器、万纳模组、物联网传感器/执行器以及配套物联网连件连接件,师生不仅可以完成出基于物联网、远程访问、设备联动等功能的物联网实训项目,还可以迅速开发物联网商业产品\项目,如空气监测仪、电气设备在线监测器等等,并随时实现不同设备间的联动,而这些开发过程,基于本系统的可视化开发工具,可以做到零编程实现物联网应用系统。
       支持家庭常用的各种无线协议(红外、射频),兼容市面绝大多数品牌的空调、电视机、灯光、安防、窗帘等等家电设备,因此可以直接当做一套完备的智能家居系统进行使用,并集成了摄像头功能,可以直接在App中使用摄像头。
       平台所有设备采用模块化、集散化、工业化的设计模式,每个模块都为独立工作单元;模块均接近实际应用系统,能够容纳2-3个学生同时实训,可完成工程项目应用开发系统中硬件设备的安装、布线与调试,完成设备间的无线组网,既具有展示型又具有实操性。能够组建具有行业特色的物联网智能家居实训项目,确保学生可利用设备搭建真实工程项目。
 

唯众物联网工程应用实训装置带你快速掌握物联网关键技术

唯众物联网实训室工程应用装置
一、产品名称:物联网工程应用实训装置
二、产品型号和技术规格
1.  产品型号:WZ-IOT-ATP
2.  外型尺寸:
桌面式操作台1个操作台底座1个
3.  电压/功率:220V
4.  配套设备
实训台:
温湿度传感器1个
人体红外监测器1个
高频RFID阅读器1个
光照强度检测器1个
可燃气体监测器1个
RGB三色灯执行器1个
LED显示屏2个
智能语音播放设备1个
继电器1个
 
       物联网教学实训主要用于对物联网核心课程的知识点学习,能够服务于相关课程的实验和实训需求。
       核心课程主要针对学科基础技术的培养,掌握物联网概论,传感器和RFID 等感知设备认知和开发,ZigBee/Wi-Fi/蓝牙等无线网络的配置、维护和开发,物联网互联接入及存储,物联网应用层软件开发,物联网产品整合等基本知识。
       核心课程采用全模块化的实验箱教学产品进行实验,具备优良的教学实验特性:全模块化的设计、开放式的硬件接口、开源的实验代码、完整的教学资源、贴心的售后服务。
       基于ARM Cortex-M4核心的通信网关,支持无线节点模块的双向连接及组网,与配套“可视化编辑器”和“可视化控制器”进行配置和控制。物联网关可以管理不同协议的无线节点模块,并能将多个无线节点模块视作不同设备,将无线节点模块的数据转换为TCP网络通信进行传输,网关同无线节点模块可以互通互联,轻松构建物联网络,共同构成物联应用开发平台。通过本物联网平台,可以迅速降低物联网应用的开发成本和开发时间,开发者即便不会编程,也可以在一两天之内,就迅速使用本平台开发搭建出自己的物联网应用。
       通过电脑PC端可直接以“可见即可得”的方式在此工具上生成不同的设备操作界面,支持指示灯、按键、图片集合、变量视窗、图文链接等五种可视化控件。所有控件的动作都可以直接反应到实际的物联设备(即无线节点模块)上。界面生成后,可以直接导入App使用,而不需要重新编译或安装App。
       通过物联网关、可视化控制器、可视化界面生成器编辑器、万纳模组、物联网传感器/执行器以及配套物联网连件连接件,师生不仅可以完成出基于物联网、远程访问、设备联动等功能的物联网实训项目,还可以迅速开发物联网商业产品\项目,如空气监测仪、电气设备在线监测器等等,并随时实现不同设备间的联动,而这些开发过程,基于本系统的可视化开发工具,可以做到零编程实现物联网应用系统。
       支持家庭常用的各种无线协议(红外、射频),兼容市面绝大多数品牌的空调、电视机、灯光、安防、窗帘等等家电设备,因此可以直接当做一套完备的智能家居系统进行使用,并集成了摄像头功能,可以直接在App中使用摄像头。
       平台所有设备采用模块化、集散化、工业化的设计模式,每个模块都为独立工作单元;模块均接近实际应用系统,能够容纳2-3个学生同时实训,可完成工程项目应用开发系统中硬件设备的安装、布线与调试,完成设备间的无线组网,既具有展示型又具有实操性。能够组建具有行业特色的物联网智能家居实训项目,确保学生可利用设备搭建真实工程项目。
 


上一篇:物联网智能家居实训||实验九 语音识别控制实验

下一篇:物联网智能家居实训||实验十一 红外插座控制实验