- Liitäntäinen 16x2 LCD-näyttö Vadelma Pi:
- Piirikaavio:
- Näytä Vadelma Pi: n IP-osoite LCD-näytöllä:
- Suorita komentosarja säännöllisesti käyttämällä 'crontab':
Suurin ongelma Raspberry Pi: n kanssa työskennellessä on tietää Raspberry Pi: n IP-osoite, jota tarvitaan sisäänkirjautumiseen SSH: n tai tiedostonsiirtoasiakkaan avulla. Joten tänään jaamme joitain Python-komentosarjoja löytääksesi Raspberry Pi: n paikallisen IP-osoitteen verkosta ja näyttämään sen 16x2 LCD-näytöllä. Lisäämme myös komentosarjan Crontabiin, jotta sitä voidaan käyttää 10 minuutin välein ja päivitetty IP-osoite on joka kerta.
Liitäntäinen 16x2 LCD-näyttö Vadelma Pi:
Ennen kuin löydämme Vadelma PI: n IP-osoitteen, meidän on ensin liitettävä 16x2 LCD-näyttö Raspberry Pi: n kanssa. Tässä projektissa olemme käyttäneet ulkoista Adafruit-kirjastoa 16x2-nestekidenäytön ja Raspberry Pi -liitännän liittämiseen, jolloin sinun ei tarvitse kirjoittaa useita koodirivejä nestekidenäytön ajamiseksi, ja voit tulostaa suoraan LCD-näytölle vain yhdellä rivillä koodi. Tämän kirjaston on kuitenkin luonut Adafruit, mutta sitä voidaan käyttää kaikissa LCD-moduuleissa, joissa on HD44780-ohjain.
Jotta voisimme käyttää Adafruit-kirjastoa, meidän on ensin asennettava se käyttämällä alla olevia komentoja. Ensimmäinen komento kloonaa CharLCD-arkiston (Adafruit) Raspberry Pi -tietokoneellesi, toinen komento vie sinut ladattuun hakemistoon ja lopuksi meidän on suoritettava setup.py- komentosarja, joka on esitetty Adafruit_Python_CharLCD-hakemistossa, kirjaston asentamiseksi.
git-klooni https://github.com/adafruit/Adafruit_Python_CharLCD.git cd./Adafruit_Python_CharLCD sudo python setup.py install
Nyt 16x2 LCD: n kirjasto on asennettu ja voit käyttää sen toimintoja tuomalla tämän kirjaston python-ohjelmaasi seuraavalla rivillä:
tuo Adafruit_CharLCD LCD-näytöksi
Kirjastokansiossa (Adafruit_Python_CharLCD) olevan esimerkkikansion sisällä on joitain esimerkkiskriptejä. Voit testata asetuksia suorittamalla char_lcd.py- komentosarjan. Mutta ennen sitä sinun on kytkettävä LCD-nastat Vadelma Pi: n kanssa alla olevan piirikaavion mukaisesti.
Voit myös liittää nestekidenäytön joihinkin muihin Raspberry Pi: n GPIO-nastoihin, kaikki mitä sinun on mainittava oikeat liitäntänastat python-ohjelmassa kuten alla. Lisätietoja Raspberry Pi GPIO -nastoista on täällä.
# Vadelma Pi-nastan asetukset lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2
Nyt voit käyttää LCD-näyttöä suoraan Adafruit Libraryn tarjoamilla toiminnoilla. Jotkut toiminnoista on annettu alla; löydät lisää komentosarjasta:
- lcd.message (message) = Tekstin tulostaminen nestekidenäytölle.
- lcd.clear () = Nestekidenäytön tyhjentäminen.
- set_cursor (sarake, rivi) = Siirrä kohdistin mihin tahansa kohtaan sarakkeessa ja rivillä.
- lcd.blink (True) = Kohdistimen vilkkuminen (True tai False)
- lcd.move_left () = Kohdistimen siirtäminen vasemmalle yksi asento.
- lcd.move_right () = Kohdistimen siirtäminen oikealle yksi asento.
Jos haluat liittää nestekidenäytön käyttämättä ulkoista kirjastoa, voit tarkistaa edellisen opetusohjelmamme, johon olemme kirjoittaneet kaikki 16x2 LCD: n toiminnot. Valitse tämä, jos haluat liittää nestekidenäytön 8-bittisessä tilassa ja tämä liittää nestekidenäyttöä 4-bittisessä tilassa.
Piirikaavio:
Näytä Vadelma Pi: n IP-osoite LCD-näytöllä:
Kun olemme liittäneet 16x2 LCD-näytön Raspberry Pi: n kanssa, meidän on nyt hankittava Raspberry Pi: n IP-osoite ja tulostettava se LCD-näytölle Python-komentosarjalla. Raspberry Pi: n paikallisen IP-osoitteen saamiseksi on paljon tapoja, tässä kuvataan kolme Python-komentosarjaa IP-osoitteen saamiseksi, voit käyttää mitä tahansa niistä.
Linux-komentojen käyttäminen:
Päätelaitteessa voimme helposti saada IP-osoitteen käyttämällä isäntänimi-I -komentoa, joten jos voimme suorittaa linux-komennon pythonista, voimme saada IP-osoitteen. Joten Linux-komentojen suorittamiseksi Pythonista meidän on tuotava kirjasto nimeltä komennot, joten koko ohjelma on kuten alla:
tuontiaika tuonti Adafruit_CharLCD LCD-tuontikomennoina # Vadelma Pi -nastan asetukset lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Määritä LCD-sarake ja rivikoko 16x2 LCD: lle. 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) lcd_backage) lcd_backage ('isäntänimi -I')) time.sleep (10.0) # Odota 5 sekuntia lcd.clear ()
Voit myös korvata ohjelman isäntänimi -komennon alla olevalla komennolla, jos haluat saada IP-osoitteen käyttämällä luotettavampaa ifconfig- komentoa:
lcd.message (commands.getoutput ('ifconfig wlan0 - grep "inet \ addr" - cut -d: -f2 - cut -d "" -f1'))
Socket-ohjelmoinnin käyttäminen:
Tässä tässä ohjelmassa luodaan perheen AF_INET liitäntä ja kirjoita SOCK_DGRAM käyttämällä tätä riviä: s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) , sitten luomme yhteyden pistorasian kautta käyttämällä jotakin isäntänimeä tai IP-osoitetta, kuten 8.8.8.8, voit käyttää myös jotakin muuta verkkosivustoa yhteyden muodostamiseen pistorasiaan, kuten gmail.com. Joten voimme saada RPi: n paikallisen IP-osoitteen kannasta, joka on luotu Raspberry Pi: n ja nuken IP-osoitteen väliseen viestintään. Alla on koko ohjelma:
tuontiaika tuonti Adafruit_CharLCD LCD-tuontiliittimeksi # Vadelma Pi -nastan asetukset lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Määritä LCD-sarake ja rivikoko 16x2 LCD: lle. 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) def get_ip_address (): ip_address = ''; s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) s.connect (("8.8.8.8", 80)) ip_osoite = s.getsockname () s.close () return ip_osoite lcd.message ('Paikallinen IP-osoite: \ n ') lcd.message (get_ip_address ()) # Odota 5 sekuntia time.sleep (10.0) lcd.clear ()
Lisätietoja python-ohjelmoinnista täältä.
'Fcntl' -moduulin käyttäminen:
Tämä moduuli suorittaa tiedostojen hallinnan ja I / O-ohjauksen tiedostojen kuvaajille. Tässä sitä käytetään purkamaan IP-osoite verkkotiedostoista. Alla on koko Python-koodi:
tuontiaika tuonti Adafruit_CharLCD LCD-tuontisovittimena tuonti fcntl-tuonti-rakenne # Vadelma Pi-nasta-asetus lcd_rs = 18 lcd_fi = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Määritä LCD-sarake ja rivikoko 16x2 LCD: lle. 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_rocket, lcd_back___Socket_Socket_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SET_SETASETUS_SETASETUS) return socket.inet_ntoa (fcntl.ioctl (s.fileno (), 0x8915, # SIOCGIFADDR struct.pack ('256s', verkko))) lcd.message ('Local IP Address: \ n') lcd.message (get_interface_ipaddress ('wlan0')) # Odota 5 sekuntia time.sleep (10.0) lcd.clear ()
Lisätietoja 'fcnfl' -moduulin käytöstä on täällä.
Suorita komentosarja säännöllisesti käyttämällä 'crontab':
Viimeinen vaihe on lisätä merkintä tämän komentosarjan suorittamiseksi säännöllisesti 15 minuutin välein, jotta voimme päivittää IP: n joka kerta. Tätä varten meidän on muokattava cron-tiedostoa alla olevan komennon avulla:
crontab –e
Syötä sitten alla oleva rivi cron-tiedoston alareunaan ja tallenna se painamalla CTRL + X, sitten Y ja kirjoita sitten.
* / 15 * * * * sudo python /home/pi/ip_address_lcd.py
Voit muuttaa osoitetta Python Script -tiedostosi sijainnin mukaan ja voit myös muuttaa kestoa, jonka aikana haluat suorittaa komentosarjan toistuvasti päivitetyn IP-osoitteen saamiseksi.