Mostrem les dades en les pantalles LCD
Primer hem de saber l'adreça I2C de les dues pantalles (hauria de ser la mateixa) executant el programa I2C scan
En el meu cas, totes dues LCD tenen la mateixa adreça I2C: 0x27
Mostrem les dades en les pantalles LCD
Primer hem de saber l'adreça I2C de les dues pantalles (hauria de ser la mateixa) executant el programa I2C scan
En el meu cas, totes dues LCD tenen la mateixa adreça I2C: 0x27
# --- llibreries
import urequests
import miwifi
from time import ticks_ms, ticks_diff
from machine import Pin, I2C
# llibreries per treballar amb pantalles LCD 👉
import lcd_api
import i2c_lcd
# --- inicialització busos I2C
i2c1 = I2C(0, scl=Pin(22), sda=Pin(21)) # LCD 1 - 0 indica pins I2C per defecte
i2c2 = I2C(1, scl=Pin(18), sda=Pin(19)) # LCD 2 - 1 indica nous pins I2C
# --- inicialització pantalles LCD (mateixa adreça: 0x27)
lcd1 = i2c_lcd.I2cLcd(i2c1, 0x27, 2, 16)
lcd2 = i2c_lcd.I2cLcd(i2c2, 0x27, 2, 16)
#lcd1.backlight_on()
#lcd2.backlight_on()
# missatge incial
lcd1.putstr ('HOLA')
lcd2.putstr ('HOLA')
# --- Variables de temps
interval = 10000 # actualització cada 10 segons (10.000 ms)
# actualització definitiva cada 5 min = 300 s (300.000 ms)
last_update = ticks_ms()
# --- Configuració Wi-Fi i ThingSpeak
ssid = 'xxx'
psw = 'yyy'
# adreça de recuperació de dades del canal:
url = 'https://api.thingspeak.com/channels/1825502/feeds.json?results=1'
miwifi.connecta_wifi(ssid, psw) # connecta a WiFi
def recupera():
# no cal fer cap canvi en aquesta funció
def mostra_consola():
# no cal fer cap canvi en aquesta funció: de fet ja no ens cal
def mostra(): # mostra les dades en les LCD
lcd1.clear() # neteja la pantalla
lcd2.clear() # neteja la pantalla
lcd1.move_to (1,0) # posiciona el punter
lcd1.putstr('Temp: ' + temp + ' C')
lcd1.move_to (1,1) # posiciona el punter
lcd1.putstr('Llum: ' + lux + ' lx')
lcd2.move_to (1,0) # posiciona el punter
lcd2.putstr('P: ' + pres + ' hPa')
lcd2.move_to (0,1) # posiciona el punter
lcd2.putstr('HR: ' + hum + ' %')
while True:
ara = ticks_ms()
if ticks_diff(ara, last_update) >= interval:
try: # l'estructura try / except fa que si hi ha errors el programa continui funcionant
recupera()
mostra() # mostrem les dades en les pantalles
last_update = ara
except Exception as e:
print("Error:", e)