# ESP32 MicroPython Web Clock
import urequests
import network
import fon
#import urequests
import ujson
import utime
from ssd1306 import SSD1306_I2C #从ssd1306模块中导入SSD1306_I2C子模块
from machine import RTC, I2C, Pin
import framebuf
import time
i2c = I2C(1,sda=Pin(21), scl=Pin(22),freq=100000)
oled = SSD1306_I2C(128, 64, i2c,addr=0x3c)
#----------------------------------------------连接wifi
ssid = "Wokwi-GUEST" # wifi router name
pw = "" # wifi router password
wifi = network.WLAN(network.STA_IF) # station mode
while(not wifi.isconnected()):
wifi.active(True)
try:
wifi.connect(ssid,pw) # wifi网络信息
utime.sleep(1.0)
except OSError:
print("OSError")
utime.sleep(2.0)
oled.text("Connected. IP: ", 0, 30)
oled.text(" " + str(wifi.ifconfig()[0]), 0, 45)
oled.show()
time.sleep(2)
# #-------------------------------------------------------获取天气数据
class geturl():
url1 = "https://api.seniverse.com/v3/weather/daily.json?key=SKrHIw1RMINA3QwLC&location=huizhou&language=zh-Hans&unit=c&start=0&days=5"
html = urequests.get(url1)
html1 = ujson.loads(html.text)
chengsi = html1["results"][0]["location"]["name"]
riqi = html1["results"][0]["daily"][0]["date"][5:10]
tianqi = html1["results"][0]["daily"][0]["text_day"]
zuigaowendu = html1["results"][0]["daily"][0]["high"]
zuidiwendu = html1["results"][0]["daily"][0]["low"]
fenxiang = html1["results"][0]["daily"][0]["wind_direction"]
fensu = html1["results"][0]["daily"][0]["wind_speed"]
shidu = html1["results"][0]["daily"][0]["humidity"]
riqi1 = html1["results"][0]["daily"][1]["date"][5:10]
tianqi1 = html1["results"][0]["daily"][1]["text_day"]
zuigaowendu1 = html1["results"][0]["daily"][1]["high"]
zuidiwendu1 = html1["results"][0]["daily"][1]["low"]
fenxiang1 = html1["results"][0]["daily"][1]["wind_direction"]
fensu1 = html1["results"][0]["daily"][1]["wind_speed"]
shidu1 = html1["results"][0]["daily"][1]["humidity"]
riqi2 = html1["results"][0]["daily"][2]["date"][5:10]
tianqi2 = html1["results"][0]["daily"][2]["text_day"]
zuigaowendu2 = html1["results"][0]["daily"][2]["high"]
zuidiwendu2 = html1["results"][0]["daily"][2]["low"]
fenxiang2 = html1["results"][0]["daily"][2]["wind_direction"]
fensu2 = html1["results"][0]["daily"][2]["wind_speed"]
shidu2 = html1["results"][0]["daily"][2]["humidity"]
print(chengsi, riqi, riqi1, riqi2)
# #-------------------------------------------------------
tianqi=geturl()
def jiritianqi():
oled.fill(0)
oled.text(tianqi.riqi,68,0)
oled.text(tianqi.zuidiwendu+"-"+tianqi.zuigaowendu,68,15)
oled.text(tianqi.fensu+"/"+tianqi.shidu,68,30)
font_buf = bytearray(fon.tianqi[tianqi.tianqi])
font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
oled.blit(font_framebuffer, 0, 0)
font_buf = bytearray(fon.fon['惠'])
font_framebuffer = framebuf.FrameBuffer(font_buf, 16, 16, framebuf.MONO_VLSB)
oled.blit(font_framebuffer, 66, 48)
font_buf = bytearray(fon.fon['州'])
font_framebuffer = framebuf.FrameBuffer(font_buf, 16, 16, framebuf.MONO_VLSB)
oled.blit(font_framebuffer, 82, 48)
oled.show()
def mingritianqi():
oled.fill(0)
oled.text(tianqi.riqi1,68,0)
oled.text(tianqi.zuidiwendu1+"-"+tianqi.zuigaowendu1,68,15)
oled.text(tianqi.fensu+"/"+tianqi.shidu1,68,30)
font_buf = bytearray(fon.tianqi[tianqi.tianqi1])
font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
oled.blit(font_framebuffer, 0, 0)
font_buf = bytearray(fon.fon['惠'])
font_framebuffer = framebuf.FrameBuffer(font_buf, 16, 16, framebuf.MONO_VLSB)
oled.blit(font_framebuffer, 66, 48)
font_buf = bytearray(fon.fon['州'])
font_framebuffer = framebuf.FrameBuffer(font_buf, 16, 16, framebuf.MONO_VLSB)
oled.blit(font_framebuffer, 82, 48)
oled.show()
def houtiantianqi():
oled.fill(0)
oled.text(tianqi.riqi2,68,0)
oled.text(tianqi.zuidiwendu2+"-"+tianqi.zuigaowendu2,68,15)
oled.text(tianqi.fensu+"/"+tianqi.shidu2,68,30)
font_buf = bytearray(fon.tianqi[tianqi.tianqi2])
font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
oled.blit(font_framebuffer, 0, 0)
font_buf = bytearray(fon.fon['惠'])
font_framebuffer = framebuf.FrameBuffer(font_buf, 16, 16, framebuf.MONO_VLSB)
oled.blit(font_framebuffer, 66, 48)
font_buf = bytearray(fon.fon['州'])
font_framebuffer = framebuf.FrameBuffer(font_buf, 16, 16, framebuf.MONO_VLSB)
oled.blit(font_framebuffer, 82, 48)
oled.show()
i=0
def xianshi():
if i==0:
jiritianqi()
elif i==1:
mingritianqi()
elif i==2:
houtiantianqi()
p2 = Pin(13, Pin.IN) # create input pin on GPIO2
while True:
print(p2.value())
print(i)
if p2.value()==0:
i=i+1
if i == 3:
i=0
time.sleep(0.5)
xianshi()
# font_buf = bytearray(fon.tianqi1['开'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 128, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# font_buf = bytearray(fon.fon['州'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 16, 16, framebuf.MONO_VLSB)
# oled.blit(font_framebuffer, 16, 0)
# oled.text(":",32,8)
# oled.show()
# font_buf = bytearray(fon.fon['我'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 16, 16, framebuf.MONO_VLSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# for i in range(10):
# font_buf = bytearray(fon.tianqi['开始'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 128, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)
# font_buf = bytearray(fon.tianqi['晴'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)
# font_buf = bytearray(fon.tianqi['雪'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)
# font_buf = bytearray(fon.tianqi['雾'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)
# font_buf = bytearray(fon.tianqi['霾'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)
# font_buf = bytearray(fon.tianqi['未知'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)
# font_buf = bytearray(fon.tianqi['晴间多云'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)
# font_buf = bytearray(fon.tianqi['多云'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)
# font_buf = bytearray(fon.tianqi['阴'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)
# font_buf = bytearray(fon.tianqi['雨'])
# font_framebuffer = framebuf.FrameBuffer(font_buf, 64, 64, framebuf.MONO_HMSB)
# oled.fill(0)
# oled.blit(font_framebuffer, 0, 0)
# oled.show()
# time.sleep(2)