Raspberry Pi, sering disingkat dengan nama Raspi, adalah komputer papan tunggal yang seukuran dengan kartu kredit yang dapat digunakan untuk menjalankan program perkantoran, permainan komputer, dan sebagai pemutar media hingga video beresolusi tinggi.
1. Bab 2
Akses GPIO pada Raspberry Pi
A. Tujuan
1. Mahasiswa dapat mengenal dan memahami Raspberry Pi yang terhubung dengan akses GPIO.
2. Mahasiswa dapat mengakses Raspi dengan Laptop dengan putty
B. Dasar Teori
Pin GPIO (General Purpose Input Output) dapat digunakan sebagai input atau output dan memungkinkan
raspberry pi untuk terhubung dengan perangkat I / O (dunia luar).
Raspberry pi 3 model B mengeluarkan 26 pin GPIO di board yang berupa header male. Raspberry pi dapat
mengontrol banyak perangkat I / O eksternal menggunakan GPIO ini. Pin ini adalah antarmuka fisik antara
Pi dan dunia luar. Kita dapat memprogram pin ini sesuai dengan kebutuhan untuk berinteraksi dengan
perangkat eksternal. Misalnya, jika kita ingin membaca status switch, kita dapat mengonfigurasi pin GPIO
yang tersedia sebagai input dan membaca status switch untuk membuat keputusan. Kita juga dapat
mengonfigurasi pin GPIO sebagai output untuk mengontrol ON / OFF LED.
Raspberry Pi dapat terhubung ke Internet menggunakan Wi-Fi on-board atau adaptor USB Wi-Fi. Setelah
Raspberry Pi terhubung ke Internet, maka kita dapat mengontrol perangkat, yang terhubung ke Raspberry
Pi, dari jarak jauh. Pin GPIO dari Raspberry Pi 3 ditunjukkan pada gambar di bawah ini:
Gambar 1. Pin I/O Raspberry Pi 3 Model B+
Beberapa pin GPIO dengan fungsi-fungsi alternatif seperti I2C, SPI, UART dll. Kita dapat menggunakan pin
GPIO untuk aplikasi kita.
2. Penomoran Pin
Kita harus mendefinisikan pin GPIO yang ingin kita gunakan sebagai output atau input. Tetapi Raspberry
Pi memiliki dua cara untuk menentukan nomor pin, yaitu sebagai berikut:
1. Penomoran GPIO
2. Penomoran Fisik
Dalam Penomoran GPIO, nomor pin mengacu pada nomor pada Broadcom SoC (System on Chip). Jadi,
kita harus selalu mempertimbangkan pemetaan pin untuk menggunakan pin GPIO. Sedangkan dalam
Physical Numbering, nomor pin mengacu pada pin header P1-40 pin pada Raspberry Pi Board. Penomoran
fisik di atas sederhana karena kita dapat menghitung nomor pin pada header P1 dan menetapkannya
sebagai GPIO. Tetapi, kita masih harus mempertimbangkan diagram konfigurasi pin yang ditunjukkan di
atas untuk mengetahui pin GPIO dan mana yang VCC dan GND.
Gambar 2. Raspi dengan interface
Sekarang, mari kontrol LED menggunakan switch yang terhubung ke Raspberry Pi. Di sini, kami
menggunakan Python dan C (WiringPi) untuk kontrol ON-OFF LED.
KONTROL LED MENGGUNAKAN PYTHON
Sekarang, mari ON dan OFF LED menggunakan Python di Raspberry Pi. Switch digunakan untuk
mengontrol LED ON-OFF.
3. Gambar 3. Raspi dengan Python Programming
Penjelasan :
Fungsi yang digunakan:
RPi.GPIO
Untuk menggunakan pin GPIO Raspberry Pi dengan Python, kita perlu mengimpor paket library RPi.GPIO
yang memiliki kelas untuk mengontrol GPIO. Paket Python RPi.GPIO ini sudah diinstal pada Raspbian OS.
Jadi, kita tidak perlu menginstalnya secara eksternal. Hanya, kita harus memasukkan library dalam
program kita untuk menggunakan fungsi untuk akses GPIO menggunakan Python. Ini diberikan sebagai
berikut.
impor RPi.GPIO sebagai GPIO
GPIO.setmode (Sistem Penomoran Pin)
Fungsi ini digunakan untuk mendefinisikan sistem penomoran Pin yaitu penomoran GPIO atau penomoran
fisik.
Dalam RiPi.GPIO, penomoran GPIO diidentifikasi oleh BCM sedangkan penomoran fisik diidentifikasi oleh
BOARD
Sistem Penomoran Pin = BOARD / BCM
Misalnya. Jika kita menggunakan pin nomor 40 dari header P1 sebagai pin GPIO yang harus kita konfigurasi
sebagai keluaran,
Dalam BCM,
GPIO.setmode (GPIO.BCM)
4. GPIO.setup (21, GPIO.OUT)
Dalam BOARD,
GPIO.setmode (GPIO.BOARD)
GPIO.setup (40, GPIO.OUT)
GPIO.setup (channel, direction, initial value, pull up / pull down)
Fungsi ini digunakan untuk mengatur direction pin GPIO sebagai input / output.
channel - nomor pin GPIO sesuai sistem penomoran.
direction - atur pin GPIO sebagai Input atau Output.
initial value - dapat memberikan nilai awal (initial value)
pull up / pull down - enable pull up or pul down jika perlu
Beberapa contoh diberikan sebagai berikut,
GPIO sebagai Output
GPIO.setup (channel, GPIO.OUT)
GPIO sebagai Input
GPIO.setup (channel, GPIO.IN)
GPIO sebagai Output dengan nilai awal (initial value)
GPIO.setup (channel, GPIO.OUT, awal = GPIO.HIGH)
GPIO sebagai Input dengan Pull up resistor
GPIO.setup (channel, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.output (channel, state)
Fungsi ini digunakan untuk mengatur status keluaran pin GPIO.
channel - nomor pin GPIO sesuai sistem penomoran.
state – state output: HIGH atau LOW dari pin GPIO
misalnya
GPIO.output (7, GPIO.HIGH)
GPIO.input (channel)
Fungsi ini digunakan untuk membaca nilai pin GPIO.
misalnya
GPIO.input (9)
5. KONTROL LED MENGGUNAKAN C (WIRINGPI)
Kita dapat mengakses Raspberry Pi GPIO menggunakan C. Di sini, kita menggunakan library WiringPi untuk
mengakses Raspberry Pi GPIO menggunakan C. Sebelum menerapkan blink LED menggunakan wiringPi,
kita dapat merujuk cara menggunakan library WiringPi.
Program :
AKSES RASPBERRY PI HOME SCREEN PADA LAYAR LAPTOP/PC MENGGUNAKAN LAN (ETHERNET)
Raspberry Pi adalah komputer kecil dengan ketentuan aksesibilitas GPIO. Tetapi untuk mengakses
Raspberry Pi, kita memerlukan layar(LCD) untuk masuk dan melakukan tugas-tugas lainnya. Jika kita
memiliki tampilan Digital atau layar TV maka kita dapat menggunakannya untuk mengakses Raspberry Pi.
Tetapi, jika kita tidak memiliki layar LCD, kita dapat menggunakan layar Laptop/PC kita dengan Raspberry
Pi untuk mengakses CLI (Command Line Interface) atau GUI (Graphical User Interface) dari Raspberry Pi.
Karena Raspberry Pi memiliki On-board Ethernet Port, kita dapat menggunakan port ini untuk
menghubungkan Laptop. Itu tidak memerlukan tampilan tambahan selain dari tampilan Laptop.
Di sini, kita akan mengakses layar LCD beranda Raspberry Pi menggunakan Laptop melalui port LAN /
Ethernet.
Cara menggunakan Layar Laptop untuk mengakses Raspberry Pi menggunakan LAN
1. Buka Control Panel dan pilih Network and Sharing Center.
#include <wiringPi.h>
#include <stdio.h>
int LED = 26; /* GPIO26 as per wiringPi, GPIO12 as per BCM,
pin no.32 */
int switch_input = 21; /* GPIO21 as per WiringPi, GPIO5 as per
BCM, pin no.29 */
int main(){
wiringPiSetup(); /* initialize wiringPi setup */
pinMode(LED,OUTPUT); /* set GPIO as output */
pullUpDnControl(switch_input, PUD_UP);
while (1){
if(digitalRead(switch_input))
digitalWrite(LED,LOW); /* write LOW on GPIO */
else
digitalWrite(LED, HIGH); /* write HIGH on GPIO */
}
}
6. 2. Lalu, pilih opsi change adapter settings option
3. Setelah memilih change adapter settings, kita akan mendapatkan jendela seperti yang
ditunjukkan di bawah ini:
4. Sekarang, periksa properti koneksi LAN dan Jaringan Nirkabel. Klik dua kali pada koneksi Jaringan
Nirkabel dan pilih opsi properti seperti yang ditunjukkan di bawah ini.
8. 6. Setelah memilih properti IPv4, pastikan untuk mendapatkan alamat IP secara otomatis dan
mendapatkan opsi DNS server secara otomatis dipilih seperti yang ditunjukkan di bawah ini.
7. Lakukan proses yang sama untuk Local Area Network (LAN).
8. Sekarang, pilih Local Area Connection (LAN) dan Wireless Connection Network dan buat Bridge
Connection antara keduanya. Ini dapat dilakukan dengan mengklik kanan pada fungsi sebagai
berikut.
9. Sekarang, Bridge terbuat di antara keduanya seperti yang ditunjukkan pada gambar di bawah ini.
9. 10. Sekarang, sambungkan kabel LAN dengan satu ujung terhubung ke Raspberry Pi dan ujung lainnya
terhubung ke Laptop.
Sekarang, periksa IP Anda dan IP Gateway Default dengan memasukkan perintah berikut di
command prompt windows.
ipconfig
11. Kita dapat melihat dalam gambar di atas IP gateway default adalah 192.168.0.1. Jadi, IP dinamis
Raspberry Pi kami akan berada di kisaran 192.168.0.2 - 192.168.0.255 seperti di jaringan yang
sama. Kita perlu mengetahui alamat IP Raspberry Pi untuk masuk ke Raspberry Pi menggunakan
SSH (Shell Script). Kita dapat menemukan alamat IP ini menggunakan Aplikasi "Advanced IP
Scanner". Instal aplikasi ini dan buka. Setelah membuka aplikasi ini, kita akan melihat jendela
seperti yang ditunjukkan di bawah ini,
10. 12. Untuk mencari alamat IP yang ditetapkan untuk Raspberry Pi, ketikkan rentang alamat IP jaringan
seperti yang ditunjukkan pada gambar di bawah ini
Dan klik tombol Scan.
13. Kami akan mendapatkan alamat IP dari semua perangkat yang terhubung ke jaringan seperti yang
ditunjukkan di bawah ini,
11. 14. Pada gambar di atas, kita dapat melihat alamat IP Raspberry Pi, untuk Login ke Raspberry Pi,
gunakan Putty untuk menggunakan port SSH. Buka putty dan masukkan alamat IP Raspberry Pi di
field Host Name. Demonstrasi berikut akan menunjukkan cara Masuk ke Raspberry Pi
menggunakan SSH.
https://youtu.be/RtzVl8bKvFQ
Hore!!! berhasil masuk ke Antarmuka Baris Perintah (CLI) Raspberry Pi dan dapat mengakses
Internet saat terhubung ke Raspberry Pi melalui LAN.
15. Masih menghadapi Masalah dalam Mengakses Internet?
Setelah sharing wi-fi dengan Raspberry Pi melalui LAN (ethernet), kita perlu menguji apakah
internet kita berfungsi atau tidak. Kami dapat menguji ini dengan menggunakan permintaan ping
seperti yang ditunjukkan di bawah ini,
misalnya
ping www.google.com
Jika permintaan ping berhasil maka internet kita berfungsi dengan baik. Tapi, jika tidak merespons
maka kita perlu menyelesaikan masalah konektivitas internet ini.
12. Untuk mengatasi masalah ini, kita dapat melakukan hal-hal berikut,
Tambahkan dns-nameserver dan nameserver secara manual. Untuk melakukan ini buka
resolv.conf menggunakan perintah berikut.
sudo nano /etc/resolv.conf
Tambahkan gateway default sebagai dns-nameserver dan 8.8.8.8 sebagai nameserver yang
ditunjukkan di bawah ini,
16. Dan simpan konfigurasi di atas, untuk membuat perubahan ini permanen, masukkan perintah
berikut :
sudo chattr +I /etc/resolv.conf
Dan reboot Raspberry Pi.
Sekarang, Anda dapat mengakses internet melalui Raspberry Pi.
AKSES RASPBERRY PI HOME SCREEN PADA LAYAR LAPTOP/PC SECARA NIRKABEL
Begitu Raspberry Pi sudah memiliki IP Address, maka sekarang kita bisa mengakses raspberry Pi
menggunakan aplikasi SSH Client via notebook/laptop. Jika menggunakan sistem operasi windows, maka
terlebih dahulu harus memiliki software Putty yang terinstall pada komputer, jika belum punya silahkan
unduh disini dan install terlebih dahulu.
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Syarat berikutnya, pastikan komputer PC juga terhubung dengan jaringan LAN yang sama dengan
Raspberry Pi. Bila menggunakan modem, maka baik notebook dan Raspberry Pi harus berada dalam
13. jaringan wifi modem tersebut. Untuk memastikan apakah PC kita bisa terhubung dengan Raspberry PI
atau tidak, lakukan ping via command prompt dari laptop ke alamat IP Raspberry PI anda.
ping 192.xxx.xxx.xxx (Class C)
Jika di-ping tidak mengalami masalah, maka mulai buka putty yang tadi telah kita install dan masukan
konfigurasi berikut :
1. Pada Host Name (or IP address) isikan alamat IP dari Raspberry Pi
2. Gunakan Port default 22
3. Pada Connection Type pilih SSH
4. Lalu klik button Open untuk memulai koneksi
Untuk koneksi pertama, anda akan melihat peringatan dari SSH. abaikan saja, klik OK. Kemudian akan
muncul tampilan layaknya command prompt sebagai berikut :
14. Masukan user id dan password Raspberry Pi anda. Dan selamat, kini anda sekarang memiliki akses nirkabel dengan
Raspberry Pi.
C. Peralatan dan Bahan
1. Raspi 3 Model B+
2. Push Button @2
3. Led 3mm @2
4. Kabel HDMI
5. Power Supply (Charger)
6. Mouse, Keyboard
7. Koneksi Internet
8. Kabel RJ45
D. Percobaan
1. Install Advanced IP Scanner di laptop anda!
*tulis jawaban disini
2. Install putty di raspi dan laptop anda !
*tulis jawaban disini
3. Lakukan semua percobaan diatas, dan tulislah step by step caranya ! (disertai penjelasan analisa,
foto screenshot, skematik fritzing dll).
*tulis jawaban disini
4. Buatlah program dengan raspberry :
a. Buatlah rangkaian hardware yang terhubung dengan raspi yaitu 2 switch (misalnya : SA dan SB)
dan 2 led (misalnya : LA dan LB) di project board dan fritzing!
b. Buatlah program supaya 2 led (LA dan LB) bergantian menyala dengan delay 500ms !
c. Buatlah program dimana LA ON ketika SA ON dan sebaliknya, juga LB ON ketika SB ON dan
sebaliknya!
d. Buatlah program debouncing dimana ketika SA ditekan maka LA akan ON terus, LA akan OFF
jika SA ditekan lagi!
*tulis jawaban disini
E. Tugas
1. Apa yang dimaksud dengan host name?
2. Jelaskan yang dimaksud dengan port pada komputer?
3. Apa yang dimaksud dengan :
a. Ipconfig/ifconfig
15. b. Gateway
c. IP dinamis
d. LAN
4. Apa yang dimaksud dengan :
a. Pull up :
b. Pull down :
5. Berapa tegangan dan arus charger yang dibolehkan untuk meng-ON-kan modul Raspi?
F. Referensi
1. https://www.electronicwings.com/raspberry-pi/how-to-use-wiringpi-library-on-raspberry-pi
2. https://www.raspberrypi.org/documentation/configuration/use-a-proxy.md
3. https://embeddednesia.com/v1/memulai-pemrograman-c-c-pada-raspberry-pi-bagian-1/