NB-IOT联网通信

概述:

1.了解NB-IOT

2.掌握NB-IOT模块AT组网指令

3.掌握NB-IOT数据传输方法

4.掌握Flash Programmer代码烧写工具使用

5.云平台连接数据上报

NB-IOT技术简介

        NB-IoT全称窄带物联网(Narrow Band IOT),构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。

        NB-IoT是IoT领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接。NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接。

LPWAN与NB-IOT

        物联网通信有很多种,从传输距离可以分为两类。

        一类是短距离通信技术,例如zigbee、Wi-FI、Bluetooth、Z-wave等,目前非常成熟应用与各自领域。

        一类是长距离无线通讯技术、宽带广域网,例如,电信CDMA、移动联通3G4G无线蜂窝通信和低功耗广域网即LPWAN

        目前主流LPWAN的技术又可以分为两类:一类是工作在非授权频段的技术,例如:lora、sigfox等,自定义实现。lora技术标准有美国Semtech研发,sigfox技术标准由法国研发,由于授权频段与我国冲突,目前没有在我过取得授权。一类是授权频段,如NB-IOT、eMTC等。

      NB-IOT、eMTC与lora技术参数对比

NB-IOT的14个频段

 NB-IOT网络体系架构

 

(1)NB-IoT终端UE(User Equipment):应用层采用CoAP,通过空口Uu连接到基站。Uu口是终端UE与eNodeB基站之间的接口,可支持1.4MHz至20MHz的可变带宽。
(2)eNodeB(evolved Node B,E-UTRAN基站):主要承担空口接入处理、小区管理等相关功能,并通过S1-lite接口与IoT核心网进行连接,将非接入层数据转发给高层网元处理。
(3)EPC核心网(Evolved Packet Core network):承担与终端非接入层交互的功能,并将IoT业务相关数据转发到IoT平台进行处理。同理,这里可以使用NB独立组网,也可以与LTE共用核心网。
(4)IoT平台:汇聚从各种接人网得到的IoT数据,并根据不同类型转发至相应的业务应用器进行处理。
(5)应用服务器AP(App Server):是IoT数据的最终汇聚点,根据客户的需求进行数据处理等操作。应用服务器通过HTTP/HTTPs和平台通信,通过调用平台的开放API来控制设备。平台把设备上报的数据推送给应用服务器。
终端UE与物联网云平台之间一般使用CoAP等物联网专用的应用层协议进行通信,主要考虑UE的硬件资源配置一般很低,不适合使用HTTP/HTTPs等复杂协议。
物联网云平台与第三方应用服务器AP之间,由于两者的性能都很强大,要考虑代管、安全等因素,因此一般会使用HTTP/HTTPs应用层协议。

实验芯片

        利尔达NB86系列模块是基于HISILICON Hi2110的Boudica芯片开发的,该模块为全球领先的NB-IoT无线通信模块,符合3GPP标准,支持Band1、Band3、Band5、Band8、Band20、Band28不同频段的模块,具有体积小、功耗低、传输距离远、抗干扰能力强等特点。

NB86-G模块工作模式及相关技术

1.模块工作时的默认模式
(1)连接态(Connected)
此状态下可以发送和接收数据,模块注册入网后即处于该状态。无数据交互超这一
间,不活动定时器计数时间到后会进入Idle模式,时间是由核心网确定的,范围为1~30m
(2)空闲态(Idle)
此状态下可接收下行数据,无数据交互超过一段时间会进入PSM模式。时间由核置,由激活定时器(Active timer)T3324来控制,范围为0~11160s。
(3)节能模式(PSM)
此状态下终端处于休眠模式,近乎关机状态,功耗非常低。在PSM期间,终端不用寻呼,但终端还是注册在网络中,但信令不可达,无法收到下行数据,功率很小默认为5m的时间由核心网配置,TAU(扩展)定时器T3412来控制,范围最大320h.默认为54m。

 NB-IOT AT命令

        AT命令是用来控制TETerminal Equipment,终端设备)和 NB-IOT 模块之间交互的规则。

 一、打开串口助手,选择正确的COM口,设置波特率9600,数据位8,校验位None,停止位1,流控无,输入"AT"点击发送返回OK说明模块正常.

 二、查询IMEI号(设备识别)AT+CIMI

 三、查询当前信号质量 AT+CSQ

 四、查询制造商      AT+CGMI、查询模块型号   AT+CGMM、查询固件版本   AT+CGMR、

开启NB-IOT AT+CFUN=1;查询连接状态  AT+CSCON=0; 网络注册 AT+CEREG=2 ;开启下行数据;通知  AT+NNMI=1;连接核心网 AT+CGATT=1;目前中国电信运营商NB-IOT云平台只 支持coap接入。

NB-IOT对接流程

 NB-IOT案例智能路灯系统

         任务要求:将NB-IOT接入云平台,并上传光照传感器数据到云平台

一、main.c 中,已经做好了系统时钟初始化、GPIO 初始化、ADC采集初始化、USART1 USART2两个串口的初始化并启用了串口中断同时移值了oled 显示屏和按键初始化和事件处理代码,重写了USART1的printf重定向代码,写好了 control_light()方法用于控制灯,automatic_mode()方法用于按照预设好的光照度阀值自动控制灯的开与关。

//用于实现USART1 printf()输出
int fputc(int ch, FILE *f)
{ 
  HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, 10);
  return(ch);
}

float get_illumination_value()//获取光照强度数值
{
	float adcValue;
	float illumination_value;

	
	//启动ADC
	HAL_ADC_Start(&hadc);  
	
	//等待采集完成
	HAL_ADC_PollForConversion(&hadc,10); 
	
	//获取ADC采集的数据
	adcValue = HAL_ADC_GetValue(&hadc);

	//将采集到的数据转换为电压值(单位:v)
	adcValue = adcValue * 3.3 / 4096.0;

	//将电压值转换为光照强度
	illumination_value = pow(10,((1.78-log10(33/adcValue -10))/0.6));
	
	//在OLED上显示数据
	oled_display_illumination(illumination_value);
	
	//停止ADC
	HAL_ADC_Stop(&hadc); 
	
	return illumination_value;
}

void control_light(uint8_t status)//控制灯的亮灭
{
	if(status == LIGHT_OPEN)
	{
		HAL_GPIO_WritePin(Light_GPIO_Port, Light_Pin, GPIO_PIN_SET);
		oled_display_light_status(LIGHT_OPEN);
	}
	else
	{
		HAL_GPIO_WritePin(Light_GPIO_Port, Light_Pin, GPIO_PIN_RESET);
		oled_display_light_status(LIGHT_CLOSE);
	}
}

void int main()
{
	//等待NB模块启动
	wait_nbiot_start();

	//NB模块配置
	nbiot_config();

    //连接服务器
	link_server();
    while(1)
    {
		//1.5S采集并发送一次数据
		if(i++ > 14)
		{
			i = 0;
			//获取光照值
			ill_value = (int)get_illumination_value();
			
			//自动模式下,光照强度小于3会自动开灯
			if(mod_flag == 1)
			{
				automatic_mode(ill_value, &lightStatus);
			}
			
			if(link_flag < 2)
			{
				//获取时间
				get_time_from_server();

			}
			else if(link_flag == 2)
			{
				//发送数据到云平台
				send_data_to_cloud( ill_value, lightStatus);
				send_count++;
			}	
		}
    }
}

        NB-IOT相关配置代码

void wait_nbiot_start(void)//等待NB模块启动
{
	int timeOut = 0;
	printf("waite NBIOT Start\r\n");
	while(1)
	{
		HAL_Delay(1000);
		if(wait_answer("OK") == 0)//启动会返回OK 接收到有效字符串
		{
			printf("NBIOT Start\r\n");
			break;
		}
		if(timeOut > 10)//计数值大于10超时
		{
			timeOut = 0;
			nb_reset();//复位
			printf("waite NBIOT Start\r\n");
		}
		timeOut++;//执行计数
	}
	
}

void nbiot_config(void)  //NB模块配置
{  //开启NB-IoT芯片所有功能    
    send_AT_command("AT+CFUN=%d\r\n",1);   
    wait_answer("OK");//注意:每一步AT指令配置要等待配置成功的反馈之后再进行下一步配置!       
    //查询信号连接状态
    send_AT_command("AT+CSCON=%d\r\n", 0);  
    wait_answer("OK");  //注意:每一步AT指令配置要等待配置成功的反馈之后再进行下一步配置!      
    //打开网络注册和位置信息的主动上报结果码 0关闭 1 注册并上报 2 注册并上报位置信息
    send_AT_command("AT+CEREG=%d\r\n", 2);  
    wait_answer("OK");   //注意:每一步AT指令配置要等待配置成功的反馈之后再进行下一步配置!     
    //开启下行数据通知
    send_AT_command("AT+NNMI=%d\r\n", 1);  
    wait_answer("OK");    //注意:每一步AT指令配置要等待配置成功的反馈之后再进行下一步配置!    
    //打开与核心网的连接  1是打开  0是关闭
    send_AT_command("AT+CGATT=%d\r\n", 1);  
    wait_answer("OK");  //注意:每一步AT指令配置要等待配置成功的反馈之后再进行下一步配置!
}

void link_server(void)// NB模块连接服务器
{
	//link sever
 send_AT_command("AT+NCDP=%s,%d\r\n", "117.60.157.137", 5683);  
    wait_answer("OK"); 

	//wait OK

}

void send_data_to_cloud(int illumination,uint8_t light_status)//NB模块发送数据到云平台
{
	uint8_t send_buf[128] = {0};
	
	RTC_TimeTypeDef gTime;
	RTC_DateTypeDef gDate;
	
	//时间校准
	HAL_RTC_GetTime(&hrtc, &gTime, RTC_FORMAT_BIN);
	HAL_RTC_GetDate(&hrtc, &gDate, RTC_FORMAT_BIN);
	//time_cal(1, &gDate.Year, &gDate.Month, &gDate.Date, &gTime.Hours);
	
	
	
	sprintf((char *)send_buf, "\
%02X%02X%02X\
%02X%02X%02X\
%02X%02X\
%02X%02X%02X%02X%02X%02X%02X%02X\
",
	0x4a,0x00,0x00,//固定0x4a 固定值 0 没有后续消息 0 
	0x01,(illumination & 0xff00) >> 4, (illumination & 0x00ff),//数据服务 光照度0x01 serviceid 
	0x02, light_status,//0x02 光照度值
	0x04,20, gDate.Year, gDate.Month, gDate.Date, gTime.Hours, gTime.Minutes, gTime.Seconds);
//报告时间 serviceid 0x40 20时间参数  年 月 日 时 分 秒 
	printf("send sensors data:AT+NMGS=%d,%s\r\n", (strlen((char *)send_buf)/2), send_buf);
	send_AT_command("AT+NMGS=%d,%s\r\n", (strlen((char *)send_buf)/2), send_buf);

}

二、使用Flash Programmer烧写工具进行hex烧写,选择串口和波特率。

 

 

 模块上电:

 

  • 3
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 5G物联网是指在5G网络环境下实现物联网技术的应用和发展。它能够提供更高的带宽、更低的延迟和更大的连接密度,从而实现更快的数据传输和更多设备的联接。5G物联网的发展将推动各行各业的数字化转型和智能化升级,对于工业控制、智能交通、智能家居、智慧城市等领域具有重要意义。 NB-IoT(Narrowband IoT)是一种为物联网设备提供低功耗、广覆盖、低速率通信的技术标准。相比于传统的蜂窝网络,NB-IoT能够提供更广阔的覆盖范围和更长的电池寿命。NB-IoT主要应用于追踪物品、环境监测、智能电表等需要长时间低功耗通信的场景。 5G物联网NB-IoT技术具有许多重要特点和优势。首先,5G物联网可以为物联网设备提供更高的带宽和更低的延迟,从而支持更多实时应用和大规模部署。其次,NB-IoT技术具有广阔的覆盖范围和低功耗的特点,适用于大规模低功耗设备的联网需求。再次,5G物联网NB-IoT技术都具有较强的安全性和可靠性,能够保障物联网设备的数据和通信安全。 5G物联网NB-IoT技术的发展对于推动物联网行业的发展具有重要意义。它们将为各种应用场景提供更高效、更稳定的通信能力,为智能化生活和工作带来更多机遇和便利。同时,为了更好地应用和发展这些技术,需要加强网络建设和设备标准化,提高网络覆盖能力和设备互操作性,以满足日益增长的物联网需求。 ### 回答2: 江林华,5G物联网NB-IoT技术是目前在物联网领域的两项重要技术。 首先,5G物联网是指利用5G技术来实现物联网的无线通信。5G物联网相较于传统物联网,具有更低的延迟、更高的带宽和更大的容量。这意味着5G物联网可以支持大规模的设备连接,并能够实时传输大量的数据。此外,5G物联网还能够提供更可靠的网络连接,以满足物联网应用对高可靠性的要求。 其次,NB-IoT技术是一种针对低功耗广域物联网设备设计的无线通信技术。NB-IoT采用窄带调频技术,能够在低功耗、广覆盖和高连接密度的要求下提供稳定的通信NB-IoT技术具有功耗低、成本低、覆盖广、连接密度高的特点,适用于很多物联网场景,如智能仪表、追踪设备和环境监测等。 总结而言,5G物联网NB-IoT技术是物联网发展中的两大关键技术。5G物联网提供了更高速、更可靠、更大容量的网络连接,为物联网的发展提供了更好的基础。而NB-IoT技术则专注于低功耗物联网设备的通信需求,满足了许多低功耗广域物联网应用的要求。这两项技术的结合将推动物联网的快速发展,为人们提供更多更方便的智能化服务。 ### 回答3: 5G物联网是指第五代移动通信技术与物联网技术的结合。它具有高速、低延迟、大容量、广连接等特点,能够实现海量设备之间的高效通信和数据传输。NB-IoT是窄带物联网技术的一种,是一种低功耗、广覆盖、井通信的物联网技术。 5G物联网的关键技术包括高频谱利用率、大规模MIMO、超密集网络、低延迟传输等。高频谱利用率使通信速率更高,大规模MIMO能够提高信道容量,超密集网络则增加小基站的密度,提高覆盖范围和传输速率。低延迟传输保证了物联网设备的实时性,即时反馈。 NB-IoT技术是用于物联网的无线通信技术之一,它采用窄带信道,能够实现低功耗、广覆盖、井通信的特点。NB-IoT适用于大规模部署、低功耗设备的连接需求,例如智能电表、智能停车场等。相比较其他物联网技术,NB-IoT最大的优势在于覆盖范围广且建设成本低。 NB-IoT技术的应用场景广泛,包括智能城市、智能家居、智能交通等领域。在智能城市方面,NB-IoT可以用于智能电网的监测和控制,实现智能照明和智能用电。在智能家居方面,NB-IoT可以连接智能家电和智能设备,实现远程控制和智能化管理。在智能交通方面,NB-IoT可以用于智能停车场的管理和车辆追踪。 总而言之,5G物联网NB-IoT技术的发展将极大地推动物联网的发展,为我们的生活带来更多的便利和智能化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李今天摸鱼了嘛?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值