极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 23305|回复: 8

Arduino + ESP8266 + YEELINK 上传温湿度,开关控制继电器

[复制链接]
发表于 2015-6-28 10:12:26 | 显示全部楼层 |阅读模式
本帖最后由 arthasarthas 于 2015-6-28 10:25 编辑


某宝购买的Arduino 2560的ESP8266扩展板,效果挺好的。

测试了下提供的代码,
[pre lang="arduino" line="1" file="ReceiveDataFromYeelink"]
#include "WIFI_YYROBOT.h"
#include "DHT11_YYROBOT.h"


DHT11 myDHT11(8);                //DHT11接在D8引脚
int relay = 4;                //继电器接在D4引脚
//模块上的继电器采用PNP三极管,所以低电平吸合导通
#define RELAY_ON LOW
#define RELAY_OFF HIGH

String ssid = "ssidssid";                //需要连接的自己路由器的无线名称
String pass = "passpass";                //无线密码

// for yeelink api
#define APIKEY         "e2485c9c************************" // 替换自己的yeelink的api
//自己的APIKEY,在yeelink的设置界面得到


//replace the device ID and sensor ID for temperature sensor.
#define DEVICEID0       22*** // replace your device ID                //替换为自己的设备ID

#define SENSORID0       38*** // replace your sensor ID                //替换为自己的传感器ID
#define SENSORID1       38*** // replace your sensor ID                //替换为自己的传感器ID
#define SENSOR_SWITCH        39***        //按键ID

unsigned long startPost,startGet;
bool flagFirstPost = true;        //第一次发送数据
bool flagFirstGet = true;        //第一次获取数据
WIFI wifi;

void setup() {
        pinMode(relay,OUTPUT);        //设置继电器控制IO为输出引脚
        digitalWrite(relay,RELAY_OFF);        //初始化关闭继电器

        wifi.begin(ssid,pass);//设置wifi连接
}


void loop() {
        //将数据上传到Yeelink对应的设备和传感器
        //发送一次数据时间Yeelink不能低于10s,所以10s发送一次就行了               
        if (millis()-startPost>10000 || flagFirstPost) {
                //读取温湿度传感器值,经过这个函数后,myDHT11.TEM_Buffer_Int和myDHT11.HUMI_Buffer_Int被分别填充上了温度和湿度值
                myDHT11.DHT11_Read();
                wifi.postDataToYeelink(APIKEY,DEVICEID0,SENSORID0,myDHT11.TEM_Buffer_Int);
                wifi.postDataToYeelink(APIKEY,DEVICEID0,SENSORID1,myDHT11.HUMI_Buffer_Int);
                startPost = millis();
                flagFirstPost = false;
        }
       
        //采集按键信息的时间也不能过快,建议1s以上
        if (millis()-startGet>1000 || flagFirstGet) {
                String str = wifi.getDataFromYeelink(APIKEY,DEVICEID0,SENSOR_SWITCH);
                if(str == "1") {
                        digitalWrite(relay,RELAY_ON);
                } else if(str == "0") {
                        digitalWrite(relay,RELAY_OFF);
                } else {
                        //NULL
                }
               
                startGet = millis();
                flagFirstGet = false;
        }
}[/code]


发送到Yeelink温湿度信息,通过Yeelink的开关,控制板载继电器

可以很容易发送温湿度信息和接收服务器上继电器的开关信息。

成功了,秀一下图

还有个OneNet的云平台的代码,还没测试,测试好上图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-6-28 11:33:52 | 显示全部楼层
很好,学习了,我的也快到货了。
回复 支持 反对

使用道具 举报

发表于 2015-6-28 13:23:51 | 显示全部楼层
不错唉  叫什么名字我也看看
回复 支持 反对

使用道具 举报

发表于 2015-6-28 23:20:49 | 显示全部楼层
用的是什么库
回复 支持 反对

使用道具 举报

发表于 2015-6-29 00:28:50 | 显示全部楼层
有意思 具体是怎样的 名字
回复 支持 反对

使用道具 举报

发表于 2016-1-7 07:20:16 来自手机 | 显示全部楼层
楼主能否把库文件也公布一下。
回复 支持 反对

使用道具 举报

发表于 2016-5-15 21:25:23 | 显示全部楼层
楼主可以分享一下库文件吗?
回复 支持 反对

使用道具 举报

发表于 2016-5-16 16:38:54 | 显示全部楼层
赞一个,有库就更好了!!!
回复 支持 反对

使用道具 举报

发表于 2016-5-16 22:11:29 | 显示全部楼层
楼楼可以提供一下库函数吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 00:49 , Processed in 0.048448 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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