智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 12855|回复: 18
打印 上一主题 下一主题

WIFI作品DIY教程04-《WIFI烟雾煤气报警器》

  [复制链接]

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
跳转到指定楼层
楼主
发表于 2014-10-18 12:09:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
作为一个创客,家里如果突然发现火灾、泄漏煤气/甲烷/二氧化氮等,都是非常危险的事。
但我们有一个自动报警的东东(短信、邮件、手机等),在外面也可以第一时间收到哦,那么就可以提前消灭隐患了。



我们需要的配件:Z WIFI开发板MQ-2气体传感器(提醒:s线要接到A0脚针)。



控制烟雾气体传感气的操作界面,可以设置提醒邮箱、手机短信邮件提醒。



第一部分:配置WIFI板(设置联网、STA之类的)
前往第一篇:WIFI作品DIY教程01-《wifi开发板》介绍和联网等配置教程
网址链接:http://www.znck007.com/forum.php?mod=viewthread&tid=21570


第二部分:安装python、上传网页文件(利用python可以让网页执行linux命令)
一、安装python(非常好用强大的脚本)

opkg update
opkg install python
opkg install pyserial        //串口通信

二、使用winscp软件上传文件(网页文件等)
winscp文件上传软件
http://pan.baidu.com/s/1qW0nhNI


网页控制文件
http://pan.baidu.com/s/1pJLob2b

下载运行winscp,然后解压www里的文件上传到openwrt



选择root,然后双击www目前进入网页目录。

上传到openwrt


将cgi-bin目录里的文件 权限设置为777,如图打上勾。


第三部分:编译MQ-2源代码(利用arduino编译生成hex,再刷写到Z WIFI的arduino扩展板)
一、编译hex文件
下载MQ-2源代码
http://pan.baidu.com/s/1c08Joac


解压文件后,运行arduino,如上图。


选择file->examples->znck007->zwifi_mq_2


再选择我们的板znck007 arduino Core+ (Atmega644PA@16M,5V)



选择Com口(单独使用usb连接电脑编译时需要选择,否则可以不选)。



点击编译,等待完成编译。


在build的文件夹下找到zwifi_mq_2.cpp.hex文件,再用Winscp上传到openwrt的www目录里。


二、安装arduino刷写软件(可以在openwrt刷写arduino代码)
opkg update
opkg install avrdude

avrdude -p m644p -c arduino -b 115200 -P /dev/ttyUSB0 -C /etc/avrdude.conf -U flash:w:/www/zwifi_mq_2.cpp.hex
然后实行这个命令就可以刷写Arduino代码了。其中/www/zwifi_mq_2.cpp.hex可以改成你的hex文件路径!


第四部分:运行界面

输入http://192.168.1.1/znck007/smokealarm.html
就能看到气体值了!


放点火机气体给它闻!


点支烟给他抽,你就可以看到气体值有变化了!



超过了500,就会报警(全红显示出来)!


教你一个手机短信提醒的方法:
如果你的移动手机号,那么可以免费去申请一个139邮箱:http://mail.10086.cn/
填写你的139邮箱,就可以短信提示了。


第五部分:源代码的分析
一、zwifi_mq_2.cpp.hex文件(在www文件夹,arduino编译出来的程序)

arduino获取气体传感数据值,关通过串口传输。

二、smokealarm文件(在cgi-bin文件夹,其实是python脚本文件)
关键是这些代码,使用python脚本获取arduino扩展板串口的数据
if (mode == "alarmdata"):
        ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1) #读取ttyUSB0串口
        #ser.write("lABC")        #写入ttyUSB0串口


        sendcount=0
        while True:
                data=ser.readline() #读取一行 读取1个字符read(1)               
                print (data) #repr 打印出数据
                break #退出串口读取


        ser.close()



三、smokealarm.html文件(在znck007文件夹,网页文件)
这里是网页代码,主要使用了javascript调用python脚本获取到气体传感器的值,然后显示出来。
1、打开网页运行setalarm设置默认参数和httppost调用post获取数据。
<body>

2、获取返回会调用callback() ,然后通过判断是否已经超过警报值。
if(response>alarmvalue){//如果超过报警值则变红色
        color="#ff0000";
        alarm.src="./img/alarmred.png";                        
        sendemail(emailurl,"危险报警:"+response,alarmemail);//调用发邮件
}

3、//每秒刷新一次页面,不断去获取警报值
      setTimeout("httppost('"+url+"')", 1000);


到这里,你的烟雾警报就diy好了!界面美观又实用,通过端口映射,在公司也可以打开哦!


《WIFI作品DIY教程系列》
WIFI作品DIY教程01-《wifi开发板》介绍和联网等配置教程
WIFI作品DIY教程02-《openwrt摄像头》3D外壳和diy介绍
WIFI作品DIY教程03-《WIFI音响/MP3播放器/电台》
WIFI作品DIY教程04-《WIFI烟雾煤气报警器》
WIFI作品DIY教程05-《家居服务器》web server(php+mysql+uhttpd)
WIFI作品DIY教程06-《openwrt后台程序》控制mysql、串口通信等
WIFI作品DIY教程07-《wifi家居网关》家居控制中心zigbee/nrf24l01等


《Arduino开源智能家居DIY教程系列》
Arduino开源智能家居《花絮1》zigbee小底板DIY成功
Arduino开源智能家居《认识Zigbee》zigbee功能和自组网介绍
Arduino开源智能家居《zigbee开发板》手机/按键点亮LED
Arduino开源智能家居01《网关》升级版网关正式教程(zigbee)
Arduino开源智能家居02《温湿传感器》什么样温湿度才适居
Arduino开源智能家居03《开发板套件》学习zigbee家居-性价比高
Arduino开源智能家居04《插座开关》手机控制:网扇、空调...
Arduino开源智能家居05《红外线》手机红外线控制电器


《百元智能家居DIY教程系列》
《智能家居网关》DIY制作图文教程01-百元智能家居系列
《智能温湿度》DIY制作图文教程02-百元智能家居系列
《智能插座》DIY制作图文教程03-百元智能家居系列
《智能电灯开关》DIY制作图文教程04-百元智能家居系列
《手机红外线》DIY制作图文教程05-百元智能家居系列
关注@智能创客  微信:znck007(打造DIY创客平台)









分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

0

主题

13

帖子

52

积分

注册会员

Rank: 2

积分
52
沙发
发表于 2014-10-23 10:42:41 | 只看该作者
稳定吗?
回复

使用道具 举报

0

主题

13

帖子

52

积分

注册会员

Rank: 2

积分
52
板凳
发表于 2014-10-23 10:47:42 | 只看该作者
为什么不直接传数据到云端呢?
回复 支持 反对

使用道具 举报

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
地板
 楼主| 发表于 2014-10-23 12:12:17 | 只看该作者
717hujie 发表于 2014-10-23 10:47
为什么不直接传数据到云端呢?

会了这些,发到到云端 就很容易了。因为很多朋友没有云端,我们的云端又不能公开,所以就。。。。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

10

积分

新手上路

Rank: 1

积分
10
5#
发表于 2015-3-21 05:15:35 | 只看该作者
本帖最后由 创客帝国 于 2015-7-23 21:14 编辑

谢谢!楼主提供!好样的











回复 支持 反对

使用道具 举报

0

主题

4

帖子

20

积分

新手上路

Rank: 1

积分
20
6#
发表于 2015-5-14 14:21:29 | 只看该作者
请问楼主,不通过OpenWRT刷Arduino,直接通过IDE刷Arduino UNO的程序,然后用Arduino的串口向OpenWRT的串口发数据行不行?能不能用此例自带的程序文件?
回复 支持 反对

使用道具 举报

0

主题

19

帖子

63

积分

禁止发言

积分
63
7#
发表于 2015-6-24 10:12:10 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

9

帖子

42

积分

禁止发言

积分
42
8#
发表于 2015-6-25 19:05:57 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

3

帖子

-16

积分

限制会员

积分
-16
9#
发表于 2015-7-17 14:21:22 | 只看该作者
本帖最后由 创客帝国 于 2015-7-24 11:20 编辑

支持一下吧,确实是不错的贴子。
顶你一下,好贴要顶!

回复 支持 反对

使用道具 举报

0

主题

18

帖子

64

积分

禁止发言

积分
64
10#
发表于 2015-9-1 18:00:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|手机版|智能创客 ( 桂ICP备14000828号

GMT+8, 2024-11-27 10:25 , Processed in 0.124735 second(s), 34 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表