wr703n刷openwrt智能控制--远程烟雾报警器

2023-12-10 19:30

本文主要是介绍wr703n刷openwrt智能控制--远程烟雾报警器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作为一个创客,家里如果突然发现火灾、泄漏煤气/甲烷/二氧化氮等,都是非常危险的事。

但我们有一个自动报警的东东(短信、邮件、手机等),在外面也可以第一时间收到哦,那么就可以提前消灭隐患了。

烟雾传感器连接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目前进入网页目录。

 

201254c4emg8ty3e99lyge.jpg (414.84 KB, 下载次数: 8)

下载附件

2014-10-20 22:02 上传

上传到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 m328p -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文件路径!m328p这个参数要具体看你所用arduino的芯片类型



第四部分:运行界面
 
输入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好了!界面美观又实用,通过端口映射,在公司也可以打开哦!

这篇关于wr703n刷openwrt智能控制--远程烟雾报警器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/478108

相关文章

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

基于Python实现智能天气提醒助手

《基于Python实现智能天气提醒助手》这篇文章主要来和大家分享一个实用的Python天气提醒助手开发方案,这个工具可以方便地集成到青龙面板或其他调度框架中使用,有需要的小伙伴可以参考一下... 目录项目概述核心功能技术实现1. 天气API集成2. AI建议生成3. 消息推送环境配置使用方法完整代码项目特点