物联网技术(AIR780E cat1-4G模块+小程序+腾讯云MQTT)驱动的智能井盖系统设计(连载01)

目录

一、项目意义和项目简介

二、硬件设计

1.原理图设计

2.PCB设计

3、主要器件

3.1三轴加速度传感器

3.2可燃气体传感器

3.3GPS模块

4、MQTT通信协议设计

三、微信小程序设计

3.1、连接EMQX服务器步骤

3.2、MQTT发布订阅测试

3.3程序界面设计

1)APP主页面:

2)地图界面设计

3)设备信息界面设计

4)设备日志页面设计

一、项目意义和项目简介

本项目的开发的目的是为了实现井盖状态的实时监控和管理,提高城市管理的效率和安全性。随着城市化进程的加快,传统的井盖管理模式已经无法满足现代城市的需求。传统的管理模式不仅效率低下,而且无法实时有效地获得设备的信息,面对异常情况无法实现实时监控和快速高效的管理。通过采用先进的物联网技术,智能井盖系统不仅能够实时监测井盖的状态,还能够通过数据分析预测潜在的安全风险,从而实现对城市井盖的高效、智能化管理。这不仅是对传统井盖管理模式的一种技术革新,更是向智慧城市迈进的重要一步。

终端设备采用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

对本项目感兴趣的同学、朋友,或者需要定制、学术论文使用的都可以扫码联系:

  • 43
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值