Go Down

Topic: twitter adruino (Read 5359 times) previous topic - next topic

jeroenv27

hallo

ik hoop dat jullie mij kunnen helpen. ik probeer mijn adruino via twitter een led aan te laten gaan. nu heb ik deze gevonden http://forum.arduino.cc/index.php?topic=104323.0 ik snap hier niks van. ik probeer alles, kan verbinding maken met twitter maar als ik de tweet verstuur dan doet niks. wat doe ik verkeerd? hebben jullie tips voor mij ? gr. jeroen


nicoverduin

Jeroen
Ik denk dat het handig is als je aangeeft:
a) welke code je gebruikt
b) welke hardware
Nu hebben we weinig om aanvulling te kunnen geven.
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

jeroenv27

hoi nicoverduin

ik heb een arduino uno ethernet shield

ik gebruik deze code


#include <SPI.h>
#include <Ethernet.h>
#include <TextFinder.h>


// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x07, 0x00, 0x2B };
byte ip[] =  { 10,25,32,90}; //change this
byte subnet[] = {255,255,0,0}; //change this
byte gateway[] = {10,25,255,254}; //change this

EthernetClient client;
String TwitterName ="adruinohome"; //change this to your own twittername, or follow me ;-)
char tweet[140];
String SearchString ="<title>";
byte charsize;
char serverName[] = "api.twitter.com";  // twitter URL
int leD1 = 8;               
int leD2 = 7;
int leD3 = 6;
int leD4 = 5;

void setup() {
 pinMode(leD1, OUTPUT);
 pinMode(leD2, OUTPUT);
 pinMode(leD3, OUTPUT);
 pinMode(leD4, OUTPUT);
 // initialize serial:
 Serial.begin(9600);
 // attempt a DHCP connection:
 Ethernet.begin(mac, ip, dns, gateway, subnet);
 // connect to Twitter:
 delay(3000);
}

void loop(){
 
 Serial.println("connecting to server...");
 if (client.connect(serverName, 80)) {
   TextFinder  finder( client,2 );
   Serial.println("making HTTP request...");
   // make HTTP GET request to twitter:
   client.print("GET /1/statuses/user_timeline.rss?screen_name=");
   client.print(TwitterName);
   client.println("&count=1 HTTP/1.1");
   client.println("HOST: api.twitter.com");
   client.println();
   Serial.println("sended HTTP request...");
   memset (tweet,0x03,sizeof(tweet)); //we vullen de tweet met ETX (End of Text)
   while (client.connected()) {
     if (client.available()) {
       Serial.println("looking for tweet...");
       SearchString = SearchString + TwitterName + ": ";
       charsize = SearchString.length() + 1;
       char StartHere[charsize];
       char EndHere[] = "</title>";
       SearchString.toCharArray(StartHere,charsize);
       if((finder.find("<item>")&&(finder.getString(StartHere,EndHere,tweet,140)!=0)))
         Serial.println(tweet);
       break;
     }
     
     
   }
   delay(1);
   client.stop();
 }
 Serial.println("start de verwerking ...");
 if (tweet[0] != 0x03) { //als het eerste karakter in de char tweet niet gelijk is aan 0x03, dan staat er dus iets anders bv a of b of q
     for (byte i = 0; i <140; i++){ // we zoeken de a op alle 140 plaatsen
       if (tweet == 'a' ){
         Serial.print("a verwerkt! op plaats: ");
         Serial.println(i); // laat ons zien op welke plaats je een a vond. want mogelijks is dat niet op de eerste plaats in de tweet
                            digitalWrite (leD1, HIGH);        //led 1 aan
                            delay (1000);                     // laatste actie aanhouden
                            digitalWrite (leD1, LOW);         //led 1 uit en naar de volgende
                            delay (100);
                             digitalWrite (leD1, HIGH);        //led 1 aan
                            delay (1000);                     // laatste actie aanhouden
                            digitalWrite (leD1, LOW);         //led 1 uit en naar de volgende
                            delay (100);
                             digitalWrite (leD3, HIGH);        //led 1 aan
                            delay (1000);                     // laatste actie aanhouden
                            digitalWrite (leD3 , LOW);         //led 1 uit en naar de volgende
                            delay (100);
       }
       if (tweet == 'b' ){
         Serial.print("b verwerkt! op plaats: ");
         Serial.println(i); // index b printen
       }
     }
     
   }
 Serial.println("delay...");
 delay (60000);
 // don't make this less than 30000 (30 secs), because you can't connect to the twitter servers faster (you'll be banned)
 // off course it would be better to use the "Blink without delay", but I leave that to you.
}



maar deze alls ik upload en tweet verstuurt doet niks

meschien doe ik wat verkeert of heeft u nog tips alvast bedankt

gr jeroen

nicoverduin

Heb je de IP en Gateway adressen veranderd voor jouw eigen netwerk?
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

Jantje

Heb je de IP en Gateway adressen veranderd voor jouw eigen netwerk?
Ik denk het niet


Code: [Select]
byte ip[] =  { 10,25,32,90}; //change this
byte subnet[] = {255,255,0,0}; //change this
byte gateway[] = {10,25,255,254}; //change this

Het is heeel onwaarschijnlijk dat dit ip adres goed is.
Het is ook heel onwaarschijnlijk dat de gateway past bij dit ip adres.

Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

jeroenv27

hoi

sorry ik zag dat ik niet aan gepaste coden geupload naar deze forum ik heb alls aan gepast als ik een tweet verstuur ziek ik dit

Code: [Select]
connecting to server...
making HTTP request...
sended HTTP request...
start de verwerking ...
delay...



Code: [Select]
#include <SPI.h>
#include <Ethernet.h>
#include <TextFinder.h>


// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x07, 0x00, 0x2B };
byte ip[] =  { 192,168,1,199}; //change this
byte subnet[] = {255,255,255,0}; //change this
byte gateway[] = {192,168,1,1}; //change this

EthernetClient client;
String TwitterName ="adruinohome"; //change this to your own twittername, or follow me ;-)
char tweet[140];
String SearchString ="<title>";
byte charsize;
char serverName[] = "api.twitter.com";  // twitter URL
int leD1 = 8;               
int leD2 = 7;
int leD3 = 6;
int leD4 = 5;

void setup() {
 pinMode(leD1, OUTPUT);
 pinMode(leD2, OUTPUT);
 pinMode(leD3, OUTPUT);
 pinMode(leD4, OUTPUT);
 // initialize serial:
 Serial.begin(9600);
 // attempt a DHCP connection:
 Ethernet.begin(mac, ip, dns, gateway, subnet);
 // connect to Twitter:
 delay(3000);
}

void loop(){
 
 Serial.println("connecting to server...");
 if (client.connect(serverName, 80)) {
   TextFinder  finder( client,2 );
   Serial.println("making HTTP request...");
   // make HTTP GET request to twitter:
   client.print("GET /1/statuses/user_timeline.rss?screen_name=");
   client.print(TwitterName);
   client.println("&count=1 HTTP/1.1");
   client.println("HOST: api.twitter.com");
   client.println();
   Serial.println("sended HTTP request...");
   memset (tweet,0x03,sizeof(tweet)); //we vullen de tweet met ETX (End of Text)
   while (client.connected()) {
     if (client.available()) {
       Serial.println("looking for tweet...");
       SearchString = SearchString + TwitterName + ": ";
       charsize = SearchString.length() + 1;
       char StartHere[charsize];
       char EndHere[] = "</title>";
       SearchString.toCharArray(StartHere,charsize);
       if((finder.find("<item>")&&(finder.getString(StartHere,EndHere,tweet,140)!=0)))
         Serial.println(tweet);
       break;
     }
     
     
   }
   delay(1);
   client.stop();
 }
 Serial.println("start de verwerking ...");
 if (tweet[0] != 0x03) { //als het eerste karakter in de char tweet niet gelijk is aan 0x03, dan staat er dus iets anders bv a of b of q
     for (byte i = 0; i <140; i++){ // we zoeken de a op alle 140 plaatsen
       if (tweet == 'a' ){
         Serial.print("a verwerkt! op plaats: ");
         Serial.println(i); // laat ons zien op welke plaats je een a vond. want mogelijks is dat niet op de eerste plaats in de tweet
                            digitalWrite (leD1, HIGH);        //led 1 aan
                            delay (1000);                     // laatste actie aanhouden
                            digitalWrite (leD1, LOW);         //led 1 uit en naar de volgende
                            delay (100);
                             digitalWrite (leD1, HIGH);        //led 1 aan
                            delay (1000);                     // laatste actie aanhouden
                            digitalWrite (leD1, LOW);         //led 1 uit en naar de volgende
                            delay (100);
                             digitalWrite (leD3, HIGH);        //led 1 aan
                            delay (1000);                     // laatste actie aanhouden
                            digitalWrite (leD3 , LOW);         //led 1 uit en naar de volgende
                            delay (100);
       }
       if (tweet == 'b' ){
         Serial.print("b verwerkt! op plaats: ");
         Serial.println(i); // index b printen
       }
     }
     
   }
 Serial.println("delay...");
 delay (60000);
 // don't make this less than 30000 (30 secs), because you can't connect to the twitter servers faster (you'll be banned)
 // off course it would be better to use the "Blink without delay", but I leave that to you.
}



dit is de code code die op me adruino staat

gr jeroen

nicoverduin

Volgens mij komt er bij jouw geen tweet binnen. Heb je wel een tweet verstuurd?
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

jeroenv27

Ja ik tweet naar de adruino toe led aan  van alls niks doet het snap er niks van op twitter zie ik ze wel

nicoverduin

#8
Jan 04, 2015, 11:46 am Last Edit: Jan 04, 2015, 11:47 am by nicoverduin
Dat zou blijken dat er dus niets binnenkomt? Ik zou eerst maar mezelf beperken tot ik in staat ben om een tweet binnen te halen. Pas dan komen de fancy dingen......
De twittername heb je ook ingevuld?
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

jeroenv27

ik hebben van alles geprobeerd krijg geen tweet naar me adruino ik heb de just naam in gevult hij ziet niks ik ben nu zo ver dat ik het niet meer weet heeft iemand een goede code of ander tip ?

jeroenv27

 ik kan wel twitter met me adruino

nicoverduin

ik kan wel twitter met me adruino
Dus je ziet de tweet nu wel binnenkomen? En zo ja wat zie je dan?
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

jeroenv27

ik zie geen tweet binnen komen kan het wel vertuuren via de adruino ontvangen wil dus niet

nicoverduin

Als ik zo ff google op arduino en twitter hebben ze het wel allemaal over een token. Heb/gebruik jij die?
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

Yamas

Misschien cru om te stellen, maar begin eens helemaal opnieuw.

Misschien helpt de volgende uitleg (23 steps).

http://www.instructables.com/id/Twitter-controlled-Arduino-Outputs-no-PCLCD-Disp/

Overigens ik zelf ben ook vaak opnieuw begonnen, vaak voortkomend uit het te veel in een keer willen programmeren c.q. veranderen.

Daarmee zeg ik niet dat dit bij jouw ook aan de hand kunnen zijn. Wat ik wel wil zeggen; pak een werkend sketch en breid het dan uit.

De tutorial zou een 2-way oplossing bieden. Ik heb het verder niet doorgenomen.

Yamas

Go Up