DFRobot W5500 以太网接口主控板 Yeelink 数据上传教程

2015-03-051.9万
精华项目
AI 快速预览详细 收起
本教程介绍了如何使用DFRobot W5500以太网接口主控板和SHT1x温湿度传感器,通过Yeelink平台上传数据。首先准备材料,包括主控板、传感器、扩展板等。然后进行硬件测试,确保各组件正常工作。接着在Yeelink平台上设置设备和传感器,获取设备ID、传感器ID和API Key。下载并安装所需的Arduino库文件,编写代码并上传至主控板。最后,查看已上传的数据,完成整个过程。


DFRobot W5500 以太网接口主控板 Yeelink 数据上传教程图1
很开心这次能够的首先拿到了这款DFRobot W5500以太网接口主控板。虽然只是测试版,但基本上已经具备了完整的功能清单。而且请注意Title,这货不是扩展板,这是主控板!!!一块集合了以太网接口,但却只有普通Uno大小的主控板!(颤抖吧!凡人们!)
上次WIFI数据上传的教程,一直苦于没有时间,没有把Yeelink的教程给发出来,感觉很愧对大家的热爱,这回就补个W5500 Yeelink的教程分享给大家,经供参考。(我就是懒得写,你咬我啊~)


STEP 1 准备材料
1 DFRobot W5500 Ethernet Microcontroller    x1
2 SHT1x 温湿度传感器                        x1
3 IO传感器扩展板 V7.1                      x1
4 RJ45 网线                                 x1
5 MicroUSB线                                x1


STEP 2 硬件测试
此处请参考W5500和SHT10温湿度传感器的产品维库:


STEP 3 Yeelink 网络设置
登陆Yeelink账号,至用户中心
添加新设备,填入基本信息
DFRobot W5500 以太网接口主控板 Yeelink 数据上传教程图2

点击设备管理,添加传感器,选择数据类型,填入相关参数
DFRobot W5500 以太网接口主控板 Yeelink 数据上传教程图3

考虑到我需要添加温度与湿度两个传感器数据,所以这边我添加了两个传感器
SHT10温度和SHT10湿度
DFRobot W5500 以太网接口主控板 Yeelink 数据上传教程图4
请注意上面的两组ID: 设备ID传感器ID

再次回到用户中心,查看你的API Key
DFRobot W5500 以太网接口主控板 Yeelink 数据上传教程图5
这三组ID编号是你区别于其他设备的关键所在,都是独一无二的。至此,所有的信息已经全部收集到手。



STEP 4 Arduino 代码
首先先要下载相关的Arduino library
1 W5500 Ethernet Library (亲测,不兼容W5100的library,使用W5100时需注意)

上传代码至你的W5500主控板(由于第二步的硬件测试已省略)上传过程请参考产品维库
Board:Leonardo
  1. <font size="3">#include <Ethernet.h>
  2. #include <WiFi.h>
  3. #include <SPI.h>
  4. #include <yl_data_point.h>
  5. #include <yl_device.h>
  6. #include <yl_w5100_client.h>
  7. #include <yl_wifi_client.h>
  8. #include <yl_messenger.h>
  9. #include <yl_sensor.h>
  10. #include <yl_value_data_point.h>
  11. #include <yl_sensor.h>
  12. #include <SHT1x.h>
  13. #define SS     10    //D10用于W5500的片选
  14. #define RST    11    //D11用于W5500的复位
  15. #define dataPin  4
  16. #define clockPin 5
  17. float temp_c;
  18. float humidity;
  19. int time=0;
  20. SHT1x sht1x(dataPin, clockPin);
  21. IPAddress ip(192,168,1,213);   // SET your static IP address
  22. yl_device ardu(18338);  //此处替换为你的设备编号
  23. yl_sensor therm(31826, &ardu);//此处替换为你的传感器编号
  24. yl_sensor therm1(31908, &ardu);//此处替换为你的传感器编号
  25. yl_w5100_client client;
  26. yl_messenger messenger(&client, "2400000000000000000000000", "api.yeelink.net");   //此处替换为你自己的API KEY
  27. void setup()
  28. {
  29.   Serial.begin(9600);        //for output information
  30.   pinMode(SS, OUTPUT);
  31.   pinMode(RST, OUTPUT);
  32.   digitalWrite(SS, LOW);
  33.   digitalWrite(RST,HIGH);  //复位模块
  34.   delay(200);
  35.   digitalWrite(RST,LOW);
  36.   delay(200);
  37.   digitalWrite(RST,HIGH);  
  38.   delay(200);              //等待W5500芯片工作
  39.   byte mac[] = {
  40.     0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xAA     };
  41.   Ethernet.begin(mac);
  42. }
  43. void loop()
  44. {
  45.   temp_c = sht1x.readTemperatureC();
  46.   humidity = sht1x.readHumidity();
  47.   time=time+1;
  48.   if (time%2==1)
  49.   {
  50.     yl_value_data_point dp(temp_c);
  51.     therm.single_post(messenger, dp);
  52.     Serial.print(temp_c,2);
  53.     Serial.println("C");
  54.   }
  55.   else if(time%2==0)
  56.   {
  57.     yl_value_data_point dp(humidity);
  58.     therm1.single_post(messenger, dp);
  59.     Serial.print(humidity);
  60.     Serial.println("%");
  61.   }
  62. }</font>
复制代码
注意事项:
由于W5500的驱动管脚与官方的W5100不一样,必须在代码中重新定义一遍芯片的片选和复位管脚,在上述代码中为这一段
  1. #define SS     10    //D10用于W5500的片选
  2. #define RST    11    //D11用于W5500的复位
复制代码
初始化中的片选和复位过程
  1.   pinMode(SS, OUTPUT);
  2.   pinMode(RST, OUTPUT);
  3.   digitalWrite(SS, LOW);
  4.   digitalWrite(RST,HIGH);  //复位模块
  5.   delay(200);
  6.   digitalWrite(RST,LOW);
  7.   delay(200);
  8.   digitalWrite(RST,HIGH);  
  9.   delay(200);              //等待W5500芯片工作
复制代码
因为想要在同一个设备中添加两个传感器,所以加了一个time变量,来同时执行两个传感器的数据上传
  1.   time=time+1;
  2.   if (time%2==1)
  3.   {
  4.     yl_value_data_point dp(temp_c);
  5.     therm.single_post(messenger, dp);
  6.     Serial.print(temp_c,2);
  7.     Serial.println("C");
  8.   }
  9.   else if(time%2==0)
  10.   {
  11.     yl_value_data_point dp(humidity);
  12.     therm1.single_post(messenger, dp);
  13.     Serial.print(humidity);
  14.     Serial.println("%");
  15.   }
复制代码
请注意我定义的两个不同的传感器名字,加个“1”就好,名字无所谓的啦~
  1. yl_sensor therm(31826, &ardu);//此处替换为你的传感器编号
  2. yl_sensor therm1(31908, &ardu);//此处替换为你的传感器编号
复制代码
基本一些需要注意的都有了,你还在烦恼什么!!!


STEP 5 查看已上传的数据
DFRobot W5500 以太网接口主控板 Yeelink 数据上传教程图6

Done!
DFRobot W5500 以太网接口主控板 Yeelink 数据上传教程图7








创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
Grey
Grey
作者
W5500的速度更快,发热量低,而且POE供电在很多地方比外接电源方便
R2D2
R2D2
话说,5500和5100的主要区别在哪里?
gckulo
gckulo
赞 先收藏了
hnyzcj
hnyzcj
我用的是W5100是拓展板,有了W5500现在更强大了
hnyzcj
hnyzcj
哈哈,YEELINKE 好久没有玩了。
Mickey
Mickey回复hnyzcj
除了以上区别外,W5500主板是一个带POE功能的主板,支持标准的POE供电设备。
hnyzcj
hnyzcj回复Grey
W5500除了是主控外,与5100还有啥区别
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
- 没有更多了 -