Ik weet niet hoe het tweet verhaal in elkaar zit maar wel hoe je moet programmeren.
Hieronder de stukjes code van jou waar ik 2 problemen zie:
...
String SearchString ="<title>";
...
void loop(){
if (client.connect(serverName, 80)) {
...
while (client.connected()) {
if (client.available()) {
Serial.println("looking for tweet...");
SearchString = SearchString + TwitterName + ": ";
...
break;
}
}
delay(1);
client.stop();
}
Serial.println("start de verwerking ...");
...
}
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.
}
SearchString is gedefineerd al een globale variabele met als waarde "".
Als je dan schrijft SearchString = SearchString + TwitterName + ": ";
krijg je de eeste keer SearchString = ""+ TwitterName + ": ";
de 2 de keer krijg je SearchString = ""+ TwitterName + ": "+ TwitterName + ": ";
de 3 de keer krijg je SearchString = ""+ TwitterName + ": "+ TwitterName + ": " + TwitterName + ": ";
en zo door.
Niet alleen is de string verkeerd maar je gaat ook je geheugen opgebruiken met als gevolg dat Arduino 'raar' gaat doen.
Verhuis StringSearchString = ""+ TwitterName + ": "; naar de setup functie en opgelost.
De Serial monitor opstarten reset de arduino. Daarom ook dat na het opstarten van de serial monitor je sketch weer voor 1 maal werkt.
Het nut van de break ontgaat me.
Waarom niet gewoon een functie schrijven voor de verwerking? Je vervangt de break dan door de functie aan te roepen.
Dan hoef je niet steeds weer de client te stoppen en starten en een connectie maken.
Met vriendelijke groet
Jan