colin_mj 发表于 2013-7-2 04:29:55

基于乐联网的温湿度传感器使用测试

本帖最后由 colin_mj 于 2013-7-2 04:46 编辑

写在前面:
作为一个技术小白,但是对物联网这个东西又有着浓厚兴趣,借着现在在海外干工程的闲暇时间,就自己开始从头学起这些乱七八糟的程序、模块、线路……起初在网上看到一篇文章,叫微信遥控器http://blog.csdn.net/xiaoxiao108/article/details/8913616,很是感兴趣,就想自己研究用微信和硬件通信,实现控制和查看的功能,那么我第一步就是要把数据通信路打通,微信公众账号、SAE申请了一堆,又开始学arduino、API、PHP……真是海量的知识,前段时间也差不多研究出一些成果,但是很多细节还是搞不定,偶然一个机会看到这个乐联网,恩恩,这就是我要实现的东西,前面那一堆真是……好大一个弯路。有了对比,才知道什么叫简单和容易上手。下面言归正传,介绍下我使用的过程。

step by step:
手上只有一块arduino,和一些模块,现在用一个温湿度模块做测试。

一、首先我建议把arduino和模块先搞定,其中有原因,文章最后会介绍。
程序
int DHpin=8;
byte dat;
byte read_data()
{
byte data;
for(int i=0;i<8;i++)
{
    if(digitalRead(DHpin)==LOW)
    {
    while(digitalRead(DHpin)==LOW);
    delayMicroseconds(30);
    if(digitalRead(DHpin)==HIGH)
    data|=(1<<(7-i));
    while(digitalRead(DHpin)==HIGH);
}
}
return data;
}

void start_test()
{
digitalWrite(DHpin,LOW);
delay(30);
digitalWrite(DHpin,HIGH);
delayMicroseconds(40);
pinMode(DHpin,INPUT);
while(digitalRead(DHpin)==HIGH);
delayMicroseconds(80);
while(digitalRead(DHpin)==LOW);
delayMicroseconds(80);
for(int i=0;i<4;i++)
dat=read_data();
pinMode(DHpin,OUTPUT);
digitalWrite(DHpin,HIGH);
}

void setup()
{
Serial.begin(9600);
pinMode(DHpin,OUTPUT);
}

void loop()
{
start_test();
Serial.print("t1:");
Serial.print(dat, DEC); //显示湿度的整数位;
Serial.print('.');
Serial.print(dat,DEC); //显示湿度的小数位;
Serial.print(';');
Serial.print("t2:");
Serial.print(dat, DEC); //显示温度的整数位;
Serial.print('.');
Serial.println(dat,DEC); //显示温度的小数位;
delay(2000);
}

在数据格式上,我也是参考了一篇文章http://www.lewei50.com/home/news/115,其中我再说的细一点:

这是数据通用格式(不填自动标识的方式)

实际操作中,可以很灵活,关键在于“t1:数据1;t2:数据2”中“:”、“;”还有收尾标识“Serial.println()”这几个关键识别符。

二、其次就是设置串口上传工具(我没有wifi和网络扩展模块,只能通过串口上传的方式)。详细教程我是从这里学习的
http://www.lewei50.com/dev/doc/124

这里先把这个设置好,准备着,等下一步骤设置好,这里直接点开始上传,就可以看着数据一个个跳出来,暗爽去吧。

三、最后设置你的账号页面的那些参数了。

Step1:添加网关

Step2:添加设备

这个模块可以同时测出温度和湿度,前面程序中标识是设的t1和t2,虽然是一个模块,但是这里设备要添加两个,我的理解是一组数据对应一个

设置两个测量设备,这里的标识对应的是前面的数据标识,注意逻辑关系就好。

四、到现在,该设置的都设置好了,回到你的串口上传数据那,点击开始上传

数据就开始跳啊跳,把模块放到你笔记本的散热口,就能明显的看到变化

五、然后可以查看历史数据走势图

数据导出:

通过关注微信公众账号乐联网,根据提示发送命令,就能看到实时数据

现在回答一开始说的那个原因,这样的一个操作顺序,是因为我一开始碰到一个问题,后来通过QQ技术支持群才得到答案,因为你一开始设置了网页上各种参数,然后再去倒腾arduino,回过头连接的时候可能会出现网关离线的提示,总是连接不上。我请教到的答案是服务器在一段时间没有收到你的数据就会把资源调剂到别的网关去,那么你的网关就会处于离线状态,连接不上服务器。

firewise 发表于 2013-7-2 07:50:58

好详细的教程。。。谢谢
页: [1]
查看完整版本: 基于乐联网的温湿度传感器使用测试