基于NB-IoT的智能停车系统——简单搭建

NB-IoT 专栏收录该内容
1 篇文章 1 订阅

1 产品功能

本项目主要用于实现以下功能:

1)在停车位上的传感器实时检测当前车位上的停车情况,通过超高灵敏度的磁阻传感器检测车辆对地磁场的扰动实现。

2)远程信息传输,这里主要传输的是停车状态,有车发送1信号,无车发送0信号。通过当前流行的NB-IoT和STM32单片机模块实现,通过WIFI,用UDP协议去通信。

3)上位机信息接收,主要功能有UDP协议通信、JDBC连接MySQL数据库、GUI界面显示,通过Java应用程序实现效果。

2 基本原理

2.1 磁阻传感器AMR

用于检测地球磁场大小变化的传感器。与差动放大器配套。

众所周知,地磁场大小为0.5-0.6Gs(1T=10000Gs,已知一个黑板吸铁的磁场强度为1500-2000Gs)。因此若要能检测地磁场的大小变化,希望传感器传感范围为-10Gs~10Gs,灵敏度为10mGs,当检测到微弱的磁场变化时,便能输出变化明显的电平信号,这样才可能实现停车的传感检测。

我们使用的传感器为双轴各向异性磁阻传感器,能测量平面上的磁场大小,相比同为测磁场的霍尔传感器更加灵敏。

地磁扰动现象

2.2 NB-IoT和STM32单片机模块

用于实现远程与计算机通信。距离无限,只要当地有网络WIFI,便可与天各一方的计算机通信。

NB-IoT为当下流行的物联网远程通信模块,能通过多种协议,如UDP、TCP/IP、http、LWM2M协议与计算机收发信息,从简单至复杂,都能实现远程控制。这里用到移远公司最新的BC20模块。

STM32单片机,接收传感器信号,控制NB-IoT。若只有NB-IoT模块,只能实现一次简单的信息传输。若想要实现多功能个性化设计,单片机往往不可或缺。
移远公司的BC20开发板

2.3 Java应用程序与MySQL数据库

Java是一门高级语言,能够监听计算机端口的信息,接收识别数据,通过JDBC连接转存到数据库后,以GUI界面输出信息。MySQL数据库,常用于与Java的连接。可以在计算机中存储想要存储的信息,这里是指车位信息。
MySQL数据库

3 功能实现

3.1 前端采集

先介绍一下地磁传感原理。

在均匀磁场中,放上一块铁块,铁块周围磁场是否会变?会变。磁感线会向铁块聚拢,磁场会从均匀磁场变化为不均匀磁场,铁块周围磁感线变密集,磁场变强。

众所周知,地磁场大小为0.5~0.6Gs,地球上的物质全部处于地磁场之中。可以把轿车看作一个大型铁块,地球的磁感线会向铁块聚拢,铁块周围磁感线变密集,磁场变强。

因此,当轿车行驶到地磁传感器上方时,传感器便能检测到比普通地磁场(0.5-0.6Gs)要强的磁场(大约为1-2Gs)。

当检测到这样强的磁场时,传感器能发出高电平,向单片机发送,表示当前位置有车。当没有检测到这样强的磁场时,传感器能发出低电平,向单片机发送,表示当前位置无车。单片机内有智能程序,通过识别传感器发送过来的高低电平,能控制NB-IoT模块发送不同的信息到电脑。

在这里插入图片描述

3.2 信息处理

STM32单片机内有智能程序,通过识别传感器发送过来的高低电平,能控制NB-IoT模块发送不同的信息到电脑。

主要代码如下:
STM32的相关C语言代码

控制NB-IoT,发送具有一定格式的字符串到电脑,电脑Java进程实时监控,当检测到这样格式的字符串时,Java应用程序便可以将相关信息:Num(产品编号)、IP(NB-IoT注册的IP地址)和Park(停车状态)存储到数据库。

3.3 数据管理

电脑Java进程实时监控,当检测到有一定格式的字符串时,Java应用程序便可以将相关信息:Num(产品编号)、IP(NB-IoT注册的IP地址)和Park(停车状态)分别存储到数据库的ID、IP和STATE中。

监听端口1001接收UDP信息
端口监听

存储到数据库
存储到数据库

调用数据库,界面显示
调用数据库,加入数组

界面显示

4 总结与展望

目前市面上地磁传感器种类并不算少。在传感器上,使用磁阻传感器,相比环形线圈、超声波、红外线检测,功耗低,准确度高,安装简便,适合低成本开发。无线通信方面,目前主要有LoRa和NB-IoT通讯两种,选择LoRa通信每几百米就要设一个网关,安装费时费力;NB-IoT可以不受距离限制,能连上基站就能发上主机,而且受政府支持,比较容易开发。通信协议方面,选择UDP通信协议,发送前不需建立连接,尽最大努力交付数据包,用于不是文件的字符串传输足够稳定。整个系统研发成功后,单个设备的购置硬件、电路板设计焊接,预计100元。可以家中自行设计,用于在悠闲看电视的时候,通过这个系统,实时监测父母有没有开车回家。

  • 10
    点赞
  • 3
    评论
  • 42
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

NB-IoT现阶段访问一个服务器只能通过IP地址加端口的方式,省去了DNS解析,如果产品以后的IP变化或者改变了服务端的IP地址,就需要一个DNS解析的功能。 通过DNS解析某个域名的IP地址,获取到IP地址后再进行通信。 如果NB-IoT模块只能绑定一个IP,则可以通过这个IP先获取其他IP列表,然后统一经过这个IP进行转发。 参考: 1.1.2 NB卡准备 模组使用的SIM卡为中国电信物联网专用NB卡,如下图正面(留意NB字样,无此字样的均为不合法的NB卡): 背面(留意其ICCID号,在让运营商开放IP白名单时可能需要此号码,相当于手机卡的手机号): 重要:收到卡后,需要致电背面的客服电话, 使其将您自己的IP地址加入访问白名单,此一步完成后,方能进行下面的步骤,切记切记 。 如何判定服务器IP已被加入访问白名单,使用如下两种方式: 1. AT+NPING 指令,通过PING自己的服务器地址,如返回ERROR,则多半(尚需继续排除防火墙因素)未就绪; 2. UDP通讯,如能与自己的服务器直接连接UDP通讯,那可以证明一定就绪; 1.1.3 服务器准备  首先您需要有一个固定IP的公网服务器,由于目前BC95暂不支持域名解析,故必须使用IP地址配置方式。  服务器可以使用阿里云服务器,目前本CoAP端暂未开源,有Windows 32位、Windows 64位、Linux CentOS 6、CentOS 7的可执行文件,请暂时选择以上指定系统;  CoAP标准协议使用 UDP 5683 端口,当然您也可以自定义此端口,必须让防火墙放通UDP 的指定端口;  CoAP网关需要使用WEB方式进行设备管理、用户管理等,默认使用 TCP 8080 端口,同 理,防火墙必须放通此端口; 1.1.4 模组准备 推荐使用 串口调试助手 sscom 来调试NB模组,如下,首先将您的NB模组上电使其启动,使用AT指令能收到OK的回复,证明已启动完毕,按如下步骤进行: 基础配置 1. 配置 NCDP 服务器,使用的指令序列为 AT+CFUN=0 +NCDP=103.37.149.19,5683 AT+NRB 留意 IP 地址必须为您自己指定的IP地址,如果暂时没有,也可以用 如上 地址临时使用(但 WEB 设备管理地址也需换成这个IP),完成后重启了设备; 2. 等待设备附着网络后,使用 AT+NPING=103.37.149.19 尝试PING自己的服务器,当返回ERROR时,极有可能是 IP 白名单未成功配置的缘故; 3. 使用 AT+CGSN=1 查询设备 IMEI 号,并将设备的 IMEI 注册到 WEB 平台,如果在上面操作 过,可忽略。
©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值