Go Down

Topic: twitter and GSM shield (Read 7618 times) previous topic - next topic


Mar 24, 2013, 05:33 pm Last Edit: Mar 26, 2013, 12:38 am by ales9000 Reason: 1
hi all,

i just do my first tweet using the GSM shield,

I modify a little bit the twitter.h library, than I mix the code of the examples in the arduino software.
I mix the GsmTwitterClient example and the SimplePost example of the Twitter library.

I will post all here following waiting some feedbacks and off course to simplify it and fix some bugs in it.
as in the simplepost example you need to get YOUR TOKEN to tweet here: http://arduino-tweet.appspot.com/

in the Twitter.h lib at line 21 I substitute first the

Code: [Select]

#include <Ethernet.h>
#if defined(ARDUINO) && ARDUINO < 100  // earlier than Arduino 1.0
#include <EthernetDNS.h>

Code: [Select]

#include <GSM.h>
//#if defined(ARDUINO) && ARDUINO < 100  // earlier than Arduino 1.0
//#include <EthernetDNS.h>

i comment the last three lines because we don't need it any more.

than at line 35 I substitute this other thing

Code: [Select]
EthernetClient client;
Code: [Select]
GSM3MobileClientService client;

that's it for the twitter.h lib... may be we can call it twitterGSM.h

here following i will show you the codes I mix.
this is working with my configuration (arduino UNO R3 and GSM R3 shield) even if not always post the tweet, but unfortunately i think this only depend on the italian GSM provider TIM (telecom italia mobile).

that's it.

looking forward some feedbacks and don't forget to include me @ales9000 when you tweet from your GMS shield...

arduino rock!


Code: [Select]

#include <SPI.h> // needed in Arduino 0019 or later
#include <Twitter.h>
//#include <Ethernet.h>
#include <GSM.h>

// PIN Number
#define PINNUMBER ""

// APN data
#define GPRS_APN       "APN" // replace your GPRS APN
#define GPRS_LOGIN     "login" // replace with your GPRS login
#define GPRS_PASSWORD  "password" // replace with your GPRS password

// The includion of EthernetDNS is not needed in Arduino IDE 1.0 or later.
// Please uncomment below in Arduino IDE 0022 or earlier.
//#include <EthernetDNS.h>

// initialize the library instance
GSMClient client;
GPRS gprs;
GSM gsmAccess;

//const unsigned long requestInterval = 30*1000;    // delay between requests: 30 seconds

// API Twitter URL
char server[] = "api.twitter.com";

//twitter talk
Twitter twitter("TWITTER TALK");

// Message to post
char msg[] = "Hello, World!";

void setup() {
// initialize serial communications and wait for port to open:
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  // connection state
  boolean notConnected = true;
  // After starting the modem with GSM.begin()
  // attach the shield to the GPRS network with the APN, login and password
    if((gsmAccess.begin(PINNUMBER)==GSM_READY) &
      notConnected = false;
      Serial.println("Not connected");
  Serial.println("Connected to GPRS network");
  Serial.println("connecting ...");
  if (twitter.post(msg)) {
    // Specify &Serial to output received response to Serial.
    // If no output is required, you can just omit the argument, e.g.
    // int status = twitter.wait();
    int status = twitter.wait(&Serial);
    if (status == 200) {
    } else {
      Serial.print("failed : code ");
  } else {
    Serial.println("connection failed.");

void loop()


Hi Alessandro:

It's great to have that porting. I have taken the liberty to use your bridge for some demos and it runs smooth, so it's great to have an "official" implementation, I'll use it if you don't mind. I've found no problems using the Bluevia SIM, as it is pure outgoing TCP/IP traffic.

Have you thought of changing the library so it runs with any kind of client class? Or do you want me to take a try?

Best regards.


Hi zorzano,

nice to hear that everything is working... thank you!

off course will be great to have the library working on every kind of client class...
will be great if you can do it...

thank you



hi, i have only a question, where i should put the token and if it is oauth_token from twitter



You get the token at http://arduino-tweet.appspot.com/

I think the token goes instead of "TWITTER TALK"


ok´s its fine but i have problems to acces via apn to mi shield its a atwin 139
it doesn´t has a library, but has a datasheet of at command, can you bring me some help ?? whit apn autentification thank¨s


hi andresorihuela,

about the talk... is correct what zorzano sad, you can get the token and put it in the "TWITTER TALK" field...

unfortunately my code depend on the GSM.h library... so i think that it should work only with the official arduino GSM shield.

have fun



hi, alessandro

i think i have some skills about AT commands and perharps for the modification about the libraries on gsm.h
unfortunally i can´t success the APN autentification, because my shield use <ctrl-z> command and its hard to handle LOL
i wish to cooperate on this projects together

you know anything about oauth API v1.1 on twitter it will change the way to access and it might be make don´t work the actual Twitter.h


Hi Alessandro,
it´s really great to have this porting.
I have tested it with original arduino GSM Shield from Telefónica (with Bluevia SIM Card) and works fine.
Tks to share this solution.

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131