极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14442|回复: 9

enc28j60 yeelink 物联开关

[复制链接]
发表于 2015-8-12 00:28:11 | 显示全部楼层 |阅读模式
  1. #include <EtherCard.h>

  2. static byte mymac[] = {0x74,0x69,0x69,0x2D,0x30,0x21};
  3. const char server[] PROGMEM = "api.yeelink.net";

  4. byte Ethernet::buffer[700];
  5. byte sensorData;
  6. static uint32_t lastConnectionTime = 0;   
  7. const unsigned long postingInterval = 100;

  8. const char SensorID[] PROGMEM = "171286";
  9. const char APIKey[] PROGMEM = "2c4265c045794880588ffeea97d70216";// replace your yeelink api key here
  10. const char DeviceID[] PROGMEM = "153110"; // replace your device ID

  11. Stash stash;
  12. void setup () {
  13. InitIP();
  14. }
  15.   
  16. void loop() {
  17.   
  18.   ether.packetLoop(ether.packetReceive());
  19.   if(millis() - lastConnectionTime > postingInterval){
  20.     GetData();
  21.   }
  22. }

  23. void GetData()
  24. {
  25.     float demo = random(0,500);
  26.     word one = random(0,500);
  27.     String msje;

  28.     if (demo < 250){
  29.       msje = "low";
  30.     }
  31.     else{
  32.       msje = "high";
  33.     }
  34.      
  35.   byte sd = stash.create();
  36.     stash.print("demo,");
  37.     stash.println(demo);
  38.     stash.print("one,");
  39.     stash.println(one);
  40.     stash.print("mensaje,");
  41.     stash.println(msje);
  42.     stash.save();
  43.      
  44.   Stash::prepare(PSTR("GET /v1.0/device/$F/sensor/$F/datapoints HTTP/1.1" "\r\n"
  45.       "Host:api.yeelink.net" "\r\n"
  46.       "U-ApiKey: $F" "\r\n"
  47.       "Content-Length:$D" "\r\n"
  48.       "\r\n""$H"),DeviceID,SensorID,APIKey,stash.size(),sd);
  49.       
  50.   sensorData = ether.tcpSend();
  51.    
  52.    const char* reply = ether.tcpReply(sensorData);
  53.     const char* re;
  54.     char t[3];
  55.     if(reply != 0) {
  56.        Serial.println(reply);
  57.        Serial.println(strstr(reply,"{"));
  58.         
  59.       if(strstr(reply,"1}") != NULL)
  60.       { Serial.println("Led state: ON");return;}
  61.       
  62.         if(strstr(reply,"0}") != NULL)
  63.       { Serial.println("Led state: OFF");return;}

  64.     }else
  65.     {
  66. //      Serial.println("2");
  67.     }
  68.      
  69.     lastConnectionTime = millis();
  70. }


  71. void InitIP()
  72. {
  73. Serial.begin(57600);
  74.   Serial.println("Client Demo");
  75.   Serial.println();
  76.   
  77.   if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
  78.     Serial.println( "Failed to access Ethernet controller");
  79. else
  80.    Serial.println("Ethernet controller initialized");
  81. Serial.println();
  82.   
  83.   if (!ether.dhcpSetup())
  84.     Serial.println("Failed to get configuration from DHCP");
  85.   else
  86.     Serial.println("DHCP configuration done");
  87.   
  88.   ether.printIp("IP Address:\t", ether.myip);
  89.   ether.printIp("Netmask:\t", ether.netmask);
  90.   ether.printIp("Gateway:\t", ether.gwip);
  91.   Serial.println();
  92.    
  93.   if (!ether.dnsLookup(server))
  94.     Serial.println("DNS failed");
  95.   else
  96.    Serial.println("DNS resolution done");  
  97.   ether.printIp("SRV IP:\t", ether.hisip);
  98.   Serial.println();
  99. }
复制代码



有时候可以 有时候不行
返回数据是空的   等很久才能有数据返回

有大神能帮我看看吗? 谢谢
回复

使用道具 举报

发表于 2015-8-12 21:14:29 | 显示全部楼层
const char SensorID[] PROGMEM = "171286";
const char APIKey[] PROGMEM = "2c4265c045794880588ffeea97d70216";//
你的APIKEY暴露了
回复 支持 反对

使用道具 举报

发表于 2015-8-12 21:14:46 | 显示全部楼层
          yeelink的话好像是10s
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-12 23:18:29 | 显示全部楼层
suoma 发表于 2015-8-12 21:14
const char SensorID[] PROGMEM = "171286";
const char APIKey[] PROGMEM = "2c4265c045794880588ffeea97 ...

暴露会怎么样?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-12 23:19:09 | 显示全部楼层
suoma 发表于 2015-8-12 21:14
yeelink的话好像是10s

把提交时间延长?
回复 支持 反对

使用道具 举报

发表于 2015-8-13 20:06:07 | 显示全部楼层
Atoney 发表于 2015-8-12 23:18
暴露会怎么样?

我可以登录看到你的数据,甚至位置
回复 支持 反对

使用道具 举报

发表于 2015-8-13 20:08:00 | 显示全部楼层
没看到延时,它有个应答过程,类似网络协议的“三次握手”
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-13 21:07:20 | 显示全部楼层
suoma 发表于 2015-8-13 20:06
我可以登录看到你的数据,甚至位置

试试私密我位置
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-13 21:08:30 | 显示全部楼层
suoma 发表于 2015-8-13 20:08
没看到延时,它有个应答过程,类似网络协议的“三次握手”

就是有时候返回不了。。提交了 没有返回 要隔很长时间才有反应。有时候 没有了。


有其他方案介绍?
回复 支持 反对

使用道具 举报

发表于 2015-8-14 21:22:51 | 显示全部楼层
yeelink最近老出故障
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 04:23 , Processed in 0.034901 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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