<noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • led聯網

    led聯網的詳細介紹

    創作者:Tonyzhang1371 | 更新日期:2018-06-22 | 在線時長:15分
    Tonyzhang1371的第一個設備,來自貝殼物聯(play 亮 stop滅)

    功能介紹

    暫無。

    硬件組成

    esp8266 led

    代碼說明


    /*
     *注意 :Arduino IDE版本請使用1.6.5-1.8.2
     */

    #include
    //=============  此處必須修該============
    String DEVICEID="6456"; // 你的設備編號   ==
    String  APIKEY="36f0460f0"; // 設備密碼==
    //=======================================
    const int LED = 4;// LED正極連接針腳4
    unsigned long lastCheckInTime = 0; //記錄上次報到時間
    const unsigned long postingInterval = 40000; // 每隔40秒向服務器報到一次
    String inputString = "";
    boolean stringComplete = false;
    boolean CONNECT = true;
    char* parseJson(char *jsonString);
    void setup() {
      pinMode(LED, OUTPUT);
      Serial.begin(115200);
      delay(5000);
    }
    void loop() {
      if(millis() - lastCheckInTime > postingInterval || lastCheckInTime==0) {
        checkIn();
      }
      serialEvent();
        if (stringComplete) {
          inputString.trim(); //去掉string首尾的空格
          //Serial.println(inputString);
          if(inputString=="CLOSED"){
            Serial.println("connect closed!");
            CONNECT=false;        
          }else{
            int len = inputString.length()+1;    
            if(inputString.startsWith("{") && inputString.endsWith("}")){
              char jsonString[len];
              inputString.toCharArray(jsonString,len);  //string轉char[]
              aJsonObject *msg = aJson.parse(jsonString);
              processMessage(msg);
              aJson.deleteItem(msg);          
            }
          }      
          // clear the string:
          inputString = "";
          stringComplete = false;    
      }
    }
    void checkIn() {
      if (!CONNECT) {
        Serial.print("+++");
        delay(500);  
        Serial.print("\r\n");
        delay(1000);
        Serial.print("AT+RST\r\n");
        delay(6000);
        CONNECT=true;
        lastCheckInTime=0;
      }
      else{
        Serial.print("{\"M\":\"checkin\",\"ID\":\"");
        Serial.print(DEVICEID);
        Serial.print("\",\"K\":\"");
        Serial.print(APIKEY);
        Serial.print("\"}\r\n");
        lastCheckInTime = millis();   
      }
    }
    void processMessage(aJsonObject *msg){
      aJsonObject* method = aJson.getObjectItem(msg, "M");
      aJsonObject* content = aJson.getObjectItem(msg, "C");     
      aJsonObject* client_id = aJson.getObjectItem(msg, "ID");  
      //char* st = aJson.print(msg);
      if (!method) {
        return;
      }
        //Serial.println(st);
        //free(st);
        String M=method->valuestring;
        String C=content->valuestring;
        String F_C_ID=client_id->valuestring;
        if(M=="say"){
          if(C=="play"){
            digitalWrite(LED, HIGH);
            sayToClient(F_C_ID,"LED on!");    
          }
          if(C=="stop"){
            digitalWrite(LED, LOW);
            sayToClient(F_C_ID,"LED off!");    
          }
        }
    }
    void sayToClient(String client_id, String content){
      Serial.print("{\"M\":\"say\",\"ID\":\"");
      Serial.print(client_id);
      Serial.print("\",\"C\":\"");
      Serial.print(content);
      Serial.print("\"}\r\n");
      lastCheckInTime = millis();
    }
    void serialEvent() {
      while (Serial.available()) {
        char inChar = (char)Serial.read();
        inputString += inChar;
        if (inChar == '\n') {
          stringComplete = true;
        }
      }
    }

     

    <noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 三上悠亚在线观看