import network
import time
import urequests
from machine import Pin, I2C
from i2c_lcd import I2cLcd
# Setup koneksi LCD I2C
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
lcd_addr = i2c.scan()[0] # Deteksi alamat LCD
lcd = I2cLcd(i2c, lcd_addr, 2, 16) # 2 baris, 16 kolom
# Koneksi ke WiFi
print("Menghubungkan ke WiFi", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('Wokwi-GUEST', '')
while not sta_if.isconnected():
print(".", end="")
time.sleep(0.1)
print(" Terhubung!")
lcd.clear()
lcd.putstr("WiFi Terhubung!")
# Ambil data dari API
url = "https://datausa.io/api/data?drilldowns=Nation&measures=Population"
response = urequests.get(url)
data = response.json()
population_data = data['data']
# Tampilkan data di serial & LCD secara bergantian
print("Data Populasi Jakarta:")
for item in population_data:
tahun = item.get('Year', 'N/A')
jumlah = item.get('Population', 'N/A')
negara = item.get('Nation', 'N/A')
print(f"{tahun} | {negara} | Populasi: {jumlah}")
lcd.clear()
lcd.putstr(f"{tahun} {negara}")
lcd.move_to(0, 1)
lcd.putstr(f"Populasi:{jumlah}")
time.sleep(3) # Tunggu 3 detik sebelum ganti data
response.close()