STM2F407ZGT6和NBIOT模块链接华为云

STM2F407ZGT6和NBIOT模块链接华为云

作为一名物联网大三的学生,NBIOT还是因为项目的缘故自学的,在使用过sim868和NBIOT模块后,才开始真正的了解了NBIOT为什么是物联网专门使用的模块了,NBIOT模块具有很低的功耗,而且它的信号在室内非常的理想,甚至比GPRS的信号还要强一些,其次是他的的协议非常的简单,采用的是专门的物联网的协议——LWM2M。NBIOT在一次链接成功后,他在再次上电的时候会自动链接到上次的IP地址。

下面我想说一下我这次利用华为云链接的过程。
(1)首先利用AT指令测试模块的功能是否正常。
利用CH340连接NBIOT模块,注意NBIOT需要供电稳定,这里推荐利用VCC这个引脚,而不是3V3和5V,因为供电稳定的含义并不是说电压的高低,而是电压的值尽量没有波动,如果供电不稳定就会出现模块一直重启的现象。
注意串口在发送AT指令时需要发送新行,来给模快提供一个指令结束的标志。

对于AT指令的解释:AT指令是厂家生产该模块时就有的,主要是用来测试功能和设置一些可能用到的功能。
这个可以根据所用的模快的芯片来进行选择,例如我用的是BC35,会有文档是专门来介绍BC35的AT指令集。
下面介绍几个在连接时候可能用到的AT指令。

<mark>AT</mark> 表示模快是否可以接受AT指令,正常回复OK。
<mark>AT+CSQ</mark> 表示查询此时模快的信号强度。0-30时正常,99代表着无信号。
<mark>AT+CGATT</mark> 表示查询模快此时有没有联网。如果回复1表示连接上网。
<mark>AT+NCDP=目标IP</mark> 连接目标IP的操作,必须联网才可以,正常返回OK。
<mark>AT+NRB</mark> 重启模块,一般在第一次连接时需要重启模快。
<mark>AT+NCDP?</mark> 表示查询此时连接到的IP地址。
<mark>AT+NMGS=5,0000000034</mark> 表示发送的信息是十六进制的0x34。5表示发送的字节的长度。00是字节头。

(2)创建华为云服务器
下面介绍华为云服务器的操作流程:

账号注册后,手机会收到自己的服务器的密码。用这个密码登陆后可以到开发者平台。(OceanConnect平台)

然后创建新的产品:

<mark>只要是按照着上面红色标记的流程走,就可以创建一个物联网的服务器。</mark>

(3)利用单片机的串口进行单片机程序的编写。
单片机程序关键的地方在于字符串的处理和判断,可以考虑使用C语言库里面的一些函数,例如strlen等等。

#include "stdio.h"
#include "string.h"
#include "stdarg.h"
//USART2用来发送AT指令
void SendCmd(int8_t* cmd ,int8_t* result ,int32_t timeout)
{
	while(1)
	{
		memset(USART2_RX_BUF,0,strlen((const char *)USART2_RX_BUF));
		usart2_rcv_len = 0;
		
		USART2_Write(USART2,(uint8_t*)cmd,strlen((const char *)cmd));
		mDelay(timeout);
		printf("%s %d \r\nCOM:%s \r\nRSP:%s\r\n",__func__,__LINE__,cmd,USART2_RX_BUF);
		if((NULL!=strstr((const char *)USART2_RX_BUF,(const char *)result)))
		{
			break;
		}
		else
		{
			mDelay(100);
		}
	}
}

该段代码可以实现发送cmd,并且检查模快回复中有没有result,因此还需要写一些串口中断的接受服务程序,这段代码就不粘贴了。

(4)总结:
作为一名物联网的学生,对于物联网的认识从开始的它和计算机专业差不多起,到现在渐渐能够了解它能够给人们带来的意义,现在才能明白这门学科的出现的必要性,但是却也深深的感受到自己的知识的匮乏,就像是刚刚触摸到了这个边界,眼前是一片海洋,全新知识领域的海洋。真是革命尚未成功,同志仍须努力!

<mark>第一次写博客,有什么不好的地方希望大家可以多多批评指正</mark>

全部评论

相关推荐

秋招进行到现在终于能写总结了。完全没想到战线会拉这么长,过程会如此狼狈,不过更应该怪自己太菜了。好在所有的运气都用在了最后,也是有个去处。背景:双2本硕科班,无竞赛,本科一段研究所实习,硕士一段大厂暑期实习但无转正。技术栈是C++&nbsp;&amp;&nbsp;Golang,实习是客户端音视频(而且是鸿蒙端开发),简历两个C++项目一个Golang项目。主要投递岗位:后端,cpp软开,游戏服务端,测开,以及一些不拘泥于Java的岗位。从8月起总共投递123家公司,笔试数不清了,约面大约30家。offer/oc/意向:友塔游戏(第一个offer,面试体验很好,就是给钱好少南瑞继保(计算机科班点击就送(限男生),不...
乡土丁真真:佬很厉害,羡慕~虽然我还没有到校招的时候,也想讲一下自己的看法:我觉得不是CPP的问题,佬的背书双2,技术栈加了GO,有两段实习。投了123,面了30.拿到11个offer。这个数据已经很耀眼了。这不也是CPP带来的吗?当然也不止是CPP。至少来说在这个方向努力过的也会有好的结果和选择。同等学历和项目选java就会有更好的吗?我个人持疑问态度。当然CPP在方向选择上确实让人头大,但是我觉得能上岸,至于最后做什么方向,在我看来并不重要。至于CPP特殊,有岗位方向的随机性,java不是不挑方向,只是没得选而已。也希望自己以后校招的时候能offer满满
点赞 评论 收藏
分享
11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务