From ae0c8770ac359d4c2ea96103a515bbea3a2698ac Mon Sep 17 00:00:00 2001 From: Tom Igoe Date: Fri, 17 Sep 2010 13:22:32 +0000 Subject: [PATCH] removing TwitterClient since it does not include OAuth, which is now needed for Twitter logins. Adding TelnetClient examexample. --- .../examples/PachubeClient/PachubeClient.pde | 4 +- .../PachubeClientString.pde | 6 +- .../examples/TelnetClient/TelnetClient.pde | 89 ++++++++++++ .../examples/TwitterClient/TwitterClient.pde | 136 ------------------ .../Ethernet/examples/WebServer/WebServer.pde | 8 +- 5 files changed, 99 insertions(+), 144 deletions(-) create mode 100644 libraries/Ethernet/examples/TelnetClient/TelnetClient.pde delete mode 100644 libraries/Ethernet/examples/TwitterClient/TwitterClient.pde diff --git a/libraries/Ethernet/examples/PachubeClient/PachubeClient.pde b/libraries/Ethernet/examples/PachubeClient/PachubeClient.pde index 58f716c8b..fe94541e1 100644 --- a/libraries/Ethernet/examples/PachubeClient/PachubeClient.pde +++ b/libraries/Ethernet/examples/PachubeClient/PachubeClient.pde @@ -11,7 +11,7 @@ * Ethernet shield attached to pins 10, 11, 12, 13 created 15 March 2010 - updated 25 July 2010 + updated 4 Sep 2010 by Tom Igoe http://www.tigoe.net/pcomp/code/category/arduinowiring/873 @@ -55,7 +55,7 @@ void setup() { void loop() { // read the analog sensor: - int sensorReading = analogRead(0); + int sensorReading = analogRead(A0); // if there's incoming data from the net connection. // send it out the serial port. This is for debugging diff --git a/libraries/Ethernet/examples/PachubeClientString/PachubeClientString.pde b/libraries/Ethernet/examples/PachubeClientString/PachubeClientString.pde index 757c35c9b..225823ac1 100644 --- a/libraries/Ethernet/examples/PachubeClientString/PachubeClientString.pde +++ b/libraries/Ethernet/examples/PachubeClientString/PachubeClientString.pde @@ -14,7 +14,7 @@ * Ethernet shield attached to pins 10, 11, 12, 13 created 15 March 2010 - updated 25 July 2010 + updated 4 Sep 2010 by Tom Igoe This code is in the public domain. @@ -57,13 +57,13 @@ void setup() { void loop() { // read the analog sensor: - int sensorReading = analogRead(0); + int sensorReading = analogRead(A0); // convert the data to a String to send it: String dataString = String(sensorReading); // you can append multiple readings to this String if your // pachube feed is set up to handle multiple values: - int otherSensorReading = analogRead(1); + int otherSensorReading = analogRead(A1); dataString += ","; dataString += String(otherSensorReading); diff --git a/libraries/Ethernet/examples/TelnetClient/TelnetClient.pde b/libraries/Ethernet/examples/TelnetClient/TelnetClient.pde new file mode 100644 index 000000000..aca1fa9ad --- /dev/null +++ b/libraries/Ethernet/examples/TelnetClient/TelnetClient.pde @@ -0,0 +1,89 @@ +/* + Telnet client + + This sketch connects to a a telnet server (http://www.google.com) + using an Arduino Wiznet Ethernet shield. You'll need a telnet server + to test this with. + Processing's ChatServer example (part of the network library) works well, + running on port 10002. It can be found as part of the examples + in the Processing application, available at + http://processing.org/ + + Circuit: + * Ethernet shield attached to pins 10, 11, 12, 13 + + created 14 Sep 2010 + by Tom Igoe + + */ + +#include +#include + +// Enter a MAC address and IP address for your controller below. +// The IP address will be dependent on your local network: +byte mac[] = { + 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; +byte ip[] = { + 192,168,1,177 }; + +// Enter the IP address of the server you're connecting to: +byte server[] = { + 1,1,1,1 }; + +// Initialize the Ethernet client library +// with the IP address and port of the server +// that you want to connect to (port 23 is default for telnet; +// if you're using Processing's ChatServer, use port 10002): +Client client(server, 10002); + +void setup() { + // start the Ethernet connection: + Ethernet.begin(mac, ip); + // start the serial library: + Serial.begin(9600); + // give the Ethernet shield a second to initialize: + delay(1000); + Serial.println("connecting..."); + + // if you get a connection, report back via serial: + if (client.connect()) { + Serial.println("connected"); + } + else { + // if you didn't get a connection to the server: + Serial.println("connection failed"); + } +} + +void loop() +{ + // if there are incoming bytes available + // from the server, read them and print them: + if (client.available()) { + char c = client.read(); + Serial.print(c); + } + + // as long as there are bytes in the serial queue, + // read them and send them out the socket if it's open: + while (Serial.available() > 0) { + char inChar = Serial.read(); + if (client.connected()) { + client.print(inChar); + } + } + + // if the server's disconnected, stop the client: + if (!client.connected()) { + Serial.println(); + Serial.println("disconnecting."); + client.stop(); + // do nothing: + while(true); + } +} + + + + diff --git a/libraries/Ethernet/examples/TwitterClient/TwitterClient.pde b/libraries/Ethernet/examples/TwitterClient/TwitterClient.pde deleted file mode 100644 index 01caef871..000000000 --- a/libraries/Ethernet/examples/TwitterClient/TwitterClient.pde +++ /dev/null @@ -1,136 +0,0 @@ -/* - Twitter client - - This sketch connects to Twitter (http://www.twitter.com) - using a Wiznet Ethernet shield. You can use the Arduino Ethernet shield, or - the Adafruit Ethernet shield, either one will work, as long as it's got - a Wiznet Ethernet module on board. - - Circuit: - * Switch connected to digital pin 2 - * Ethernet shield attached to pins 10, 11, 12, 13 - - created 15 March 2010 - modified 23 July 2010 - by Tom Igoe - - http://www.tigoe.net/pcomp/code/category/arduinowiring/873 - This code is in the public domain. - - */ - -#include -#include - -// pin that the pushButton is connected to: -const int buttonPin = 2; - -// assign a MAC address for the ethernet controller. -// fill in your address here: -byte mac[] = { - 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; -// assign an IP address for the controller: -byte ip[] = { - 192,169,1,20 }; -byte gateway[] = { - 192,168,1,1}; -byte subnet[] = { - 255, 255, 255, 0 }; - -// The server you want to connect to (twitter.com) -byte server[] = { - 168,143,162,68}; - -// initialize the library instance: -Client client(server, 80); - -int lastButtonState = LOW; // last state of the pushbutton -boolean connectedLastTime = false; // state of the connection last time through the main loop - -void setup() { - // make the pushbutton's pin an input: - pinMode(buttonPin, INPUT); - // start the ethernet connection and serial port: - Ethernet.begin(mac, ip); - Serial.begin(9600); - // give the ethernet module time to boot up: - delay(1000); -} - -void loop() { - // if there's incoming data from the net connection. - // send it out the serial port. This is for debugging - // purposes only: - if (client.available()) { - char c = client.read(); - Serial.print(c); - } - - // if there's no net connection, but there was one last time - // through the loop, then stop the client: - if (!client.connected() && connectedLastTime) { - Serial.println("disconnecting."); - client.stop(); - } - // read the pushbutton input pin: - int buttonState = digitalRead(buttonPin); - // make a connection only when the button goes from LOW to HIGH: - if ((buttonState != lastButtonState) && (buttonState == HIGH)) { - // if you're not connected, then connect: - if(!client.connected()) { - sendData(); - } - // save the current button state as the last state, - //for next time through the loop - - } - lastButtonState = buttonState; - // store the state of the connection for next time through - // the loop: - connectedLastTime = client.connected(); -} - - -// this method makes a HTTP connection to the server: -void sendData() { - // if there's a successful connection: - if (client.connect()) { - Serial.println("connecting..."); - // send the HTTP POST request: - client.print("POST http://twitter.com/statuses/update.json HTTP/1.1\n"); - client.print("Host: twitter.com\n"); - - // fill in your twitter login here. It needs to be - // formatted like this: username:password - // then it needs to be base64_encoded. - // you can do that online at many sites, including this one: - // http://www.tools4noobs.com/online_php_functions/base64_encode/ - // once encoded, it'll look like a random string of characters - client.print("Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXX\n"); - client.print("Content-type: application/x-www-form-urlencoded\n"); - // content length of the status message that follows below: - client.print("Content-Length: 26\n"); - client.println("Connection: Close\n"); - - // generate a random number to add to the status message - // to avoid duplicate status messages. This is a hack to get around - // Twitter's requirement of unique status messages: - int randomNumber = random(9); - // here's the status message: - client.print("status=Hello from Arduino"); - client.print(randomNumber); - } - else { - // if you couldn't make a connection: - Serial.println("connection failed"); - } -} - - - - - - - - - diff --git a/libraries/Ethernet/examples/WebServer/WebServer.pde b/libraries/Ethernet/examples/WebServer/WebServer.pde index 0a10aa9ca..77bcb204e 100644 --- a/libraries/Ethernet/examples/WebServer/WebServer.pde +++ b/libraries/Ethernet/examples/WebServer/WebServer.pde @@ -10,6 +10,8 @@ created 18 Dec 2009 by David A. Mellis + modified 4 Sep 2010 + by Tom Igoe */ @@ -53,11 +55,11 @@ void loop() client.println(); // output the value of each analog input pin - for (int i = 0; i < 6; i++) { + for (int analogChannel = 0; analogChannel < 6; analogChannel++) { client.print("analog input "); - client.print(i); + client.print(analogChannel); client.print(" is "); - client.print(analogRead(i)); + client.print(analogRead(analogChannel)); client.println("
"); } break;