<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. 我用YL-69土壤濕度傳感器調試上傳成功了,顯示設備在線,可是為什么沒數據啊

        作者:白蘋果 | 更新時間:2018-10-04 | 瀏覽量:2476

        這個是代碼,小白一竅不通。。謝謝各位大神指教

         

        #include <aJSON.h>
        //=============  此處必須修改============
        String DEVICEID="xxxx"; // 你的設備ID=======
        String APIKEY="xxxxxxxxx"; // 設備密碼==
        String INPUTID1="xxxx";//接口ID1==============
        //=======================================
        #define Moisture A0 //定義AO 引腳 為 IO-A0
        #define DO 7        //定義DO 引腳 為 IO-7

        unsigned long lastCheckInTime = 0; //記錄上次報到時間
        unsigned long lastUpdateTime = 0;//記錄上次上傳數據時間
        const unsigned long postingInterval = 40000; // 每隔40秒向服務器報到一次
        const unsigned long updateInterval = 5000; // 數據上傳間隔時間5秒
        String inputString = "";//串口讀取到的內容
        boolean stringComplete = false;//串口是否讀取完畢
        boolean CONNECT = true; //連接狀態
        boolean isCheckIn = false; //是否已經登錄服務器
        char* parseJson(char *jsonString);//定義aJson字符串
        #define Moisture A0 //定義AO 引腳 為 IO-A0
        #define DO 7        //定義DO 引腳 為 IO-7
        int humidity;
        int temp=0;
        void update1(String did, String inputid, float value);
        void setup() {
          pinMode(Moisture, INPUT);//定義A0為輸入模式
          pinMode(DO, INPUT);
          Serial.begin(115200);
          delay(1000);
        }

        void loop() {//修改部分
        if(millis() - lastCheckInTime > postingInterval || lastCheckInTime==0) {
         checkIn();
        }
         if(millis() - lastUpdateTime > updateInterval)
        {
         
          float val;  
          int data;
          val=analogRead(0);
          //串口返回測量數據
          Serial.print("Moisture=");
          Serial.print(analogRead(Moisture));//讀取AO的數值
          Serial.print("|DO=");
          Serial.println(digitalRead(DO));//讀取DO的數值
          delay(1000);
           if((millis() - lastUpdateTime >= updateInterval) && isCheckIn)
           {
              update1(DEVICEID,INPUTID1,val);//MQ_2
               humidity=analogRead(0);

            }
           serialEvent();
             if (stringComplete) {
               inputString.trim();
               //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);
                   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;
            
        }
        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 update1(String did, String inputid, float value){
          Serial.print("{\"M\":\"update\",\"ID\":\"");
          Serial.print(did);
          Serial.print("\",\"V\":{\"");
          Serial.print(inputid);
          Serial.print("\":\"");
          Serial.print(value);
          Serial.println("\"}}");
          lastCheckInTime = millis();
          lastUpdateTime= millis();
        }
        void serialEvent() {
          while (Serial.available()) {
            char inChar = (char)Serial.read();
            inputString += inChar;
            if (inChar == '\n') {
              stringComplete = true;
            }
          }
        }


        評論:共2條

        白蘋果 評論于:2018-10-07 18:46:50
        啊哈哈,我兩天終于調成功了
        mufine 回復于:2019-04-15 20:51:25
        回復 @白蘋果:是什么問題呀?怎么成功的?
        返回頂部

        <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. 免费高清视频