【ESP32_Py_Board】LCD显示图片,文字,B站粉丝数( 二 )


字库文件
要想显示文字或者图片 , 我们需要将字体或图像信息存储到芯片中 , 开发板使用的是4MB的Flash , 我们可以把这些信息存储到Flash的空白区域 , 在驱动程序里面是从位置处读取字体信息 , 所以我们需要将字体文件烧录到位置处 , 字体文件使用的是32*16分辨率 , 可从下列地址下载:
下载完成后将该文件烧录到ESP32的地址处即可 。
当然 , 如果您觉得上述字体不太好看或者大小不符合要求 , 也可以尝试自己生成字库文件 。
图像显示
显示屏使用的颜色数据格式是 , 我们只要将图像裁剪到合适的分辨率 , 使用转换软件将图形转换成格式的二进制数据 , 再将其烧录到Flash中 , 就能将图像显示出来了 。
图片转格式的Bin文件建议采用 , 软件下载地址为:
%202.9%28%E7%A0%B4%E8%A7%A3%E7%89%88%29.rar
配置参数如下:
选取一张照片 , 采用PS或者画图工具将其裁剪成240*240分辨率 , 然后使用打开该图片 , 配置参数如上图 , 设置完成后点击保存按钮 , 保存成Bin文件 。
然后将字库文件及转换后的图像文件烧录到Flash的空白位置 , 如下图所示:
然后调用上述代码 , 就可以在屏幕上显示图片和文字了:
显示B站粉丝数
我们可以通过下列链接获取B站某个UP主的粉丝数:
后面的参数vmid是用户的ID , 比如稚晖君的ID是

【ESP32_Py_Board】LCD显示图片,文字,B站粉丝数

文章插图
获得的数据如下图所示:
{"code":0,"message":"0","ttl":1,"data":{"mid":20259914,"following":191,"whisper":0,"black":0,"follower":1515615}}
其中data.中就是稚晖君的粉丝数 , 当前粉丝约150W 。
我们可以使用代码 , 实现上述获取粉丝数的过程 , 具体代码如下:
文件名:.py
import networkimport json# 导入json功能模块import urequests #导入urequests功能模块class BiliFlow(object):def __init__(self):wifi = network.WLAN(network.STA_IF) # 将模块设为STA模式wifi.active(True) # 开启WIFIif not wifi.isconnected(): # 如果wifi模块未连接到热点print('WiFi 连接中...')wifi.connect('your_wifi' , 'your_psd') #连接自己的手机热点while not wifi.isconnected():#等待wifi连接passprint('WiFi 连接成功' ,wifi.ifconfig()) #连接成功def get_follower(self):r = urequests.get('http://api.bilibili.com/x/relation/stat?vmid=20259914')p = json.loads(r.text)return p['data']['follower']
上述代码中的WiFi名称密码及B站ID需要自己更改!!!
然后我们再设计一张背景图片:
把图像转换成格式的Bin文件后 , 烧录到Flash的的位置 。
主函数代码:boot.py
import timefrom ST7789V import LCD_240_240from biliflow import BiliFlowlcd = LCD_240_240()bf = BiliFlow()lcd.Disp_Pic(0x320000) #显示背景图while True:flow = bf.get_follower() # 获取粉丝数lcd.Disp_Str(60,143,str(flow).encode('utf-8')) #显示粉丝数time.sleep(5)
确保设备中包含如下三个文件:
【【ESP32_Py_Board】LCD显示图片,文字,B站粉丝数】最终完成的效果如下图: