ESP8266+DHT+人体热释传感器实现家庭监控

既然走到这一步,肯定和上次的天气预报有着不可分开的关系,上次的天气预报,通过网上的天气预报分析得到,温度和湿度,相对实际情况,还是有点不准确,这次采用了,DHT11,检查环境的温度和湿度,,这个模块很简单,gnd和vcc连接后,再去读取他的一个data管脚,就完毕了,模块图如下:

走到这一步,基本解决了上次的天气预报的检测,温度和湿度,准确问题,接下来,用热释传感器,检测活物体,最开始我计划用超声波测距来做这个事情,最后发现比较麻烦,当时的思路是,检测物体是否移动,计算距离,达到效果,网上搜了下,还有更好的模块,那就是热释传感器,但是这个受环境影响大,不过基本没啥问题,开始入手这个模块有点闷逼,他的out管脚,一会儿1一会0,测试了半天才找到规律,测试也不好测试,我测试一次,自己跑的老远看电脑,通过昨天测试,今天编码,基本解决问题,来看看效果吧,淘宝卖4元,

ESP8266+DHT+人体热释传感器实现家庭监控_第1张图片

有了这两个模块基本数据就可以准确测试出来,但是这个并不是我们想要的效果,what??,我们检测,还是希望远程检测对吧?哈哈,没事,自己会PHP,然后自己用PHP和硬件通讯,把数据都传输到了我的网站,这样,我们可以直接在任何地点查看,房间的温度湿度,是否有人,效果如图


ESP8266+DHT+人体热释传感器实现家庭监控_第2张图片


ESP8266+DHT+人体热释传感器实现家庭监控_第3张图片

到这里,我们整个流程就演示完毕,现在我们来分析代码吧,

首先是dht11模块的数据读取,这个很简单,我做成了一个函数,代码如下

function hdt()

status, temp, humi, temp_dec, humi_dec = dht.read(pin)

if status == dht.OK then

-- Float firmware using this example

print("DHT Temperature:"..temp..";".."Humidity:"..humi)

wendu=temp

shidu=humi

elseif status == dht.ERROR_CHECKSUM then

print( "DHT Checksum error." )

elseif status == dht.ERROR_TIMEOUT then

print( "DHT timed out." )

end

end

以上代码基本是官方文档提供的,接下来我们来看看,热释传感器的代码


function check()

gpio.mode(6, gpio.INPUT)

timer = tmr.create()

runTime = tmr.time()

tmr.register(timer, 1000*1, tmr.ALARM_AUTO, function ()

if gpio.read(6)==1 then

--开启提交

print("有人")

url_web="http://lovehxm.top/yzw/app_api.php?insert=wifi&wendu="..wendu.."&shidu="..shidu.."&weather="..weather

print(url_web)

http.get(url_web, nil, function (code, data)

if (code < 0) then

print("HTTP request failed")

else

print(code, data)

end

end)

end

end)

tmr.start(timer)

end


改函数每秒读取一次热释传感器数据,当发现有人时,就把数据发送到web服务器端,核心的差不多事这些,接下我们来看看,整体效果,



差不多是这样,源码代码我发出来,有兴趣的可以去玩玩,源码包含,esp和web源码,app源码就不发了,需要app的可以看上次的天气预报app,基本一样,需要定制的可以联系我哦

esp和web源码

你可能感兴趣的:(ESP8266+DHT+人体热释传感器实现家庭监控)