De break komt uit mijn code en de reden was dat in mijn origineel er nog heel wat andere dingen gebeuren via ethernet. Er werd ook een webpage getoond. Dus de ethernet server en cliënt wisselen elkaar af in mijn originele code. Ook deed ik zelf maar een check om de 10 minuten, dus sloot ik de cliënt telkens af.
over de SearchString.
Het zou eigenlijk nog simpeler zijn moest je die gewoon weglaten. Want mijn code was bedoeld om eenvoudig je twitternaam te kunnen aanpassen. Hier mag je dat allemaal weglaten en gewoon zoeken op het volgende:
if((finder.find("<item>")&&(finder.getString("<title>twittername: ","</title>",tweet,140)!=0)))
en je kan nog heel wat andere strings en chars weglaten.
dat wordt dan:
#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;
char tweet[140];
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( "api.twitter.com", 80)) { //twitter url
TextFinder finder( client,2 ); // 2 seconds to wait for output
Serial.println("making HTTP request...");
// make HTTP GET request to twitter:
client.print("GET /1/statuses/user_timeline.rss?screen_name=jariboe"); //twittername to look for
client.println("&count=1 HTTP/1.1");
client.println("HOST: api.twitter.com"); //twitter url
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...");
if((finder.find("<item>")&&(finder.getString("<title>jariboe: ","</title>",tweet,140)!=0))) //let's find the tweet itself between "<title>jariboe: " and "</title>" but only for 140 characters
Serial.println(tweet);
break;
}
}
delay(1);
client.stop();
}