api - write - python xpath




Télécharger des données sur Parse.com en utilisant Arduino et GSM shield et Parse REST API (2)

J'essaie d'utiliser un Arduino avec un bouclier GSM pour publier des données de capteurs sur www.parse.com via GPRS en utilisant leur API REST. Voici comment leur documentation montre qu'il doit être fait:

curl -X POST \
   -H "X-Parse-Application-Id: gmOpYot0OhWGnkMojjZv9KYUHMySCSeTGyyplArZ" \
   -H "X-Parse-REST-API-Key: XQMA4Wd3SQdOsxudtKz5OdbPaVN3YE9aOKx0VSh2" \
   -H "Content-Type: application/json" \
   -d '{"Level":90, "Temp":25}' \
   https://api.parse.com/1/classes/PercentFull

J'ai besoin de l'implémenter d'une manière ou d'une autre dans l'esquisse Arduino. C'est mon point de départ, car il inclut les bibliothèques que mon bouclier utilise. Cet exemple de croquis se connecte à Google et affiche le résultat. Je l'ai testé et ça fonctionne.

#include "SIM900.h"
#include <SoftwareSerial.h>
#include "inetGSM.h"
//#include "sms.h"
//#include "call.h"

//To change pins for Software Serial, use the two lines in GSM.cpp.

//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.

//Simple sketch to start a connection as client.

InetGSM inet;
//CallGSM call;
//SMSGSM sms;

char msg[50];
int numdata;
char inSerial[50];
int i=0;
boolean started=false;

void setup() 
{
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing.");
  //Start configuration of shield with baudrate.
  //For http uses is raccomanded to use 4800 or slower.
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;  
  }
  else Serial.println("\nstatus=IDLE");

  if(started){
    //GPRS attach, put in order APN, username and password.
    //If no needed auth let them blank.
    if (inet.attachGPRS("internet.wind", "", ""))
      Serial.println("status=ATTACHED");
    else Serial.println("status=ERROR");
    delay(1000);

    //Read IP address.
    gsm.SimpleWriteln("AT+CIFSR");
    delay(5000);
    //Read until serial buffer is empty.
    gsm.WhileSimpleRead();


   // Change this bit!!

   //TCP Client GET, send a GET request to the server and
    //save the reply.
    numdata=inet.httpGET("www.google.co.nz", 80, "/", msg, 50);
    //Print the results.
    Serial.println("\nNumber of data received:");
    Serial.println(numdata);  
    Serial.println("\nData received:"); 
    Serial.println(msg); 
  }
};

void loop() 
{
  //Read for new byte on serial hardware,
  //and write them on NewSoftSerial.
  serialhwread();
  //Read for new byte on NewSoftSerial.
  serialswread();
};

void serialhwread(){
  i=0;
  if (Serial.available() > 0){            
    while (Serial.available() > 0) {
      inSerial[i]=(Serial.read());
      delay(10);
      i++;      
    }

    inSerial[i]='\0';
    if(!strcmp(inSerial,"/END")){
      Serial.println("_");
      inSerial[0]=0x1a;
      inSerial[1]='\0';
      gsm.SimpleWriteln(inSerial);
    }
    //Send a saved AT command using serial port.
    if(!strcmp(inSerial,"TEST")){
      Serial.println("SIGNAL QUALITY");
      gsm.SimpleWriteln("AT+CSQ");
    }
    //Read last message saved.
    if(!strcmp(inSerial,"MSG")){
      Serial.println(msg);
    }
    else{
      Serial.println(inSerial);
      gsm.SimpleWriteln(inSerial);
    }    
    inSerial[0]='\0';
  }
}

void serialswread(){
  gsm.SimpleRead();
}

Je dois être en mesure de publier les données "Niveau" et "Temp" sur Parse.com en utilisant l'ID d'application et la clé API, etc., montrés dans l'exemple de l'API ci-dessus. Des idées sur la façon de faire cela dans le croquis?

Merci d'avance!!


J'ai fait des recherches supplémentaires à ce sujet et il semble que Arduino est incapable de se connecter à des serveurs Web via une connexion sécurisée (https). Pour ce faire, je devrais choisir un matériel différent.

J'ai essayé la réponse de zmo ci-dessus et il est retourné 0 car l'Arduino n'a pas pu établir la connexion. Il semble que la seule façon de le faire actuellement avec Arduino est de publier les données du capteur sur un serveur intermédiaire exécutant un script qui publie ensuite les données dans Parse.


maintenant il y a une possibilité avec http://www.temboo.com . Essayez-le, ici j'ai expliqué comment cela fonctionne: https://.com/a/24213165/1862909

mais je pense que cela ne fonctionne que pour le bouclier wifi et le bouclier Ethernet. Peut-être que vous pouvez faire une demande aux gars de temboo?