- Ang pagitan ng 16x2 LCD na may Raspberry Pi:
- Diagram ng Circuit:
- Ipakita ang IP Address ng Raspberry Pi sa LCD:
- Ipatupad ang Pana-panahong Script gamit ang 'crontab':
Ang pangunahing problema habang nagtatrabaho kasama ang Raspberry Pi ay upang malaman ang IP address ng Raspberry Pi, na kakailanganin upang mag-login dito gamit ang ilang SSH o file transfer client. Kaya ngayon magbabahagi kami ng ilang mga script ng Python upang mahanap ang lokal na IP address ng iyong Raspberry Pi sa network at ipakita ito sa 16x2 LCD Screen. Idagdag din namin ang script sa Crontab upang maaari itong patakbuhin sa bawat 10 minuto at magkakaroon kami ng na-update na IP address sa bawat oras.
Ang pagitan ng 16x2 LCD na may Raspberry Pi:
Bago namin mahahanap ang IP address ng Raspberry PI, kailangan muna naming i- interface ang 16x2 LCD sa Raspberry Pi. Dito sa Project na ito ay gumamit kami ng isang panlabas na Adafruit Library para sa interfacing ng 16x2 LCD sa Raspberry Pi, gamit kung saan hindi mo kailangang magsulat ng maraming mga linya ng code upang himukin ang LCD at maaari kang direktang mai-print sa LCD sa pamamagitan lamang ng paggamit ng isang linya ng code Gayunpaman ang Library na ito ay nilikha ng Adafruit ngunit maaari itong magamit para sa anumang LCD module na mayroong HD44780 controller.
Upang magamit ang Adafruit Library, kailangan muna naming i - install ito sa pamamagitan ng paggamit ng mga utos sa ibaba. I-clone ng unang utos ang repositoryo ng CharLCD (ng Adafruit) sa iyong Raspberry Pi, dadalhin ka ng pangalawang utos sa loob ng na-download na direktoryo at sa wakas kailangan naming magpatupad ng setup.py script, na ipinakita sa loob ng direktoryo ng Adafruit_Python_CharLCD, upang mai-install ang library.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git cd./Adafruit_Python_CharLCD sudo python setup.py install
Ngayon ang library para sa 16x2 LCD ay na-install at maaari mong gamitin ang mga pag-andar nito sa pamamagitan lamang ng pag-import ng library na ito sa iyong programa sa sawa gamit ang linya sa ibaba:
i-import ang Adafruit_CharLCD bilang LCD
Mayroong ilang mga halimbawang script sa loob ng folder na 'mga halimbawa' na naroroon sa folder ng library (Adafruit_Python_CharLCD). Maaari mong subukan ang setup sa pamamagitan ng pagpapatakbo ng char_lcd.py halimbawa ng script. Ngunit bago ito, kailangan mong ikonekta ang mga LCD pin sa Raspberry Pi na ibinigay sa ibaba sa circuit diagram sa susunod na seksyon.
Maaari mo ring ikonekta ang LCD sa ilang iba pang mga GPIO pin ng Raspberry Pi, ang kailangan mo lamang banggitin ang tamang mga interface ng interfacing sa iyong programa sa sawa tulad ng sa ibaba. Dagdagan ang nalalaman tungkol sa Raspberry Pi GPIO Pins dito.
# 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
Ngayon ay maaari mong direktang gamitin ang mga pagpapaandar na ibinigay ng Adafruit Library upang makontrol ang LCD. Ang ilan sa mga pagpapaandar ay ibinibigay sa ibaba; maaari kang makahanap ng higit pa sa halimbawa ng script:
- lcd.message (mensahe) = Upang mai- print ang teksto sa LCD.
- lcd.clear () = Upang i-clear ang LCD.
- set_cursor (col, row) = Ilipat ang cursor sa anumang posisyon sa haligi at hilera.
- lcd.blink (True) = Upang kumurap ng cursor (Tama o Mali)
- lcd.move_left () = Upang ilipat ang cursor sa Left sa pamamagitan ng isang posisyon.
- lcd.move_ Right () = Upang ilipat ang cursor sa Kanan sa pamamagitan ng isang posisyon.
Kung nais mong ikonekta ang LCD nang hindi gumagamit ng anumang panlabas na library pagkatapos ay maaari mong suriin ang aming nakaraang tutorial, kung saan isinulat namin ang lahat ng mga pag-andar para sa 16x2 LCD. Suriin ang isang ito upang mai-interface ang LCD sa 8-bit Mode at ang isang ito upang i-interface ang LCD sa 4-bit mode.
Diagram ng Circuit:
Ipakita ang IP Address ng Raspberry Pi sa LCD:
Matapos ma-interfacing ang 16x2 LCD sa Raspberry Pi, ngayon kailangan naming makuha ang IP address ng Raspberry Pi at i-print ito sa LCD gamit ang Python Script. Maraming mga paraan upang makuha ang lokal na IP address ng Raspberry Pi, narito inilalarawan namin ang tatlong Python Script upang makuha ang IP address, maaari mong gamitin ang anuman sa mga ito.
Paggamit ng Mga Linux Command:
Sa terminal, madali nating makukuha ang IP address sa pamamagitan ng paggamit ng hostname –I command, kaya kung maaari nating patakbuhin ang utos ng linux mula sa sawa maaari nating makuha ang IP address. Kaya upang patakbuhin ang mga utos ng Linux mula sa Python kailangan naming mag-import ng isang library na pinangalanang mga utos, kaya ang kumpletong programa ay magiging katulad sa ibaba:
pag-import ng oras sa pag-import ng Adafruit_CharLCD bilang mga pag-import ng LCD na utos # 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 # Tukuyin ang haligi ng LCD at laki ng hilera para sa 16x2 LCD. 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_backage. lcd_backage. ('hostname -ako')) oras. tulog (10.0) # Maghintay ng 5 segundo lcd. malinaw ()
Maaari mo ring palitan ang hostname –Nag- uutos ako sa programa sa pamamagitan ng utos sa ibaba kung nais mong makuha ang IP address sa pamamagitan ng paggamit ng mas maaasahan kung utos ng ifconfig :
lcd.message (commands.getoutput ('ifconfig wlan0 - grep "inet \ addr" - cut -d: -f2 - cut -d "" -f1'))
Paggamit ng Socket programming:
Dito sa program na ito lilikha kami ng isang socket ng pamilya AF_INET at i-type ang SOCK_DGRAM gamit ang linyang ito: s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) , pagkatapos ay lilikha kami ng koneksyon sa pamamagitan ng socket gamit ang ilang hostname o ip address tulad ng 8.8.8.8, maaari mo ring gamitin ang ilang iba pang website upang kumonekta sa socket tulad ng gmail.com. Maaari naming makuha ang lokal na IP address ng RPi mula sa socket na nilikha para sa komunikasyon sa pagitan ng Raspberry Pi at dummy IP address. Nasa ibaba ang buong Program:
pag-import ng oras sa pag-import ng Adafruit_CharLCD bilang LCD import socket # 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 # Tukuyin ang haligi ng LCD at laki ng hilera para sa 16x2 LCD. 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) address = 'ip; s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) s.connect (("8.8.8.8", 80)) ip_address = s.getsockname () s.close () ibalik ip_address lcd.message ('Local IP Address: \ n ') lcd.message (get_ip_address ()) # Maghintay ng 5 segundo oras. pagtulog (10.0) lcd.clear ()
Matuto nang higit pa tungkol sa Socket Programming sa python dito.
Paggamit ng 'fcntl' Modyul:
Gumaganap ang modyul na ito ng kontrol sa file at kontrol ng I / O sa mga deskripor ng file. Ginagamit ito dito upang makuha ang IP address mula sa mga file ng network. Nasa ibaba ang buong code ng Python:
pag-import ng oras sa pag-import ng Adafruit_CharLCD bilang LCD import socket import fcntl import str # 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 # Tukuyin ang haligi ng LCD at laki ng hilera para sa 16x2 LCD. 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) makakuha ng socket. return socket.inet_ntoa (fcntl.ioctl (s.fileno (), 0x8915, # SIOCGIFADDR struct.pack ('256s', network))) lcd.message ('Local IP Address: \ n') lcd.message (get_interface_ipaddress ('wlan0')) # Maghintay ng 5 segundo oras. pagtulog (10.0) lcd.clear ()
Matuto nang higit pa tungkol sa paggamit ng 'fcnfl' Module dito.
Ipatupad ang Pana-panahong Script gamit ang 'crontab':
Ang pangwakas na hakbang ay upang idagdag ang entry para sa pagpapatakbo ng script na ito pana-panahon sa bawat 15 minuto upang makapag-update kami ng IP sa bawat oras. Upang magawa ito kailangan naming i-edit ang cron file gamit ang ibaba na utos:
crontab –e
At pagkatapos ay ipasok ang linya sa ibaba sa ilalim ng cron file at i-save ito gamit ang CTRL + X, pagkatapos Y, pagkatapos ay ipasok.
* / 15 * * * * sudo python /home/pi/ip_address_lcd.py
Maaari mong baguhin ang address ayon sa lokasyon ng iyong file ng Python Script at maaari mo ring baguhin ang tagal kung saan nais mong paulit-ulit na patakbuhin ang script upang makuha ang na-update na IP.