Proyek Ticker Saham Yahoo!: Tampilan Pasar Langsung dengan Arduino dan Python
Komponen dan Perlengkapan
Adafruit Standard LCD - 16x2 Putih pada Biru — 1 unit
Arduino Mega 2560 — 1 unit
Kabel Jumper Male/Female — 12 unit
Kabel Jumper Male/Male — 5 unit
Alat dan Mesin yang Diperlukan
Printer 3D (generik) — 1 unit
Catatan: Untuk casing LCD (Opsional)
Tentang Proyek Ini
Untuk proyek ini Anda memerlukan IDE Python 2.7. Saya merekomendasikan menggunakan Enthought Canopy untuk proyek ini. Selanjutnya, Anda memerlukan perpustakaan Yahoo Finance API. Untuk melakukannya, ketik:
pip install yahoo_finance
di command prompt atau shell Anda. Selain itu, instal PySerial untuk komunikasi dengan Arduino Anda. Ketik:
pip install pyserial
di command prompt Anda. Kemudian salin dan tempelkan kode ke editor. Dalam daftar nama saham, Anda dapat menambahkan nama saham lain yang Anda inginkan. Pastikan port serial sama dengan papan Arduino Anda, jika tidak tidak akan terhubung. Anda dapat mengeditnya di baris yang mengatakan:
ser = serial.Serial('COM<port name>',9600)
Selanjutnya, buka IDE Arduino Anda untuk menyalin dan menempelkan kode ke editor. Dari sana cukup unggah dan nikmati!
Jika Anda ingin tampilan yang lebih mewah, saya telah menyediakan casing 3d-printed untuk LCD.
Kode
Sisi Python untuk Ticker Saham
Sisi Arduino untuk Ticker Saham
Sisi Python untuk Ticker SahamPython
Anda cukup menyalin dan menempelkannya ke dalam IDE Python.
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()
Sisi Arduino untuk Ticker SahamC/C++
Cukup unggah ke papan Arduino mana pun.
#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(); }
Bagian dan Enclosure Khusus
Casing LCD yang bagus dari https://www.thingiverse.com/thing:614241