Projet Ticker Boursier Yahoo! : Affichage temps réel des marchés avec Arduino et Python
Composants et fournitures
| Écran LCD standard Adafruit 16x2 blanc sur bleu | ×1 |
| Arduino Mega 2560 | ×1 |
| Fils de connexion Male/Female | ×12 |
| Fils de connexion Male/Male | ×5 |
Outils et machines nécessaires
- Imprimante 3D (générique) – Pour le boîtier LCD (optionnel)
À propos du projet
Pour ce projet, vous aurez besoin d'un IDE Python 2.7. Je recommande Enthought Canopy. Installez ensuite la bibliothèque Yahoo Finance API :
pip install yahoo_finance
Installez aussi PySerial pour la communication avec l'Arduino :
pip install pyserial
Copiez-collez le code dans l'éditeur. Dans la liste des actions, vous pouvez ajouter d'autres symboles. Assurez-vous que le port série correspond à votre carte Arduino, sinon la connexion échouera. Modifiez cette ligne :
ser = serial.Serial('COM', 9600)
Ouvrez l'IDE Arduino, copiez-collez le code Arduino, téléversez et c'est parti !
Pour aller plus loin, un boîtier imprimé en 3D pour le LCD est disponible.
Code
Côté Python pour le Ticker Boursier
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()
Côté Arduino pour le Ticker Boursier (C/C++)
#include <LiquidCrystal.h>
String str = "";
float o, 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();
}
Pièces personnalisées et boîtiers
Un boîtier LCD très sympa depuis Thingiverse (thing:614241)
Schématiques
Connecter tel quel. Schéma de câblage LCD standard disponible.
Processus de fabrication
- L'évolution, les matériaux et la fabrication des toilettes modernes
- Le revolver : des origines à la fabrication moderne
- Construire un Spybot Arduino piloté par Bluetooth
- FlickMote : Télécommande IR à gestes pour maison connectée
- TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
- Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Solutions d'alimentation optimisées pour projets Arduino
- Morpion sur matrice LED MAX7219 avec boîtier en carton