1 适用场景
道路积水监测、城市街道等需要进行水量监控的场景。
小鱼儿电子设计微信号:IOTElectronics
2 硬件方案
51系列单片机(芯片型号为STC12C5A60S2单片机)、水位传感器*2、E18-D80NK漫反射式光电红外传感器、HC-SR04超声波传感器、ESP8266WiFi模块、蜂鸣器、按键模块、USB转TTL-CH340模块、OLED显示幕、USB充电线
3 系统实现功能
- 实时监测:实时监测积水的水位情况(低水位/中水位/高水位)、积水的高度(单位:dm)、井盖是否存在(0:不存在,1:存在),并将监测结果显示到OLED屏幕上。
- 手动控制模式:手动控制按键结合OLED屏幕进行积水最佳阈值设定。
- 自动控制模式:当积水水位为高水位或测量到的积水高度大于最佳阈值时,自动声光报警。
- 云平台远程监测:通过WiFi将监测数据上传到OneNET云平台,在手机端、电脑端和网页端均可以查看积水的水位情况、积水高度、报警触发次数及井盖是否存在等。
4 设计思路
- 超声波测距计算策略:d=超声波传感器安装高度-超声波传感器安装高度到积水的距离
- 高、中、低水位计算策略:将水位传感器1放在3dm处,水位传感器2放在6dm处,如果未淹没水位传感器1为低水位,如果淹没水位传感器1,未淹没水位传感器2为高水位,同时淹没两个水位传感器为高水位。
5 实物展示
5.1 云平台展示
5.2 下位机展示
6 云平台源码
用户需要自行完成一下2个函数的实现
1、定时下发数据任务初始化函数:device_timer_init(dev)【可选】
2、对设备上传数据进行解析(包括心跳等):device_data_analyze(dev)
-----------------------------------------------------------------------------------------
function device_timer_init(dev)
dev:timeout(5)
dev:add(10,"dev1","syn\r\n")
end
-----------------------------------------------------------------------------------------
function device_data_analyze(dev)
local t = {} --数组定义
local a = 0 --数声明
local s = dev:size() --获得数据总长度
dev_logon(dev)--注册返回
local length = dev:byte(3)--获取负载长度LEN(PAYLOAD长度)
local cmd = dev:byte(4)--获取命令内容CMD(CMD命令)
if dev:byte(1)==0x5A and dev:byte(2)==0x5A and dev:byte(5+length)==0xA5 then
if cmd==0x01 then --上报状态值status
add_val(t,"distance",0,dev:bytes(5,1))
add_val(t,"higt_std",0,dev:bytes(6,1))
add_val(t,"water",0,dev:bytes(7,1))
add_val(t,"beep",0,dev:bytes(8,1))
add_val(t,"lid",0,dev:bytes(9,1))
dev:send("get status\r\n")
end
end
--------------------------------------------------------------------