- Povezivanje LCD-a 16x2 s Raspberry Pi:
- Kružni dijagram:
- Prikaz IP adrese Raspberry Pi na LCD-u:
- Povremeno izvršavajte skriptu pomoću 'crontab':
Glavni problem tijekom rada s Raspberry Pi je znati IP adresu Raspberry Pi koja će biti potrebna za prijavu na nju pomoću nekog SSH ili klijenta za prijenos datoteka. Stoga ćemo danas podijeliti neke Python skripte kako bismo pronašli lokalnu IP adresu vašeg Raspberry Pi na mreži i prikazali je na LCD zaslonu 16x2. Također ćemo dodati skriptu u Crontab tako da se može pokretati svakih 10 minuta, a svaki put ćemo imati ažuriranu IP adresu.
Povezivanje LCD-a 16x2 s Raspberry Pi:
Prije nego što pronađemo IP adresu Raspberry PI, prvo moramo povezati LCD 16x2 s Raspberry Pi. Ovdje smo u ovom projektu koristili vanjsku biblioteku Adafruit za povezivanje LCD-a 16x2 s Raspberry Pi, pomoću koje ne trebate pisati puno redaka koda za pogon LCD-a, a možete izravno ispisivati na LCD-u samo pomoću jednog retka kodirati. Međutim, ovu je knjižnicu kreirao Adafruit, ali može se koristiti za bilo koji LCD modul koji ima HD44780 kontroler.
Da bismo koristili knjižnicu Adafruit, prvo je moramo instalirati pomoću naredbi u nastavku. Prva naredba klonirat će spremište CharLCD (od tvrtke Adafruit) na vašem Raspberry Pi, druga naredba će vas odvesti u taj preuzeti direktorij i na kraju trebamo izvršiti skriptu setup.py , predstavljenu unutar direktorija Adafruit_Python_CharLCD, da bismo instalirali knjižnicu.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git cd./Adafruit_Python_CharLCD sudo python setup.py install
Sada je instalirana knjižnica za LCD 16x2 i možete koristiti njene funkcije samo uvozom ove biblioteke u svoj python program pomoću donjeg retka:
uvezi Adafruit_CharLCD kao LCD
Postoji nekoliko primjera skripti unutar mape 'examples' koja se nalazi u mapi knjižnice (Adafruit_Python_CharLCD). Postavljanje možete testirati pokretanjem char_lcd.py primjera skripte. Ali prije toga, trebate povezati igle LCD-a s Raspberry Pi-om kako je dano dolje na shemi spojeva u sljedećem odjeljku.
Također možete povezati LCD s nekim drugim GPIO pinovima Raspberry Pi, sve što trebate spomenuti ispravne igle za međusobno povezivanje u vašem python programu kao dolje. Ovdje saznajte više o Raspberry Pi GPIO pribadačama.
# Raspberry Pi pin podešavanje lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2
Sada možete izravno koristiti funkcije koje pruža knjižnica Adafruit za upravljanje LCD-om. Neke su funkcije navedene u nastavku; više možete pronaći u primjeru skripte:
- lcd.message (poruka) = Za ispis teksta na LCD.
- lcd.clear () = Za brisanje LCD zaslona.
- set_cursor (col, row) = Pomaknite kursor na bilo koje mjesto u stupcu i retku.
- lcd.blink (True) = Za treptanje kursora (True ili False)
- lcd.move_left () = Za pomicanje kursora ulijevo za jedan položaj.
- lcd.move_right () = Za pomicanje kursora udesno za jedan položaj.
Ako želite povezati LCD bez upotrebe vanjske knjižnice, možete provjeriti naše prethodno uputstvo, gdje smo napisali sve funkcije za LCD 16x2. Označite ovaj za povezivanje LCD-a u 8-bitnom načinu rada i ovaj za sučeljavanje LCD-a u 4-bitnom načinu.
Kružni dijagram:

Prikaz IP adrese Raspberry Pi na LCD-u:
Nakon povezivanja LCD-a 16x2 s Raspberry Pi, sada moramo dobiti IP adresu Raspberry Pi i ispisati je na LCD pomoću Python skripte. Postoji puno načina za dobivanje lokalne IP adrese Raspberry Pi, ovdje opisujemo tri Python skripte za dobivanje IP adrese, možete koristiti bilo koji od njih.
Korištenje Linux naredbi:
Na terminalu možemo lako dobiti IP adresu pomoću naredbe ime-hosta , pa ako možemo pokrenuti linux naredbu iz pythona, možemo dobiti IP adresu. Dakle, da bismo pokrenuli Linux naredbe iz Pythona, trebamo uvesti biblioteku pod nazivom naredbe, tako da će cjeloviti program biti kao u nastavku:
vrijeme uvoza import Adafruit_CharLCD kao naredbe za uvoz LCD-a # Raspberry Pi pin setup lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Definirajte veličinu LCD stupca i retka za LCD 16x2. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight. ('ime hosta -I')) time.sleep (10.0) # Pričekajte 5 sekundi lcd.clear ()
Također možete zamijeniti naredbu hostname –I u programu naredbom ispod ako želite dobiti IP adresu pomoću pouzdanije naredbe ifconfig :
lcd.message (commands.getoutput ('ifconfig wlan0 - grep "inet \ addr" - cut -d: -f2 - cut -d "" -f1'))
Korištenje Socket programiranja:
Ovdje ćemo u ovom programu stvoriti utičnicu obitelji AF_INET i upisati SOCK_DGRAM koristeći ovaj redak: s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) , a zatim ćemo stvoriti vezu putem utičnice koristeći neko ime hosta ili ip adresu poput 8.8.8.8, također možete koristiti neko drugo web mjesto za povezivanje s utičnicom poput gmail.com. Tako možemo dobiti lokalnu IP adresu RPi iz utičnice koja je stvorena za komunikaciju između Raspberry Pi i lažne IP adrese. Ispod je cjeloviti program:
vrijeme uvoza uvoz Adafruit_CharLCD kao LCD utičnica za uvoz # postavljanje Raspberry Pi pin lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Definirajte veličinu LCD stupca i retka za LCD 16x2. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) defad_d_d: ipad_dress_d_dress_dress 'ipd_dress: s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) s.connect (("8.8.8.8", 80)) ip_address = s.getsockname () s.close () return ip_address lcd.message ('Lokalna IP adresa: \ n ') lcd.message (get_ip_address ()) # Pričekajte 5 sekundi time.sleep (10.0) lcd.clear ()
Ovdje saznajte više o programiranju soketa u pythonu.
Korištenje modula 'fcntl':
Ovaj modul vrši kontrolu datoteka i I / O kontrolu na deskriptorima datoteka. Ovdje se koristi za izdvajanje IP adrese iz mrežnih datoteka. Ispod je puni Python kod:
vrijeme uvoza import Adafruit_CharLCD kao LCD utičnica za uvoz import fcntl import struct # Raspberry Pi pin setup lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Definirajte veličinu LCD stupca i retka za LCD LCD 16x2. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_Cet_socket.ASOF (socket). vrati socket.inet_ntoa (fcntl.ioctl (s.fileno (), 0x8915, # SIOCGIFADDR struct.pack ('256s', network))) lcd.message ('Lokalna IP adresa: \ n') lcd.message (get_interface_ipaddress ('wlan0')) # Pričekajte 5 sekundi time.sleep (10.0) lcd.clear ()
Ovdje saznajte više o korištenju modula 'fcnfl'.

Povremeno izvršavajte skriptu pomoću 'crontab':
Posljednji korak je dodavanje unosa za povremeno pokretanje ove skripte svakih 15 minuta kako bismo svaki put mogli dobiti ažurirani IP. Da bismo to učinili, moramo urediti cron datoteku pomoću naredbe ispod:
crontab –e
A zatim unesite donji redak na dnu cron datoteke i spremite ga pomoću CTRL + X, zatim Y, a zatim unesite.
* / 15 * * * * sudo python /home/pi/ip_address_lcd.py
Možete promijeniti adresu prema mjestu vaše datoteke Python Script, a možete promijeniti i trajanje u kojem želite više puta pokretati skriptu kako biste dobili ažuriranu IP adresu.
