文章目录

  • 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]<'3'){memset(USART2_RX_BUF,0, sizeof USART2_RX_BUF); USART2_RX_STA=0;x++ ;}else {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 最后

【毕业设计】单片机与NBIOT通信模块 - 单片机 物联网 stm32相关推荐

  1. 【毕业设计】基于单片机的智能衣柜系统设计 - 物联网 stm32 嵌入式

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 硬件系部分 3.2 软件部分 3.1 系统架构 3.2 硬件设计 3.3 软件设计 主程序介绍 按键扫描程序设计流程 DHT ...

  2. 【毕业设计】基于单片机的家庭智能监控系统 - 物联网 stm32 嵌入式

    文章目录 1 简介 2 主要器件 2.1 ESP32-CAM 模块 2.2 红外热释电传感器 3 实现效果 4 部分实现代码 5 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做 ...

  3. 毕业设计 单片机智能手环计步器 - 嵌入式 物联网 stm32

    文章目录 1 简介 1 项目背景意义 2 系统方案的设计 3 系统总体结构 4 系统硬件设计 4.1 主控模块 4.2 姿态解算模块:MPU6050 4.3 DS3231实物图 4.4 TFT显示模块 ...

  4. 【毕设教程】单片机RFID模块的使用 - 物联网 嵌入式 毕业设计 stm32

    文章目录 1 简介 2 RFID模块 2.1 RFID模块组成 3 连接单片机 4 代码 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍单片机项目开发常用外围器件 RFID模块的使用 ...

  5. 【毕业设计】基于单片机的火灾报警系统设计与实现 - 物联网 stm32

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 烟雾传感器介绍 3.1 类型 3.2 MQ系列传感器介绍 3.3 模块介绍 4 系统设计 4.1 自诊断故障报警功能 4.2 烟雾浓度显示 4 ...

  6. 【毕业设计教程】单片机接入按键控制遥感 -嵌入式 物联网 stm32 c51

    文章目录 1 简介 2 主要器件 2.1 双轴摇杆模块 2.2 电路原理图 3 实现效果 4 测试代码 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍如何使用单片机接入按键遥感 单片 ...

  7. 【毕业设计】基于单片机的智能饮水机系统 - stm32 物联网 嵌入式

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 智能饮水机功能设计 3.1.1 智能饮水机的按键功能: 3.1.2 智能饮水机的显示功能: 3.2 系统架构 3.3 软件部 ...

  8. 毕业设计 单片机火灾报警系统设计与实现 - stm32 嵌入式

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 烟雾传感器介绍 3.1 类型 3.2 MQ系列传感器介绍 3.3 模块介绍 4 系统设计 4.1 自诊断故障报警功能 4.2 烟雾浓度显示 4 ...

  9. 毕业设计 单片机智能饮水机系统 - 物联网 嵌入式

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 智能饮水机功能设计 3.1.1 智能饮水机的按键功能: 3.1.2 智能饮水机的显示功能: 3.2 系统架构 3.3 软件部 ...

  10. 51单片机和NBIOT

    51单片机和NBIOT模块 一.NBIOT模块 1.基本功能及原理图 NB75-BA用于实现MCU与NB-IoT网络间的数据双向透传功能. 11和12引脚接地,13和14引脚接5V电压,6和7引脚反接 ...

最新文章

  1. VUE搭建开发,以及打包。
  2. 需求管理与分析——需求池
  3. unity 热更新:C#与Lua相互调用(转载)
  4. 老游戏与你共渡亲子时光
  5. java 注入为空_Spring @Autowired 注入为 null
  6. OCJP认证 | 国际上最热门的IT认证之一,开启你高级认证的钥匙
  7. 根号二怎么不用计算机算,[转载]开根号,不用计算器你会么?
  8. PL3369C原边12W电源芯片
  9. android 中文冒号,Kotlin中双冒号::使用方法
  10. 在NS2 AODV协议中添加blackhole attacker(黑洞攻击) [转载]
  11. mysql语句批量更新数据库_sql 更新批量数据库语句
  12. C#制作UDP协议可同时收发Winform窗体
  13. 平台如何实现实人认证?
  14. LIO-SAM imuPreintegration
  15. 线索二叉树和中序非递归遍历线索化后的二叉树
  16. css设置了透明背景,字也被透明了
  17. FPGA(二)串口通信
  18. Android单点触控技术,对图片进行平移,缩放,旋转操作
  19. About Refactoring
  20. 2015阿里校园招聘测试开发面试经验(广州站)

热门文章

  1. 聊一聊如何把SSL证书安装到小鸟云服务器上
  2. Carson带你学Android:手把手带你深入分析事件分发机制!
  3. (附源码)小程序校园拼车微信小程序 毕业设计 091617
  4. 2013年12月14日家中聚餐
  5. 便携智能音箱小问mini发布,李志飞:要做苹果一样的公司
  6. python程序设计基础上机题5.16-----5.26(2)
  7. 简单的Wifi网络概念
  8. 干货 | 什么是ABCDE轮融资?
  9. 图形驱动程序和显卡驱动什么区别_电脑游戏显卡和专业图形显卡存在的区别
  10. 计算机常用键的作用,键盘功能键大全2017 电脑键盘常用按键功能详解