基于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为高水位,同时淹没两个水位传感器为高水位。基于51单片机的积水监测系统设计_第1张图片

5  实物展示


5.1  云平台展示


基于51单片机的积水监测系统设计_第2张图片


5.2  下位机展示 


基于51单片机的积水监测系统设计_第3张图片


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
--------------------------------------------------------------------	

你可能感兴趣的:(物联网设计,物联网,单片机,嵌入式硬件,51单片机)