Yahoo! Aandelen Ticker Project: Live Marktdisplay met Arduino en Python
Onderdelen en benodigdheden
| Adafruit Standaard LCD - 16x2 Wit op Blauw | 1 |
| Arduino Mega 2560 | 1 |
| Man/Vrouw Jumper-draden | 12 |
| Man/Man Jumper-draden | 5 |
Benodigde tools en machines
- 3D-printer (optioneel, voor LCD-behuizing)
Over dit project
Voor dit project heb je Python 2.7 IDE nodig. Aanbevolen: Enthought Canopy. Installeer de Yahoo Finance API bibliotheek:
pip install yahoo_finance
En PySerial voor Arduino-communicatie:
pip install pyserial
Kopieer de code naar de editor. In de lijst met aandelennamen kun je andere toevoegen. Zorg dat de seriële poort overeenkomt met je Arduino-board:
ser = serial.Serial('COM',9600)
Open Arduino IDE, plak de code, upload en geniet! Optioneel: 3D-print een behuizing voor het LCD.
Code
Python-kant voor Aandelen Ticker
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()
Arduino-kant voor Aandelen Ticker
#include <LiquidCrystal.h>
String str = "";
float o;
float c;
String s;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
delay(1000);
}
void loop() {
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();
}
Aangepaste onderdelen en behuizingen
Een mooie LCD-behuizing van Thingiverse: Thing 614241
Schema
Sluit aan zoals weergegeven in het schema.
Productieproces
- De Evolutie, Materialen en Fabricage van Moderne Toilets
- Revolver: Van Oorsprong tot Moderne Productie
- Bluetooth-gecontroleerde Arduino Spybot bouwen
- FlickMote: Gebarengecontroleerde IR-afstandsbediening voor Slimme Huizen
- DIY Arduino TV-B-Gone: Universele TV-uit-schakelaar
- Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
- Find Me: Slimme Item Locator met Arduino en Bluetooth
- Geoptimaliseerde Voedingsoplossingen voor Arduino Projecten
- Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
- Bouw een Slimme Arduino Vierpotige Robot: Stap-voor-Stap Handleiding
- Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming