国内综合精彩aⅤ无码不卡_日本少妇做爰全过程_欧美性爱在线播放免费_午夜?V日韩一区二区_免费a级毛片无码免费播放_成在人线av无码喷水_亚洲精品网站色视频_国产婷婷精品成人_老师撩起裙子让我桶的视频_秋霞影院国产

設(shè)備不在線

作者:瀟瀟123 | 更新時(shí)間:2018-04-14 | 瀏覽量:1948

弄了挺久的,一直搞不定…求幫忙看看是為什么

串口助手一直顯示這個(gè):

{"M":"checkin","ID":"5438","K":"a3487a976"}
{"M":"update","ID":"5438","V":{"4888":"76.77"}}
{"M":"update","ID":"5438","V":{"4888":"106.55"}}
{"M":"update","ID":"5438","V":{"4888":"63.75"}}
{"M":"update","ID":"5438","V":{"4888":"72.59"}}

 

這是燒錄在arduino的代碼:

/*
 *注意 :Arduino IDE版本請(qǐng)使用1.6.5-1.8.2
 */
#include <aJSON.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //設(shè)置模擬串口針腳(RX, TX)
//=============  此處必須修改============
String DEVICEID="5438"; // 你的設(shè)備ID=======
String APIKEY="a3487a976"; // 設(shè)備密碼==
String INPUTID="4888";//接口ID==============
//=======================================
const int MQ2 = 0;// MQ-2 Vout 接 A0
unsigned long lastCheckInTime = 0; //記錄上次報(bào)到時(shí)間
unsigned long lastUpdateTime = 0;//記錄上次上傳數(shù)據(jù)時(shí)間
const unsigned long postingInterval = 40000; // 每隔40秒向服務(wù)器報(bào)到一次
const unsigned long updateInterval = 5000; // 數(shù)據(jù)上傳間隔時(shí)間5秒
String inputString = "";//串口讀取到的內(nèi)容
boolean stringComplete = false;//串口是否讀取完畢
boolean CONNECT = true; //連接狀態(tài)
boolean isCheckIn = false; //是否已經(jīng)登錄服務(wù)器
char* parseJson(char *jsonString);//定義aJson字符串
void setup() {
 Serial.begin(115200);
  delay(10000);
}
void loop() {
  if(millis() - lastCheckInTime > postingInterval || lastCheckInTime==0) {
    checkIn();
  }
  if(millis() - lastUpdateTime > updateInterval) {
    float val;//定義變量
    int dat;//定義變量
    dat=analogRead( MQ2 );// 讀取傳感器的模擬值并賦值給dat
    //val=(125*dat)>>8;//溫度計(jì)算公式
    val = dat * (4.76 / 1023.0*100);  
    update1(DEVICEID,INPUTID,val);
  }
  serialEvent();
    if (stringComplete) {
      inputString.trim();
      //Serial.println(inputString);
      if(inputString=="CLOSED"){
       Serial.println("connect closed!");
        CONNECT=false;   
        isCheckIn=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);//處理接收到的Json數(shù)據(jù)
          aJson.deleteItem(msg);          
        }
      }      
      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;
    if(M=="checkinok"){
      isCheckIn = true;
    }
}
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;
    }
  }
}
同時(shí)上傳兩個(gè)接口數(shù)據(jù)調(diào)用此函數(shù)
void update2(String did, String inputid1, float value1, String inputid2, float value2){
 Serial.print("{\"M\":\"update\",\"ID\":\"");
  Serial.print(did);
  Serial.print("\",\"V\":{\"");
  Serial.print(inputid1);
  Serial.print("\":\"");
  Serial.print(value1);
  Serial.print("\",\"");
  Serial.print(inputid2);
  Serial.print("\":\"");
  Serial.print(value2);
  Serial.println("\"}}");
  lastCheckInTime = millis();
  lastUpdateTime= millis(); 
}
 


評(píng)論:共10條

超死亡 評(píng)論于:2018-04-17 19:52:39
設(shè)備重啟
瀟瀟123 回復(fù)于:2018-04-17 20:59:25
回復(fù) @超死亡:還是不行[哭]
超死亡 回復(fù)于:2018-04-17 22:12:20
回復(fù) @瀟瀟123:沒(méi)道理呀
ZQY 回復(fù)于:2018-04-20 18:38:23
回復(fù) @超死亡:我也是一樣不行,明明可以自動(dòng)連接上了
清風(fēng)鈴動(dòng) 回復(fù)于:2018-04-20 21:34:12
回復(fù) @超死亡設(shè)備要怎么重啟,我也是這個(gè)問(wèn)題
瀟瀟123 回復(fù)于:2018-04-26 02:34:40
回復(fù) @清風(fēng)鈴動(dòng):
瀟瀟123 回復(fù)于:2018-04-26 02:34:57
回復(fù) @ZQY:
瀟瀟123 評(píng)論于:2018-04-26 02:33:14
好了,原因是登陸指令之類的是寫在了串口,應(yīng)該連接貝殼的服務(wù)器然后發(fā)送到服務(wù)端就可以了
Y134 回復(fù)于:2018-05-01 12:00:16
回復(fù) @瀟瀟123:請(qǐng)問(wèn)具體該怎么改呢
JiYoo 回復(fù)于:2019-03-02 21:35:11
回復(fù) @瀟瀟123:同樣遇到了這個(gè)問(wèn)題 怎么解決的呢
返回頂部