亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

雅虎股票实时行情显示器:Arduino Mega 2560 + Python + LCD1602

项目概述

构建一个桌面级实时股票行情显示器,通过Python脚本爬取雅虎财经API获取多只股票数据,经串口发送给Arduino Mega 2560驱动LCD1602显示。支持自定义股票池、滚动显示开盘价/现价/涨跌幅,适合量化交易爱好者、金融从业者桌面监控。

硬件清单

软件环境准备

  1. Python 2.7(推荐Enthought Canopy发行版,含科学计算库)
  2. 依赖库安装:
    
    pip install yahoo_finance  # 雅虎财经API封装库
    pip install pyserial       # 串口通信库
    
  3. Arduino IDE 1.8+

Python端核心逻辑


from yahoo_finance import Share
import time, serial

# 自定义股票池(可扩展至50+只)
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)  # 修改为实际Arduino端口

def printShare(share, name):
    # 格式:名称*开盘价,现价
    msg = name + ': *' + share.get_open() + ',' + share.get_price()
    ser.write(msg.encode())
    print(msg)
    time.sleep(0.1)

def mainProgram():
    for symbol in StockShares:
        s = Share(symbol)
        printShare(s, symbol)
        s.refresh()  # 刷新获取最新数据
        time.sleep(9.5)  # 避免API频率限制

if __name__ == '__main__':
    while True:
        mainProgram()

Arduino端核心逻辑


#include 

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

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

void loop() {
  if (Serial.available() > 0) {
    // 解析格式:名称*开盘价,现价
    stockName = Serial.readStringUntil('*');
    openPrice = Serial.parseFloat();
    currentPrice = Serial.parseFloat();
  }
  
  // 第1行:股票名 + 开盘价
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(stockName + " open:" + String(openPrice, 2));
  
  // 第2行:现价
  lcd.setCursor(0,1);
  lcd.print("current:" + String(currentPrice, 2));
  delay(2000);
  
  // 左滚动显示长文本
  for(int i=0; i<17; i++) {
    lcd.scrollDisplayLeft();
    delay(200);
  }
  delay(500);
  
  // 显示涨跌幅
  lcd.clear();
  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();
}

接线原理图

LCD并口标准连接:

进阶功能拓展建议

组件数量说明
Arduino Mega 25601多串口优势,兼容Uno代码
Adafruit 16x2 LCD (白字蓝背光)1HD44780兼容,I2C/并口均可
公母/公公杜邦线17LCD并口接线需6数据+2控制+电源
3D打印LCD外壳(可选)1Thingiverse: 614241

常见问题排查

开源资源

制造工艺

  1. 现代坐便器的演变、材料与制造
  2. 左轮手枪:从起源到现代制造
  3. DIY 蓝牙控制 Arduino 间谍小车
  4. FlickMote:基于手势的智能家居红外遥控器
  5. DIY Arduino TV-B-Gone:万能关机遥控器
  6. 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
  7. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  8. Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
  9. Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
  10. 从零构建智能 Arduino 四足机器人:完整指南
  11. DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
  12. 利用 Arduino Nano R3 自制全功能 CNC 雕刻机

功能实现方案难度
多股票轮询切换Python端已实现,Arduino增加按键手动翻页★☆☆
涨跌颜色指示升级RGB LCD或加双色LED:红涨绿跌(中式)/绿涨红跌(美式)★★☆
K线图显示升级128x64 OLED/1.8" TFT,Python端计算历史数据★★★
WiFi联网直连ESP8266/ESP32替代Arduino+Python,直接HTTP请求API★★☆
多市场支持集成Alpha Vantage/Twelve Data/新浪财经等API★★☆
告警推送价格突破阈值 → 蜂鸣器/手机推送/邮件通知★★☆