Wido用GET方法访问Onenet数据流-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5038|回复: 1

Wido用GET方法访问Onenet数据流

[复制链接]
发表于 2016-5-23 21:58 | 显示全部楼层 |阅读模式
本帖最后由 snw0511 于 2016-5-23 22:27 编辑

代码不知道哪里错了 返回总是 400 Bad Request  请大家帮忙看看 谢谢了!
#include <Adafruit_CC3000.h>
#include <ccspi.h>
#include <SPI.h>
#include <HttpPacket.h>
#define Wido_IRQ   7
#define Wido_VBAT  5
#define Wido_CS    10

Adafruit_CC3000 Wido = Adafruit_CC3000(Wido_CS, Wido_IRQ, Wido_VBAT,
SPI_CLOCK_DIVIDER); // you can change this clock speed
// Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2
#define WLAN_SECURITY   WLAN_SEC_WPA2


#define WLAN_SSID       "MOTO"           // cannot be longer than 32 characters!
#define WLAN_PASS       "12345678"          // For connecting router or AP, don't forget to set the SSID and password here!!


#define TCP_TIMEOUT      3000
//#define CC3000_TINY_DRIVER

#define WEBSITE  "api.heclouds.com"
#define API_key  ""  // Update Your API Key. To get your API Key, please check the link below

void setup(){

  Serial.begin(115200);
  Serial.println(F("Hello, CC3000!\n"));

  /* Initialise the module */
  Serial.println(F("\nInitialising the CC3000 ..."));
  if (!Wido.begin())
  {
    Serial.println(F("Unable to initialise the CC3000! Check your wiring?"));
    while(1);
  }

  /* Attempt to connect to an access point */
  char *ssid = WLAN_SSID;             /* Max 32 chars */
  Serial.print(F("\nAttempting to connect to "));
  Serial.println(ssid);


  if (!Wido.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) {
    Serial.println(F("Failed!"));
    while(1);
  }

  Serial.println(F("Connected!"));

  /* Wait for DHCP to complete */
  Serial.println(F("Request DHCP"));
  while (!Wido.checkDHCP())
  {
    delay(100); // ToDo: Insert a DHCP timeout!
  }  

}


float temp = 0;

void loop(){

  static Adafruit_CC3000_Client WidoClient;
  static unsigned long RetryMillis = 0;
  static unsigned long uploadtStamp = 0;
  static unsigned long sensortStamp = 0;

  if(!WidoClient.connected() && millis() - RetryMillis > TCP_TIMEOUT){
    // 如果连接中断且时间超过TCP_TIMEOUT,则重新连接
    RetryMillis = millis();

    Serial.println(F("Try to connect the cloud server"));
    WidoClient.close();

    // Connect to the Yeelink Server
    uint32_t ip = Wido.IP2U32(183,230,40,33);
    WidoClient = Wido.connectTCP(ip, 80);          // Try to connect cloud server
  }

  if(WidoClient.connected() && millis() - uploadtStamp > 2000){
    uploadtStamp = millis();
    // 如果连接正常且上传数据时间超过2000ms,则更新
    Serial.println(F("Connected to OneNet server."));
    Serial.println(F("Sending headers"));

   //发送查询数据包
    WidoClient.fastrprint(F("GET /devices/"));
    WidoClient.fastrprint(F("DEV_ID/datastreams"));
    WidoClient.fastrprint(F("/LED"));
    WidoClient.fastrprintln(F(" HTTP/1.1"));
    WidoClient.fastrprint(F("api-key:"));
    WidoClient.fastrprintln(API_key);
    WidoClient.fastrprintln(F("Host: api.heclouds.com"));
    WidoClient.fastrprintln("");

      /********** Get the http page feedback ***********/

   unsigned long rTimer = millis();
    Serial.println(F("Reading Cloud Response!!!\r\n"));
    while (millis() - rTimer < 2000) {
      while (WidoClient.connected() && WidoClient.available()) {
        char c = WidoClient.read();
        Serial.print(c);
      }
    }
/*    String comdata = "";
    while (Serial.available() > 0)  
    {
        comdata += char(Serial.read());
        delay(2);
    }
    if (comdata.length() > 0)
    {
        Serial.println(comdata);
        comdata = "";
    }
*/

    delay(100);             // Wait for 1s to finish posting the data stream
    WidoClient.close();      // Close the service connection

    RetryMillis = millis();  // Reset the timer stamp for applying the connection with the service
  }


  }


 楼主| 发表于 2016-5-23 22:28 | 显示全部楼层
代码可以用了 之前GET后面少了空格 太隐蔽了。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 00:40 , Processed in 0.150572 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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