查看NB-IoT的源代码
←
NB-IoT
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== Overview == [[文件:NB-IoT-Freq.png]] * BC95-B20:800MHz,band 20,面向欧洲 * BC95-B5:850MHz,band 5,面向韩国 * BC95-B8:900MHz,band8,面向国内 目前国内的运营商,移动联通支持 900,电信支持 850 <br> == OpenCPU == * M5310-A, 180KB flash, 30KB RAM * M5311, 128KB flash, 256KB RAM ** M5311-LV: Band 3, 5, 8 / 2.1V ~ 3.6V ** M5311-CM: Band 8 / 3V ~ 3.6V https://blog.csdn.net/u011943791/article/details/80895563 [https://wenku.baidu.com/view/27755a86d4bbfd0a79563c1ec5da50e2524dd1a8.html MT2625 SDK Overview] <br> === 切换方法 === 启动的时候调用 get_factory_mode() 函数:当该函数返回 0 时,任何情况下模组以 OpenCPU 方式运行。 当该函数返回 1 时,需要用户手动切换: 第一次把 OpenCPU 下载到新模组上时,模组会默认以 AT 模式运行,不会启动 OpenCPU 模式,此时用户需要在 UART1 手动执行 AT+ATCLOSE,然后按复位键,模组即启动 OpenCPU 模式,并且以后都会保持 OpenCPU 模式。 要从 OpenCPU 模式切换回 AT 模式,需要 在 OpenCPU 程序里执行 opencpu_at_open() 函数,此时模组会自动重启,并以 AT 模式运行。 <br> == PM == * PSM 深度睡眠模式, m5311 通过拉低 wakeup_in 来唤醒 AT+MIPLCLOSE = 0 注销一下,设备就从 OneNet 下线了 <br> == Tesing == eDRX === 入网流程 === <source lang=bash> AT # 查看模块 AT 是否正常工作 AT+CLPLMN # 清除驻网记录 +CLPLMN: 0 # 返回 0, 说明已成功清除记 AT+CEDRXS=0,5 # 关闭 eDRX 功能,一般模组只使用 PSM 功能 AT+SM=LOCK # 关闭 deep sleep 模式 AT+SM=UNLOCK # 打开 deep sleep 模式 AT+CFUN? # Phone functionality, 0 最小功能,1 全功能 (Default),4 射频电路关闭,7 disable sim only AT+CIMI # 检查 SIM卡是否读卡成功 460040427005170 AT+CESQ # 查看信号强度 +CESQ: 23,0,255,255,26,47 AT+CEREG? # EPS network registration status, 确认基站注册状态 0,1 或者 0,5 1-代表本地已注册上, 5-代表漫游已注册 AT+CGATT? # GPRS/Packet Domain attach or detach。确认 PDP 激活状态,1-代表已激活 0-代表未激活,M5311 自 动入网后自动激活 AT+CGACT? # Context activation, state = 0: deactivated; =1: activated +CGACT:<cid>,<state> </source> 示例: <source lang=bash> *ATREADY: 1 +CFUN: 1 +CPIN: READY +IP: 100.119.194.66 AT AT+CLPLMN +CLPLMN: 0 AT+CESQ +CESQ: 46,0,255,255,28,71 AT+CEREG? +CEREG: 0,1 AT+CGATT? +CGATT: 1 AT+CGDCONT? +CGDCONT: 1,"IP","cmnbiot","100.119.194.66",0,0,0,,,,,,0,,0 AT+CCLK? +CCLK: 19/05/03,08:25:58+32 </source> 确认以上指令都通过后,方可进行(TCP UDP COAP LWM2M MQTT 等)数据业务。 若因外部信号差开机后长时间无法驻网成功(建议 120s),可执行模组关机节省功耗: * 软件关机 AT+CPOF * AT+CFUN=0 (opencpu 时只能选择此方式)让模组强制进入深度休眠 * 硬件关机:PWR_ON/OFF 引脚在高电平状态拉低 8s(t1) 以上并释放,模组关机。关机过程中,模块需要注销网络连接, 注销时间与当前网络状态有关,建议 15s(t2)之后再对模组进行断电重启等操作,以确保关机之前保存重要数据 使用 GRE 长连接或者 MQTT 时必须手动关闭 eDRX 及 PSM: <source lang=bash> AT+CEDRXS=0,5 # 关闭 eDRX 功能,一般模组只使用 PSM 功能 AT+SM=LOCK_FOREVER # 关闭深度休眠,此设置断电保持 AT+CPSMS=0 # disable the use of PSM AT+CPSMS=1 # enable the use of PSM AT+CPSMS? +CPSMS: 1,,,"00100011","00100010" </source> <b>注意 :打开/关闭 eDRX 和 PSM 及设置相应定时器的值均要在模组成功驻网后才能生效,若模组始终无法驻网则 eDRX 和 PSM 功能无法使用</b> <source lang=bash> AT+CPSMS=1,,,"T3412","T3324" # 使能模组 PSM 功能,并根据需要设置模组 T3324 的值,T3324 和 T3412 值的编码格式参考 GPRS timer 2/3 , 当前模组端只能设置 T3324 值,T3412 值开卡时已固定 , 模组端无法修改 AT+CEREG=5 # 确认 PSM 参数是否设置成功 AT+CEREG? +CEREG: 1,"2A2A","0DDB0FBD",9,"00",0,0,"00100010","00101111" # 参考 AT 手册,最后两个参数分别代表 T3324 和 extended periodic TAU value(T3412) </source> <source lang=bash> AT+IPSTART=0,"TCP","182.92.5.106",1213 CONNECT OK AT+IPSEND=0,0,"THIS IS A NBIOT TCP TEST" +IPSEND: 0,24 AT*ENGINFO=0 *ENGINFOSC: 3738,2,108,"1248A1C",-73,-8,-65,5,8,"5F12",0,-10 </source> <source lang=bash> AT+CMRB # Software reboots the terminal AT+COLDRB # Cold reboot the terminal AT&V # Display current configuration ATZ # Set all current parameters to user defined profile AT&W # Store current parameters to user defined profile AT&F # Set all current parameters to manufacturer defaults AT+CIMI # 查 SIM 卡的 IMSI 460040427005170 AT+CGSN # Request product serial number identification (Identical with +GSN) 19ML111N0035645 AT+CGSN=1 # 查模组 IMEI +CGSN: 869975030545555 AT+ICCID # 查 SIM 卡的 ICCID +ICCID: 898602B4031600005170 AT+GMI # Request manufacturer identification CMCC AT+GSN # Request TA serial number identification (IMEI) 869975030545555 AT+CSCON? # Query and generate URC for signaling connection station (CONNECTED or IDLE) +CSCON: 0,0 AT+COPS? # Operator selection +COPS: 0,2,"46000",9 AT+CEDRXS? # eDRX setting +CEDRXS: 5,"0000" </source> <source lang=bash> AT+CGDCONT? # Define PDP context: <cid>,<PDP_type>,<APN>,<PDP_addr>,<d_comp>,<h_comp>...... +CGDCONT: 1,"IP","cmnbiot","100.75.165.213",0,0,0,,,,,,0,,0 </source> [[文件:10086.NB-IoT.Modes.png | 600px]] ;;ATI 查看模块版本: <source lang=bash> ATI CMCC M5311 M5311-MLVH1S02 M5311-MLVH1S02 AT+CMVER M5311-MLVH0S01 2.0.2.1903151039_beta LV190315 </source> <source lang=bash> AT+QSPCHSC? # 查看置乱算法返回值 +QSPCHSC: 1 # 返回 1 可以入网,返回 0 的话是入不了网的,需要 AT+QSPCHSC=1 指令设置成 1 </source> <source lang=bash> AT*CMBAND=? # list of valid <op_band>s *CMBAND: (3,5,8) AT*CMBAND? # current bands *CMBAND: 3,5,8 AT*CMBAND=0 # reset to default. others: 1, 3, 5, 8, 28 </source> TBD: AT+CFGRATPRIO=2 # 切换到GSM模式 <br> === Socket === BC26 only. <source lang=bash> AT+QSOC=1,1,1 # Create a socket (IPv4, TCP, IP) AT+QSOC=1,2,1 # Create a socket (IPv4, UDP, IP) AT+QSOCON=0,8080,"120.25.26.27" # Connect to 120.25.26.27:8080 AT+QSOSEND=0,3,123456 # send data 0x12 0x34 0x56 <socket_id>,<data_len>,<data> AT+QSORF=0,3 # 查看服务器返回的数据,如果没返回数据就多查几次 AT+QSODIS=0 # Disconnect Socket AT+QSOCL=0 # Close the socket </source> <br> === HTTP === <source lang=bash> AT+HTTPCREATE=“http://42.121.157.158:8888/” #设置HTTP AT+HTTPHEADER=0,“User-Agent: Unkown\r\nConnection: close\r\n” #设置协议头 AT+HTTPSEND=0,1,"/dev/data" #发送post请求 AT+HTTPCLOSE=0 #关闭HTTP </source> <br> === MQTT === <source lang=bash> AT+IPR=9600 #设置波特率 AT+CMSYSCTRL=0,2 #打开指示灯 AT+CSQ #信号质量 AT+MQTTCFG=“域名”,1883,“zyNBiot”,120,“75829”,“IIOu0oFUg1guk20ornTK1uzAcnM=”,1 #MQTT配置 AT+MQTTOPEN=1,1,1,1,1,“mywill”,“001bye” #连接MQTT AT+MQTTPUB=“device/nb/citc”,1,1,0,0,“hello” #发布消息 </source> <br> === PSM 状态与深度休眠区别 === * PSM≠深度睡眠;只有深度休眠时模组功耗最低,约 3uA * PSM: 网络协议栈、射频全关,硬件外设未断电,可发 AT * 深度睡眠:除 RTC 时钟,硬件外设全断电,最低功耗 1) 模组进入了 PSM 状态不一定能进深度睡眠,进入 PSM 后再进入深度睡眠必须满足两个条件:① AT+SM=UNLOCK_FOREVER 使能深度睡眠 ② 断开模组 TCP 连接 2) 使用模组 wakeup_in 引脚唤醒深度睡眠后,模组仍处于 PSM 状态,若要退出 PSM 需要 MCU 发送有网络交互(如 AT+PING AT+MIPLUPDATE 等)的指令 <source lang=bash> AT*NBIOTRAI # 配置模组数据业务后,快速进入 IDLE 态达到节省功耗目的 AT+CSCON=1 # 设置模组断开 RRC 连接进入 idle 态自动提示,断电后无效 AT*SLEEP=1 # 设置模组进入深度休眠,串口打印自动提示,断电后无效 AT*MATWAKEUP=1 # 设置模组退出深度休眠,串口打印自动提示,断电后无效 AT+CMSYSCTRL # 使能/配置 LED 状态灯:STATE/WAKEUP_OUT,为节省功耗(AT+CMSYSCTRL=1,1,AT+CMSYSCTRL=0,2) AT+CEDRXS=1,5 # 使能 eDRX 功能,一般模组只使用 PSM 功能 AT+CEDRXS? +CEDRXS: 5,"0000" AT+CPSMS=1 # enable the use of PSM AT+SM=UNLOCK_FOREVER # 使能深度休眠,此设置断电保持 </source> <br> === 接入onenet === '''Init M5310:''' <source lang=bash> AT+COPS=1,2,"46000"; #设置手动注册移动运营商MNC AT+CSCON=1; #打开信号提示自动上报 AT+CEREG=1; #打开注册信息自动上报 </source> 发送完上面三条指令,完成模组的注册入网功能 <br> '''首先参考官方文档在 onenet 平台建立硬件对应的产品类型''' '''生成注册码''',注册码的生成需要使用中移物联提供的 OneNET_config_v1.2.exe。所需参数,如下图所示,其中 host 与 ep_name 较重要,分别指定了要接入 server 的 IP 地址和端口、模组的 IMEI 与 IMSI 号。具体参数的含义可以参考 M5310 AT Command 说明文档 [[文件:NB-IoT-OneNet-Register.png | 800px]] <source lang=bash> $ OneNET_config_v1.2.exe -b 1 -e 0 -d 3 -i "coap://183.230.40.39:5683" -n "865820030015998;460040663105571" -p 0 -t 3000 -u 5 -g 5 -x 1 AT+MIPLCONF=71,10030000B80B00001900636F61703A2F2F3138332E3233302E34302E33393A353638331F003836353832303033303031353939383B343630303430363633313035353731050501,1,1 </source> 发送此 AT 命令完成注册码登记 '''添加 Object 组:''' AT+MIPLADDOBJ=0,3303,0 上述 AT 指令即添加一个 Object 对象,3303 代表温度传感器,由 LWM2M 规范所定 [[文件:LWM2M-object-temp.png]] 一个设备会用很多传感器,设备叫通信实例,温度传感器即 Object。设备可以有很多 Object 如湿度、光照、气压等 '''发起注册请求:''' AT+MIPLOPEN=0,15 上述命令发送成功之后,onenet 平台上会显示设备处于在线状态,硬件与平台连接成功。通过 AT+MIPLNOTIFY 就可以向平台发送数据,具体可参考官方手册。 <br> == Chips == === 展锐 === RDA8908, RDA8909, RDA8910 <br> === nRF91 === <br> === RoseFinch7100 === * http://www.sanechips.com.cn/ <br> === Hi2115 === Boudica 150 * SoC, 无需外接 MCU * 支持 698-960/1800/2100MHz <br> === Hi2110 === Boudica 120 * SOC:BB+RF+PMU+AP+Memory * 3 ARM Core:AP+CP+SP <br> === MDM9206 === <br> === MTK2625 === <br> == Refernece == * [https://zhuanlan.zhihu.com/p/28134440 NB-IOT模组和芯片] * [https://blog.csdn.net/switch_love_case/article/details/88922176 烤机测试装置(Arduino)] * [https://blog.csdn.net/zhangbijun1230/article/details/82251236 大白NB-IOT 移远BC26模块模组快速入门] * http://carrier.huawei.com/~/media/CNBG/events/mwcs2018/v3/pdf/Morning_4_JiangWangcheng_Jointly-build-a-flourishing-ecosystem.pdf * https://www.gsma.com/iot/wp-content/uploads/2017/03/MIoT-Ecosystem-Huawei-Quan-Yu.pdf * https://blog.csdn.net/switch_love_case/article/details/88922176 * [[Antenna]] <br><br> <br><br> <br><br>
返回到
NB-IoT
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面