|
|
本帖最后由 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
|