2015-2-2 09:35:39 [显示全部楼层]
10839浏览
查看: 10839|回复: 25

[项目] 基于YEELINK平台的烟雾宝盒(网络版)

[复制链接]
一、项目介绍:    上个月我们制作的“烟雾宝盒”存在一个明显“滞后性”。使用者必须呆在或者近距离观察烟雾宝盒才能知道获知烟雾情况,实际上此时人们已经受到了烟雾的侵扰,那么能否提前得知房间是否出现烟雾呢?我们将本项目中跟大家介绍基于YEELINK平台的烟雾报警装置。可以让大家通过网络或者手机客户端,了解房间的烟雾值。更重要的是当烟雾达到设定的极限值,可以通过发送微博方式提醒您。

二、图片介绍
烟雾宝盒新3.jpg 设备完整效果图。

效果演示视频。
http://www.tudou.com/programs/view/3WeJAvFsBoA/

为了加快实验现象,我们使用打火机的气体。
三、硬件列表
    本次项目中为了让东西做出来更“整洁完美”些,我们在上次实验器材的基础上做了一些改动。具体器材列表如下:
     


序号
名称(数量)
商城地址
1
DFRduino  UNO R3(*1)
http://www.dfrobot.com.cn/goods-521.html
2
  
IO  传感器扩展板 V7.1(*1)
  
http://www.dfrobot.com.cn/goods-791.html
3
Ethernet  W5100(Arduino兼容)(*1)
http://www.dfrobot.com.cn/goods-160.html
4
  
模拟一氧化碳气体传感器 -MQ2 (*1)
  
http://www.dfrobot.com.cn/goods-539.html
5
数字LED发光模块(*3种颜色)
http://www.dfrobot.com.cn/goods-72.html
6
数字蜂鸣器模块(*1)
http://www.dfrobot.com.cn/goods-86.html
7
盒子(*1)
自己找吧(尺寸和UNO尺寸大致相当即可)

四、制作步骤及数据连线。
(1)主控板安装:
将UNO R3放置在盒子内部,对应孔位,用微钻打孔,用螺丝将其固定在盒子底部。
(2)传感器安装
将W5100安装在UNO上,再将IO 传感器扩展板 V7.1叠加在W5100上。如下所示
IMG_20150131_145212.jpg
(3)指示灯安装
将红、黄、蓝三色LED发光模块,安装在盒子的侧面,对应孔位先用微转打孔,用螺丝固定模块。如下图所示。由于该模块是数字型号,所以分别将其三根线插在传感器拓展板的数字口(扩展板上标有大写字母D的插口)6、7、8上(绿色数字口,红色VCC,黑色GND)。其中红色LED对应数字口6,绿色LED对应数字口7,蓝色LED对应数字口8。
LED灯安装.png
(4)蜂鸣器安装
将数字蜂鸣器模块安装在盒子的另一侧面,将其三根线插在传感器拓展板的数字口4上(绿色数字口,红色VCC,黑色GND)
(5)安装传感器,

模拟气体传感器 (MQ2),接在传感器扩展板的模拟口2上(扩展板上标有大写字母A的插口)(蓝色对应模拟口,红色对应VCC,黑色对应GND)。使用DF烟雾传感器内的螺丝将传感器固定在盒子顶部。

至此我们已经完成了本地硬件部分的器材安装与数据连线。
(6)注册并登录平台
进入yeelink平台注册个用户(这里不再介绍),以注册用户身份登录平台,进入用户中心。登录后点击用户头像可以进入“用户中心”。
   (7)添加新设备

进入用户中心后,在页面左侧导航栏选择“我的设备”——“增加新设备”如下图所示。同时右侧出现“增加新设备” 页面。依次完成设备来源、设备名、标签 TAGS、描述、地理位置名称、地理位置数据等项目的设置。其中设备来源选择为自选设备、设备名为物联网测试项目、标签TAGS为烟雾、描述为烟雾、地理位置名称为你所在省市地区名称、地理位置数据请从地图放置一个标记以表示设备所在的位置,坐标会被自动记录。当以上设置完成后,点击保存按钮完成新设备的添加。
加设备.png
   (8)添加传感器

点击Yeelink页面导航栏“我的设备”——“管理设备”即可看到之前添加的设备,选择需要添加传感器的设备如我们刚才添加的“物联网测试项目”,进入该设备的界面,在页面左下方传感器栏目下,点击“增加一个传感器”即可为烟雾监测添加一个传感器。
加传感器.png

   (9)设置传感器
    点击添加传感器后,进入传感器设置界面。依次设置传感器名为烟雾传感器,类型为:数值型传感器,完成以上设置后点击“保存”按钮。这样我们就建立了一个名为“物联网测测试项目”的设备,同时该设备拥有了一个名为“烟雾传感器”的数值型传感器。
QQ图片20150131194607.png

五、程序代码
  1. <div align="left">.#include <Ethernet.h></div><div align="left">#include <WiFi.h></div><div align="left">#include <SPI.h></div><div align="left">#include <yl_data_point.h></div><div align="left">#include <yl_device.h></div><div align="left">#include <yl_w5100_client.h></div><div align="left">#include <yl_wifi_client.h></div><div align="left">#include <yl_messenger.h></div><div align="left">#include <yl_sensor.h></div><div align="left">#include <yl_value_data_point.h></div><div align="left">#include <yl_sensor.h></div><div align="left">//this example reads data from a lm35dz sensor, convert value todegree Celsius</div><div align="left">//and then post it to yeelink.net</div><div align="left">//replace 2633 3539 with ur device id and sensor id</div><div align="left">yl_device ardu(17617);  //此处替换为你的设备编号</div><div align="left">//yl_sensor therm(26154, &ardu);//此处替换为你的传感器编号</div><div align="left">yl_sensor yw(30621, &ardu);</div><div align="left">//replace first param value with ur u-apikey</div><div align="left">yl_w5100_client client;</div><div align="left">yl_messenger messenger(&client,"e1613c569602335b3d76c77cb5e29884","api.yeelink.net");   //此处替换为你自己的API KEY</div><div align="left">const int YW_PIN=A2;//烟雾</div><div align="left">float yw_convertor(int analog_num2)</div><div align="left">{</div><div align="left">       return analog_num2 *(5.0 / 1024.0 * 100);</div><div align="left">}</div><div align="left">void setup()</div><div align="left">{</div><div align="left">    Serial.begin(9600); //for output information</div><div align="left">      pinMode(6,OUTPUT);</div><div align="left">      pinMode(7,OUTPUT);</div><div align="left">      pinMode(8,OUTPUT);</div><div align="left">      pinMode(4,OUTPUT);</div><div align="left">      byte mac[] = {0xDE,0xAD, 0xBE, 0xEF, 0xFE, 0xAA};</div><div align="left">      Ethernet.begin(mac);</div><div align="left">}</div><div align="left">void loop()</div><div align="left">{</div><div align="left">  yl_sensor yw(30621,&ardu);//此处替换为你的传感器编号(烟雾)</div><div align="left">  int y = analogRead(YW_PIN);</div><div align="left">  Serial.println(y);</div><div align="left">       if (y>900)   {</div><div align="left">    digitalWrite(6,HIGH);   </div><div align="left">    digitalWrite(7, LOW); </div><div align="left">    digitalWrite(8, LOW); </div><div align="left">    tone(4,100);          //发出指定频响  </div><div align="left">    pinMode(4,INPUT);  //关闭4号口输出,没有想到其他好办法所以将状态改为输入</div><div align="left">      }</div><div align="left">else {   </div><div align="left">  if (y>500) {</div><div align="left">    digitalWrite(7,HIGH);  </div><div align="left">    digitalWrite(6, LOW); </div><div align="left">    digitalWrite(8, LOW);  </div><div align="left">  }</div><div align="left">    else </div><div align="left">    {digitalWrite(8, HIGH); </div><div align="left">    digitalWrite(6, LOW); </div><div align="left">    digitalWrite(7, LOW); </div><div align="left">    }</div>
  2. <div align="left"> }</div><div align="left">  yl_value_data_pointdp2(yw_convertor(y));</div><div align="left">  yw.single_post(messenger,dp2);</div><div align="left">  delay(1000);</div>
  3. <div align="left">}</div>
复制代码


六、实验效果
       当烟雾值超过设置的极值时,网络端、手机客户端、微博客户端相关节目如下:
物联网测试项目-Yeelink.png

Screenshot_2015-01-31-16-48-38.png 微博.png


a51125784  学徒

发表于 2015-7-7 08:52:13

hnyzcj 发表于 2015-7-6 20:35
应该不会吧,单独一个MQ-2没有数据吗

单独的MQ-2有数据 在串口查看器里能看到 一行一行的刷新 就是yeelink那没有反应 提示传感器异常 网络肯定是通的 路由器开了DHCP  以防万一我还改了程序中的MAC地址 怕重复了
回复

使用道具 举报

a51125784  学徒

发表于 2015-7-7 08:52:17

hnyzcj 发表于 2015-7-6 20:35
应该不会吧,单独一个MQ-2没有数据吗

单独的MQ-2有数据 在串口查看器里能看到 一行一行的刷新 就是yeelink那没有反应 提示传感器异常 网络肯定是通的 路由器开了DHCP  以防万一我还改了程序中的MAC地址 怕重复了
回复

使用道具 举报

hnyzcj  版主
 楼主|

发表于 2015-7-6 20:35:21

a51125784 发表于 2015-7-6 19:42
您好 按照您的例子 我把程序修改完了 器件也连接好了 电脑上串口能够检测到MQ-2传感器的数据 可是yeelink那 ...

应该不会吧,单独一个MQ-2没有数据吗
回复

使用道具 举报

xilzheng  见习技师

发表于 2015-2-2 10:10:59

好贴,赞一个,沙发
回复

使用道具 举报

luna  初级技神

发表于 2015-2-2 11:23:45

表白~~表白~~\(^o^)/~
回复

使用道具 举报

hnyzcj  版主
 楼主|

发表于 2015-2-2 11:56:38

luna 发表于 2015-2-2 11:23
表白~~表白~~\(^o^)/~

表白什么?
回复

使用道具 举报

大连林海  初级技神

发表于 2015-2-6 17:41:49

结合上一个 算不算家庭智能设计啦
回复

使用道具 举报

sling555  学徒

发表于 2015-2-16 21:09:34

好有创意啊!
回复

使用道具 举报

x795x  见习技师

发表于 2015-3-31 19:07:33

那个一氧化碳传感器能换成一个pm2.5传感器,然后就变成一个pm2.5检测仪吗?
回复

使用道具 举报

hnyzcj  版主
 楼主|

发表于 2015-3-31 19:10:59

x795x 发表于 2015-3-31 19:07
那个一氧化碳传感器能换成一个pm2.5传感器,然后就变成一个pm2.5检测仪吗?
...

OKK
回复

使用道具 举报

hnyzcj  版主
 楼主|

发表于 2015-3-31 19:11:13

x795x 发表于 2015-3-31 19:07
那个一氧化碳传感器能换成一个pm2.5传感器,然后就变成一个pm2.5检测仪吗?
...

没有问题的
回复

使用道具 举报

x795x  见习技师

发表于 2015-4-5 20:01:33


我们的pm2.5传感器输出的是模拟电压,你这个烟雾传感器输出的什么信号?如果都是模拟信号(电压),那么程序需要怎么改变?
回复

使用道具 举报

x795x  见习技师

发表于 2015-4-5 20:01:42


我们的pm2.5传感器输出的是模拟电压,你这个烟雾传感器输出的什么信号?如果都是模拟信号(电压),那么程序需要怎么改变?
回复

使用道具 举报

x795x  见习技师

发表于 2015-4-5 20:01:38


我们的pm2.5传感器输出的是模拟电压,你这个烟雾传感器输出的什么信号?如果都是模拟信号(电压),那么程序需要怎么改变?
回复

使用道具 举报

x795x  见习技师

发表于 2015-4-5 20:06:37

x795x 发表于 2015-4-5 20:01
我们的pm2.5传感器输出的是模拟电压,你这个烟雾传感器输出的什么信号?如果都是模拟信号(电压),那么 ...

方便给一下qq吗?以后有问题可以便于咨询:D
回复

使用道具 举报

hnyzcj  版主
 楼主|

发表于 2015-4-6 09:03:28

x795x 发表于 2015-4-5 20:01
我们的pm2.5传感器输出的是模拟电压,你这个烟雾传感器输出的什么信号?如果都是模拟信号(电压),那么 ...

模拟的呀
回复

使用道具 举报

x795x  见习技师

发表于 2015-4-6 19:10:35


等于说所需要的元件基本不变,只换个传感器即可?那个yeelink的程序该怎么办呢?
回复

使用道具 举报

x795x  见习技师

发表于 2015-4-6 19:10:35


等于说所需要的元件基本不变,只换个传感器即可?那个yeelink的程序该怎么办呢?
回复

使用道具 举报

x795x  见习技师

发表于 2015-4-6 19:10:41


等于说所需要的元件基本不变,只换个传感器即可?那个yeelink的程序该怎么办呢?
回复

使用道具 举报

x795x  见习技师

发表于 2015-4-6 19:10:45


等于说所需要的元件基本不变,只换个传感器即可?那个yeelink的程序该怎么办呢?
回复

使用道具 举报

hnyzcj  版主
 楼主|

发表于 2015-4-7 06:21:42

x795x 发表于 2015-4-6 19:10
等于说所需要的元件基本不变,只换个传感器即可?那个yeelink的程序该怎么办呢? ...

http://mc.dfrobot.com.cn/forum.p ... amp;highlight=PM2.5
参照此贴程序
回复

使用道具 举报

a51125784  学徒

发表于 2015-7-6 19:42:45

您好 按照您的例子 我把程序修改完了 器件也连接好了 电脑上串口能够检测到MQ-2传感器的数据 可是yeelink那就是检测不到啊 没有数据 而且显示传感器异常
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail