I2C LCD med ESPTOP 10 ved bruk av Micropython og Thonny IDE

I2C LCD med ESPTOP 10 ved bruk av Micropython og Thonny IDE

ESP32 er et mikrokontrollertavle som kan grensesnitt flere maskinvare og sensorer. LCD og OLED er gode måter å vise og gi en grafisk representasjon til den nødvendige utgangen. Denne opplæringen dekker LCD -skjermgrensesnitt med ESP32 -tavler ved hjelp av Micropython i Thonny Ide.

Hva er mikropyton

Micropython er skrevet i C, og det er en programvareimplementering for Python 3 som hovedsakelig målrettet innebygde systemapplikasjoner. Imidlertid kan den ikke kjøre Python 3 standardbiblioteker fullt ut. Micropython er en variant av Python og spesielt designet for innebygde systemer. I dag skal vi implementere Micropython på et ESP32 -brett ved hjelp av Thonny IDE.

Før vi går videre, sørg for å installere Thonny IDE for å programmere ESP32 -styret. Å laste ned Thonny Ide Klikk her.

Hva er Liquid Crystal Display (LCD)

LCD eller flytende krystalldisplay er en enhet som fungerer ved å påføre en variabel spenning på et flytende krystalllag som induserer endringer i optiske egenskaper til LCD.

I dag skal vi dekke en 16 × 2 LCD med ESP32 -brett, men andre størrelser på LCD bør også fungere. LCD -er som har størrelse på 16 kryss 2 kan vise 16 tegn i en enkelt linje, og totalt to linjer er det i denne spesifikke modellen. LCD inneholder alfanumerisk prikkmatrise -skjerm som kan vise totalt 224 tegn.

Vi kan også bruke denne LCD -en direkte med ESP32 som vi gjorde med Arduino, men det krever en anspent mengde hardt arbeid, og man må takle en haug med ledninger. For å unngå dette vil vi bruke en I2C -modul med LCD som bare krever at to ledninger skal fungere som er SDA og SCL.

I tillegg kommer I2C LCD med et potensiometer som kan justere LCD -lysstyrke uten behov for ekstern variabel motstand for å kontrollere LCD -lysstyrke.

I2C PIN Funksjon
GND Bakkestift
VCC Power Pin
SDA PIN brukes til datautveksling
SCL Pin brukt til den synkrone klokken

Deler som kreves for å grensesnitt LCD med ESP32

Før vi går videre, anbefaler vi at du samler inn følgende deler til denne opplæringen:

  • ESP32 Doit Devkit Wroom
  • 16x2 LCD
  • I2C seriell grensesnitt
  • Brødbrett
  • Jumper ledninger

Kabler LCD til ESP32

Kabling av en LCD med ESP32 er enkel, bare koble SDA- og SCL -pinnen på henholdsvis GPIO PIN 21 og 22.

Følgende er PIN -konfigurasjonen for referanse:

Forbereder Thonny IDE for ESP32

Siden maskinvare er klar til å ta koden nå åpen Thonny IDE og laste opp koden. Før grensesnittet til I2C -enheten må vi kjenne I2C -adressen til den respektive enheten. I2C -enheter har en unik adresse for dem. For mange enheter er standardadressen for I2C 0x27 der 0x viser hex Format av nummeret.

Det anbefales å få I2C -adressen hver gang mens du grenser til en ny enhet.

Få LCD -adressen

Koble til ESP32 -kortet med PC og Open Thonny IDE. Skriv inn den gitte koden nedenfor i Thonny IDE -redaktøren. Last opp koden i ESP32 -tavlen ved å bruke spillknappen øverst.

Kode

Denne koden er skrevet for pinne 21 (SDA) og pinne 22 (SCL). Hvis du bruker noe annet brett som ESP8266, erstatt pinnenummeret deretter.

Importmaskin
sdapin = maskin.PIN (21) #for ESP32
sclpin = maskin.Pin (22)
i2c = maskin.I2C (SDA = SDAPIN, SCL = SCLPIN, FREQ = 10000)
enheter = I2C.skanne ()
Hvis len (enheter) == 0:
Skriv ut ("NO I2C -enhet !")
ellers:
Print ('I2C -enheter funnet:', Len (enheter))
for enhet i enheter:
print ("på adresse:", hex (enhet))

Produksjon

Følgende utgang vises i skallterminalen Her kan vi se I2C -adressen for LCD er 0x27.

I2C LCD Micropython Libraries

For å grensesnitt ESP32 med I2C LCD to forskjellige mikropytonbiblioteker er påkrevd. Vi bruker disse to bibliotekene: LCD_API.PY og I2C_LCD.py. Kopier disse to bibliotekene fra den gitte lenken og opprett to nye filer i Thonny IDE. Lagre begge disse bibliotekene i ESP32 eller respektive brett som vist på bildet nedenfor.

Trinn 1: Lag to nye filer og lim inn begge bibliotekene kode hver for seg. For å lagre den i ESP32 -styret, gå til: Fil> Lagre som

Steg 2: En popup vises Select Micropython -enhet. Forsikre deg om at ESP32 -brettet er koblet til PC -en.

Trinn3: Skriv Filnavnet for biblioteker og klikk Ok.

Merk: Husk, hold det samme eksakte navnet som LCD_API.py og I2C_LCD.py.

Lagre de to bibliotekfilene og opprett en ny fil med navn hoved-.py Hvor vi skriver hovedmikropython -kode for I2C LCD.

Trinn 4: Når alle tre filene er opprettet, kan vi se dem i Thonny IDE -redaktøren. Vi kan lukke bibliotekfilen og bare åpne hoved-.py å skrive og laste opp I2C LCD -kode.

Vis tekst på LCD

Skriv koden gitt nedenfor i Thonny IDE og klikk på den nevnte spillknappen for å laste opp kode til ESP32 Board.

Kode

Å skrive den gitte koden i Thonny IDE -redigeringsvinduet vil bidra til å grensesnitt I2C LCD med ESP32 -styret.

Importmaskin
Fra maskinimportpinne, softi2c
Fra LCD_API Import LCDAPI
Fra I2C_LCD Import I2CLCD
Fra tid importer søvn
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)
Mens sant:
LCD.Putstr ("Linuxhint.com ")
søvn (10)
LCD.klar()

Koden over startet med å ringe softi2c og pin -klasse fra maskinmodulen. Vi har også lagt til en søvnmodul for å gi forsinkelse. Deretter kalte vi de to viktige bibliotekene LCD_API.py og I2C_LCD.py Vi lagret nettopp inne i ESP32 -mappen.

Neste I2C -adresse 0x27 er definert etter at vi definerer de totale radene og kolonnene inne i LCD -skjermen her i vårt tilfelle det er 16 × 2. Hvis du bruker annen størrelse på skjermen, kan du endre radene og kolonnene.

For å vise teksten en streng Linuxhint.com er definert.

Produksjon

I utgangen kan vi se strengen definert på LCD -skjermen.

Konklusjon

Micropython er et språk designet spesielt for innebygd system. Bruke to biblioteker LCD_API.py og I2C_LCD.py Vi kan enkelt grensesnitt I2C LCD med ESP32. For programmering av ESP32 med Micropython brukes Thonny IDE. Denne artikkelen er en guide om grensesnitt LCD med ESP32.