2015-12-22 1 views
0

J'utilise Dragino Yun Shield avec mon Arduino Uno et un capteur Reed. La réponse au code ci-dessous n'indique aucune erreur, mais les données sur Parse.com ne montrent pas qu'il est mis à jour. Qu'est-ce que je fais mal? Le test Wi-Fi Bridge dit qu'il est très bien connecté.Arduino Yun ne met pas à jour l'objet dans 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

Pourquoi 'bool isOpen = currentState == HIGH; '? Vous envoyez toujours 'isOpen' comme' HIGH'. Comment comptez-vous le mettre à jour? – jabujavi

+0

Si currentState est HIGH, cela signifie que la porte est ouverte. J'utilise l'opérateur de comparaison ==, pas l'opérateur d'affectation =. A la fin de mon code, il est indiqué que 0 ou 1 a bien été poussé. Cela n'apparaît jamais à Parse. –

+0

OH! Désolé ... Je cherchais des problèmes d'Arduino. Pour la lisibilité, vous pouvez le changer en 'bool isOpen = (currentState == HIGH);' Le week-end dernier, je commence un projet pour m'amuser à Parse ... Je voudrais vous aider dans un certain temps. La chance! – jabujavi

Répondre

0

Copié d'un fil similaire que je répondais (Arduino yun to parse.com):

Vous êtes probablement le taux étant limité par Parse. Le code exécuté dans loop() est exécuté aussi rapidement que le micro-contrôleur peut l'exécuter - ce qui est très rapide. En conséquence, vous essayez d'écrire à Parse beaucoup plus de fois qu'une fois par seconde. Essayez de passer un appel à delay() après parseFunc (24). Quelque chose comme:

parseFunc (24); retard (1000); // délai est en millisecondes

Faites-moi savoir si cela fonctionne!