Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
网络学习营
【网络编程学习】ylz0923的基于OneNet 终端检测以及TTS语音合成
发布于 2018-08-16 22:54:04 浏览:1589
订阅该版
* 本帖最后由 ylz0923 于 2018-8-16 23:02 编辑 * 开发板: 正点原子F407 rt-thread版本: 3.1.0 开发工具: MDK5.25 BSP: stm32f4xx-HAL 作业: 基于 OneNet 的智能家居系统,在 OneNet 上创建应用,能够实现如下功能: * 通过 OneNet 页面控制灯的开关; * 家里的温湿度信息实时展示; * 通过传感器监测,当监测到事件,向云端发送信息; [ 如果缺少传感器硬件,自己考虑以其他方式替代] * 其他功能自由发挥; **1 准备工作****1.1 开启 Paho MQTT 软件包**打开 env 工具输入 menuconfig 按照下面的路径开启 Paho MQTT 软件包 RT-Thread online packages IoT - internet of things ---> Paho MQTT: Eclipse Paho MQTT C/C++ client for Embedded platforms ---> 进入 Paho MQTT 软件包的配置菜单按下图所示配置![FastAdmin](http://ci.rt-thread.com/3488/site/tutorial/network/mqtt/figures/mqtt1.png)**检查是否配置成功**系统运行起来后,在 msh 命令行下输入 mq_start 命令即可让示例代码运行。msh> mq_start ![捕获.JPG](/uploads/201808/16/222457detgdlfzvh8s13ot.jpg) **1.2开启 onenet 软件包**打开 env 工具输入 menuconfig 按照下面的路径开启 onenet 软件包RT-Thread online packages IoT - internet of things ---> OneNET: China Mobile OneNet cloud SDK for RT-Thread 进入 onenet 软件包的配置菜单按下图所示配置,里面的信息依据自己的产品和设备的**实际情况**填写![捕获.JPG](/uploads/201808/16/222717idkzka3o394a49a4.jpg)** **检查是否配置成功****系统运行起来后,首先在 msh 命令行下输入 onenet_mqtt_init 命令初始化 mqtt 客户端,然后输入onenet_upload_cycle 命令运行 OneNET 示例代码 。![捕获.JPG](/uploads/201808/16/223149o682xx5zyc776v97.jpg)1.3 onenet端配置请看[https://open.iot.10086.cn/doc/art398.html#97](https://open.iot.10086.cn/doc/art398.html#97)![捕获.JPG](/uploads/201808/16/224405ztrtvdfd5vrjfjcc.jpg)2完成上传数据采集和接受数据解析2.1数据上传,cpu温度和使用率```static void onenet_upload_entry(void *parameter) { double value = 0; rt_uint8_t major = 0, minor= 0; while (1) { value = Get_Temprate() / 100; if (onenet_http_upload_digit("temperature", value) < 0) { log_e("upload has an error, stop uploading"); break; } cpu_usage_get(&major, &minor); if (onenet_http_upload_digit("percentage", major) < 0) { log_e("upload has an error, stop uploading"); break; } rt_thread_delay(rt_tick_from_millisecond(5 * 1000)); } }```2.2 数据解析,开启关闭led```/* onenet mqtt command response callback function */ static void onenet_cmd_rsp_cb(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size) { char res_buf[] = { "cmd is received!
" }; log_d("recv data is %.*s
", recv_size, recv_data); if(0 == strncmp(recv_data, "led", strlen("led"))) { if(0 == strncmp(recv_data + 4, "on", strlen("on"))) { rt_pin_mode(22, PIN_MODE_OUTPUT); rt_pin_write(22, 0); } if(0 == strncmp(recv_data +4 , "off", strlen("off"))) { rt_pin_mode(22, PIN_MODE_OUTPUT); rt_pin_write(22, 1); } } /* user have to malloc memory for response data */ *resp_data = (uint8_t *) ONENET_MALLOC(strlen(res_buf)); strncpy(*resp_data, res_buf, strlen(res_buf)); *resp_size = strlen(res_buf); } ```3 TTS语音合成3.1 云端创建语音应用文档请看[https://ai.baidu.com/docs#/Begin/top](https://ai.baidu.com/docs#/Begin/top)![捕获.JPG](/uploads/201808/16/224701cdxdde18xoiizx3i.jpg)3.2增加text2audio命令行指令```static int baidu_text2audio(rt_uint8_t *text, rt_uint8_t *filename) { rt_uint8_t *url = rt_malloc(URL_SIZE); rt_snprintf(url, URL_SIZE, "http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=24.d753b7aaa592a7aaf881d973b5c888d9.2592000.1536941581.282335-11682789&tex=%s&vol=9&per=0&spd=5&pit=5&aue=3", urlencode(urlencode(text))); rt_kprintf(url); return webclient_get_file(url, filename); } int text2audio(int argc, rt_uint8_t **argv) { if(argc != 3) { rt_kprintf("usage: text2audio text audio_filename!"); return -1; } return baidu_text2audio(argv[1], argv[2]); } MSH_CMD_EXPORT(text2audio, Baidu cloud text to audio);``` 3.3测试验证![捕获.JPG](/uploads/201808/16/225351fzviugpzpie1gh9i.jpg)
查看更多
0
个回答
默认排序
按发布时间排序
暂无答案,快来添加答案吧
撰写答案
登录
注册新账号
关注者
0
被浏览
1.6k
关于作者
ylz0923
这家伙很懒,什么也没写!
提问
6
回答
4
被采纳
0
关注TA
发私信
相关问题
1
【LWIP学习营】第一关开发环境搭建
2
LWIP学习营第一周入门移植问题汇总贴
3
【LWIP学习营】f407+lan8720A小结
4
【LwIP学习营】【第一周】仅零散记录,无主题
5
【LWIP学习营】正点原子探索者F407+LAN8720第一周小结
6
【LwIP学习营】【第一周】网络通信基础及实现TCP 聊天客户端
7
【LwIP学习营】【第一周】LWIP移植
8
【LwIP学习营】【第一周】LWIP移植
9
【LwIP学习营】【第一周】开发板适配
10
【LwIP学习营】【第一周】环境搭建和配置验证
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
2
RT-Thread EtherKit开源以太网硬件正式发布
3
如何在master上的BSP中添加配置yml文件
4
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
5
RT-Thread 发布 EtherKit开源以太网硬件!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
MicroPython
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
15
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部