前言

本文将讲解在使用小熊派官方例程中遇到的问题,以及实现用WIFI连接到华为云平台。


正文

一开始使用官方给的资料里面的智慧路灯demo,发现可以运行,数据能正常上传到云平台。但在过了一天以后,发现莫名连接不了,一直卡在如下这个界面。


根据输出,我们查找到对应的文件代码,这里对应着下面这个语句


在执行完nb_reboot()之后,尝试输出AT+CFUN?的信息,发现得到的结果是+CFUN:0,而我们的函数nb_hw_detect()检测期望的结果是+CFUN:1,这也难免程序会卡在这里,因为执行的是一个死循环的设备检测。

AT+CFUN=0 设置NBIoT模块最小功能
AT+CFUN=1 设置NBIoT模块最大功能

那么只要通过AT执行,设置CFUN=1即可退出该循环,从而继续执行下面的语句。


这段代码的意思是首先检测网络的状态(是否有激活或附着),通过AT+CGATT?,通过检测网络的强度csq,这里如果网络没有激活或者附着成功,那么返回的强度应该是CSQ:99,99(信号获取失败)。

解决的办法就是激活该网络,通过AT+CGATT=1,执行成功会返回如下信息。

那么此时就能够检测到网络的强度(信号能够获取成功)。


数据的发送

AT+NMGS=长度,数据
这命令用来向华为Iot平台发送数据,数据以十六进制字符串格式传输,最大长度512字节

AT+NMGS=3,AA11BB
OK

AT+NQMGS
该命令查询发送到华为物联网平台的上游消息的状态。

AT+NQMGS
PENDING=1,SENT=34,ERROR=0
OK
//PENDING=1,上游(云平台发送的消息数)
/**@param buf  十六进制数据指针@param len  长度@return -1  失败@return 0   成功nb-iot 发送数据负载
*/
int32_t nb_send_payload(const char* buf, int len)
{//向电信平台发送数据,AT+NMGS=<length>,<data>//查询已发送消息,AT+NQMGSchar *cmd1 = "AT+NMGS=";char *cmd2 = "AT+NQMGS\r";int ret;char* str = NULL;int curcnt = 0;int rbuflen;static int sndcnt = 0;if(buf == NULL || len > AT_MAX_PAYLOADLEN){//如果发送的消息为空或者长度为最大负载AT_LOG("payload too long");return -1;}//memset(tmpbuf, 0, AT_DATA_LEN);memset(wbuf, 0, AT_DATA_LEN);//str_to_hex(buf, len, tmpbuf);memset(rbuf, 0, AT_DATA_LEN);//AT+NMGS=3,001234:“00”是数据头,根据平台上的定义修改“12”、“34”为要上传的数据snprintf(wbuf, AT_DATA_LEN,"%s%d,%s%c",cmd1,(int)len,buf,'\r');ret = at.cmd((int8_t*)wbuf, strlen(wbuf), "OK", NULL,NULL);if(ret < 0)return -1;//回复:PENDING=0,SENT=317,ERROR=0//cmd有个期待回答ret = at.cmd((int8_t*)cmd2, strlen(cmd2), "SENT=", rbuf,&rbuflen);//如果没有send,返回-1if(ret < 0)return -1;//找到send的内容str = strstr(rbuf,"SENT=");if(str == NULL)return -1;//格式化输出,send=317,ERROR=0,那么curcnt = 317,wbuf="ERROR=0"sscanf(str,"SENT=%d,%s",&curcnt,wbuf);//长度相等,即没有接收到答复//比如这次发送是100,那么下次就从100开始+字节数if(curcnt == sndcnt)return -1;sndcnt = curcnt;return ret;
}

使用WIFI连接

根据小熊派的教程,我们可以使用WIFI或者2G通信模块来连接上云平台。
1.修改网络类型
2.修改热点名称和密码
3.修改设备唯一标识符(连接上云平台使用)

执行过程

关于2G模块的联网过程和云平台的连接配置参数等等,会在下一次博客说明,包括如何在示例例程添加使用WIFI模块等。


参考

STM32学习笔记ESP8266(一)

Agent Tiny 是什么?

Arduino利用AT指令连接乐鑫ESP8266实现串口通讯、配网

Agent Lite SDK使用指南(C)

基于小熊派的智慧路灯(WIFI连接)相关推荐

  1. 基于STM32小熊派开发智慧路灯项目实践

    目录 一.引言 二.智慧路灯物联网架构介绍 1.感知层: 2.网络层: 3.平台层 4.应用层 三.开发环境 四.开发注意事项 五.学习网站(实践指南) 1.华为云实战训练营教学视频 2.智慧路灯项目 ...

  2. 2021物联网开发学习——基于小熊派IoT开发板Bear-Pi-IOT、E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link

    2021物联网开发学习--基于小熊派IoT开发板Bear-Pi-IOT.E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link 目录 作者介绍 目的 用到的 ...

  3. 嵌入式开发——基于小熊派的智慧农业案例(二)

    本组设计的功能描述(含所有实现的模块的功能) 基于小熊派的智慧农业案例 实时监测环境中温湿度变化及光照变化 通过NB-IOT通信,将数据传至云端,实现云端实时检测. 通过控制电机和补光灯的启动条件,实 ...

  4. 基于小熊派的HarmonyOS鸿蒙开发教程——内核篇

    复习时间:貌似很遥远呀!(未定期) 基于小熊派的鸿蒙开发内核篇 一.CMSIS-RTOS2接口 二.HarmonyOS内核开发-任务管理 三.HarmonyOS内核开发-定时器管理 定时器基本概念 定 ...

  5. OpenHarmony HDF Input框架模块 按键控制LED基于小熊派micro

    文章目录 摘要 开发环境 KEY驱动程序 KeyConfigInstance: RegisterKeyDevice 中断处理函数 KeyIrqHandle RegisterInputDevice:注册 ...

  6. 开源项目-基于小熊派STM32红外热成像仪

    点击上方"嵌入式应用研究院",选择"置顶/星标公众号" 干货福利,第一时间送达! 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 中秋假期 ...

  7. 【华为云技术分享】基于小熊派开发板的智慧路灯开发版本更新

    1 主要功能 (1)光敏传感器感知光照强度并上发. (2)实现在云端对LED灯的开关控制. (3)通过设定传感器阈值,设定LED灯的自动开关. 2 目的及意义 (1)通过本次实验加深对于小熊派开发板的 ...

  8. 鸿蒙(二)基于小熊派实现LOT上云的智慧家居项目

    手把手教你利用鸿蒙OS实现智慧家居·LOT上云项目 一.前言 今天使用鸿蒙OS,做一个LOT上云的智慧家居项目.我们想实现的场景是这样的:云端WEB有一个控制界面,能够操控家房间里的灯和风扇,同时将房 ...

  9. 基于小熊派的智慧农业

    前言 小熊派的智慧农业扩展板E53_IA1,包含光照传感器BH1750和温湿度传感器SHT30,关于BH1750的初始化我在上篇博客有讲到,这篇博客主要说明SHT30的配置. 自己整理的小熊派智慧烟感 ...

最新文章

  1. HDU2215(最小圆覆盖问题)
  2. 2017.4.2号总结
  3. update 两个表关联_拉链表(二)
  4. Python 内建函数 - sorted(iterable[, key][, reverse])
  5. 用-force –opengl 指令_OpenGL-使用Tessellation技术绘制Cubic Bézier Patches
  6. 就你这个求婚态度,能嫁给你才怪!
  7. 12306小卡片-鸿蒙智慧出行
  8. “OSPF” DR与BDR
  9. 2.1 TCP/IP命令(Ping)
  10. 解压vmlinuz和解压initrd(initramfs)
  11. 计算机组成原理(唐朔飞) 知识点总结 第三章
  12. Android arm64-v8a、armeabi-v7a、armeabi、x86详解
  13. Layout state should be one of 100 but it is 10
  14. google测试框架
  15. java whois_Java实现简单whois查询
  16. 网络——数据交换方式
  17. Ubuntu中复制文件出现权限不够的问题
  18. 服务器 与 工作站
  19. Tomcat 支持的Java版本对照
  20. 怎么给视频换背景?只需4步,即可轻松换背景

热门文章

  1. 我的世界java萌新须知_我的世界:萌新必备小知识,你全部知道吗?
  2. 国货定义之剖析兼与倪光南院士商榷
  3. java转义字符问题
  4. 即时通讯开发Android端消息推送总结
  5. ES中match和term差别对比
  6. iOS 13的黑暗模式如何在iPhone和iPad上运行
  7. 扫面图片转换成文字的方法
  8. Hadoop源代码组织结构
  9. 手写promise核心功能
  10. 9月榜单丨飞瓜数据UP主排行榜(哔哩哔哩B站平台)发布!