<em id="ri2my"></em>
  • <em id="ri2my"></em>
    <em id="ri2my"><label id="ri2my"><nav id="ri2my"></nav></label></em>
  • <em id="ri2my"><label id="ri2my"></label></em>
    <div id="ri2my"></div>
    1. <em id="ri2my"><label id="ri2my"></label></em>
    2. <em id="ri2my"><ol id="ri2my"></ol></em>
      <em id="ri2my"></em>

      1. 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;
            }
          }
        }

         

        <em id="ri2my"></em>
      2. <em id="ri2my"></em>
        <em id="ri2my"><label id="ri2my"><nav id="ri2my"></nav></label></em>
      3. <em id="ri2my"><label id="ri2my"></label></em>
        <div id="ri2my"></div>
        1. <em id="ri2my"><label id="ri2my"></label></em>
        2. <em id="ri2my"><ol id="ri2my"></ol></em>
          <em id="ri2my"></em>

          1. 免费高清视频