Eksperimen Kontrol Relay via Web Server Menggunakan Raspberry Pi Pico W

Raspberry Pi Pico W tidak hanya dapat digunakan untuk membaca sensor atau mengendalikan LED, tetapi juga bisa dihubungkan ke jaringan WiFi untuk membuat sistem kontrol berbasis web. Salah satu eksperimen menarik yang dapat dilakukan adalah mengontrol relay melalui halaman web menggunakan Raspberry Pi Pico W. Dengan proyek ini, pengguna dapat menyalakan dan mematikan relay melalui browser pada laptop maupun smartphone. Raspberry Pi Pico W akan berperan sebagai web server sederhana yang menerima permintaan dari browser, kemudian mengubah status GPIO untuk mengendalikan relay. Proyek kontrol relay Raspberry Pi Pico W melalui web ini dapat menjadi dasar untuk membuat berbagai sistem, seperti smart home, kontrol lampu jarak jauh dalam jaringan lokal, kontrol perangkat elektronik, dan eksperimen Internet of Things atau IoT.

Apa Itu Kontrol Relay via Web?

Kontrol relay via web adalah metode mengendalikan relay menggunakan halaman web yang dapat diakses melalui browser. Pada proyek ini, alur kerjanya adalah sebagai berikut:

1. Raspberry Pi Pico W terhubung ke jaringan WiFi.

2. Pico W mendapatkan alamat IP dari jaringan.

3. Program membuat web server sederhana.

4. Browser mengakses alamat IP Raspberry Pi Pico W.

5. Halaman web menampilkan tombol ON dan OFF.

6. Ketika tombol ditekan, browser mengirimkan permintaan ke Pico W.

7. Pico W mengubah status GPIO.

8. GPIO mengendalikan modul relay.

Dengan cara ini, relay tidak perlu dikendalikan menggunakan tombol fisik karena perintah dapat diberikan melalui web browser.

 

Baca juga: Menggabungkan LDR dan LED untuk Sistem Lampu Otomatis 

Komponen yang Dibutuhkan

Sebelum memulai eksperimen web control relay dengan Raspberry Pi Pico W, siapkan beberapa komponen berikut.

- 1 buah Raspberry Pi Pico W

- 1 buah modul relay

- Kabel jumper

- Kabel USB

- Laptop atau komputer

- Jaringan WiFi

- Smartphone atau perangkat lain yang memiliki browser

Catatan Penting Mengenai Modul Relay

Sebaiknya gunakan modul relay yang sudah memiliki rangkaian driver, misalnya modul relay 1 channel. Modul seperti ini biasanya memiliki tiga pin input:

- VCC

- GND

- IN

Relay digunakan sebagai sakelar elektronik untuk mengendalikan perangkat lain.

Peringatan: Untuk percobaan awal, sebaiknya gunakan relay tanpa langsung menghubungkannya ke listrik PLN. Tegangan AC PLN berbahaya. Pastikan Anda memahami keselamatan kelistrikan sebelum menghubungkan relay ke perangkat bertegangan tinggi.

Cara Kerja Sistem Kontrol Relay Raspberry Pi Pico W

Sistem kontrol relay menggunakan Raspberry Pi Pico W bekerja dengan memanfaatkan koneksi WiFi dan web server sederhana. Pengguna dapat mengakses sistem melalui smartphone atau laptop yang terhubung ke jaringan WiFi yang sama dengan Pico W. Ketika pengguna membuka alamat IP Raspberry Pi Pico W melalui browser, Pico W akan menjalankan web server dan mengirimkan halaman HTML yang berisi antarmuka kontrol. Pada halaman tersebut tersedia tombol untuk mengatur kondisi relay, yaitu Relay ON dan Relay OFF.

 

Ketika tombol Relay ON ditekan, browser akan mengirimkan permintaan kepada Raspberry Pi Pico W. Pico W kemudian memproses permintaan tersebut dan mengubah kondisi GPIO yang terhubung ke modul relay sehingga relay aktif. Sebaliknya, ketika tombol Relay OFF ditekan, Raspberry Pi Pico W menerima permintaan untuk menonaktifkan relay. GPIO kemudian diubah ke kondisi yang sesuai sehingga relay menjadi tidak aktif.

 

Relay berfungsi sebagai saklar elektronik yang memungkinkan Raspberry Pi Pico W mengendalikan perangkat elektronik yang terhubung dengannya. Dengan mekanisme tersebut, pengguna dapat mengontrol perangkat elektronik melalui browser tanpa harus menekan saklar relay secara langsung.

Prinsip Web Server pada Raspberry Pi Pico W

Dalam proyek ini, Raspberry Pi Pico W bertindak sebagai server, sedangkan browser bertindak sebagai client. Misalnya Pico W mendapatkan alamat IP 10.52.3.139. Maka alamat tersebut dapat dibuka melalui browser http://10.52.3.139. Setelah browser mengakses alamat tersebut, Raspberry Pi Pico W akan menerima permintaan. Contohnya: GET /relay/on. Permintaan tersebut dapat digunakan untuk menyalakan relay. Sedangkan GET /relay/off digunakan untuk mematikan relay.

Rangkaian Relay dengan Raspberry Pi Pico W

Pada contoh ini, pin input relay akan dihubungkan ke GPIO 15 Raspberry Pi Pico W.

Koneksi Raspberry Pi Pico W ke Modul Relay


Raspberry Pi Pico W

Modul Relay

GPIO 15

IN

GND

GND

VBUS/5V*

VCC*


Perhatikan Tegangan Relay

Bagian VCC relay harus disesuaikan dengan jenis modul relay yang digunakan. Banyak modul relay menggunakan tegangan 5V, sehingga jangan langsung berasumsi bahwa semua relay dapat bekerja dengan sumber 3,3V dari Pico W. Selain itu, beberapa modul relay memiliki karakteristik input yang berbeda. Ada yang dapat menerima sinyal kontrol 3,3V dengan baik, sementara modul tertentu mungkin memerlukan konfigurasi tambahan. Oleh karena itu, periksa spesifikasi modul relay sebelum melakukan penyambungan.

Diagram Koneksi Sederhana


*Sesuaikan dengan kebutuhan dan spesifikasi modul relay yang digunakan.

Persiapan Raspberry Pi Pico W untuk Web Server

Untuk menjalankan web server pada Raspberry Pi Pico W, Anda dapat menggunakan MicroPython dan mengunggah program melalui Thonny IDE. Pastikan Raspberry Pi Pico W sudah menggunakan firmware MicroPython yang mendukung fitur WiFi. Anda juga perlu mengetahui:

- Nama WiFi atau SSID

- Password WiFi

Informasi tersebut nantinya dimasukkan ke dalam program.

Mengatur Nama WiFi dan Password

Cari bagian berikut pada kode:

 

SSID = "NAMA_WIFI"

PASSWORD = "PASSWORD_WIFI"

 

Kemudian ubah menjadi:

 

SSID = "WiFi_Rumah"

PASSWORD = "password_wifi"

 

Gunakan nama dan password jaringan WiFi Anda.

Pastikan perangkat yang digunakan untuk membuka halaman web berada pada jaringan yang sama dengan Raspberry Pi Pico W.

Kode Program Web Control Relay Raspberry Pi Pico W

Berikut contoh program lengkap untuk mengontrol relay melalui web menggunakan Raspberry Pi Pico W.

 

import network

import socket

import time

from machine import Pin


# =========================

# PENGATURAN WIFI

# =========================

SSID = "NAMA_WIFI"

PASSWORD = "PASSWORD_WIFI"


# =========================

# PENGATURAN RELAY

# =========================

relay = Pin(15, Pin.OUT)


# Status awal relay

relay.value(0)


# =========================

# KONEKSI WIFI

# =========================

wifi = network.WLAN(network.STA_IF)

wifi.active(True)


print("Menghubungkan ke WiFi...")


wifi.connect(SSID, PASSWORD)


while not wifi.isconnected():

    print("Menunggu koneksi WiFi...")

    time.sleep(1)


print("WiFi berhasil terhubung!")

print("IP Address:", wifi.ifconfig()[0])


# =========================

# MEMBUAT SOCKET WEB SERVER

# =========================

address = socket.getaddrinfo("0.0.0.0", 80)[0][-1]


server = socket.socket()

server.bind(address)

server.listen(1)


print("Web server berjalan...")

print("Buka browser dan akses:")

print("http://" + wifi.ifconfig()[0])


# =========================

# HALAMAN HTML

# =========================

def web_page():

    if relay.value() == 1:

        status = "ON"

    else:

        status = "OFF"


    html = f"""

    <!DOCTYPE html>

    <html>

    <head>

        <meta charset="UTF-8">

        <title>Kontrol Relay Pico W</title>

    </head>


    <body>

        <h1>Web Control Relay</h1>


        <h2>Status Relay: {status}</h2>


        <p>

            <a href="/on">

                <button>NYALAKAN RELAY</button>

            </a>

        </p>


        <p>

            <a href="/off">

                <button>MATIKAN RELAY</button>

            </a>

        </p>


    </body>

    </html>

    """


    return html


# =========================

# LOOP WEB SERVER

# =========================

while True:

    client, client_address = server.accept()


    print("Client terhubung:", client_address)


    request = client.recv(1024)

    request = request.decode()


    print("Request:")

    print(request)


    # Menyalakan relay

    if "GET /on" in request:

        relay.value(1)

        print("Relay ON")


    # Mematikan relay

    elif "GET /off" in request:

        relay.value(0)

        print("Relay OFF")


    # Mengirim halaman web

    response = web_page()


    client.send("HTTP/1.1 200 OK\r\n")

    client.send("Content-Type: text/html\r\n")

    client.send("Connection: close\r\n\r\n")

    client.sendall(response)


    client.close()

 

Penjelasan Kode Program

1. Mengimpor Library yang Dibutuhkan

Pada bagian awal terdapat beberapa library:

 

import network

import socket

import time

from machine import Pin

 

Fungsi masing-masing adalah:

- network digunakan untuk menghubungkan Pico W ke WiFi.

- socket digunakan untuk membuat web server.

- time digunakan untuk memberikan jeda.

- Pin digunakan untuk mengontrol GPIO.

2. Mengatur GPIO untuk Relay

Relay dihubungkan ke GPIO 15:

 

relay = Pin(15, Pin.OUT)

 

GPIO tersebut diatur sebagai output. Selanjutnya, status awal relay diatur:

 

relay.value(0)

 

Artinya, GPIO diberikan nilai LOW. Namun, perlu diperhatikan bahwa beberapa modul relay bersifat active LOW. Pada modul active LOW, kondisi berikut dapat terjadi:

GPIO LOW  = Relay ON

GPIO HIGH = Relay OFF

Sedangkan pada modul active HIGH:

GPIO HIGH = Relay ON

GPIO LOW  = Relay OFF

Jika kondisi relay Anda terbalik, ubah bagian program relay.value(1) dan relay.value(0) sesuai karakteristik modul relay yang digunakan.

Menghubungkan Raspberry Pi Pico W ke WiFi

Bagian berikut digunakan untuk membuat koneksi WiFi:

 

wifi = network.WLAN(network.STA_IF)

wifi.active(True)


wifi.connect(SSID, PASSWORD)

 

Program kemudian menunggu sampai Pico W berhasil mendapatkan koneksi:

 

while not wifi.isconnected():

    time.sleep(1)

 

Setelah berhasil terhubung, alamat IP akan ditampilkan pada Shell Thonny:

WiFi berhasil terhubung!

IP Address: 10.52.3.xxx

Alamat IP tersebut digunakan untuk membuka web control relay.

Membuat Web Server pada Port 80

Web server dibuat menggunakan socket:

 

address = socket.getaddrinfo("0.0.0.0", 80)[0][-1]


server = socket.socket()

server.bind(address)

server.listen(1)

 

Port 80 merupakan port standar untuk layanan HTTP. Oleh karena itu, Anda dapat mengakses Pico W menggunakan alamat IP tanpa harus menuliskan nomor port. Contohnya: http://10.52.3.139.

Cara Mengakses Kontrol Relay Melalui Browser

Setelah program dijalankan, buka Shell Thonny.

Contoh output:

 


Selanjutnya, buka browser pada laptop atau smartphone yang terhubung ke jaringan WiFi yang sama. Masukkan alamat: http://10.52.3.139. Tentu saja, sesuaikan alamat IP dengan IP yang ditampilkan oleh Raspberry Pi Pico W. Halaman web akan menampilkan:

 

Menyalakan Relay dari Browser

Ketika tombol NYALAKAN RELAY ditekan, browser akan mengakses /on. Pico W mendeteksi bagian berikut:

 

if "GET /on" in request:

    relay.value(1)

 

Kemudian GPIO 15 berubah status untuk mengendalikan relay.

Mematikan Relay dari Browser

Ketika tombol MATIKAN RELAY ditekan, browser mengirimkan permintaan /off. Program akan menjalankan:

 

elif "GET /off" in request:

    relay.value(0)

 

Status GPIO berubah dan relay kembali dimatikan.

Mengapa Status Relay Bisa Terbalik?

Salah satu hal yang cukup sering ditemui saat menggunakan relay dengan Raspberry Pi Pico W adalah kondisi logika yang terbalik. Contohnya, tombol ON justru mematikan relay. Hal tersebut biasanya terjadi karena modul relay menggunakan sistem active LOW. Jika relay Anda active LOW, Anda dapat menggunakan konfigurasi seperti berikut:

 

# Relay ON

relay.value(0)


# Relay OFF

relay.value(1)

 

Kemudian ubah bagian pemeriksaan URL menjadi:

 

if "GET /on" in request:

    relay.value(0)


elif "GET /off" in request:

    relay.value(1)

 

Dengan demikian, logika program disesuaikan dengan karakteristik modul relay.

Pengembangan Proyek Kontrol Relay Pico W

Eksperimen kontrol relay via web menggunakan Raspberry Pi Pico W dapat dikembangkan menjadi proyek yang lebih kompleks.

1. Menambahkan Relay Lebih dari Satu

Misalnya menggunakan dua relay:

 

relay1 = Pin(15, Pin.OUT)

relay2 = Pin(14, Pin.OUT)

 

Kemudian halaman web dapat memiliki tombol:

- Relay 1 ON

- Relay 1 OFF

- Relay 2 ON

- Relay 2 OFF

Proyek ini dapat digunakan sebagai dasar sistem kontrol beberapa perangkat melalui browser.

2. Membuat Tampilan Web Lebih Menarik

Halaman HTML dapat dikembangkan menggunakan:

- CSS

- Tombol dengan ukuran lebih besar

- Indikator status

- Tampilan responsif

- Informasi alamat IP

- Kontrol beberapa perangkat

Dengan demikian, web server Raspberry Pi Pico W tidak hanya berfungsi sebagai eksperimen sederhana, tetapi dapat menjadi antarmuka kontrol untuk proyek IoT.

3. Menggabungkan dengan Sensor

Sistem juga dapat dikembangkan dengan menambahkan sensor, misalnya:

- LDR

- DHT11 atau DHT22

- PIR

- Sensor suhu

- Sensor ultrasonik

Contohnya, relay dapat dikontrol dengan dua cara:

- Mode otomatis berdasarkan sensor

- Mode manual melalui halaman web

Konsep ini dapat digunakan untuk membuat sistem smart home berbasis Raspberry Pi Pico W.

Troubleshooting Web Control Relay Raspberry Pi Pico W

1. Pico W Tidak Terhubung ke WiFi

Periksa kembali:

- Nama SSID

- Password WiFi

- Jaringan WiFi aktif

- Raspberry Pi Pico W berada dalam jangkauan WiFi

Pastikan pengaturan berikut sudah benar:

 

SSID = "NAMA_WIFI"

PASSWORD = "PASSWORD_WIFI"

 

2. Alamat IP Tidak Bisa Dibuka

Pastikan perangkat yang digunakan untuk membuka halaman web berada pada jaringan yang sama dengan Pico W.

Contohnya:

Pico W → WiFi Rumah

Laptop → WiFi Rumah

Jika laptop menggunakan jaringan yang berbeda, alamat IP lokal Pico W kemungkinan tidak dapat diakses.

Selain itu, periksa kembali alamat IP yang ditampilkan pada Shell.

3. Relay Tidak Menyala

Periksa beberapa hal berikut:

- Kabel GPIO sudah benar.

- Pin IN relay terhubung ke GPIO yang sesuai.

- GND terhubung dengan benar.

- Sumber daya relay sesuai spesifikasi.

- Modul relay menggunakan active LOW atau active HIGH.

Jika program menggunakan relay.value(1) tetapi relay tidak aktif, coba lakukan pengujian dengan relay.value(0) untuk mengetahui karakteristik logika modul relay.

Keunggulan Menggunakan Raspberry Pi Pico W untuk Kontrol Relay Berbasis Web

Beberapa keuntungan menggunakan Raspberry Pi Pico W pada proyek ini adalah:

1. Memiliki Koneksi WiFi

Tidak seperti Raspberry Pi Pico standar, Pico W memiliki fitur WiFi, sehingga dapat digunakan untuk membuat proyek berbasis jaringan.

2. Dapat Dikontrol dari Browser

Pengguna tidak memerlukan aplikasi khusus. Cukup menggunakan browser untuk membuka alamat IP Pico W.

3. Cocok untuk Eksperimen IoT

Proyek ini dapat menjadi dasar untuk mempelajari:

- Web server

- HTTP request

- WiFi

- GPIO

- Kontrol perangkat

- Internet of Things

4. Mudah Dikembangkan

Sistem dapat dikembangkan untuk mengendalikan lebih banyak perangkat dan ditambahkan berbagai sensor.

 

Baca juga: Mengirim Data Jarak HC-SR04 dari Raspberry Pi Pico W ke Web Server melalui WiFi

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.

Posting Komentar

0 Komentar