BC28的一些简单的使用心得

BC28的一些简单的使用心得

  • 平台的注册
  • 平台的使用
  • BC28的设定
  • 平台和BC28的对接
  • 通信开始
  • 问题汇总
  • 链接

从一点不懂花了近一个月的时间,总算能调通BC28了,现在在这里写一点自己的拙见,如有错误的地方,欢迎dalao批评指正。

平台的注册

我用的是华为云平台,现在简述一下注册流程

  1. 首先百度华为云,进入官网后注册并登陆账号,这个没什么好说的,按流程弄就完事了;

  2. 将鼠标移动到产品两个字上面,出现的下拉菜单中再将鼠标移动到IoT物联网上,点击右侧的设备接入选项;BC28的一些简单的使用心得_第1张图片

  3. 进入页面后点击立即使用,第一次注册好像是三个月免费用吧,记不清楚了,不过百万才3块6,好像很便宜的样子(?);
    BC28的一些简单的使用心得_第2张图片

  4. 成功后会进入一个名为管理控制台的网页,点击左侧的开发中心,然后再点击进入开发中心
    BC28的一些简单的使用心得_第3张图片

  5. 成功后便会进入华为的OceanConnect开发中心,因为我已经创建过一个项目了,现在我再重新创建一个项目,走一遍流程。
    BC28的一些简单的使用心得_第4张图片

平台的使用

这里我会简单介绍一下怎么用这个平台,当然其实我也不怎么会hhhh

  1. 我们点击一下那个蓝色的加号,然后按照要求填写内容,项目名称好像是联网的,我写abcd没法创建成功。当然,十分不建议各位像我这样写名称;
    BC28的一些简单的使用心得_第5张图片

  2. 创建成功后会出现如图所示的窗口,应用ID和密匙不知道有啥用,不用管直接进入项目即可;BC28的一些简单的使用心得_第6张图片

  3. 进入项目后,点击左侧的产品开发
    BC28的一些简单的使用心得_第7张图片

  4. 当然是新建产品了;
    BC28的一些简单的使用心得_第8张图片

  5. 这里我选择自定义产品
    BC28的一些简单的使用心得_第9张图片

  6. 成功后只有一个选项,忘记截图了,点击后在弹出来的界面里按照要求填就行了,协议方面我选择CoAP,然后点保存
    BC28的一些简单的使用心得_第10张图片

  7. 点击这个界面的新建服务选项,就是划红线的地方;
    BC28的一些简单的使用心得_第11张图片

  8. 先输入服务名称,然后依次创建属性命令,一般是先创建属性,点击新增属性
    BC28的一些简单的使用心得_第12张图片

  9. 属性名称按照个人需求填写就行,我为了演示方便(其实是没试过其他类型),数据类型选的int,我创建了两个属性,方便演示;

我对这里的“属性”两个字的理解,指的是一种“设备上传的数据的个数和类型“,比如我有三个属性,设备就可以传三个数过来,不知道理解是否正确。
这里的”步长“和”单位“应该很好理解,”步长“就是同一类的两个数据,两者之间的间隔,默认为1,如果改成2的话,数据就只能是2、4、6或者1、3、5一类的;”单位“就是这个数据代表的物理含义。

BC28的一些简单的使用心得_第13张图片

  1. 接下来创建命令,点击添加命令即可;
    BC28的一些简单的使用心得_第14张图片

  2. 命令起个名字;
    BC28的一些简单的使用心得_第15张图片

  3. 接下来选添加下发命令

我对”命令“的理解,指的是云端传给单片机的数据;”下发命令”指的就是发送的数据的主体部分,“响应命令”没试过,不知道有啥用,不过听名字,应该是发送完后要求设备发送响应数据(?)

BC28的一些简单的使用心得_第16张图片

  1. 一样的,按要求填就行了;
    BC28的一些简单的使用心得_第17张图片

  2. 完成后点击保存 ;
    BC28的一些简单的使用心得_第18张图片

  3. 完成后往上滑,点击编解码插件开发
    BC28的一些简单的使用心得_第19张图片

  4. 点击新增消息

BC28的一些简单的使用心得_第20张图片

  1. 先创建“数据上报”,看见这个名字就不难理解,这里指的是设备传过来的数据与属性之间的对应关系。填上消息名后,点击添加字段;
    BC28的一些简单的使用心得_第21张图片

  2. 在弹出的页面按要求填就行;

如果选择“标记为地址域”,会发生比较大的变化,具体什么变化,各位可以度娘一下。注意“字节长度“,字节长度决定了发送过来的数据长度。因为发送数据的话,是所有数据直接一行无分隔符发送,所以字节长度决定了云端如何读取数据。完成后点击完成

BC28的一些简单的使用心得_第22张图片

  1. 因为有两个属性,我们按照前面的步骤再操作一次,最后是这个样子。然后再点新增消息
    BC28的一些简单的使用心得_第23张图片

  2. 这次选择命令下发,注意蓝色光标的位置,然后点添加字段
    BC28的一些简单的使用心得_第24张图片

  3. 一样的,填好后选择完成,上面两个选项有啥用,请度娘;
    BC28的一些简单的使用心得_第25张图片

  4. 最后是这个样子,点击右侧的test,这个名字就是我创建的命令的名字,如果有多个命令的话,这里就会有多个下拉菜单;
    BC28的一些简单的使用心得_第26张图片

  5. 点开后选择属性上报字段对应的都是属性,鼠标移动到Status1上,也就是第一个属性名,按住不动,拖到左侧,系统会自动连线的,只要注意不搞错对应关系就行;
    BC28的一些简单的使用心得_第27张图片

  6. 一样的,选择命令,操作和上一步相同;
    BC28的一些简单的使用心得_第28张图片

  7. 这些都完成后,滑动到上面,选择部署,当然选择确认啦,等待一会;
    BC28的一些简单的使用心得_第29张图片

  8. 部署成功,选择右上角的在线调试
    BC28的一些简单的使用心得_第30张图片

  9. 进入页面后,点击红圈的新增测试设备,选择没有真实的物理设备,然后创建,稍微等一会;
    BC28的一些简单的使用心得_第31张图片

  10. 左侧就是云端部分,Order的范围就是我之前输入的下发命令的范围,我选择了一个4,然后右侧就会接收到4
    BC28的一些简单的使用心得_第32张图片

  11. 右侧就是模拟的设备,然后我在右侧输入11FF,点击立即发送,左侧就会接收到17,255,当然,这个数字超出了我之前设置属性时0~100的限制,真实情况下不能这么做,所以我又发送了一个1F40,左侧就会收到31,64,至于这两个数对应的是哪个属性,依靠之前插件的对应关系决定。至此,平台部分我们已经弄好了。
    BC28的一些简单的使用心得_第33张图片

BC28的设定

BC28使用AT指令进行设置,不知道什么是AT指令的,请度娘。
我的模块可以和电脑直接用USB相连,为了避免广告嫌疑,就不发图了,直接上串口调试图。
其实BC28和华为云通信真正的只需要两步,不过中间可能会出现各种情况,我把我遇到的情况留在后面介绍。

  1. 打开串口调试工具,输入指令AT+CGSN=1,注意中间不要用中文输入法,不然就会像我第一次一样报错,然后BC28会返回一串数字,一般是86开头,40结尾,然后我们把这串数字记下来;
    BC28的一些简单的使用心得_第34张图片

  2. 回到华为云平台,点击红圈的对接信息选项;
    BC28的一些简单的使用心得_第35张图片

  3. 因为我的协议选的是CoAP,因此我这里记下前面的一串数字;
    BC28的一些简单的使用心得_第36张图片

  4. 在串口调试工具中,输入指令AT+NCDP=,<端口号>,就是刚刚华为云CoAP左侧的一串字符串,不过要注意,将其中的冒号改成逗号,也是用英文输入法。至此,BC28的设定就完成了。
    BC28的一些简单的使用心得_第37张图片

平台和BC28的对接

  1. 点击左侧的产品开发
    BC28的一些简单的使用心得_第38张图片

  2. 选择产品,然后点击右侧的新增测试设备,这次用上真实的设备。全天下设备这么多,华为云怎么知道哪个是我们的设备呢?这个时候刚刚记下的一长串数字就有用了,在设备标识一栏填上用AT+CGSN=1获得的数字,点击创建;
    BC28的一些简单的使用心得_第39张图片

  3. 创建成功,点击确认
    BC28的一些简单的使用心得_第40张图片

  4. 可以看到,设备状态一栏是灰色的,事实上,你发送数据也没用,一直是灰色的,因为BC28会自动进入低功耗模式,导致必须由BC28先给云发送数据,之后才能从云上给BC28发数据,接下来就试一下两者之间的通信。
    BC28的一些简单的使用心得_第41张图片

通信开始

  1. 通过AT+NMGS=<位数>,<数据>的格式向云端发送数据,其中,位数将告诉云,后面的数据怎么读(注意:之前设定的时候,属性一栏定义的数据位数是1,而一位数据占据两个十六进制数,这也是为什么我这里写的是1133,而不是13的原因);
    BC28的一些简单的使用心得_第42张图片

  2. 可以看到,云端上接收到了我发送的数据(如果不行的话多发送几次),接下来再从云端向BC28发送数据;
    BC28的一些简单的使用心得_第43张图片

  3. 我从云端向BC28发送了4,可以看到BC28成功接收到了4,不过请注意,由于BC28进入休眠模式的速度很快,很有可能发送了但是串口调试助手没有任何反应,这个时候需要再向云端发送一次数据,激活BC28(这就是红色箭头所指的指令的由来),然后迅速在云端点击立即发送,就能看到结果了。
    BC28的一些简单的使用心得_第44张图片

至此我们的整个流程结束,接下来的部分是我遇到的问题


问题汇总

  1. 模块没办法读取到卡

使用AT+CIMI指令查看BC28是否读取到了卡的状况,若正常读取,会返回一串数字;若不能正常读取,请取出卡重插一下试试,或者检查插卡口是否异常

  1. 模块没办法通信

这个问题很广泛,因此会出各种各样的问题,我是按照如下顺序进行排除的

  1. 确认自己手中的卡是专用的NB物联网卡,一般的卡是不能用的,如果不是专用卡,请找营业厅进行申请
  2. 如果是专门的NB物联网卡,请不要使用电信的卡,因为电信的卡不支持和华为云进行通信,可以注册电信的云平台,注册、设置操作和上述大同小异
  3. 使用AT+NBAND?查询当前模块的频段,5为电信,8为移动和联通,对应的卡必须使用对应的频段,如果发现频段不对,使用
    AT+CFUN?=0 AT+NBAND=5(或者8) AT+CFUN=1 AT+NRB
    的顺序更改BC28的频段
  4. 以上的都完成后,使用AT+CSQ指令查询信号强度,如果返回的数字是99,99,说明BC28所在地接收不到基站信号,换个地方试试
  5. 有信号,使用AT+CGATT?查看模块是否注网,返回的参数中,第二个数字代表的就是注网状态,0为未注网,1为已注网,2为正在注网,如果不为1,请等待半分钟后再试一次,如果还不行,请度娘找找问题
  6. 注网成功了,还是不行,使用AT+CMEE=1,开启UE Error报告,然后发一次数据,这个时候串口助手上就会返回错误代码,根据错误代码可以初步判断是什么问题,然后度娘
  1. 模块正常,能接收到数据,但就是发不出去

这个是数据格式问题,牢记“一位数据代表两位十六进制数”这句话,输入格式AT+NMGS=1,1,肯定会出错,应该改成AT+NMGS=1,01

  1. 低功耗模式烦的一匹,我不需要低功耗,只想要爽

AT+CPSMS=0实现你的愿望

  1. 每次使用都需要初始化一类的吗

设置类的指令一般只需要输入一次就够了,只要环境没变,上电后直接发数据就完事。我现在就是把模块插上电脑,直接用AT+NMGS指令就能和华为云通信了

然后这里是一些常见的错误代码

	CME ERROR:
    3:模块不支持该at指令。        
    6:短信设备COM口被程序占用。 
    10:短信设备未识别到SIM卡。 
    11:短信设备中的SIM卡被设置了PIN码。(可以登录官网取消或者联系运营商客服) 
   
    CMS ERROR: 
    8:短信设备中的SIM卡已欠费。 
    28:SIM卡功能受限。可以取出卡放进手机测试发短信,如果不成功,可以联系SIM卡运营商客服咨询。 
    38:网络未正常工作。可以取出卡放进手机测试发短信,如果不成功,可以联系SIM卡运营商客服咨询
    50:SIM卡功能受限。可以取出卡放进手机测试发短信,如果不成功,可以联系SIM卡运营商客服咨询。 
    512:SIM卡被封卡或者信号强度达不到16以上。遇到该情况可以取出卡放进手机测试发短信。 
    513,表示没有设置IMEI,或 IoT 平台 IP 地址没有设置
    515:正在处理指令。在执行一条还未结束的at指令的过程中,又执行另外一条at指令所致。遇到该情况可以先用相应指令结束上一条指令后重新执行,或者用at+cfun=1指令重启端口后重试。

链接

错误代码集合.
华为OceanConnect开发平台
华为官方NB-IoT相关课程

你可能感兴趣的:(物联网)