import urequests
from machine import Pin, I2C
import ssd1306
# Function to fetch weather data from the API
def get_weather_data(latitude, longitude):
url = f"https://api.open-meteo.com/v1/forecast?latitude=2.52&longitude=13.41¤t=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m?latitude={latitude}&longitude={longitude}"
response = urequests.get(url)
data = response.json()
response.close()
return data
# Function to display date and weather on OLED
def display_date_and_weather(date, temperature, humidity, wind_speed):
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
# Display date
oled.text("Date: " + date, 0, 0)
# Display weather information
oled.text("Temperature: {}°C".format(temperature), 0, 20)
oled.text("Humidity: {}%".format(humidity), 0, 40)
oled.text("Wind Speed: {} km/h".format(wind_speed), 0, 60)
oled.show()
# Get user input for latitude and longitude
latitude = float(input(" \n Enter latitude: "))
longitude = float(input("Enter longitude: "))
# Get weather data
weather_data = get_weather_data(latitude, longitude)
# Extract relevant information from the API response
current_weather = weather_data["current"]
date = current_weather["time"]
temperature = current_weather["temperature_2m"]
humidity = weather_data["hourly"]["relative_humidity_2m"][0]
wind_speed = weather_data["hourly"]["wind_speed_10m"][0]
# Display date and weather on OLED
display_date_and_weather(date, temperature, humidity, wind_speed)