zoukankan      html  css  js  c++  java
  • WIdo联网代码中文注释

    代码如下

    /*************************************************** 
    这是一个例子的dfrobot维多-无线集成物联网建兴传感器和控制节点
    *产品页面及更多信息:http://www.dfrobot.com.cn/goods-997.html
    *特别设计的dfrobot维多产品的工作:
    *
    *图书馆叉从Adafruit
    *
    *劳伦写的
    * BSD许可证,所有以上文字必须包含在任何重
     * 
     ****************************************************/
     
    /*
    This example code is used to connect the Yeelink cloud service (Official homepage: www.yeelink.net).
    这个示例代码用于连接Yeelink云服务(官方主页:www.yeelink.net)。
     The device required is just:
     需要的设备是:
     1. LM35 low cost temperature sensor or any device you used to upload data
     1。LM35低成本温度传感器或任何用于上传数据的设备
     2. And Wido
    2。和Wido
    注意:请不要忘记在使用前更改下面的设置!
    1。wlan_ssid和wlan_pass
    2。api_key
    三.设备ID和传感器ID
    
     */
    
    
    #include <Adafruit_CC3000.h>
    #include <ccspi.h>
    #include <SPI.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); // 你可以改变这个时钟速度。
    //安全可以wlan_sec_unsec,wlan_sec_wep,wlan_sec_wpa或wlan_sec_wpa2
    #define WLAN_SECURITY   WLAN_SEC_WPA2
    
    
    #define WLAN_SSID       "modou-2002"           // 不能超过32个字符!
    #define WLAN_PASS       "23456789"          //用于连接的路由器或AP,不要忘记设置SSID和密码!!
    
    
    #define TCP_TIMEOUT      3000
    //#define CC3000_TINY_DRIVER
    
    #define WEBSITE  "api.yeelink.net"
    #define API_key  "733115abefe88b0033c035ac9e000000"  // Update Your API Key. To get your API Key, please check the link below
                                                         // http://www.yeelink.net/user/user_profile
    
    void setup(){
    
      Serial.begin(115200);
      Serial.println(F("Hello, CC3000!
    "));
    
      /* Initialise the module */
      Serial.println(F("
    Initialising the CC3000 ..."));//初始化的CC3000…
      if (!Wido.begin())
      {
        Serial.println(F("Unable to initialise the CC3000! Check your wiring?"));//无法初始化的CC3000!检查你的线路?”
        while(1);
      }
    
      /* 尝试连接到接入点*/
      char *ssid = WLAN_SSID;             /* Max 32 chars */
      Serial.print(F("
    Attempting to connect to ")); 
      Serial.println(ssid);
    
      /* 注意:安全连接在“微”模式下不可用!
    默认情况下connecttoap将重试下去,但是你可以通过
    最大重试次数可选(大于零)作为第四个参数。
       */
      if (!Wido.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) {
        Serial.println(F("Failed!"));
        while(1);
      }
    
      Serial.println(F("Connected!"));
    
      /* 等待DHCP完成 */
      Serial.println(F("Request DHCP"));
      while (!Wido.checkDHCP())
      {
        delay(100); // ToDo: 插入DHCP超时!
      }  
    
    }
    
    uint32_t ip = 0;
    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){
        // Update the time stamp更新时间戳
        RetryMillis = millis();
    
        Serial.println(F("Try to connect the cloud server"));
        WidoClient.close();
    
        // Get Yeelink IP address把Yeelink IP的地址
        Serial.print(F("api.yeelink.net -> "));
        while  (ip  ==  0)  {
          if  (!Wido.getHostByName(WEBSITE, &ip))  {    //  Get the server IP address based on the domain name根据域名获取服务器IP地址
            Serial.println(F("Couldn't resolve!"));
          }
          delay(500);
        }  
        Wido.printIPdotsRev(ip);
        Serial.println(F(""));
        
        // Connect to the Yeelink Server连接到服务器的yeelink
        WidoClient = Wido.connectTCP(ip, 80);          // Try to connect cloud server
      }
      
      if(WidoClient.connected() && millis() - uploadtStamp > 2000){
        uploadtStamp = millis();
        // If the device is connected to the cloud server, upload the data every 2000ms.如果设备连接到云服务器,上传数据的每一2000ms。
        
        // Prepare Http Package for Yeelink & get length准备和包装长度yeelink for HTTP get
        int length = 0;
        char lengthstr[3];
        
        // Create Http data package
        char httpPackage[60] = "";
        
        strcat(httpPackage,"{"value":");
        itoa(temp,httpPackage+strlen(httpPackage),10);          // push the data(temp) to the http data package日期(时间)Push the to the HTTP数据包
        strcat(httpPackage,"}");
        
        length = strlen(httpPackage);                           // get the length of data package获取数据包的长度
        itoa(length,lengthstr,10);                              // convert int to char array for posting
        Serial.print(F("Length = "));
        Serial.println(length);
        
        Serial.println(F("Connected to Yeelink server."));//yeelink服务器连接
        
        // Send headers
        Serial.print(F("Sending headers"));
        
        WidoClient.fastrprint(F("POST /v1.0/device/"));
        WidoClient.fastrprint(F("100/sensor/20/datapoints"));  //Please change your device ID and sensor ID here, after creating
                                                               //Please check the link: http://www.yeelink.net/user/devices
      /*请在创建后更改您的设备ID和传感器id
    / /请查看链接:http://www.yeelink.net/user/devices
    //例网址:*/
                                                               //The example URL: http://api.yeelink.net/v1.0/device/100/sensor/20/datapoints
        WidoClient.fastrprintln(F(" HTTP/1.1"));
        Serial.print(F("."));
        
        WidoClient.fastrprintln(F("Host: api.yeelink.net"));
        Serial.print(F("."));
        
        WidoClient.fastrprint(F("U-ApiKey: "));
        WidoClient.fastrprintln(API_key);
        Serial.print(F("."));
        
        WidoClient.fastrprint("Content-Length: "); 
        WidoClient.fastrprintln(lengthstr);
        WidoClient.fastrprintln("");
        Serial.print(F("."));
        
        Serial.println(F(" done."));
        
        // Send data
        Serial.print(F("Sending data"));
        WidoClient.fastrprintln(httpPackage);
    
        Serial.println(F(" done."));
        
        /********** Get the http page feedback ***********/
        
        unsigned long rTimer = millis();
        Serial.println(F("Reading Cloud Response!!!
    "));
        while (millis() - rTimer < 2000) {
          while (WidoClient.connected() && WidoClient.available()) {
            char c = WidoClient.read();
            Serial.print(c);
          }
        }
        delay(1000);             // 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
      }
    
      if(millis() - sensortStamp > 1000){
        sensortStamp = millis();
        // 读LM35温度传感器值转换为度每隔1000ms。
    
        int reading = analogRead(0);
        temp = reading *0.0048828125*100;
        Serial.print(F("Real Time Temp: ")); 
        Serial.println(temp); 
      }
    }
  • 相关阅读:
    Java高级之类结构的认识
    14.8.9 Clustered and Secondary Indexes
    14.8.4 Moving or Copying InnoDB Tables to Another Machine 移动或者拷贝 InnoDB 表到另外机器
    14.8.3 Physical Row Structure of InnoDB Tables InnoDB 表的物理行结构
    14.8.2 Role of the .frm File for InnoDB Tables InnoDB 表得到 .frm文件的作用
    14.8.1 Creating InnoDB Tables 创建InnoDB 表
    14.7.4 InnoDB File-Per-Table Tablespaces
    14.7.2 Changing the Number or Size of InnoDB Redo Log Files 改变InnoDB Redo Log Files的数量和大小
    14.7.1 Resizing the InnoDB System Tablespace InnoDB 系统表空间大小
    14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB
  • 原文地址:https://www.cnblogs.com/xiaohe520/p/7138375.html
Copyright © 2011-2022 走看看