Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Yahoo Finance Aktien-Ticker: Live-Marktdaten auf LCD mit Arduino & Python

Komponenten & Materialien

Adafruit Standard LCD 16×2 (Weiß auf Blau) ×1
Arduino Mega 2560 (UNO funktioniert auch) ×1
Jumper-Wires (m/w) ×12
Jumper-Wires (m/m) ×5

Werkzeuge (Optional)

Software-Voraussetzungen (PC-Seite)

Projektbeschreibung

Ein Python-Skript ruft cyclisch Aktienkurse über die Yahoo Finance API ab und sendet sie über die serielle Schnittstelle an den Arduino. Dieser zeigt auf dem 16×2 LCD: Aktienkürzel, Eröffnungs- & aktuellen Kurs, sowie die Änderung. Der Text scrollt für Lesbarkeit.

Python-Code (PC)


from yahoo_finance import Share
import time
import serial

# Liste der zu überwachenden Aktien
stock_shares = [
    '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'
]

# Serieller Port anpassen!
ser = serial.Serial('COM1', 9600)  # Windows: COMx, Linux/Mac: /dev/ttyUSBx

def print_share(share, name):
    open_price = share.get_open()
    current_price = share.get_price()
    msg = name + ': *' + open_price + ',' + current_price
    ser.write(msg.encode())
    print(msg)
    time.sleep(0.1)

def main():
    while True:
        for symbol in stock_shares:
            try:
                s = Share(symbol)
                print_share(s, symbol)
                s.refresh()
            except Exception as e:
                print(f"Fehler bei {symbol}: {e}")
        time.sleep(9.5)  # API-Rate-Limit beachten

if __name__ == '__main__':
    main()

Arduino-Code (LCD-Anzeige)


#include 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, EN, D4, D5, D6, D7
String symbol = "";
float openPrice = 0, currentPrice = 0;

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  delay(1000);
}

void loop() {
  if (Serial.available() > 0) {
    // Format: "SYMBOL*OPEN,PRICE"
    symbol = Serial.readStringUntil('*');
    openPrice = Serial.parseFloat();
    currentPrice = Serial.parseFloat();
  }

  // Zeile 1: Symbol + Open
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(symbol + " open:" + String(openPrice, 2));
  
  // Zeile 2: Current
  lcd.setCursor(0, 1);
  lcd.print("current:" + String(currentPrice, 2));
  delay(2000);

  // Scrollen
  for (int i = 0; i < 17; i++) {
    lcd.scrollDisplayLeft();
    delay(200);
  }
  delay(500);
  lcd.clear();

  // Änderung anzeigen
  lcd.setCursor(0, 0);
  lcd.print("change: " + String(currentPrice - openPrice, 2));
  delay(2000);
  for (int i = 0; i < 17; i++) {
    lcd.scrollDisplayLeft();
    delay(200);
  }
  lcd.clear();
}

Schaltung

Standard LCD-Anschluss (4-Bit-Modus):

Schaltplan im Artikel (Bild).

Wichtige Hinweise

Erweiterungsideen

Fazit

Ein klassisches "Physical Computing" Projekt, das Finanzdaten greifbar macht. Die Python-Seite ist flexibel für beliebige Datenquellen, die Arduino-Seite demonstriert serielle Kommunikation & LCD-Handling. Aufgrund der Yahoo-API-Änderungen ist die Python-Seite anzupassen – das Prinzip bleibt identisch.

Herstellungsprozess

  1. Die Evolution, Materialien und Fertigung moderner Toiletten
  2. Revolver: Von den Ursprüngen zur modernen Fertigung
  3. Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
  4. FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
  5. DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
  6. Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
  7. Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
  8. Optimierte Stromversorgungslösungen für Arduino-Projekte
  9. Arduino Tic Tac Toe mit MAX7219 LED-Matrix und Karton-Gehäuse
  10. Intelligenten Arduino-Vierbeiner-Roboter bauen: Schritt-für-Schritt-Anleitung