2015-12-22 42 views
0

我使用Arginino Uno和簧片傳感器的Dragino Yun Shield。對以下代碼的響應表明沒有錯誤,但Parse.com上的數據未顯示它已更新。我究竟做錯了什麼? Bridge wifi測試表明它連接的很好。Arduino Yun不會更新Parse中的對象

void loop() { 
    currentState = digitalRead(7); 
    if(currentState != prevState){ 
    prevState = currentState; 
    Console.println("Pushing to parse!"); 
    ParseObjectUpdate update; 
    update.setClassName("DoorState"); 
    update.setObjectId("##########"); 
    bool isOpen = currentState == HIGH; 
    update.add("isOpen", isOpen); 
    ParseResponse response = update.send(); 
    if (!response.getErrorCode()) { 
     Console.println("Object saved success!"); 
    } else { 
     Console.println("Error"); 
     int err = response.getErrorCode(); 
     Console.println(err); 
    } 
    response.close(); 
    Console.print("Pushed: "); Console.println(isOpen); 
    } 
} 
+0

爲什麼'bool isOpen = currentState == HIGH; '? 您總是將'isOpen'作爲'HIGH'發送。你期望如何更新它? – jabujavi

+0

如果currentState爲HIGH,則表示門已打開。我使用比較運算符==,而不是賦值運算符=。在我的代碼結束時,它說正確地推0或1。它從來沒有出現在Parse中。 –

+0

哦!對不起......我正在尋找arduino問題。爲了便於閱讀,您可以將其更改爲'bool isOpen =(currentState == HIGH);'上週末我在Parse中啓動一些項目以獲得樂趣...我想在一段時間內幫助您。運氣! – jabujavi

回答

0

從類似線程我回答(Arduino yun to parse.com)複製:

你可能正速率限制的解析。循環()中執行的代碼的執行速度與微控制器可以執行的速度一樣快 - 這非常快。因此,您正在試圖寫入解析許多次,而不是每秒一次。嘗試在parseFunc(24)之後調用delay()。例如:

parseFunc(24); 延遲(1000); //延遲以毫秒爲單位

讓我知道它是否有效!