philhoo 发表于 2013-6-3 23:12:02

OCROBOT mangoII arduino+w5100+乐联网组建家庭环境监测系统

       在极客工坊淘宝店买了arduino套装,最近又在arduino city拿到了W5100网络模块,周日研究了一上午,arduino+W5100也没有搞通,下午在乐联网老刘,和乐联网技术支持群里的Jak和疯子的指导下,终于搞清楚了W5100上传乐联网传感器数据,并成功建立了家庭监测系统,虽然还只是传上去一个LM35温度,但已经感受到了群里面众兄弟的热情支持和帮助。先发个题目,实验内容及图片随后附上。大家可以先看一下我的监测系统的门户首页。http://www.lewei50.com/home/gatewaystatus/855
经过几天的琢磨以及各位高人指点下,成功实现了DHT11湿度、温度、DSM501A颗粒物传感器连接与数据上传。在此要特别感谢物联网老刘无偿提供的DMS501A颗粒物传感器和不厌其烦的指点。
所需的库文件附上:
代码如下:
#include <SPI.h>
#include <Ethernet.h>
// #include <Arduino.h>
#include <dsm501.h>
#include <LeweiClient.h>
#define LW_USERKEY "6f7ce35ca209470c95fc8d9d2f513ce4"
#define LW_GATEWAY "01"
dsm501 pm25Sensor;
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 2


//#define MY_NAME    "UNO1"
//#define MY_DESC    "virtual gate"
//char my_addr="http://192.168.1.233/api";
//int port =80;
LeWeiClient *lwc;
// unsigned long lastConnectionTime = 0;          // last time you connected to the server, in milliseconds
//boolean lastConnected = false;               // state of the connection last time through the main loop
//const unsigned long postingInterval = 30*1000; //delay between updates to cosm.com

// unsigned long duration;
unsigned long starttime;

//LM35
//int potPin = 0;                     //设置模拟口0为LM35的信号输入端口
//float temperature = 0;       //设置temperature为浮点变量                     //设置val为长整数变量
//long val=0;         //定义变量来存储读取的数值

void setup() {

    pm25Sensor.setDatapin(8);   //设置DSM501数据引脚
   // start serial port:
// Serial.begin(9600);
   lwc = new LeWeiClient(LW_USERKEY, LW_GATEWAY);
    starttime = millis();
}



void loop() {
//LM35
//val=analogRead(potPin);//温度传感器LM35接到模拟PIN0上;val变量为从LM35信号口读取到的数值   
//temperature = (val*5.0/1023.0*100);//把读取到的val转换为温度数值,系数一:0.00488125=5/1024,0~5V对应模拟口读数1~1024,
         //系数二:100=1000/10,1000是毫伏与伏的转换;10是每10毫伏对应一度温升。      

   //DSM501A
   //Serial.print("particle concentration: ");
    //如果数据需要滤波
   //pm25Sensor.enableFilter();
   int p=0;
   p=pm25Sensor.getParticles();
    //Serial.println(p);//取得颗粒物浓度
    //DHT11
      int chk = DHT11.read(DHT11PIN);
      floath = DHT11.humidity;
      float t = DHT11.temperature;
    //Serial.print("Humidity (%): ");
//Serial.println((float)DHT11.humidity, 2);
//Serial.print("Temperature (oC): ");
//Serial.println((float)DHT11.temperature, 2);
// Serial.print("Tep=");   
// Serial.print(temperature);   
// Serial.println(" C");   

       lwc->append("TEMP", t);
       lwc->append("HM", h);
       lwc->append("PM1", p);
       lwc->send();   
      delay(10000);//延时10秒,这里也就是刷新速度。
}

xuejun 发表于 2013-6-4 08:37:15

顶起。。。。。。。。。。

philhoo 发表于 2013-6-8 18:00:40

代码及库已经更新。

chzhewl 发表于 2013-6-8 18:22:55

顶{:soso_e179:}

laoliu1982 发表于 2013-6-9 11:21:07

这个必须顶一下。

nextw3 发表于 2013-6-9 12:27:16

好贴,我最近想也要做这个,向基于beaglebone来做,楼主的代码有有借鉴意义。

[email protected] 发表于 2013-11-4 10:58:54

你好,我想请教一个问题,就是DSM501A最后的数据结果单位是:pcs/每立方英尺,我想问是怎样得出你图中空气质量的标准,我在网上找很多,他们空气质量标准的单位都是微克/每立方米,没有以pcs/每立方英尺为单位的。

trochili 发表于 2014-2-10 18:04:14

请教一下,怎么通过低脉冲比率计算出颗粒数目,看不懂说明书上的特征曲线

philhoo 发表于 2014-2-14 22:26:51

trochili 发表于 2014-2-10 18:04 static/image/common/back.gif
请教一下,怎么通过低脉冲比率计算出颗粒数目,看不懂说明书上的特征曲线

不好意思,我也不懂啊,只是比葫芦画瓢

long 发表于 2014-3-7 13:23:44

philhoo 发表于 2014-2-14 22:26 static/image/common/back.gif
不好意思,我也不懂啊,只是比葫芦画瓢

W5100模块在哪里买的?我想买个试试

philhoo 发表于 2014-3-8 15:46:28

long 发表于 2014-3-7 13:23 static/image/common/back.gif
W5100模块在哪里买的?我想买个试试

我的现在没有用了,可以转让给你。联系我QQ:834790

A-SO 发表于 2014-5-12 15:34:30

楼主,我毕业设计是相关的内容啊,可以加你扣扣请求指导么?!{:soso_e154:}

PM2.5粉尘传感器 发表于 2014-9-18 17:59:48

代理PM2.5粉尘传感: 夏普、三瀛、GE、神荣VOC空气质量:QS-01、TGS2600、MS1100、MS1200英国达特甲醛传感器、红外二氧化碳传感器、空气质量模块 全新原装现货供应 有需要请联系 杨先生 13530889446QQ:530820608
页: [1]
查看完整版本: OCROBOT mangoII arduino+w5100+乐联网组建家庭环境监测系统