Verbindungsproblem Twitter und GSM Shield | Arduino UNO

Hallo zusammen,

ich möchte über den Arduino UNO und das aufgesteckte GSM Shield eine Verbindung zum Internet aufbauen und diese dafür nutzen, automatisiert diverse twitter Nachrichten zu senden. Das ganze läuft in Verbindung mit Temboo. Bisher lief mein dafür geschriebener Sketch auf dem Arduino YUN, nutzte WLAN und funktionierte ohne Probleme.

Jetzt habe ich den Sketch soweit umgeschrieben, dass auch der Arduino UNO damit klar kommen sollte, habe aber offensichtlicht ein Problem mit der Verbindung.

Hier mein Code:

#include <GSM.h>
#include <Temboo.h>
#include "TembooAccount.h" 
#include <stdlib.h>

GSMClient client;
GPRS gprs;
GSM gsm;
GSM gsmaccess;

char const *tweet1 = "Test1";
char const *tweet2 = "Test2";
char const *tweet3 = "Test3";

int numRuns = 1;   
int maxRuns = 10;   
int tweetIndex = 0;

void setup() {
  Serial.begin(9600);
  
  
  delay(4000);
  //while(!Serial);

  
  boolean connected = false;

  while(!connected)
  {
    Serial.println("Verbinde");
    if ((gsm.begin(GSM_PIN_NUMBER)==GSM_READY) && (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY)) {
      connected = true;
    }
  }

  Serial.println("Verbindung aufgebaut\n");
}

void loop() {
  
  char const * tweets[] = { tweet1, tweet2, tweet3, (char const *)NULL};
 
  numRuns++;
  
  if (numRuns <= maxRuns) {
    char const *selectedString = tweets[ tweetIndex ];
      String tweetText( selectedString );
    
      if( tweetText == NULL )
      {
           tweetIndex = 0;
           tweetText = tweets[ tweetIndex ];
      }
    
     tweetIndex ++;

    int number = rand();
    char array[140];
    sprintf( array, "%s %d", selectedString, number );
  
  
    Serial.println("Running StatusesUpdate - Run #" + String(numRuns++));

    TembooChoreo StatusesUpdateChoreo(client);

    
    StatusesUpdateChoreo.begin();

    
    StatusesUpdateChoreo.setAccountName(TEMBOO_ACCOUNT);
    StatusesUpdateChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
    StatusesUpdateChoreo.setAppKey(TEMBOO_APP_KEY);

    
    StatusesUpdateChoreo.setProfile("MeinTwitterName");
    StatusesUpdateChoreo.addInput("StatusUpdate", array);
    StatusesUpdateChoreo.setChoreo("/Library/Twitter/Tweets/StatusesUpdate");
    StatusesUpdateChoreo.run();

    while(StatusesUpdateChoreo.available()) {
      char c = StatusesUpdateChoreo.read();
      Serial.print(c);
    }
    StatusesUpdateChoreo.close();
  }

  Serial.println("Warte auf nächsten Tweet...");
  delay(30000); 
}

Lässt sich zumindest schon einmal ohne weiteres kompilieren. Wenn ich es dann aber auf dem Arduino UNO mit aufgesetztem GSM Shield starte, kommt folgende Meldung:

Wenn ich das richtig sehe, wird die Verbindung zumindest einmal über das GSM Shield aufgebaut, wenn er dann aber die erste Twitter Nachricht senden soll gibt es Probleme.

Ich bedanke mich im Vorfeld für’s anschauen und bin um jeden Rat dankbar.

Hi there, I work for Temboo.

It looks like you could be running into an out of memory condition. This can cause the Choreo data to get overwritten and corrupted, which is why it appears that there is a problem with your Temboo code even though it looks correct.

Looking at your sketch, you can try creating a smaller char array and see if that clears up the issue. You can also reduce RAM by removing any unnecessary print statements in your sketch.

If you have any questions, feel free to contact us at Contact | Temboo - we're always happy to help.