1.基于ESP32+MQTT+MicroPython+树莓派实现的证券信息展板。
2.数据来源:新浪财经公开爬虫接口。
3.服务器端(Linux|Raspbian):每8s从网上获取交易信息并处理这些数据,同时作为MQTT服务器和Publisher。
ESP32:MQTT的Subscriber,实时显示信息,并作出震动/发声反馈。
实时获取交易信息:当前股价、昨日收盘价、今日开盘价、总市值、成交量、换手率等。
对获取信息进行处理:计算收益率、当日总涨幅/跌幅。
异常数据警报:若(当前股价-股票买入价)/股票买入价 < a(预设-5%,可更改)时,ESP32在显示当前股票信息时,驱动内部电机震动做出提醒。
背景色设定规则:(当前股价-今日开盘价)>=0时,为深红色,否则为深绿色。
三、部署(2个设备,ESP32的开发板,电脑/树莓派当服务器)
1.基本软件下载(python3, mqtt软件, git等)
sudo apt update
sudo apt upgrade # 更新到最新系统
sudo apt install vim python3 python3-pip mosquitto mosquitto-clients
pip3 install paho-mqtt requests -i https://pypi.tuna.tsinghua.edu.cn/simple/
service mosquitto status # 查看mosquitto是否在运行
mosquitto_passwd -c /etc/mosquitto/passwd 用户名 # 创建用户档案,再输入两次密码
vim /etc/mosquitto/mosquitto.conf # 进入配置文档
# 添加以下两条内容
# 设定账号密码档案
password_file /etc/mosquitto/passwd
# 允许匿名登入
allow_anonymous true
service mosquitto restart # 重启mosquitto
python3 Server.py # 切换到Server.py所在目录
mosquitto_passwd -c /etc/mosquitto/passwd 用户名这条指令需要在root模式下执行。
Server.py中StockName和StockCodeIndexS两个列表可以自由添加股票名称和代码,上下必须一一对应。
ESP32中MQTT活跃时间设置为4096,不要设置得过大,否则会被拒绝连接。
没有用ESP32直接HTTP获取股票信息就是出于性能考虑,才加上MQTT服务器,后期要更加充分利用服务端的计算性能,专注于后端算法编写。
增加ESP图形支持,使ESP32可以绘制K线图。