NB-IOT 温湿度数据上报及IOT平台数据下发(STM32L4,电信Oceanconnect, COAP协议)

article/2025/9/23 0:48:45

在设备侧,智能设备采用了NB-IOT芯片,它和中国电信物联网开放平台之间通过CoAP协议通讯。CoAP报文的payload里是设备的应用数据。

应用server通过http/https协议和平台通讯,通过调用平台的开放API来控制设备,平台把设备上报的数据推送给应用服务器。平台支持对设备数据进行协议解析,转换成标准的json格式数据。

图1 组网图

应用功能很简单,温湿度数据上报,主要通过低功耗STM32L系列MCU通过COAP上报传感器数据,其中,电信云的profile及插件开发如下:

通过检测端注网,COAP    发送数据:

void CDP_Init(void)//COAP服务器配置初始化
{printf("AT\r\n"); Delay(300);strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OKClear_Buffer();	while(strx==NULL){Clear_Buffer();	printf("AT\r\n"); Delay(300);strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OK}BC95_Status.netstatus=1;//闪烁没注册网络printf("AT+NBAND?\r\n");//获取频段号Delay(300);strx=strstr((const char*)RxBuffer,(const char*)"+NBAND:5");//返回5  电信  返回8是移动 Clear_Buffer();	while(strx==NULL){Clear_Buffer();	printf("AT+NBAND?\r\n");//获取频段号Delay(300);strx=strstr((const char*)RxBuffer,(const char*)"+NBAND:8");//返回OK}printf("AT+CIMI\r\n");//获取卡号,类似是否存在卡的意思,比较重要。Delay(300);strx=strstr((const char*)RxBuffer,(const char*)"46011");//返46011Clear_Buffer();	while(strx==NULL){Clear_Buffer();	printf("AT+CIMI\r\n");//获取卡号,类似是否存在卡的意思,比较重要。Delay(300);strx=strstr((const char*)RxBuffer,(const char*)"46011");//返回OK,说明卡是存在的}printf("AT+CFUN=0\r\n");//关闭射频Delay(300);	strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OKwhile(strx==NULL){strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OK}Clear_Buffer();	printf("AT+NCDP=180.101.147.115,5683\r\n");//配置CDP服务器地址电信平台的Delay(300);	strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OKwhile(strx==NULL){strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OK}Clear_Buffer();	printf("AT+NRB\r\n");//对模块进行重启Delay(2000);	//延时2s	printf("AT+CIMI\r\n");//获取卡号,确认模块重启正常Delay(300);strx=strstr((const char*)RxBuffer,(const char*)"46011");//返46011Clear_Buffer();	while(strx==NULL){Clear_Buffer();	printf("AT+CIMI\r\n");//获取卡号,确认模块重启正常Delay(300);strx=strstr((const char*)RxBuffer,(const char*)"46011");//返回OK,说明卡是存在的}	}
void BC95_SendCOAPdata(uint8_t *len,uint8_t *data)
{printf("AT+NMGS=%s,%s\r\n",len,data);//发送COAP数据Delay(300);strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OKif(strx)//表明发送正确,平台收到数据{Uart1_SendStr("SEND DATA OK!\r\n");Clear_Buffer();	}else//如果返回error 一般是第一次与平台握手问题或者是CDP服务器配置问题。用户可以查询下 AT+NMSTATUS? 打印到显示端进行查看{printf("AT+NMSTATUS?\r\n");//判断当前模块与平台之间的连接关系,一般未发数据之前都是INIITIALISED,如果正常发送到数据到平台之后是MO_DATA_ENABLEDDelay(300);strx=strstr((const char*)RxBuffer,(const char*)"+NMSTATUS:MO_DATA_ENABLED");//查看是否返回是这个数据,if(strx){Uart1_SendStr("Connect OK!\r\n");  //表明连接上正常的,待下次再发数据就可以了}Clear_Buffer();	//打印平台的返回值}Clear_Buffer();	}

 

登录电信Oceanconnect: https://180.101.147.208:8093(通过微信申请账号),可以看到监测到的数据,并实时刷新:

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/Px4cra9Q.shtml

相关文章

怎么使用nbtscan工具一条命令扫描局域网内所有的IP及MAC

具体操作方法: 1、下载nbtscan.rar文件并解压。 2、然后将解压好的cygwin1.dll和nbtscan.exe两文件拷贝到C:\WINDOWS\system32根目录下(根目录下即可); 3、进入cmd窗口就可以输入命令:nbtscan 192.168.X.98/24&#xf…

NB-IOT的使用

目录 一、AT指令 二、串口透明传输 三、搭建自己的服务器 一、AT指令 •AT命令集是由拨号调制解调器(MODEM)的发明者贺氏公司(Hayes)为了控制Modem发明的控制协议。 • •AT是Attention的缩写,协议本身采用文本.每个命令均以AT打头,因此得名 • •主要的移动电话生产厂商诺基…

NB-IOT介绍

文章目录 简介特点超低功耗DRX模式:eDRX模式:PSM模式: 超大连接超低成本超强覆盖 通信协议COAP协议COAP协议消息类型COAP的请求码(requests)和响应码(responses)COAP的安全性 MQTT协议MQTT工作原理MQTT的消息类型 LWM2…

基于STM32的(NB-IOT(BC26))温湿度监测系统

基于STM32的(NB-IOT(BC26))温湿度监测系统 闲来无事,用手头STM32做个项目。 成品功能:STM32采集温度、湿度数据,显示在屏幕上,通过NB-IOT(BC26)模块连接阿里云物联网平台接受数据并实时监控。 材料 STM3…

CAN通信----CANTest下载和安装

一、CANTest 下载 在周立功的官方网站下载免费的 CANTest软件。 下载网址:https://www.zlg.cn/index.php/can/down/down/id/22.html 步骤1:进入官网,点击下载 步骤2:下载完的安装包 二、CANTest 安装 步骤1:双击刚下…

NCBI的NT库比对——blastn

NCBI的NT库比对——blastn NT库比对,包括对测序数据和组装后的基因组序列进行NT库比对,查看是否存在菌污染以及是否是自己的数据。这里我提供这一部分的具体操作过程。 步骤一:NT全库下载 前面有一篇博文,提到了通过Aspera软件…

NB-IoT模块 移远BC26测试 - TCP通信

准备工作 USB转TTL线NB-IoT测试卡(电信或者移动制式,BC26支持全频段,B5 B8都可以) AT指令 硬件正确连接之后,按住轻触开关 S1 一段时间或者拉高丝印为 PWR 的信号(排针)一段时间让模块开机&…

NB-IoT移远BC95调试笔记 01 加网测试

一、前言 移远BC95是最早推出的NB-IoT模块,目前厦门这边网络都已经覆盖了。自己拿个设备来玩玩,这篇笔记先记录下加网测试的心得。 本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/ 二、加网总体思路 加网思路…

[内网渗透]—内网扫描

nbtscan Win2012 上传nbtscan和dll程序 upload D:\内网\tools\信息收集\nbtscan\nbtscan.exe上传后用nbtscan命令扫描内网其他网段 shell nbtscan.exe 192.168.52.0/24win2016 此时直接上线Win2016肯定是不行的,因为目标不出网无法访问到kali,所以要…

TBCNN

TBCNN – 基于树的卷积神经网络 TBCNN: A Tree-Based Convolutional Neural Network for Programming Language Processing 一种用于编程语言处理的基于树的卷积神经网络 Abstract: 由于当前还没有将深度神经网络应用于编程语言处理, 提出TBCNN模型来对基于ASTs的编程语言进行…

Nbtscan.exe工具分析

Nbtscan.exe 这是一款用于扫描Windows网络上NetBIOS名字信息的程序。该程序对给出范围内的每一个地址发送NetBIOS状态查询,并且以易读的表格列出接收到的信息,对于每个响应的主机,NBTScan列出它的IP地址、NetBIOS计算机名、登录用户名和MAC地…

内网安全攻防读书笔记(5)——探测域内存活主机和端口扫描

实际探测可以在白天和晚上分别进行探测。 1.利用NetBIOS快速探测内网 nbtscan工具已经上传到我的资源,大家可以下载。此工具用于扫描本地或远程TCP/IP网络上开放NetBIOS名称服务器。有Windows和Linux两个版本,将其上传到目标服务器就可以直接使用。使用…

nbtscan局域网扫描的原理

本文出处:http://blog.csdn.net/xizhibei 相信搞网络的应该都听说过nbtscan这个工具,当我们处于局域网中,想查询同处一个局域网的主机时,它就是个不错的工具(比如追踪ARP诈骗源) 它也很好用,在…

nbtscan在windows和linux下编译

nbtscan在windows和linux下编译 windows下载编译 linux下载编译 参考文章 windows 下载 http://unixwiz.net/tools/nbtscan-source-1.0.35.zip解压之后,修改nbtscan.c的66行include "getopt.i"为include "getopt.h" 修改nbtscan_common.h为li…

内网探测(主机存活、端口、Web资产)

内网探测(主机存活、端口、Web资产) 当我们能访问到目标内网任何资源之后,我们就可以对目标内网进行更深层次的信息搜集,比如:主机收集、IP 段搜集、端⼝开放服务、Web资产数量、漏洞类型 0x01. nbtscan 介绍&#xff…

入侵检测——nbtscan(扫描篇)

目录 环境介绍工具简介数据包规则 环境介绍 NAT模式: kali攻击方win7受害者Metasploitable受害者 工具简介 一个在本地或远程TCP/IP网络上扫描开放的NETBIOS名称服务器的命令行工具。它基于Windows系统的nbtstat工具的功能实现,但它可在许多地址上运…

delphi生成一个随机序列号

varFGuid: TGUID;beginCreateGUID(FGuid);edit1.Text : GUIDToString(FGuid);edit1.Text : edit1.Text IntToStr(Length(edit1.Text));edit1.Text : Copy(GUIDToString(FGuid), 2, 36);end; 测试通过

delphi2007 注册码

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 执行 Setup.exe 文件安装 Delphi 2007 for…

linux 磁盘序列号修改,一个小程序:Linux下取得硬盘的序列号

最近给朋友帮忙,遇到一个问题:如何在Linux取到硬盘的序列号?目前网上说的方法大都是Windows 下用Delphi、C#等工具开发的。如何用ANSI C来实现呢?其实C在做这种底层事情方面比Delphi和C#都要容易的。下面这个函数就是取得硬盘序列…

win7读取linux硬盘序列号,Windows 下获取硬盘序列号

只获取序列号 以下任意一条命令都可以: wmic diskdrive get serialnumber wmic path win32_physicalmedia get SerialNumber wmic path Win32_DiskDrive get SerialNumber 运行结果: 获取硬盘的更多信息 wmic diskdrive get Name, Manufacturer, Model, InterfaceType, Media…