本站改版新增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.0097298622131348 seconds