目录
一、项目意义和项目简介
本项目的开发的目的是为了实现井盖状态的实时监控和管理,提高城市管理的效率和安全性。随着城市化进程的加快,传统的井盖管理模式已经无法满足现代城市的需求。传统的管理模式不仅效率低下,而且无法实时有效地获得设备的信息,面对异常情况无法实现实时监控和快速高效的管理。通过采用先进的物联网技术,智能井盖系统不仅能够实时监测井盖的状态,还能够通过数据分析预测潜在的安全风险,从而实现对城市井盖的高效、智能化管理。这不仅是对传统井盖管理模式的一种技术革新,更是向智慧城市迈进的重要一步。
终端设备采用AIR780E模块作为主控器,电子模块有三轴加速度传感器、可燃气体传感器,AIR780E模块(4G模块)通过MQTT通信协议进行数据打包上传至EMQX服务器,在EMQX服务器中,用户可以自行订阅主题和发布主题,小程序通过MQTT通信协议订阅EMQX服务器的主题,服务器通过接收到硬件发布的数据,转发到微信小程序。
二、硬件设计
1.原理图设计
本项目硬件有两种设备角色,网关角色:AIR780E模块4G通信+lora通信+采集传感器信息;终端角色:stm32主控mcu+lora通信+采集传感器信息。同一个原理图和PCB,兼顾这两个角色,利于降低生产和管理、物流成本。
2.PCB设计
PCB的设计采用模块化器件,同时支持网关和终端,同时布局了4G模块和STM32。附上了项目名称,小程序二维码,学校LOGO。
3、主要器件
3.1三轴加速度传感器
工作原理:三轴加速度传感器通过检测物体在空间三个正交方向(X、Y、Z轴)上的加速度,来测量物体的运动状态。这种传感器能够将加速度转化为电阻、电压或电容的变化,进而通过电路处理输出为模拟或数字信号。
故障诊断:在井盖设备中部署三轴加速度传感器,实时监测设备的振动情况,通过分析振动数据并且上传到服务器来预测并防止潜在的机械故障。
local accel = mpu6xxx.get_accel()--获取加速度
data_pub["accel"] = accel
--local jsonaccle = json.encode(accel)
log.info("6050accel", "accel.x",accel.x,"accel.y",accel.y,"accel.z",accel.z)
log.info("gyro.x",gyro.x,"gyro.y",gyro.y,"gyro.z",gyro.z)
local json_data_pub = json.encode(data_pub)
3.2可燃气体传感器
工作原理:可燃气体传感器主要通过检测特定气体的浓度变化来工作,当气体浓度超过预设的安全水平时,传感器会触发警报系统。
故障诊断:可燃气体传感器的主要优点是能够提供实时监控,快速响应和高灵敏度,,这使它们能够迅速检测到气体泄漏并及时采取措施以防止事故发生。
关键部分代码:
log.debug("adc", "adc" .. tostring(adc_pin_1), adc.get(adc_pin_1))
local gas = adc.get(adc_pin_1)
data_pub["gas"] = gas
local jsongas = json.encode(gas)
log.info("gas", "jsongas", jsongas)
3.3GPS模块
说明: 代码中使用了libgnss库来获取GPS数据,并通过uart接口与GPS硬件通信。当GPS状态变为“FIXED”(定位成功)时,收集的位置信息被记录并用于发布。
关键部分代码:
local locStr = libgnss.locStr()
log.info("gnss", "locStr", locStr)
lat = string.sub(locStr, 1, 8)
lon = string.sub(locStr, 12, 19)
data_pub["lat"] = lat
data_pub["lon"] = lon
--local location= lat ..','.. lon
--local jsonloc = json.encode(location)
log.info("gnss", "jsonloc", lat)
log.info("gnss", "jsonloc", lon)
接下来请见连载2
对本项目感兴趣的同学、朋友,或者需要定制、学术论文使用的都可以扫码联系: