INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Twitter & WiFly anstatt Ethernet Shield
30.05.2014, 15:38
Beitrag #1
Twitter & WiFly anstatt Ethernet Shield
Hallo Leute,

Hier geht es um den Arduino mit einem Wlan Modul (WiFly RN-171) und Twitter zu vernetzen.

Ich habe das WiFly Modul schon über meinen Router und mein Smartphone gesteuert,
also das funktioniert einwandfrei….

Aber als ich versucht habe die Twitter Library die ich vor einiger Zeit mit dem Ethernet Shield verwendet habe an das Wlan Modul anzupassen bekomme ich immer einen Fehler den ich nicht verstehe und ihn einfach nicht wegbekomme.

Ich habe dann verschiedene andere Sketche getestet die schon an das Wlan Modul angepasst wurden ( aus dem Internet "google suche nach: wifly arduino Zwitter").

Aber auch da: immer der gleiche Fehler…:/

aktuell versuchte ich den code : NickysLights (nicht von mir) zu kompilieren mit folgendem Resultat:

Code:
#define yellow 3
#define blue 4
#define white 5
#include "WiFly.h"
String twitterUsername = "NickysLights"; //set the twitter user you'd like to get here.



char ssid[] = "...";  //enter your ssid here.
char passphrase[] = "..."; //enter your passphrase here.

const unsigned long requestInterval = 1000;  // delay between requests
boolean requested;                   // whether you've made a request since connecting
unsigned long lastAttemptTime = 0;            // last time you connected to the server, in milliseconds

String currentLine = "";            // string to hold the text from server
String tweet = "";                  // string to hold the tweet
boolean readingTweet = false;       // if you're currently reading the tweet


Client client("api.twitter.com", 80);

void setup() {
  currentLine.reserve(256);
  tweet.reserve(150);


  Serial.begin(9600);

  WiFly.begin();

   //Define LED pin Modes
  pinMode(yellow, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(white, OUTPUT);

  //set initial values for leds as low

  digitalWrite(yellow, LOW);
  digitalWrite(blue, LOW);
  digitalWrite(white, LOW);

  if (!WiFly.join(ssid,passphrase)) {
    Serial.println("Association failed.");
    while (1) {
      // Hang on failure.
    }
  }  

  Serial.println("connecting...");

}

void loop() {
  if(client.connected()){
    if (client.available()) {
      char inChar = client.read();

      // add incoming byte to end of line:
      currentLine += inChar;

      // if you get a newline, clear the line:
      if (inChar == '\n') {
        currentLine = "";
      }

      if ( currentLine.endsWith("<text>")) {
        // tweet is beginning. Clear the tweet string:
        readingTweet = true;
        tweet = "";
      }
      // if you're currently reading the bytes of a tweet,
      // add them to the tweet String:
      if (readingTweet) {
        if (inChar != '<') {
          tweet += inChar;
        }
        else {
          // if you got a "<" character,
          // you've reached the end of the tweet:
          readingTweet = false;
          Serial.println(tweet);  

          char tweet = Serial.read();
checkAction();
          // close the connection to the server:
          client.stop();
        }

      }
    }
  }
  else if (millis() - lastAttemptTime > requestInterval) {
    // if you're not connected, and two minutes have passed since
    // your last connection, then attempt to connect again:
  connectToServer();
  }
}

void connectToServer() {
  // attempt to connect, and wait a millisecond:
  Serial.println("connecting to server...");
  if (client.connect()) {
    Serial.println("making HTTP request...");
    // make HTTP GET request to twitter:

  client.println("GET /1/statuses/user_timeline.xml?screen_name="+twitterUsername + "&count=1 HTTP/1.1");

client.println("HOST: api.twitter.com");
    client.println();
  }
  // note the time of this connect attempt:
  lastAttemptTime = millis();
}  
void checkAction() {
  if (tweet == ">yellow on")
  {
    digitalWrite(yellow, HIGH);
    digitalWrite(blue, LOW);
    digitalWrite(white, LOW);

  }
else if (tweet == ">blue on")
  {
    digitalWrite(blue, HIGH);
    digitalWrite(yellow, LOW);
    digitalWrite(white, LOW);
  }
  else if (tweet == ">white on")
  {
    digitalWrite(white, HIGH);
    digitalWrite(blue, LOW);
    digitalWrite(yellow, LOW);
  }
  else if (tweet == ">all off")
  {
    digitalWrite(yellow, LOW);
    digitalWrite(blue, LOW);
    digitalWrite(white, LOW);
  }

  else if (tweet == ">all on")
  {
    digitalWrite(yellow, HIGH);
    digitalWrite(blue, HIGH);
    digitalWrite(white, HIGH);
  }

Fehlermeldungen:
Arduino: 1.5.6-r2 (Mac OS X), Board: "Arduino Uno"

sketch_may30a:21: error: 'Client' does not name a type
sketch_may30a.ino: In function 'void setup()':
sketch_may30a:30: error: expected unqualified-id before '.' token
sketch_may30a:43: error: expected primary-expression before '.' token
sketch_may30a.ino: In function 'void loop()':
sketch_may30a:55: error: 'client' was not declared in this scope
sketch_may30a.ino: In function 'void connectToServer()':
sketch_may30a:103: error: 'client' was not declared in this scope

Habt ihr eine Idee?

Gruß Marc

Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2014, 16:24
Beitrag #2
RE: Twitter & WiFly anstatt Ethernet Shield
Hallo Marc,

die Meldungen sind ziemlich eindeutig. Die WiFly - Lib ist nicht richtig installiert.
Mach in der Arduino IDE im Verzeichnis "Libraries" ein Unterverzeichnis "WiFly" auf.
Dort packe den Inhalt der WiFLy - Lib rein.
Wenn du den Inhalt der WWiFly - Lib irgendwo anders hingepackt hast, diesen dann noch löschen!
Compilieren, freuen Big Grin

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2014, 16:36
Beitrag #3
RE: Twitter & WiFly anstatt Ethernet Shield
Danke für die schnelle Antwort Wink

Das Forum ist echt SUPER!!

Kann das sein das sich zwei libs gegenseitig stören ??

Siehe Bilder.


Angehängte Datei(en) Thumbnail(s)
       

Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2014, 16:58
Beitrag #4
RE: Twitter & WiFly anstatt Ethernet Shield
Hallo Marc,
Zitat:Kann das sein das sich zwei libs gegenseitig stören ??
Da in der WiFlyHQ - Lib der Klassenkonstruktor genauso heißt wie in der WiFly - Lib, gibts gehörig Ärger wenn man die zusammenschmeißt! Wenn ich das richtig sehe heißt die Klasse in beiden Libs "WiFly" - daher WiFly.begin() - !

Soweit ich das gesehen habe fehlte in deinem Code noch die SPI.h und am Ende eine "}" . Dann liefs bei mir ohne Probs.

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2014, 17:16
Beitrag #5
RE: Twitter & WiFly anstatt Ethernet Shield
Ok das mit den beiden Librarys hab ich jetzt verstanden danke Wink

Aber warum die SPI.h ? ich benötige doch keine?
Das SPI.h benötigt man für das ETH Shield aber für das WiFly nicht?!
Das WiFly ist bei mir ganz einfach über 2 Digitalpins verbunden die ich als
wifi.serial deklariert habe damit ich die Standard serielle Schnittstelle noch für Infos frei habe…das klappt auch super soweit habe da schon ein paar Projekte damit fertig gestellt.

Oder verstehe ich da was falsch ? Smile

PS. Ich bin noch nicht sooooo fit was Arduino Programmierung angeht sorry falls ich unnötige Fragen stelle Big Grin

Gruß Marc

Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2014, 17:21
Beitrag #6
RE: Twitter & WiFly anstatt Ethernet Shield
Zitat:Oder verstehe ich da was falsch ?
Nö, diesmal war ich zu blöd, hatte meinen Rat selbst nicht befolgt. Es fehlte eine .cpp Datei Huh
Naja, war ein strammer Tag heute...

RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2014, 19:53
Beitrag #7
RE: Twitter & WiFly anstatt Ethernet Shield
Kein Problem Wink

Ich habe aber in der WiFly Library als auch in der WiFlyHQ Library jeweils eine
.cpp Datei.

?!

Ich habe jetzt mal folgendes versucht:

1.) Den Sketch mit der spi.h und nur der WiFly Library zu kompilieren,
die andere Library (WiFlyHQ) habe ich vom Mac Book entfernt.
Ergebnis: der selbe Fehler (siehe unten *).

2.) Den Sketch mit der spi.h und nur der WiFlyHQ Library zu kompilieren,
die andere Library (WiFly) habe ich vom Mac Book entfernt.
Ergebnis: der selbe Fehler (siehe unten *).

Fehler *

sketch_may30a:21: error: 'Client' does not name a type
sketch_may30a.ino: In function 'void setup()':
sketch_may30a:30: error: expected unqualified-id before '.' token
sketch_may30a:43: error: expected primary-expression before '.' token
sketch_may30a.ino: In function 'void loop()':
sketch_may30a:55: error: 'client' was not declared in this scope
sketch_may30a.ino: In function 'void connectToServer()':
sketch_may30a:103: error: 'client' was not declared in this scope


Was soll ich anders machen?

Grüße Marc

Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2014, 21:06 (Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2014 21:06 von rkuehle.)
Beitrag #8
RE: Twitter & WiFly anstatt Ethernet Shield
Hallo Marc,

nimm den Code (meine Änderungen findest du mit // ***) :
Code:
#define yellow 3
#define blue 4
#define white 5
#include "WiFly.h"
// ***
#include "SPI.h"
String twitterUsername = "NickysLights"; //set the twitter user you'd like to get here.

char ssid[] = "...";  //enter your ssid here.
char passphrase[] = "..."; //enter your passphrase here.

const unsigned long requestInterval = 1000;  // delay between requests
boolean requested;                   // whether you've made a request since connecting
unsigned long lastAttemptTime = 0;            // last time you connected to the server, in milliseconds

String currentLine = "";            // string to hold the text from server
String tweet = "";                  // string to hold the tweet
boolean readingTweet = false;       // if you're currently reading the tweet

// ***
WiFlyClient client("api.twitter.com", 80);

void setup() {
  currentLine.reserve(256);
  tweet.reserve(150);


  Serial.begin(9600);

  WiFly.begin();

  //Define LED pin Modes
  pinMode(yellow, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(white, OUTPUT);

  //set initial values for leds as low

  digitalWrite(yellow, LOW);
  digitalWrite(blue, LOW);
  digitalWrite(white, LOW);

  if (!WiFly.join(ssid, passphrase)) {
    Serial.println("Association failed.");
    while (1) {
      // Hang on failure.
    }
  }

  Serial.println("connecting...");

}

void loop() {
  if (client.connected()) {
    if (client.available()) {
      char inChar = client.read();

      // add incoming byte to end of line:
      currentLine += inChar;

      // if you get a newline, clear the line:
      if (inChar == '\n') {
        currentLine = "";
      }

      if ( currentLine.endsWith("<text>")) {
        // tweet is beginning. Clear the tweet string:
        readingTweet = true;
        tweet = "";
      }
      // if you're currently reading the bytes of a tweet,
      // add them to the tweet String:
      if (readingTweet) {
        if (inChar != '<') {
          tweet += inChar;
        }
        else {
          // if you got a "<" character,
          // you've reached the end of the tweet:
          readingTweet = false;
          Serial.println(tweet);

          char tweet = Serial.read();
          checkAction();
          // close the connection to the server:
          client.stop();
        }

      }
    }
  }
  else if (millis() - lastAttemptTime > requestInterval) {
    // if you're not connected, and two minutes have passed since
    // your last connection, then attempt to connect again:
    connectToServer();
  }
}

void connectToServer() {
  // attempt to connect, and wait a millisecond:
  Serial.println("connecting to server...");
  if (client.connect()) {
    Serial.println("making HTTP request...");
    // make HTTP GET request to twitter:

    client.println("GET /1/statuses/user_timeline.xml?screen_name=" + twitterUsername + "&count=1 HTTP/1.1");

    client.println("HOST: api.twitter.com");
    client.println();
  }
  // note the time of this connect attempt:
  lastAttemptTime = millis();
}
void checkAction() {
  if (tweet == ">yellow on")
  {
    digitalWrite(yellow, HIGH);
    digitalWrite(blue, LOW);
    digitalWrite(white, LOW);

  }
  else if (tweet == ">blue on")
  {
    digitalWrite(blue, HIGH);
    digitalWrite(yellow, LOW);
    digitalWrite(white, LOW);
  }
  else if (tweet == ">white on")
  {
    digitalWrite(white, HIGH);
    digitalWrite(blue, LOW);
    digitalWrite(yellow, LOW);
  }
  else if (tweet == ">all off")
  {
    digitalWrite(yellow, LOW);
    digitalWrite(blue, LOW);
    digitalWrite(white, LOW);
  }

  else if (tweet == ">all on")
  {
    digitalWrite(yellow, HIGH);
    digitalWrite(blue, HIGH);
    digitalWrite(white, HIGH);
  }
} // ***

und die Libraries im Attachment. Jede Library in ihr eigenes Unterverzeichnis
Das ganze läßt sich bei mir mit der IDE >= 1.5.5 / Linux ohne Probleme kompilieren.

Grüße RK

PS: Kann es sein dass das Forum offline war?

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  CP2102 und USB Host Shield ?? DL1AKP 0 50 01.12.2016 08:55
Letzter Beitrag: DL1AKP
  Arduino UNO und Ethernet Shield 2 POE und Fritzbox 3272 tr3 2 159 19.11.2016 10:46
Letzter Beitrag: tr3
  Kommunikation über das WiFi-Shield Flap 3 234 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Ethernet Modul Enc28j60 Pin13 LED Schalten BennIY 16 513 27.09.2016 20:30
Letzter Beitrag: BennIY
  Arduino Lan Shield - Visual Basic ZackiE 6 217 20.09.2016 19:26
Letzter Beitrag: ZackiE
  adafruit V2.3 Shield Hangloose 6 296 08.09.2016 17:13
Letzter Beitrag: rpt007
  Can-Bus Shield ok, aber keine Daten Clubsport 38 1.540 01.09.2016 14:17
Letzter Beitrag: Clubsport
  Arduino mega 2560 mit TFT LCD Touch Shield V1 Clemens55555 17 940 02.08.2016 20:51
Letzter Beitrag: Clemens55555
  SainSmart 3.2 TFT + 5" TFT/SD Shield + Due SAM3X8E ARM (Arduino Due) Techniker_UE 13 3.234 24.07.2016 14:34
Letzter Beitrag: Eichner
  PWM-Lüfter mit Adafruit Motor-Shield steuern? phischmi 9 465 22.07.2016 18:06
Letzter Beitrag: phischmi

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste