Projeto Ticker de Ações Yahoo: Display de Mercado em Tempo Real com Arduino e Python
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| LCD Padrão Adafruit 16x2 Branco sobre Azul | 1 |
| Arduino Mega 2560 | 1 |
| Jumpers Macho/Fêmea | 12 |
| Jumpers Macho/Macho | 5 |
Ferramentas Necessárias
- Impressora 3D (genérica) – Para gabinete do LCD (opcional)
Sobre o Projeto
Exibe cotações de ações em tempo real em um display LCD 16x2 usando Arduino Mega e Python. Requer Python 2.7 (recomenda-se Enthought Canopy).
Configuração do Python
- Instale biblioteca Yahoo Finance:
pip install yahoo_finance - Instale PySerial:
pip install pyserial - Configure porta serial no script:
ser = serial.Serial('COM<porta>', 9600) - Edite lista
StockSharescom símbolos desejados
Configuração do Arduino
Carregue o sketch no Arduino IDE. Opcional: imprima gabinete 3D para o LCD (Thingiverse).
Código
Lado Python (Stock 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(0.1)
def mainProgram():
for i in StockShares:
name = i
s = Share(i)
printShare(s, name)
s.refresh()
time.sleep(9.5)
while True:
mainProgram()
Lado Arduino (Stock Ticker)
#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);
// Scroll horizontal
for (int i = 0; i < 17; i++) {
lcd.scrollDisplayLeft(); delay(200);
}
delay(500); lcd.clear(); lcd.setCursor(0, 0);
lcd.print("change: "); lcd.print(c - o);
delay(2000);
for (int i = 0; i < 17; i++) {
lcd.scrollDisplayLeft(); delay(200);
}
lcd.clear();
}
Peças Personalizadas e Gabinetes
Gabinete para LCD no Thingiverse: Thing 614241
Esquemáticos
Conexão padrão do LCD 16x2 ao Arduino Mega (pinos 12,11,5,4,3,2).
Processo de manufatura
- A Evolução, Materiais e Fabricação de Sanitários Modernos
- Revólver: Das Origens à Fabricação Moderna
- Construa um Spybot Controlado por Bluetooth com Arduino
- FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
- DIY Arduino TV B-Gone: Controle Remoto Universal para Todas as TVs
- Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
- Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
- Soluções de Energia Otimizadas para Projetos Arduino
- Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão
- Construa um Robô Quadrúpede Inteligente com Arduino: Guia Passo a Passo