import network
import requests
import ssd1306
import time
import ntptime
import json
from machine import Pin, I2C, RTC
but_status = 0
but_flag = 0
Status = 0
but = Pin(0,Pin.IN)
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
def connect_wifi():
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.disconnect()
wifi.connect('Wokwi-GUEST')
if not wifi.isconnected():
print('connecting..')
timeout = 0
while (not wifi.isconnected() and timeout < 5):
print(5 - timeout)
timeout = timeout + 1
time.sleep(1)
if(wifi.isconnected()):
print('connected')
else:
print('not connected')
connect_wifi()
def get_datetime():
ntptime.settime()
rtc = RTC()
return rtc.datetime()
def display_datetime():
year, month, day, weekday, hour, minute, second, _ = get_datetime()
print("Date: {}-{}-{}, Time: {}:{}:{}".format(day, month, year, hour, minute, second))
oled.text("Date: {}-{}-{}".format(day,month,year),5,5)
oled.text("Time : {}:{}:{}".format(hour,minute,second),5,15)
oled.show()
time.sleep(5)
oled.fill(0)
oled.show()
def get_weather(latitude, longitude):
api_url = "https://api.open-meteo.com/v1/forecast?latitude={}&longitude={}¤t=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m".format(latitude, longitude)
response = requests.get(api_url)
weather_data = json.loads(response.text)
response.close()
return weather_data
def display_weather(weather_data):
current_temperature = weather_data['current']['temperature_2m']
wind_speed = weather_data['current']['wind_speed_10m']
print("Current Temperature: {}°C, Wind Speed: {} m/s".format(current_temperature, wind_speed))
oled.text("Temperature:",5,5)
oled.text("{} C".format(current_temperature),10,20)
oled.text("Wind Speed :",5,30)
oled.text("{} m/s".format(wind_speed),10,45)
oled.show()
time.sleep(5)
oled.fill(0)
oled.show()
latitude = float(input("Enter Latitude of the location: "))
longitude = float(input("Enter Longitude of the location: "))
display_datetime()
weather_data = get_weather(latitude, longitude)
display_weather(weather_data)