Project tutorial
YAHOO! Stock Ticker

YAHOO! Stock Ticker © GPL3+

If you like current stock information, this is the project for you. By utilizing Yahoo APIs and Arduino, you can create a stock ticker.

  • 5,534 views
  • 6 comments
  • 19 respects

Components and supplies

Necessary tools and machines

3drag
3D Printer (generic)
For the LCD case (Optional)

About this project

For this project you will need a Python 2.7 IDE. I recommend using Enthought Canopy for this project. Next, you will need the Yahoo Finance API library. To do this, type:

pip install yahoo_finance

into your command prompt or shell. Additionally, install PySerial for communication with your Arduino. Type:

pip install pyserial

into your command prompt. Then copy and paste the code into the editor. In the Stock names list, you can add any other stock names you want. Make sure the serial port is the same as your Arduino board's, or else it won't connect. You can edit this in the line that says:

ser = serial.Serial('COM<port name>',9600)

Next, open up your Arduino IDE to copy-paste your code into the editor. From there just upload and enjoy! 

If you want to get fancy, I linked a 3d-printed case for the LCD.

Code

Python Side for Stock TickerPython
You can just copy-paste it into a Python IDE.
from yahoo_finance import Share
import time
import serial
StockShares = ['DOW','YHOO','BAC','F','JPM','TWTR','CHK','PBR','FIT','COG','ABX','FCX','GE','TRGP','CNX','BSX','MRC','NKE','NEM','PBRA','HST','BP','MRK','HON','MET','CLR','WPX' \
,'EXC','JCP','YELP','GNC','TSLA','VRX','P','NFLX','CMG','SM','WYNN','SHAK','ICON']

ser = serial.Serial('COM1',9600)
def printShare(share,name):
    ser.write(name + ': *' + share.get_open()+','+share.get_price())
    print name + ': *' + share.get_open()+','+share.get_price()
    time.sleep(.1)
def mainProgram():
    for i in StockShares:
        name = i
        s = Share(i)
        printShare(s,name)
        s.refresh()
        time.sleep(9.5)
    mainProgram()
mainProgram()
Arduino Side for Stock TickerC/C++
Just upload to any Arduino Board.
#include <LiquidCrystal.h>
String str = "";
float o;
float c;
String s;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
delay(1000);
}

void loop() {
  // put your main code here, to run repeatedly:
if (Serial.available()>0){
  s = Serial.readStringUntil('*');
  o = Serial.parseFloat();
  c = Serial.parseFloat();
 
}
lcd.print(s + "open:" + o);
lcd.setCursor(0,1);
lcd.print("current:");
lcd.print(c);
delay(2000);
for (int positionCounter = 0; positionCounter < 17; positionCounter++) {
lcd.scrollDisplayLeft();
delay(200);
}
delay(500);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("change: ");
lcd.print(c-o);
delay(2000);
for (int positionCounter = 0; positionCounter < 17; positionCounter++) {
lcd.scrollDisplayLeft();
delay(200);
}
lcd.clear();
}

Custom parts and enclosures

LCD Case
A really nice LCD housing from http://www.thingiverse.com/thing:614241

Schematics

Schematic
Connect as-is.
Lcdimg

Comments

Similar projects you might like

Display Current Weather with Arduino and Python!

Project tutorial by Arduino “having11” Guy

  • 8,399 views
  • 4 comments
  • 19 respects

Smart Safety Cabinet

Project tutorial by Team Biomaker Ghana_SmartSafetyCabinet

  • 446 views
  • 0 comments
  • 1 respect

Android App-Based Home Automation System Using IOT

Project tutorial by Team Autoshack

  • 43,118 views
  • 21 comments
  • 121 respects

Plant Monitoring System using AWS IoT

Project tutorial by CJA3D

  • 35,421 views
  • 6 comments
  • 85 respects

Temperature sensor

Project tutorial by Grant

  • 22,528 views
  • 6 comments
  • 37 respects

Candy Dispenser with Google Assistant

Project tutorial by Arduino “having11” Guy

  • 17,290 views
  • 1 comment
  • 60 respects
Add projectSign up / Login