<noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 我用YL-69土壤濕度傳感器調試上傳成功了,顯示設備在線,可是為什么沒數據啊

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

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

     

    #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
    回復 @白蘋果:是什么問題呀?怎么成功的?
    返回頂部
    <noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 三上悠亚在线观看