PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino und Twitter



Bongo_1st
31.10.2015, 01:58
Ich versuche seit geraumer Zeit mit dem Arduino einen Poste auf Twitter abzusetzen.
Doch leider komme ich nicht weiter. Über Google habe ich es ebenfalls versucht.
Leider verstehe ich nicht was gemeint ist...

Ich hoffe Ihr könnt mir weiterhelfen:

Verwendet wird ein Arduino UNO und das Ethernet Shield W5100
Tocken wurde über zwei Arten eingerichtet:
1. Eigene App
2. über https://arduino-tweet.appspot.com/

Verwendeter Code:


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

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 99 };

Twitter twitter("xxxxx-xxxxxxxxxxx");
char msg[] = "Hello, World! I'm Arduino!";

void setup()
{
Ethernet.begin(mac, ip);
Serial.begin(9600);

delay(1000);

Serial.println("connecting ...");
if (twitter.post(msg)) {
int status = twitter.wait(&Serial);
if (status == 200) {
Serial.println("OK.");
} else {
Serial.print("failed : code ");
Serial.println(status);
}
} else {
Serial.println("connection failed.");
}
}

void loop()
{
}


Ausgabe Serial Monitor:
connecting ...
failed : code 0

Wenn ich den Arduino an pinge erhalte ich eine Rückmeldung.

Was könnte das Problem sein?
Eine zu neue oder zu alte Bibliothek?

Bongo_1st
31.10.2015, 19:02
Irgend wie funktioniert gar nichts...
Das Versenden von Email geht ebenfalls nicht.

Ich habe den folgenden Code aus dem Buch verwendet:

// Daten an PHP-Skript senden, anschliessend Email aus Skript// Datei: buch3_kap10_mailsenden_php
// Datum: 12.02.10/TB


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


// Ethernet Konfiguration
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 199 };
byte gateway[] = { 192, 168, 1, 1 };
byte subnet[] = { 255, 255, 255, 0 };
// IP meines Servers
IPAddress server( 192, 168, 1, 100 );


EthernetClient client;


long updateTimer;
boolean clientConnected = false;


void setup()
{
Serial.begin(9600);
// E-Mailversand auslösen
SendenEmail();
// Status des E-Mail-Versands einlesen
checkEmailStatus();
}


void loop()
{
// Anweisungen
}


void SendenEmail()
{
if ((millis() - updateTimer) > 10000)
{
Ethernet.begin(mac, ip);
Serial.println("connecting...");
delay(1000);
if (client.connect(server, 80))
{
Serial.println("connected");
client.print("GET /mailsender.php");
client.println(" HTTP/1.0");
client.println("HOST:meinserver.com\n\n");
client.println();
client.println();
clientConnected = true;
}
else
{
Serial.println("connection failed");
}
updateTimer = millis();
}
}


void checkEmailStatus()
{
if (clientConnected)
{
if (client.available())
{
char c = client.read();
Serial.print(c);
}
if (!client.connected())
{
Serial.println();
Serial.println("disconnecting.");
client.stop();
clientConnected = false;
}
}
}

IP von gmail: 173, 194, 67, 26

Serial Monitor:
connecting...
connection failed

disconnecting.

Bongo_1st
01.11.2015, 13:05
Bin eventuell ein Stück weiter...

Wie bereits erwähnt, kann ich dem Arduino einen Ping senden.
Wenn der Arduino am PC ein Ping sendet funktioniert es ebenfalls.
Wenn aber der Arduino einen Ping an Google sendet, erhalte ich keine Antwort zurück.

Die Firewall im Router habe ich bereits deaktiviert.

Wo kann der Fehler liegen?