- Antarmuka LCD 16x2 dengan Raspberry Pi:
- Diagram Sirkuit:
- Tampilkan Alamat IP Raspberry Pi di LCD:
- Jalankan Skrip Secara Berkala menggunakan 'crontab':
Masalah utama saat bekerja dengan Raspberry Pi adalah mengetahui alamat IP Raspberry Pi, yang akan diperlukan untuk masuk ke dalamnya menggunakan beberapa SSH atau klien transfer file. Jadi hari ini kami akan membagikan beberapa skrip Python untuk menemukan alamat IP lokal Raspberry Pi Anda di jaringan dan menampilkannya di Layar LCD 16x2. Kami juga akan menambahkan skrip di Crontab sehingga dapat dijalankan setiap 10 menit dan kami akan memperbarui alamat IP setiap saat.
Antarmuka LCD 16x2 dengan Raspberry Pi:
Sebelum kita akan menemukan alamat IP dari Raspberry PI, pertama kita perlu melakukan interface LCD 16x2 dengan Raspberry Pi. Di sini, di Proyek ini kami telah menggunakan Perpustakaan Adafruit eksternal untuk menghubungkan LCD 16x2 dengan Raspberry Pi, yang dengannya Anda tidak perlu menulis banyak baris kode untuk menggerakkan LCD dan Anda dapat langsung mencetak pada LCD hanya dengan menggunakan satu baris kode. Namun Library ini dibuat oleh Adafruit tetapi dapat digunakan untuk modul LCD apa pun yang memiliki pengontrol HD44780.
Untuk menggunakan Perpustakaan Adafruit, pertama-tama kita perlu menginstalnya dengan menggunakan perintah di bawah ini. Perintah pertama akan mengkloning repositori CharLCD (oleh Adafruit) pada Raspberry Pi Anda, perintah kedua akan membawa Anda ke dalam direktori yang diunduh dan terakhir kita perlu menjalankan skrip setup.py , yang disajikan di dalam direktori Adafruit_Python_CharLCD, untuk menginstal perpustakaan.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git cd./Adafruit_Python_CharLCD sudo python setup.py install
Sekarang perpustakaan untuk LCD 16x2 telah diinstal dan Anda dapat menggunakan fungsinya hanya dengan mengimpor perpustakaan ini di program python Anda menggunakan baris di bawah ini:
impor Adafruit_CharLCD sebagai LCD
Ada beberapa contoh skrip di dalam folder 'contoh' yang ada di folder perpustakaan (Adafruit_Python_CharLCD). Anda dapat menguji setup dengan menjalankan script contoh char_lcd.py. Tetapi sebelum itu, Anda perlu menghubungkan pin LCD dengan Raspberry Pi seperti yang diberikan di bawah ini pada diagram rangkaian di bagian selanjutnya.
Anda juga dapat menghubungkan LCD dengan beberapa pin GPIO Raspberry Pi lainnya, semua yang perlu Anda sebutkan pin interfacing yang benar di program python Anda seperti di bawah ini. Pelajari lebih lanjut tentang Raspberry Pi GPIO Pins di sini.
# Pemasangan pin Raspberry Pi lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2
Sekarang Anda dapat langsung menggunakan fungsi yang disediakan oleh Adafruit Library untuk mengontrol LCD. Beberapa fungsi diberikan di bawah ini; Anda dapat menemukan lebih banyak di contoh skrip:
- lcd.message (message) = Untuk mencetak teks pada LCD.
- lcd.clear () = Untuk membersihkan LCD.
- set_cursor (col, row) = Pindahkan kursor ke posisi manapun pada kolom dan baris.
- lcd.blink (True) = Untuk mengedipkan kursor (True atau False)
- lcd.move_left () = Untuk memindahkan kursor ke Kiri dengan satu posisi.
- lcd.move_right () = Untuk memindahkan kursor ke Kanan dengan satu posisi.
Jika Anda ingin menghubungkan LCD tanpa menggunakan perpustakaan eksternal maka Anda dapat memeriksa tutorial kami sebelumnya, di mana kami telah menulis semua fungsi untuk LCD 16x2. Centang yang ini untuk menghubungkan LCD dalam Mode 8-bit dan yang ini untuk antarmuka LCD dalam mode 4-bit.
Diagram Sirkuit:
Tampilkan Alamat IP Raspberry Pi di LCD:
Setelah melakukan interfacing LCD 16x2 dengan Raspberry Pi, sekarang kita perlu mendapatkan alamat IP Raspberry Pi dan mencetaknya di LCD menggunakan Python Script. Ada banyak cara untuk mendapatkan alamat IP lokal Raspberry Pi, di sini kami menjelaskan tiga Skrip Python untuk mendapatkan alamat IP, Anda dapat menggunakan salah satunya.
Menggunakan Perintah Linux:
Pada terminal, kita bisa dengan mudah mendapatkan alamat IP dengan menggunakan perintah hostname –I , jadi jika kita bisa menjalankan perintah linux dari python maka kita bisa mendapatkan alamat IP-nya. Jadi untuk menjalankan perintah Linux dari Python kita perlu mengimpor pustaka bernama perintah, jadi program lengkapnya akan seperti di bawah ini:
waktu impor impor Adafruit_CharLCD sebagai perintah impor LCD # Pengaturan pin Raspberry Pi lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Tentukan kolom LCD dan ukuran baris untuk 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) lcd.message ('Alamat IP Lokal: \ n') lcd.message (commands.getoutput ('hostname -I')) time.sleep (10.0) # Tunggu 5 detik lcd.clear ()
Anda juga dapat mengganti perintah hostname –I dalam program dengan perintah di bawah ini jika Anda ingin mendapatkan alamat IP dengan menggunakan perintah ifconfig yang lebih andal:
lcd.message (commands.getoutput ('ifconfig wlan0 - grep "inet \ addr" - cut -d: -f2 - cut -d "" -f1'))
Menggunakan pemrograman Socket:
Di sini, di program ini kita akan membuat soket keluarga AF_INET dan ketik SOCK_DGRAM menggunakan baris ini: s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) , kemudian kita akan membuat koneksi melalui soket menggunakan beberapa nama host atau alamat ip seperti 8.8.8.8, Anda juga dapat menggunakan beberapa situs web lain untuk terhubung dengan soket seperti gmail.com. Jadi kita bisa mendapatkan alamat IP lokal RPi dari soket yang telah dibuat untuk komunikasi antara Raspberry Pi dan alamat IP dummy. Di bawah ini adalah Program lengkapnya:
waktu impor impor Adafruit_CharLCD sebagai soket impor LCD # Pengaturan pin Raspberry Pi lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Tentukan kolom LCD dan ukuran baris untuk LCD 16x2. lcd_columns = 16 baris_lcd = 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_address = s.getsockname () s.close () return ip_address lcd.message ('Alamat IP Lokal: \ n ') lcd.message (get_ip_address ()) # Tunggu 5 detik time.sleep (10.0) lcd.clear ()
Pelajari lebih lanjut tentang Pemrograman Socket dengan python di sini.
Menggunakan Modul 'fcntl':
Modul ini melakukan kontrol file dan kontrol I / O pada deskriptor file. Di sini digunakan untuk mengekstrak alamat IP dari file jaringan. Di bawah ini adalah kode Python lengkap:
waktu impor impor Adafruit_CharLCD sebagai soket impor LCD impor fcntl import struct # Pengaturan pin Raspberry Pi lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Tentukan kolom LCD dan ukuran baris untuk 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) def get_interface_ipaddress (jaringan): s = socket.socket (socket.AF_INET, socket.SOCK_DAM) 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')) # Tunggu 5 detik time.sleep (10.0) lcd.clear ()
Pelajari lebih lanjut tentang menggunakan Modul 'fcnfl' di sini.
Jalankan Skrip Secara Berkala menggunakan 'crontab':
Langkah terakhir adalah menambahkan entri untuk menjalankan skrip ini secara berkala setiap 15 menit sehingga kita bisa mendapatkan IP yang diperbarui setiap saat. Untuk melakukan ini kita perlu mengedit file cron menggunakan perintah di bawah ini:
crontab –e
Dan kemudian masukkan baris di bawah ini di bagian bawah file cron dan simpan menggunakan CTRL + X, lalu Y, lalu enter.
* / 15 * * * * sudo python /home/pi/ip_address_lcd.py
Anda dapat mengubah alamat sesuai dengan lokasi file Python Script Anda dan Anda juga dapat mengubah durasi di mana Anda ingin berulang kali menjalankan script untuk mendapatkan IP yang diperbarui.