专栏首页腾讯云IoTAIoT应用创新大赛-EVB_AIOT套件使用最新sdk对接腾讯云物联网平台成功
原创

AIoT应用创新大赛-EVB_AIOT套件使用最新sdk对接腾讯云物联网平台成功

EVB_AIOT套件使用最新sdk对接腾讯云物联网平台成功

经过年前年后一个多月的奋战,MX1062芯片开发板终于使用qcloud对接腾讯云平台成功了,再次记录一下对接的过程以及其中的心路历程.

首先解释一下为什么要搞这个

在群里提问的时候有人不理解,命名官方有mqtt的例子不用,非要折腾这个东西,主要有以下几点:

1.官当的demo用的是原生的mqtt组件,而qcloud_sdk是完全屏蔽了mqtt的操作,留下一些简洁的接口,实现这些接口就可以做到对接物联网平台的

2.为了增加可移植性,用官方的sdk至少当官方的平台有变化的时候能够同步跟上

3.不得不承认qcloud_sdk真的非常优秀,用原生的mqtt的话需要自己制作登录密码等数据,而用了qcloud_sdk只需要把产品id,设备id和设备密码配置好就行,简直不要太方便

4.新版qcloud_sdk的at框架已经大改,这其中必然有其道理,而官方demo里面还是用老的at框架,想学习先进的技术肯定要用最新的啦

5.原生的demo里面对于report,event那些需要自己做封包,而新版qcloud_sdk已经全都帮你做完了,真正做到关注业务就行

等等

基于以上几点理由,在使用的官方demo之后,便萌生了使用qcloud_sdk的方式来对接腾讯云平台,看看如何操作吧

操作步骤说明及心路历程

1.首先是下载官方的sdk,官方的sdk下载链接在这篇文档有介绍:

https://cloud.tencent.com/document/product/1081/48356

image.png

这里给出了下载地址,点进去就有了,截止发稿日期,是3.2.0版本,还是很好用的

2.sdk的使用方式:

把下载的sdk解压完毕,放到工程目录里去,比如我是放在了这里:

image.png

放在这里的好处是以后建立的新工程也可以使用

然后就需要在工程里面添加对应的文件,我用的是keil,官方的nxpIDE一看是基于Eclipse做的,就不想用了

添加完如下形式:

image.png

基本上就只需要使用这些文件了

然后在编译里面把头文件路径都添进去:

image.png

这里完成了就可以尝试编译一次了.

有同学可能会问了,这些文件是啥?

image.png

问得好,下面就解释这几个文件的来由.

3.首先我们要阅读官方文档

文档地址在这:

https://cloud.tencent.com/document/product/1081/48373

这篇文档说了一些基本信息,是整个sdk比较全面的文档.不得不提一句,腾讯的文档做的真的很好,对标阿里和华为云的话,就好太多了,很详细:

image.png

这里就描述了我们需要实现的一些接口:

https://cloud.tencent.com/document/product/1081/48389

这里截图做一点点说明:

image.png

在我的代码里就体现在上面的截图里

4.AT串口的实现

这里着重说一下关于HAL_AT_UART相关的接口在本开发板上的实现:

需要添加这个宏开关和头文件

image.png

下面这两个函数是管串口发送和接收的:

image.png

下面这两个函数是管串口的初始化和反初始化的:

image.png

眼尖的同学可能会看到,为什么HAL_AT_Uart_Recv函数里面啥也没有,直接返回0了?

其实这一点我一开始也很疑惑.

现在请随着我的思路一步步捋一下为什么这里什么代码都没有并且直接返回0

要闹明白这个,首先我们要追查一下老的at框架是怎么实现的,线索就在HAL_AT_Uart_Send里面,这里调用了

tos_hal_uart_write函数,那进去看一下老的at串口是怎么调用这个接口的:

image.png

果然不出所料,就是老的at的发送里,那看看老的at接收:

image.png

在老的at框架里,at的接受并不是用的物理的串口接收函数而是从一个fifo里面取值

那就看看fifo的值是什么时候放进去的吧,一番查找,发现在这:

image.png

看看这个函数哪里调吧:

image.png

就是这里没错,找到这个就好办了,咱们在新的at框架也实现一个吧

先创建一个fifo,制作输入输出缓冲区,嗯嗯,xxx怎么这么多东西要做,不可能吧,官方的sdk还要我们自己做这么多工作吗,不可能吧,这样因为愿意对接啊,竟一时陷入了僵局

唉搞简单点吧,要不然这一个月的事写到明天也写不完,最后我找到官方的代码里面有这一句:

image.png

原来不是用的fifo,用的ringbuffer,这就好办了,把ringbuffer开关打开就行:

image.png

打开之后,串口接收就走这了:

image.png

然而事情没完,我们还需要把串口中断那里原来发给老at的fifo地方改到现在这个代码来:

image.png

到这里,底层的串口算是搞定了.

后面就到了测试at底层了,这里比较了老的代码和新的对接qcloud_sdk的地方,总结出配置文件应该这样:

image.png

因为时间过去太久了,细节不太记得了

总之这样就能编译成功了,喔对了,还要实现一个线程创建的接口:

image.png

这样就行了.

5.官方demo的移植

官方demo的移植就比较简单了,官方文档也有讲,这里只需要把data_template文件加进来:

image.png

我们启用这个文件,把上面那个失能,就走我们的新的sdk了,爽多了

6.排坑记

其实也不算多坑,但是报销了我好几个晚上,主要的问题就是设备能登上云平台,然后立马就被踢掉线,用新老框架不停得换,不停的打log,最后终于发现是我的esp8266返回数据太慢了,接收的地方定时器超时了,改了一个qclou的宏问题搞定

image.png

原值是5*1000,但是经过我不停的打log,抓现象发现5s刚好数据回来,所以造成超时,改成12s就行了

image.png

总结

坚持的力量总是强大的,这过程中有无数次想放弃的时候,最后还是被自己内心的小人说服了,花费了无数的夜晚和周末,终于搞定了这个不叫功能的功能,也算是有所收获吧,在调试的过程中发现qcloud_sdk还是一套很优秀的代码,看得出来鹅厂的确有人才,看来我辈还得加倍努力啊.

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • AIoT应用创新大赛-基于TencentOS Tiny机房环境温度监测方案

    首先感谢腾讯TencentOS团队举办了这次比赛,也荣幸入选了初赛,顺利拿到了新一代的开发板。本来项目是与另一个同伙合作研究的,由于其有事情这次未能参加;所以本...

    谭广健
  • AIoT应用创新大赛-智慧路灯(使用Keil开发)

    TencentOS tiny定制开发板EVB_AIoT快速入门指南(Keil版本)一、定制开发板EVB_AIoT硬件简介1.1:开发板介绍1.2:开发板特性二....

    秦玉安
  • AIoT应用创新大赛-基于TencentOS Tiny 的智慧灯

    snprintf(report_buf, sizeof(report_buf), REPORT_DATA_TEMPLATE, lux);

    百特曼
  • AIoT应用创新大赛-智慧路灯(MCUXpresso IDE版本)

    本文对腾讯和恩智浦半导体、厚德物联网设计的一款高性能AIoT评估板,使用TencentOS tiny 基础内核和AIoT应用功能体验和评估。 ​参考了官方文档和...

    用户1274637
  • 2021 TencentOS Tiny AIoT应用创新大赛开启报名!

    大赛简介 TencentOS Tiny AIoT应用创新大赛是腾讯TencentOS团队联合恩智浦半导体、安谋科技(Arm China)发起的线上开发者活动,主...

    腾小云
  • AIoT应用创新大赛-基于TencentOS Tiny的低成本LoRa边缘网关

    本作品基于Tencentos tiny与EVB AIoT开发板实现的低成本LoRa边缘网关(LGW-Edge v1.0)。

    forest-rain
  • 手把手设置EVB_AIoT开发环境

    有幸参与并入围2021 TencentOS Tiny AIoT应用创新大赛的比赛,收到由大会寄出的EVB_AIoT开发板套装,先对开发板进行一个简单的介绍吧。

    谭广健
  • AIoT应用创新大赛 基于TencentOS Tiny智能家居自动浇灌监控系统

    一、总体设计家居自动浇灌监控系统主要实现了在室内环境下植物的湿度监测和自动浇灌。系统基于TencentOS Tiny EVB_AIoT开发板和NXP的MCUXp...

    周鹏
  • AIoT应用创新大赛-TencentOS Tiny AIoT开发板在智能轮椅中的应用

    腾讯物联网操作系统(TencentOS tiny)是腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,可裁剪等特性。TencentOS ti...

    LinwCui
  • AIoT应用创新大赛-基于TencentOS Tiny 广和通L610连接腾讯连连 以及 KV库移植

    拿到开发板是开心的,调试过程是苦涩的,完成了自己的期望值是美好的,我可能处于苦涩和美好之间。 一开始理想很美好,想基于EVB_AIoT做个智能家居中控B...

    用户6286747
  • 腾讯云公布5G产品矩阵,年底前交付300个边缘计算中心

    8月25日,腾讯云率先公布5G新基建最新进展,成为国内首家全面构筑起覆盖“云-边-网-端”完整5G产品矩阵的云厂商。腾讯云网络总经理王亚晨透露,预计在今年底,腾...

    边缘计算
  • AloT应用创新大赛-基于TencentOS Tiny计数器应用

    对官方想说的话先写在前面:首先很荣幸能参加这次TencentOS Tiny AIoT应用创新大赛,但同时也很抱歉未能按时完成报名时提交的方案设想,只能在此跑一个...

    用户9467703
  • 开发板免费领!腾讯云IoT应用创新大赛正式启动!

    腾讯云IoT应用创新大赛是腾讯云面向物联网领域举办的大型竞赛,通过腾讯云IoT全链路产品能力,开放平台和服务,与广大开发者共同创新,孵化优秀的IoT产品和解决方...

    腾讯云物联网团队
  • AIoT应用创新大赛-基于TencentOS Tiny AIoT NXP自动摄像仪

    TencentOS tiny联合NXP推出的RT1062开发板让人眼前一亮,能够实现众多的强大功能,但是我只能选取一瓢来实现本次比赛的作品。看到摄像头的功能,和...

    极速紫韵
  • AIoT应用创新大赛-基于TencentOS Tiny的远程电子仪器

    基于TencentOS Tiny AIOT开发套件和腾讯物联网开发平台设计的一款远程电子测量仪器,适用于电子专业的师生进行远程实验课教学。

    用户9293704
  • 2015全国移动互联创新大赛

    1.大赛背景 在信息化快速发展的今天,移动互联网的迅猛发展与普及已经是我国IT产业的风口浪尖。在生活中人们通过微信、QQ等众多的社交软件与朋友进行交...

    腾讯高校合作
  • 【IoT应用创新大赛】基于LoRa的智慧办公场景方案

    随着物联网技术的发展,越来越多的应用需求被提及,整个物联网产业链的基础设施也得到快速发展。以腾讯、阿里为首的头部云计算企业,纷纷推出了物联网设备接入的基础设施(...

    古月瘦水
  • 基于TencentOS Tiny的图像识别案例

    近来,很高兴能够参与到腾讯云AIoT应用创新大赛,有机会认识到各种行业背景的物联网爱好者;作为一个新手,接触了面向物联网领域的TencentOS Tiny系统、...

    马远良
  • 腾讯云开发者社区技术沙龙第24期回顾-物联网技术与应用(文末附PPT)

    2019年7月27日,由云+社区主办的第24期云+社区技术沙龙“物联网技术及应用”,在深圳腾讯滨海大厦举行,本期沙龙邀请了腾讯云技术专家分享关于腾讯云物联网平台...

    腾讯云开发者社区技术沙龙

扫码关注腾讯云开发者

领取腾讯云代金券