基于51单片机的积水监测系统设计

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
--------------------------------------------------------------------	
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼儿电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值