【毕业设计】单片机与NBIOT通信模块

您所在的位置:网站首页 呼叫器原理 【毕业设计】单片机与NBIOT通信模块

【毕业设计】单片机与NBIOT通信模块

2023-08-11 15:45| 来源: 网络整理| 查看: 265

文章目录 1 简介2 NBIOT 简介2.1 NBIOT 的特点2.2 NBIOT 的优点2.3 NBIOT能做什么 NBIOT 模块使用4 实现效果5 STM32 驱动NBIOT模块6 最后

1 简介

Hi,大家好,这里是丹成学长,NBIOT是近几年不比较火的远程通信模块,是物联网的重要技术,今天学长向大家详细介绍什么是NBIOT,NBIOT模块能做什么,以及但单片机如何使用NBIOT模块

单片机与NBIOT通信模块

大家可用于 课程设计 或 毕业设计

单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052

2 NBIOT 简介

基于蜂窝的窄带物联网(Narrow Band Internet of Things, NB-IoT)成为万物互联网络的一个重要分支。NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。

NB-IoT是IoT领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(LPWAN)。NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接。据说NB-IoT设备电池寿命可以提高至至少10年,同时还能提供非常全面的室内蜂窝数据连接覆盖。

重点:NBIOT是一种通信技术,是用于通信的!单片机通过该模块可以与外接互联网进行数据交互!

2.1 NBIOT 的特点 频谱窄:200kHz;终端发射窄带信号提升了信号的功率谱密度,提升了信号的覆盖增益,并且提升了频谱利用效率;相同的数据包重复传输也可获得更好的覆盖增益;另外该技术降低了终端的激活比,降低了终端基带的复杂度。NB-IOT四大能力:广覆盖,海量连接,更低功耗,更低芯片成本。NB-IOT基于现有蜂窝网络的技术,可以通过升级现网来快速支持行业市场需求,成为GUL网络上的第四种模式。 2.2 NBIOT 的优点 NB-IOT与其他的LPWA技术LoRa,Sigfox的比较优势可以重用现网资源,支持广覆盖标准化技术,支持切换移动性好。产业链丰富20dB+增益(vs GSM)授权频谱,抗干扰性好 2.3 NBIOT能做什么 智能水表智能停车宠物智能跟踪智能自行车智能烟雾检测器智能马桶智能售货机等等等等 NBIOT 模块使用

这里以市面上常见的NB260模块为例: 在这里插入图片描述 NB260是基于移远NB-IOT模块:BC26的小系统板,板载了IPEX射频天线座,5V转3.3V LDO稳压电源,MicroSIM卡座,ESD防护电路,开机电路等,即插即用。

NB260小系统板采用2.54标准间距排针,引出BC26模块的全部可用GPIO口,整板尺寸仅 25mm*33.02mm,便于嵌入到客户产品中。

支持的频段 在这里插入图片描述

引脚信号

NB260引脚排列如下图所示。

CON1(P1)右侧一列信号为:GND,VIN,TXD,RXD,PEN,RST,EINT,NRI(NRI电压域1.8V,若用作唤醒MCU,可以简单串联1K电阻然后上拉后与MCU的GPIO口相连。),该列信号还与NB101,NB200兼容,可以相互替换。

在这里插入图片描述

SIM卡槽

NB260采用自弹式MicroSIM卡槽,注意SIM卡插入方向为:卡缺口朝外。

工作模式

在这里插入图片描述

4 实现效果

(以下为学长作品) stm32 + NBIOT模块构建的家庭烟雾报警系统(智能家居的一部分) 在这里插入图片描述

在这里插入图片描述

NBIOT指纹签到系统:

在这里插入图片描述

5 STM32 驱动NBIOT模块 #include"nbiot.h" /*************************************************************************************** 函数名:send_NB_IoT 功 能:发送数据到NB模块 参 数:cmd 要发送的数据或者命令 返回值: 例 子: 说 明: 作 者:丹成学长,q746876041 ****************************************************************************************/ void send_NB_IoT(u8 *cmd) { while(*cmd!='\0') { USART_SendData(USART2,*cmd++); while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==Bit_RESET); //发送数据结束 } } /*************************************************************************************** 函数名:NB_IoT_ack_chack 功 能://检查NB模块应答是否符合预期 参 数: 返回值: 例 子: 说 明: memset(a, 0, sizeof a); //清空数组 作 者:丹成学长,q746876041 ****************************************************************************************/ u8 NB_IoT_ack_chack(u8 *str) { delay_ms(10); if(USART2_RX_STA!=0) { USART2_RX_STA=0; if(strstr((const char*)USART2_RX_BUF,(const char*)str))//符合预期 { memset(USART2_RX_BUF,0, sizeof USART2_RX_BUF); return 0; } else //不符合预期 { memset(USART2_RX_BUF,0, sizeof USART2_RX_BUF); return 1; } } else { memset(USART2_RX_BUF,0, sizeof USART2_RX_BUF); //清空数组 return 1; } } u8 NB_IotConect() { u8 x=1; cmd1:send_NB_IoT("AT\r\n");// 指令测试 if(!NB_IoT_ack_chack("OK")) x=0; else goto cmd1; return x; } /*************************************************************************************** 函数名:NB_IoT_ZDFW 功 能:自动附着网络 参 数: 返回值: 例 子: 说 明: 作 者:丹成学长,q746876041 ****************************************************************************************/ u8 NB_IoT_ZDFW() { u8 x=0; cmd1: send_NB_IoT("AT+NCONFIG=AUTOCONNECT,TRUE\r\n") ; if(!NB_IoT_ack_chack("OK")) x++ ; else goto cmd1; cmd2: send_NB_IoT("AT+CFUN=1\r\n") ; if(!NB_IoT_ack_chack("OK")) x++ ; else goto cmd2; cmd3: send_NB_IoT("AT+NRB\r\n") ; if(!NB_IoT_ack_chack("REBOOTING")) x++ ; else goto cmd3; //确认自动附网 cmd4: send_NB_IoT("AT+NBAND?\r\n"); if(!NB_IoT_ack_chack("+NBAND:5")) x++ ; else goto cmd4; cmd5: send_NB_IoT("AT+CFUN?\r\n"); if(!NB_IoT_ack_chack("+CFUN:1")) x++ ; else goto cmd5; cmd6: send_NB_IoT("AT+CIMI\r\n"); if(!NB_IoT_ack_chack("460113007651563")) x++ ; else goto cmd6; cmd7:send_NB_IoT("AT+CSQ\r\n"); //确认信号质量第一个参数应该 1-30 之间 delay_ms(10); if(USART2_RX_BUF[7]>'0'&&USART2_RX_BUF[7] memset(USART2_RX_BUF,0, sizeof USART2_RX_BUF); USART2_RX_STA=0; goto cmd7; } cmd8: send_NB_IoT("AT+CGATT?\r\n"); if(!NB_IoT_ack_chack("+CGATT:1")) x++ ; else goto cmd8; cmd9:send_NB_IoT("AT+CEREG?\r\n"); if(!NB_IoT_ack_chack("+CEREG:0,1")) x++ ; else goto cmd9; cmd10:send_NB_IoT("AT+CSCON?\r\n"); if(!NB_IoT_ack_chack("+CSCON:0")) x++ ; else goto cmd10; cmd11:send_NB_IoT("AT+CGPADDR\r\n"); if(!NB_IoT_ack_chack("+CGPADDR:0,10.")) x++ ; else goto cmd11; if(x==11) return 0;//自动附着网络成功 else return 1;//自动附网失败 } /*************************************************************************************** 函数名:NB_IoT_conect_COAP 功 能:COAP连接 参 数: 返回值: 例 子: 说 明: 作 者:丹成学长,q746876041 ****************************************************************************************/ u8 NB_IoT_conect_COAP() { u8 x=0; cmd1: send_NB_IoT("AT+CGSN=1\r\n") ; if(!NB_IoT_ack_chack("+CGSN:356566078248721")) x++ ; else goto cmd1; cmd2: send_NB_IoT("AT+NCDP=180.101.147.115,5683\r\n") ; if(!NB_IoT_ack_chack("OK")) x++ ; else goto cmd2; cmd3: send_NB_IoT("AT+NRB\r\n") ; if(!NB_IoT_ack_chack("REBOOTING")) x++ ; else goto cmd3; cmd4: send_NB_IoT("AT+NCDP?\r\n"); if(!NB_IoT_ack_chack("+NCDP:180.101.147.115,5683")) x++ ; else goto cmd4; cmd5: send_NB_IoT("AT+NSMI=1\r\n"); if(!NB_IoT_ack_chack("OK")) x++ ; else goto cmd5; cmd6: send_NB_IoT("AT+NNMI=2\r\n"); if(!NB_IoT_ack_chack("OK")) x++ ; else goto cmd6; cmd7: send_NB_IoT("AT+NMGS=3,000102\r\n"); if(!NB_IoT_ack_chack("OK")) x++ ; else goto cmd7; if(x==7) return 0;//COAP连接成功 else return 1; //COAP连接失败 } /*************************************************************************************** 函数名:NBIoTInit 功 能:NBIoT初始化 参 数: 返回值: 例 子: 说 明: 作 者:丹成学长,q746876041 ****************************************************************************************/ void NBIoTInit() { NB_IotConect(); NB_IoT_ZDFW(); NB_IoT_conect_COAP(); // send_NB_IoT("AT+NMGS=10,53544d33325f4e423735\r\n"); //发送设备名字:STM32_NB75 // POINT_COLOR=BLUE; //设置字体为蓝色 // LCD_ShowString(50,80 ,250,16,16,"NBIoT conecting..."); // if (!NB_IotConect()) LCD_ShowString(50,80 ,250,16,16,"NB_IotConect success!"); // else LCD_ShowString(50,80 ,250,16,16,"NB_IotConect error!!"); // LCD_ShowString(50,100 ,250,16,16,"NBIoT Net conecting..."); // if(!NB_IoT_ZDFW()) LCD_ShowString(50,100,250,16,16,"NBIoT ZDFW success! "); //自动附着网络 // else LCD_ShowString(50,100,250,16,16,"NBIoT ZDFW error! "); // LCD_ShowString(50,120 ,250,16,16,"NBIoT COAP conecting..."); // if(!NB_IoT_conect_COAP()) LCD_ShowString(50,120,250,16,16,"NBIoT COAP success! ");//COAP连接 // else LCD_ShowString(50,120,250,16,16,"NBIoT COAP error! "); // send_NB_IoT("AT+NMGS=2,0005\r\n"); }

单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052

6 最后


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3