本帖最后由 Grey 于 2015-3-5 21:21 编辑  
 
  
很开心这次能够的首先拿到了这款DFRobot W5500以太网接口主控板。虽然只是测试版,但基本上已经具备了完整的功能清单。而且请注意Title,这货不是扩展板,这是主控板!!!一块集合了以太网接口,但却只有普通Uno大小的主控板!(颤抖吧!凡人们!) 
上次WIFI数据上传的教程,一直苦于没有时间,没有把Yeelink的教程给发出来,感觉很愧对大家的热爱,这回就补个W5500 Yeelink的教程分享给大家,经供参考。(我就是懒得写,你咬我啊~) 
 
 
STEP 1 准备材料 1 DFRobot W5500 Ethernet Microcontroller    x1 4 RJ45 网线                                 x1 5 MicroUSB线                                x1  
 
STEP 2 硬件测试 此处请参考W5500和SHT10温湿度传感器的产品维库:  
 
STEP 3 Yeelink 网络设置 登陆Yeelink账号,至用户中心 添加新设备,填入基本信息  
 点击设备管理,添加传感器,选择数据类型,填入相关参数  
 考虑到我需要添加温度与湿度两个传感器数据,所以这边我添加了两个传感器 SHT10温度和SHT10湿度 请注意上面的两组ID: 设备ID和传感器ID  
 再次回到用户中心,查看你的API Key 这三组ID编号是你区别于其他设备的关键所在,都是独一无二的。至此,所有的信息已经全部收集到手。  
 
 
首先先要下载相关的Arduino library  
 上传代码至你的W5500主控板(由于第二步的硬件测试已省略)上传过程请参考产品维库 Board:Leonardo 
			
			
			- <font size="3">#include <Ethernet.h>
 - #include <WiFi.h>
 - #include <SPI.h>
 - #include <yl_data_point.h>
 - #include <yl_device.h>
 - #include <yl_w5100_client.h>
 - #include <yl_wifi_client.h>
 - #include <yl_messenger.h>
 - #include <yl_sensor.h>
 - #include <yl_value_data_point.h>
 - #include <yl_sensor.h>
 - #include <SHT1x.h>
 - 
 - 
 - #define SS     10    //D10用于W5500的片选
 - #define RST    11    //D11用于W5500的复位
 - #define dataPin  4
 - #define clockPin 5
 - 
 - float temp_c;
 - float humidity;
 - int time=0;
 - 
 - SHT1x sht1x(dataPin, clockPin);
 - 
 - 
 - IPAddress ip(192,168,1,213);   // SET your static IP address
 - 
 - yl_device ardu(18338);  //此处替换为你的设备编号
 - yl_sensor therm(31826, &ardu);//此处替换为你的传感器编号
 - yl_sensor therm1(31908, &ardu);//此处替换为你的传感器编号
 - 
 - yl_w5100_client client;
 - yl_messenger messenger(&client, "2400000000000000000000000", "api.yeelink.net");   //此处替换为你自己的API KEY
 - 
 - 
 - void setup()
 - {
 -   Serial.begin(9600);        //for output information
 - 
 -   pinMode(SS, OUTPUT);
 -   pinMode(RST, OUTPUT);
 -   digitalWrite(SS, LOW);
 - 
 -   digitalWrite(RST,HIGH);  //复位模块
 -   delay(200); 
 -   digitalWrite(RST,LOW); 
 -   delay(200);
 -   digitalWrite(RST,HIGH);  
 -   delay(200);              //等待W5500芯片工作
 - 
 -   byte mac[] = {
 -     0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xAA     };
 -   Ethernet.begin(mac);
 - }
 - 
 - void loop()
 - {
 -   temp_c = sht1x.readTemperatureC();
 -   humidity = sht1x.readHumidity();
 - 
 -   time=time+1;
 -   if (time%2==1)
 -   {
 -     yl_value_data_point dp(temp_c);
 -     therm.single_post(messenger, dp);
 -     Serial.print(temp_c,2);
 -     Serial.println("C");
 -   }
 - 
 - 
 -   else if(time%2==0)
 -   {
 -     yl_value_data_point dp(humidity);
 -     therm1.single_post(messenger, dp);
 -     Serial.print(humidity);
 -     Serial.println("%");
 -   }
 - }</font>
 - 
 
  复制代码 注意事项: 由于W5500的驱动管脚与官方的W5100不一样,必须在代码中重新定义一遍芯片的片选和复位管脚,在上述代码中为这一段 - #define SS     10    //D10用于W5500的片选
 - #define RST    11    //D11用于W5500的复位
 
  复制代码 初始化中的片选和复位过程- 
 -   pinMode(SS, OUTPUT);
 -   pinMode(RST, OUTPUT);
 -   digitalWrite(SS, LOW);
 - 
 -   digitalWrite(RST,HIGH);  //复位模块
 -   delay(200); 
 -   digitalWrite(RST,LOW); 
 -   delay(200);
 -   digitalWrite(RST,HIGH);  
 -   delay(200);              //等待W5500芯片工作
 
  复制代码 因为想要在同一个设备中添加两个传感器,所以加了一个time变量,来同时执行两个传感器的数据上传-   time=time+1;
 -   if (time%2==1)
 -   {
 -     yl_value_data_point dp(temp_c);
 -     therm.single_post(messenger, dp);
 -     Serial.print(temp_c,2);
 -     Serial.println("C");
 -   }
 - 
 -   else if(time%2==0)
 -   {
 -     yl_value_data_point dp(humidity);
 -     therm1.single_post(messenger, dp);
 -     Serial.print(humidity);
 -     Serial.println("%");
 -   }
 
  复制代码 请注意我定义的两个不同的传感器名字,加个“1”就好,名字无所谓的啦~- yl_sensor therm(31826, &ardu);//此处替换为你的传感器编号
 - yl_sensor therm1(31908, &ardu);//此处替换为你的传感器编号
 
  复制代码 基本一些需要注意的都有了,你还在烦恼什么!!! 
 
  
 STEP 5 查看已上传的数据  
Done!  
  
  
  
 
 
 
 
 |   
 
 
 
 | 
| 
 | 
| 
 | 
| 
 | 
 |