本站改版新增arduino频道
一、目的
这一节我们接着上一节来学习如何使用合宙的ESP32 S3开发板来学习在SSD1306液晶屏上显示中文汉字。只不过,这一节我们是使用网络API来获取到json格式的字符串,然后解析出来,在SSD1306屏幕上进行显示
二、环境
合宙ESP32 S3开发板 (MicroPython v1.18 on 2022-01-17)+ USB转type-C线 + SSD1306液晶屏I2C 4P接口 + Win10商业版
环境同上一节哈。。。
三、示例
api_learn.py
from machine import Pin,I2C
from ssd1306 import SSD1306_I2C
from ufont import BMFont
from fonts import urequests
import ujson
import time
import network
#液晶地址
addr = 0x3c
#创建I2C对象
i2c = I2C(0,scl = Pin(12),sda = Pin(11),freq = 400_000)
#创建液晶对象
oled = SSD1306_I2C(128,64,i2c,addr)
#挂载字库
font = BMFont("fonts/unifont-14-12888-16.v3.bmf")
#扫描I2C器件地址并反馈
print("%#x"%i2c.scan()[0]) # 3c
# 网络连接函数
def do_connect():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
font.text(oled,"connecting to network...",0,0,color=1,font_size=16,reverse=False,reverse=False,clear=True,show=True,auto_wrap=True)
wlan.connect('WIFI名字', 'WIFI密码')
while not wlan.isconnected():
pass
# 在oled上显示"network"
font.text(oled,"network",0,0,color=1,font_size=16,reverse=False,reverse=False,clear=True,show=True,auto_wrap=True)
# 在oled上显示IP地址
font.text(oled,"{}".format(wlan.ifconfig()[0]),0,16,color=1,font_size=16,reverse=False,reverse=False,clear=False,show=True,auto_wrap=True)
# 在oled上显示子网掩码
font.text(oled,"{}".format(wlan.ifconfig()[1]),0,32,color=1,font_size=16,reverse=False,reverse=False,clear=False,show=True,auto_wrap=True)
# 在oled上显示DNS
font.text(oled,"{}".format(wlan.ifconfig()[2]),0,48,color=1,font_size=16,reverse=False,reverse=False,clear=False,show=True,auto_wrap=True)
time.sleep(5)
oled.clear() # 清屏
# 获取诗词API函数
def Poet():
#https://api.xygeng.cn/one
#https://v.api.aa1.cn/api/api-wenan-gaoxiao/index.php?aa1=json
'''
# API-1
try:
Text = urequests.get("https://api.xygeng.cn/one")
Dic = ujson.loads(Text.text)
code = Dic["data"]["content"]
font.text(oled,"%s"%(code),0,0,color=1,font_size=16,reverse=False,reverse=False,clear=True,show=True,auto_wrap=True)
time.sleep(3)
except:
font.text(oled,"数据异常!",24,24,color=1,font_size=16,reverse=False,reverse=True,clear=False,show=True,auto_wrap=True)
'''
# API-2
try:
Text = urequests.get("https://v1.jinrishici.com/all.json")
Dic = ujson.loads(Text.text)
code = Dic["content"]
font.text(oled,"%s"%(code),0,0,color=1,font_size=16,reverse=False,reverse=False,clear=True,show=True,auto_wrap=True)
time.sleep(5)
except:
font.text(oled,"数据异常!",24,24,color=1,font_size=16,reverse=False,reverse=True,clear=False,show=True,auto_wrap=True)
def main():
do_connect()
#font.text(oled,"welcome jack!欢迎杰克!",0,0,color=1,font_size=16,reverse=False,reverse=False,clear=False,show=True,auto_wrap=True)
while True:
Poet()
if __name__ == "__main__":
main()main.py
from api_learn import do_connect,Poet def main(): do_connect() while True: Poet() if __name__ == "__main__": main()
————————————————
版权声明:本文为CSDN博主「魔都飘雪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhusongziye/article/details/129824104
Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号
执行时间: 0.0094971656799316 seconds