Weboldal keresés

I2C LCD ESP32-vel MicroPython és Thonny IDE használatával


Az ESP32 egy mikrokontroller táblázat, amely képes több hardver és érzékelő interfészelésére. Az LCD és OLED nagyszerű módjai az kimenet grafikus megjelenítésének és ábrázolásának. Ez a bemutató az LCD kijelző interfészelését mutatja be ESP32 táblákkal, MicroPython segítségével a Thonny IDE alatt.

Mi az a MicroPython

A MicroPython C nyelven van írva, és a Python 3 szoftveres megvalósítása, amely elsősorban beágyazott rendszeralkalmazásokra céloz. Azonban nem tudja teljes mértékben futtatni a Python 3 standard könyvtárait. A MicroPython a Python egy változata, amelyet kifejezetten beágyazott rendszerekhez terveztek. Ma a MicroPython-t egy ESP32 lapon valósítjuk meg Thonny IDE segítségével.

Mielőtt továbblépnénk, győződj meg róla, hogy telepítetted a Thonny IDE-t az ESP32 alaplap programozásához. A Thonny IDE letöltéséhez kattints ide.

Mi az a folyadékkristályos kijelző (LCD)

Az LCD vagy folyadékkristályos kijelző egy olyan eszköz, amely egy változó feszültség alkalmazásával működik egy folyadékkristályos rétegen, ami megváltoztatja az LCD optikai tulajdonságait.

Ma egy 16×2 LCD-t fogunk bemutatni ESP32 lappal, azonban más méretű LCD-k is működhetnek. A 16x2-es méretű LCD-k egy sorban 16 karaktert tudnak megjeleníteni, és ebből a konkrét modellből összesen két sor található. Az LCD alfanumerikus pontmátrix kijelzővel rendelkezik, amely összesen 224 karaktert tud megjeleníteni.

Ezt az LCD-t közvetlenül is használhatjuk ESP32-vel, ahogy azt Arduino esetén is tettük, azonban ehhez rengeteg kemény munkára van szükség, és sok vezetékkel kell foglalkozni. Ennek elkerülése érdekében egy I2C modult fogunk használni az LCD-hez, ami csak két vezetéket igényel a működéshez: az SDA-t és az SCL-t.

Ezenkívül az I2C LCD egy potenciométert is tartalmaz, amely lehetővé teszi az LCD fényerősségének beállítását anélkül, hogy külső változó ellenállásra lenne szükség az LCD fényerősségének szabályozásához.

I2C PINFunkció
GNDFöldelési tüske
VCCTeljesítménycsap
SDATű az adatok cseréjéhez
SCLTű a szinkronóra számára

Az LCD interfészeléséhez szükséges alkatrészek az ESP32-vel

Mielőtt továbblépnénk, javasoljuk, hogy gyűjtse össze a következő részeket ehhez a bemutatóhoz:

  • ESP32 DOIT DEVKIT WROOM
  • 16X2 LCD
  • I2C Soros Interfész
  • Breadboard
  • Ugróvezetékek

A LCD csatlakoztatása az ESP32-höz

Az LCD csatlakoztatása ESP32-hez egyszerű, csak csatlakoztassa az SDA és SCL lábakat a 21-es és 22-es GPIO lábakhoz.

Az alábbiakban a tűkonfiguráció található referenciaként:

Thonny IDE előkészítése ESP32-hez

Mivel a hardver készen áll a kód fogadására, most nyisd meg a Thonny IDE-t és töltsd fel a kódot. Mielőtt bármilyen I2C eszközt összekapcsolnánk, tudnunk kell az adott eszköz I2C címét. Az I2C eszközök rendelkeznek egyedi címmel. Sok eszköznél az alapértelmezett I2C cím 0x27, ahol a 0x a szám hex formátumát jelzi.

Ajánlott minden alkalommal lekérdezni az I2C címet, amikor új eszközt csatlakoztatunk.

Az LCD Címének Megszerzése

Csatlakoztassa az ESP32 deszkát a PC-hez, és nyissa meg a Thonny IDE-t. Írja be a lenti kódot a Thonny IDE szerkesztőjébe. Töltse fel a kódot az ESP32 deszkára a tetején lévő lejátszás gomb segítségével.

Kód

Ez a kód a 21. lábra (SDA) és a 22. lábra (SCL) van írva. Ha másik deszkát, például ESP8266-ot használsz, cseréld ki a láb számát ennek megfelelően.

import machine

sdaPIN=machine.Pin(21) #for ESP32
sclPIN=machine.Pin(22)

i2c=machine.I2C(sda=sdaPIN, scl=sclPIN, freq=10000)

devices = i2c.scan()
if len(devices) == 0:

print("No i2c device !") else:

print('i2c devices found:',len(devices)) for device in devices:

print("At address: ",hex(device))

Kimenet

A következő kimenet a shell terminálon jelenik meg, itt láthatjuk, hogy az LCD I2C címe 0x27.

I2C LCD MicroPython könyvtárak

Az ESP32 és az I2C LCD interfészeléséhez két különböző MicroPython könyvtárra van szükség. Ezeket a két könyvtárat fogjuk használni: lcd_api.py és i2c_lcd.py. Másolja le ezeket a két könyvtárat a megadott linken, és hozzon létre két új fájlt a Thonny IDE-ben. Mentse el mindkét könyvtárat az ESP32-re vagy a megfelelő táblákra, ahogy az az alábbi képen látható.

Lépés1: Hozz létre két új fájlt, és illeszd be mindkét könyvtár kódját külön-külön. Az ESP32 táblára való mentéshez lépj a következőre: Fájl>Mentés másként

2. lépés: Egy felugró ablak fog megjelenni, amelyben válaszd ki a MicroPython eszközt. Győződj meg róla, hogy az ESP32 táblagép csatlakoztatva van a számítógéphez.

3. lépés: Írd be a könyvtárak fájlnevét, majd kattints a OK gombra.

Megjegyzés: Ne feledd, hogy a lcd_api.py és i2c_lcd.py pontosan ugyanazt a nevet használd.

Mentse el a két könyvtári fájlt, és hozzon létre egy új main.py nevű fájlt, ahol az I2C LCD fő MicroPython kódját fogjuk írni.

4. lépés: Miután mindhárom fájl létrejött, láthatjuk őket a Thonny IDE szerkesztőben. Bezárhatjuk a könyvtárak fájlt, és csak a main.py-t nyithatjuk meg, hogy írjunk és feltöltsünk I2C LCD kódot.

Szöveg megjelenítése LCD-n

Írd be az alábbi kódot a Thonny IDE-be, majd kattints a megadott lejátszás gombra a kód feltöltéséhez az ESP32 táblára.

Kód

A megadott kód megírása a Thonny IDE szerkesztőablakában segít az I2C LCD interfészelésében az ESP32 táblával.

import machine
from machine import Pin, SoftI2C
from lcd_api import LcdApi
from i2c_lcd import I2cLcd
from time import sleep
I2C_ADDR = 0x27
totalRows = 2
totalColumns = 16
i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000) #I2C for ESP32
#i2c = I2C(scl=Pin(5), sda=Pin(4), freq=10000) #I2C for ESP8266
lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns)
while True:

lcd.putstr("Linuxhint.com") sleep(10) lcd.clear()

A fenti kód a SoftI2C és a Pin osztály meghívásával kezdődött a machine modulból. Ezenkívül egy sleep modult is hozzáadtunk a késleltetéshez. Ezután meghívtuk a két fontos könyvtárat, a lcd_api.py és a i2c_lcd.py fájlokat, amelyeket éppen elmentettünk az ESP32 mappába.

A következő I2C cím 0x27, amelyet meghatározunk, majd definiáljuk a teljes sorokat és oszlopokat az LCD-n. A mi esetünkben 16×2. Ha más méretű kijelzőt használunk, módosítsuk a sorokat és oszlopokat.

A szöveg megjelenítéséhez egy Linuxhint.com karakterlánc van definiálva.

Kimenet

A kimenetben láthatjuk az LCD kijelzőn meghatározott karakterláncot.

Következtetés

A MicroPython egy nyelv, amelyet kifejezetten beágyazott rendszerekhez terveztek. Két könyvtár, a lcd_api.py és a i2c_lcd.py használatával könnyen interfészelhetjük az I2C LCD-t ESP32-vel. Az ESP32 MicroPython-nal történő programozásához a Thonny IDE-t használják. Ez a cikk útmutató az LCD ESP32-vel való összekapcsolásához.