Category: Assignment-12B-Autotweeting

Button That Tweets

Screen Shot 2014-11-16 at 2.23.12 PM

IMG_20141116_142030

 

Homework12B

 

Arduino Code

const int buttonPin = 7;    
 
// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status
 
void setup() {
  Serial.begin(9600);  // initialize serial communications   
 
}
 
void loop(){
  buttonState = digitalRead (buttonPin);
  Serial.print (buttonState);  
 
  delay (10);   // wait some number of milliseconds
 
}

Processing Code

import com.temboo.core.*;
import com.temboo.Library.Twitter.Tweets.*;
import processing.serial.*;
 
Serial myPort;  // Create object from Serial class
 
// Create a session using your Temboo account application details
TembooSession session = new TembooSession("boril", "myFirstApp", "mljV10Z8EpQhRIpLb9Zfg46EIw5wbfDT");

void setup() {
  String portName = Serial.list()[2];
  myPort = new Serial(this, portName, 9600);
  
  runStatusesUpdateChoreo();
}
 
void runStatusesUpdateChoreo() {
  // Create the Choreo object using your Temboo session
  StatusesUpdate statusesUpdateChoreo = new StatusesUpdate(session);
 
  // Set credential to use for execution
  statusesUpdateChoreo.setCredential("Homework12");

 
  // Set inputs
  statusesUpdateChoreo.setAccessToken("2878889817-A1lJYK6T8V0i50Vp6KVDdl9JnduZMEHOp3ELC6S");
  statusesUpdateChoreo.setAccessTokenSecret("ZsxrnXixOUcmAHKH3SZKg7zrdncsoonYoXnnLty1yIHNM");
  statusesUpdateChoreo.setStatusUpdate("TESTING!!!!");
 
  // Execute Choreo
  StatusesUpdateResultSet statusesUpdateResults = statusesUpdateChoreo.run();

}

A Button that Tweets

Full disclosure: I went for the minimal project so that I can dedicate more time to the final.

Screen Shot 2014-11-12 at 7.08.35 PMThis is my initial Temboo test, before the button was connected.

Screen Shot 2014-11-12 at 9.02.56 PMThis test has the button connection. Now we have a tweeting button!

circuittweetButton_bb

//Miranda Jacoby
//Electronic Media Studio Interactivity Section A
//majacoby@andrew@.cmu.edu
//Copyright Miranda Jacoby 2014
//Code created with help of Golan Levin
//With elements of the pushbutton example code 
   //created 2005
   //by DojoDave <http://www.0j0.org>
   //modified 30 Aug 2011
   //by Tom Igoe
   //http://www.arduino.cc/en/Tutorial/Button


// constants won't change. They're used here to 
// set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  Serial.begin(9600);  // initialize serial communications   
  
}

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead (buttonPin);

  // print if the pushbutton is pressed.
  // Serial.println (buttonState); writes the string "1" or "0"
  Serial.print (buttonState);  
  
  delay (10);   // wait some number of milliseconds

}
//Miranda Jacoby
//Electronic Media Studio Interactivity Section A
//majacoby@andrew@.cmu.edu
//Copyright Miranda Jacoby 2014
//Code created with help of Golan Levin and Temboo. 

import com.temboo.core.*;
import com.temboo.Library.Twitter.Tweets.*;
import processing.serial.*;

Serial myPort;  // Create object from Serial class
int currVal;      // Data received from the serial port
int prevVal;
int tweetTime;
int currentTime;

// Create a session using your Temboo account application details
TembooSession session = new TembooSession("pigeon", "pigeontwitter", "2289511ed75e4578a3b71a4b693fdb03");

void setup() {
  
  size(200, 200);
  String portName = Serial.list()[5];
  myPort = new Serial(this, portName, 9600);
  
   currentTime = millis();
}

void draw() {
  
  prevVal = currVal;  // swap
  if ( myPort.available() > 0) {  // If data is available,
    currVal = myPort.read();         // read it and store it in val
    myPort.clear();
  }
  background(255);             // Set background to white
  if (currVal == 48) {              // If the serial value is "0",
    fill(0);                   // set fill to black
  } else if (currVal == 49) {         // If the serial value is not 0,
    fill(240);                 // set fill to whiteish
  } else {
    fill(255, 0, 0);
  }
  rect(50, 50, 100, 100);

  if (currVal != prevVal) {
    if (currVal == 48) {
      sendTweet();
    } else if (currVal == 49) {
      // println ("Released!");
    }
  }
}

void sendTweet(){
  tweetTime = millis() - currentTime;
  println ("I was pressed at " + tweetTime);  
  if (tweetTime > 1000){
    println("Sucessful tweet");
    //send tweet by running the StatusesUpdate Choreo function
     runStatusesUpdateChoreo();
  } 
  else  {
    println("To soon to tweet!");
  }
  currentTime = millis();
}

void runStatusesUpdateChoreo() {
  // Create the Choreo object using your Temboo session
  StatusesUpdate statusesUpdateChoreo = new StatusesUpdate(session);

  // Set credential
  statusesUpdateChoreo.setCredential("TweetButton");

  // Set inputs
  statusesUpdateChoreo.setAccessToken("2769267476-rHudd8EwU7uLhkcruAwHxJtzA5AB7EH9lwPFD7s");
  statusesUpdateChoreo.setAccessTokenSecret("aIxNctSi3RXShSRn0iWfaDkE8NSN9OglhY4GgOU1gWRZy");
  statusesUpdateChoreo.setStatusUpdate("Testing, for the second time: A button that tweets when you press it.");

  // Run the Choreo and store the results
  StatusesUpdateResultSet statusesUpdateResults = statusesUpdateChoreo.run();
  
  // Print results
  println(statusesUpdateResults.getResponse());

}