一.引言
OLED屏幕则为我们提供了一种高质量但不能触碰的显示解决方案。在这篇文章中,这次讲解如何使用树莓派Pico W和OLED屏幕来显示实时天气信息。
二.所需材料
- 树莓派Pico W
- 0.96英寸OLED屏幕(带I2C接口)
- 杜邦线
三.步骤
3.1连接硬件
- 将OLED屏幕的VCC引脚连接到Pico W的3.3V(倒数第5个)引脚。
- 将OLED屏幕的GND引脚连接到Pico W的GND引脚。
- 将OLED屏幕的SDA引脚连接到Pico W的GP0引脚。
- 将OLED屏幕的SCL引脚连接到Pico W的GP1引脚。
3.2编辑Python代码在Thonny IDE上。
首先,需要用一个开源的天气API Library,和用dafruit SSD1306库来控制OLED屏
pip install requests
#下载开源的天气API Library
pip install adafruit-circuitpython-ssd1306
#下载adafruit-circuitpython-ssd1306
其次,写一个Python代码,随便命名(自己知道就行)
import time
import requests
from board import SCL, SDA
import busio
import adafruit_ssd1306
# 设置OLED屏幕
i2c = busio.I2C(SCL, SDA)
oled = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c)
# 获取天气信息
def get_weather():
api_key = "YOUR_API_KEY" # 替换为你的天气API密钥,端口有:https://www.seniverse.com/转载自"尾善爱看海"非常感谢(知心天气)
#注册知心天气账号,完成后进入“产品--天气数据API”,找到我的信息,记住我的API密钥和我的用户ID(后面有用的)(
city = "YOUR_CITY" # 替换为你的城市名称
urf=f"http://api.weatherapi.com/v1/current.json?key={api_key}&q={city}"
response = requests.get(url)
data = response.json()
return data
# 在OLED屏幕上显示天气信息
def display_weather(weather):
oled.fill(0)
oled.text("Weather Update:", 0, 0, 1)
oled.text(f"City: {weather['location']['name']}", 0, 16, 1)
oled.text(f"Temperature: {weather['current']['temp_c']}°C", 0, 32, 1)
oled.text(f"Condition: {weather['current']['condition']['text']}", 0, 48, 1)
oled.show()
# 主循环
while True:
weather_data = get_weather()
display_weather(weather_data)
time.sleep(1800) # 每30分钟更新一次天气信息,1800s可以随自己意愿改。
后记
通过这篇文章,讲解如何使用树莓派Pico W和OLED屏幕来显示实时天气信息。你可以根据自己的需求扩展代码,显示更多的天气参数。记得关注哦,作者也会回关。