【第六章】STM32单片机+NB-IoT模组BC95采集温湿度数据发到电信平台(下)

该博客详细介绍了如何使用STM32单片机和NB-IoT模组BC95,通过CoAP非加密方式连接电信平台,实现温湿度数据的采集和上报。内容包括串口助手AT命令对接平台的步骤,以及通过LiteOS API方式接入,创建传感器采集和数据上报任务的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关信息

设备接入方式:CoAP非加密方式

 

应用开发

串口助手AT命令对接平台

这部分内容是通过电脑串口调试软件,手动发AT指令,直接发给NB-IoT模块。NB模块返回的信息,直接到电脑串口调试软件。一步一步动手操作,实现连接OceanConnect平台。采用的通讯协议是CoAP协议。

Step 1 配置对接平台地址

指令:AT+NCDP=<ip_addr>[,<port>]

<ip_addr>:填写平台设备接入地址

<port>:填写接入方式的端口号

例:AT+NCDP= 139.159.140.34,5683

Step 2 软件重启模组

指令:AT+NRB    //配置完配置对接平台地址后需要重启模块才能生效

REBOOTING

0???

REBOOT_CAUSE_APPLICATION_AT

Neul

OK

Step 3 检查是否入网成功

指令:AT+CGATT?

+CGATT:1 //返回1表示入网成功,返回0入网失败,300s后依然为0,则重启模组

 

OK

Step 4 发送数据

指令:AT+NMGS=<length>,<data>

<length>:数据长度

<data>:数据(十六进制格式)

例:AT+NMGS=8,31322E3132332E34  //上报数据

OK

LiteOS API方式接入

这部分的通过单片机搭载华为LiteOS操作系统,并移植了可兼容所有AT指令型的AT框架程序,调用AT框架的API接口实现快速连接华为OceanConnect平台。并能实时接收平台下发的命令,实现对设备的控制,以下讲解调用API实现的方式。

Step 1 分析主程序

int main(void)
{
    UINT32 uwRet = LOS_OK;
	
    HardWare_Init();
    uwRet = LOS_KernelInit();
    if (uwRet != LOS_OK)
    {
        return LOS_NOK;
    }
			
    uwRet = creat_main_task();
    if (uwRet != LOS_OK)
    {
        return LOS_NOK;
    }


    LOS_Start();
}

 

主程序主要包括初始化硬件外设、初始化内核、创建传感器数据采集任务、创建数据上报任务,接下来讲详细讲解主要部分的实现方式。

Step 2初始化硬件

 

VOID HardWare_Init(VOID)
{
	HAL_Init();
	/* Configure the system clock */
	SystemClock_Config();

	/* Initialize all configured peripherals */
	dwt_delay_init(SystemCoreClock);
	MX_GPIO_Init();
	MX_USART1_UART_Init();
	printf("Welcome to IoT-Club, This is EVB-M1 Board.\r\n");

	
}

首先调用 HAL_Init() 初始化HAL库;SystemClock_Config(),用于系统时钟的配置;再调用MX_GPIO_Init()

初始化相应的GPIO;最后初始化单片机debug串口。

Step 3创建传感器采集任务

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值