Jouw code is echt veel beter, toch lukt het me nog niet volledig
Ik heb (denk ik) de tweet naar char's omgezet en dan in een while lus gezet.
Mijn probleem is dat hij volgens mij enkel de eerste letter verwerkt terwijl hij zou moeten in een grote loop gaat tot de karaters 'op' zijn.
Mijn test tweet is abaaabbb. Zodat ik alle 'eerste' letters kan verwerken en zo naar het het ASCCI-alfabet.
Waarschijnlijk is het de omzetting naar de chars waar het fout loopt.
#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
byte dns[] = {10,56,1,1}; //change this
EthernetClient client;
String TwitterName ="jariboe"; //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...");
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);
char tweet;
{ while (tweet > 0); // pas reageren als er iets is in de tweet zit
Serial.println("in de while lus");
if (tweet == 97 ) //is de ingegeven waarde a dan... Telt enkel voor chars
{digitalWrite (leD1, HIGH); //led 1 aan
delay (1000); // laatste actie aanhouden
digitalWrite (leD1, LOW); //led 1 uit en naar de volgende
delay (100);
Serial.println("in de if lus");}
else
{digitalWrite (leD2, HIGH); //led 2 aan
delay (1000); // laatste actie aanhouden
digitalWrite (leD2, LOW); //led 2 uit en naar de volgende
delay (100);
{Serial.println("in de else lus");}
}}
break;
}
}
delay(1);
client.stop();
}
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.
}
En dit komt dan uit mijn serial monior
connecting to server...
making HTTP request...
sended HTTP request...
looking for tweet...
abaaabbb
in de while lus
in de else lus
delay...
Alvast bedankt voor jullie tijd!