Raspberry Pi Pico W merupakan mikrokontroler yang memiliki fitur WiFi sehingga dapat digunakan untuk berbagai proyek Internet of Things (IoT). Dengan koneksi tersebut, Pico W tidak hanya dapat membaca sensor, tetapi juga dapat mengirimkan data sensor ke perangkat lain melalui jaringan.
Salah satu eksperimen yang menarik adalah menghubungkan sensor ultrasonik HC-SR04 dengan Raspberry Pi Pico W, kemudian mengirimkan hasil pengukuran jarak ke web server.
Pada proyek ini, HC-SR04 digunakan untuk mengukur jarak suatu objek. Raspberry Pi Pico W akan membaca hasil pengukuran tersebut, menghubungkan diri ke jaringan WiFi, lalu mengirimkan data jarak ke web server menggunakan HTTP request. Data yang diterima server kemudian dapat ditampilkan pada halaman web. Konsep ini dapat menjadi dasar untuk membuat berbagai proyek monitoring jarak berbasis IoT, seperti pemantauan ketinggian air, tempat sampah pintar, sistem parkir sederhana, hingga sistem monitoring objek.
Gambaran Sistem
Sistem yang dibuat memiliki alur kerja yang cukup sederhana. Sensor HC-SR04 digunakan untuk mengukur jarak objek yang berada di depannya. Hasil pengukuran kemudian dibaca oleh Raspberry Pi Pico W dan dikonversi menjadi nilai jarak dalam satuan sentimeter. Setelah mendapatkan data jarak, Raspberry Pi Pico W menggunakan koneksi WiFi untuk mengirimkan data tersebut ke web server.
Data yang diterima kemudian dapat diproses dan ditampilkan pada halaman web, sehingga pengguna dapat melihat hasil pengukuran sensor melalui browser. Dengan demikian, prosesnya dimulai dari HC-SR04 yang mengukur jarak, kemudian Raspberry Pi Pico W membaca dan mengolah data, lalu data dikirim melalui WiFi menuju web server untuk ditampilkan pada halaman web.
Baca juga: Mengenal PWM Frequency dan Duty Cycle di Raspberry Pi Pico
Komponen yang Dibutuhkan
Untuk membuat eksperimen ini, beberapa komponen yang diperlukan adalah:
- Raspberry Pi Pico W
- Sensor ultrasonik HC-SR04
- Resistor untuk voltage divider
- Breadboard
- Kabel jumper
- Kabel USB
- Laptop atau komputer
- Jaringan WiFi
- Web server yang mendukung PHP
HC-SR04 digunakan untuk mengukur jarak berdasarkan pantulan gelombang ultrasonik.
Cara Kerja Sensor Ultrasonik HC-SR04
HC-SR04 memiliki dua bagian utama pada sisi depannya, yaitu transmitter dan receiver. Transmitter digunakan untuk memancarkan gelombang ultrasonik. Gelombang tersebut akan bergerak menuju objek dan dipantulkan kembali. Receiver kemudian menerima pantulan tersebut. Raspberry Pi Pico W menghitung waktu yang dibutuhkan gelombang untuk pergi menuju objek dan kembali ke sensor. Secara sederhana:
Jarak = waktu tempuh × kecepatan suara ÷ 2
Pembagian dengan angka 2 dilakukan karena gelombang menempuh dua perjalanan, yaitu dari sensor menuju objek dan kembali lagi ke sensor.
Koneksi HC-SR04 dengan Raspberry Pi Pico W
HC-SR04 memiliki beberapa pin, yaitu VCC, TRIG, ECHO, dan GND. Contoh koneksi yang digunakan:
Perhatian pada Pin ECHO
Bagian ini penting ketika menggunakan HC-SR04 dengan Raspberry Pi Pico W. HC-SR04 umumnya bekerja dengan tegangan 5V dan sinyal pada pin ECHO dapat mencapai sekitar 5V. Sedangkan GPIO Raspberry Pi Pico W bekerja pada level logika 3,3V. Oleh karena itu, jangan langsung menghubungkan ECHO HC-SR04 ke GPIO Pico W. Gunakan voltage divider untuk menurunkan tegangan sinyal ECHO menjadi level yang aman bagi GPIO Pico W. Salah satu contoh nilai resistor yang dapat digunakan adalah R1 = 10 kΩ dan R2 = 20 kΩ. Dengan pembagi tegangan tersebut, sinyal dari ECHO dapat diturunkan ke level yang lebih sesuai untuk input GPIO Pico W.
Menyiapkan Web Server
Setelah bagian hardware selesai, diperlukan web server untuk menerima data dari Raspberry Pi Pico W. Pada contoh ini digunakan PHP sebagai script sederhana untuk menerima parameter data. Buat file dengan nama sensor.php. Kemudian masukkan kode berikut:
<?php
if (isset($_GET['distance'])) {
$distance = $_GET['distance'];
echo "Data berhasil diterima<br>";
echo "Jarak: " . htmlspecialchars($distance) . " cm";
} else {
echo "Data jarak belum diterima";
}
?>
Script tersebut akan memeriksa apakah parameter distance sudah dikirimkan. Jika data tersedia, server akan menampilkan nilai jarak. Sebagai contoh, jika Pico W mengirim https://domain-anda.com/sensor.php?distance=25.6, maka web server akan memberikan respons:
Data berhasil diterima
Jarak: 25.6 cm
Alamat tersebut hanyalah contoh. Sesuaikan domain-anda.com dengan alamat web server yang digunakan.
Program Raspberry Pi Pico W
Program Raspberry Pi Pico W dapat dibuat menggunakan MicroPython dan dijalankan melalui Thonny IDE. Program berikut melakukan beberapa tugas:
1. Menghubungkan Pico W ke WiFi.
2. Membaca sensor HC-SR04.
3. Menghitung jarak objek.
4. Membuat URL berisi data jarak.
5. Mengirim data ke web server.
6. Menampilkan respons server pada Thonny Shell.
Kode MicroPython
import network
import time
import machine
import urequests
# Konfigurasi WiFi
SSID = "NAMA_WIFI"
PASSWORD = "PASSWORD_WIFI"
# URL web server
SERVER_URL = "https://domain-anda.com/sensor.php"
# Pin HC-SR04
TRIG = machine.Pin(3, machine.Pin.OUT)
ECHO = machine.Pin(2, machine.Pin.IN)
# Fungsi membaca jarak
def baca_jarak():
TRIG.low()
time.sleep_us(2)
TRIG.high()
time.sleep_us(10)
TRIG.low()
durasi = machine.time_pulse_us(ECHO, 1)
# Menghitung jarak dalam cm
jarak = (durasi * 0.0343) / 2
return round(jarak, 2)
# Mengaktifkan WiFi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
print("Menghubungkan ke WiFi...")
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
time.sleep(1)
print("Menunggu koneksi...")
print("WiFi terhubung")
print("IP Pico W:", wlan.ifconfig()[0])
# Loop utama
while True:
try:
# Membaca jarak
jarak = baca_jarak()
print("Jarak:", jarak, "cm")
# Membuat URL
url = SERVER_URL + "?distance=" + str(jarak)
print("Mengirim data ke server...")
# Mengirim HTTP GET
response = urequests.get(url)
print("Respons server:")
print(response.text)
response.close()
except Exception as e:
print("Terjadi error:", e)
# Tunggu 10 detik
time.sleep(10)
Penjelasan Program
1. Menghubungkan Pico W ke WiFi
Bagian berikut digunakan untuk mengatur koneksi WiFi:
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
Pico W akan mencoba terhubung menggunakan nama jaringan dan password yang telah ditentukan. Setelah berhasil terhubung, alamat IP Pico W dapat ditampilkan menggunakan:
print("IP Pico W:", wlan.ifconfig()[0])
Contoh output:
WiFi terhubung
IP Pico W: 192.168.1.10
2. Menentukan Pin HC-SR04
Pada program ini digunakan:
TRIG = machine.Pin(3, machine.Pin.OUT)
ECHO = machine.Pin(2, machine.Pin.IN)
Artinya:
- TRIG terhubung ke GP3.
- ECHO terhubung ke GP2 melalui voltage divider.
TRIG berfungsi sebagai output untuk memberikan trigger kepada sensor, sedangkan ECHO digunakan untuk menerima sinyal pantulan.
3. Mengirim Trigger
Untuk memulai pengukuran, Pico W memberikan pulsa singkat pada pin TRIG:
TRIG.low()
time.sleep_us(2)
TRIG.high()
time.sleep_us(10)
TRIG.low()
Pico W memberikan pulsa HIGH selama sekitar 10 mikrodetik.
HC-SR04 kemudian memancarkan gelombang ultrasonik.
4. Mengukur Waktu Pantulan
Durasi sinyal ECHO dibaca menggunakan:
durasi = machine.time_pulse_us(ECHO, 1)
Nilai tersebut menunjukkan berapa lama pin ECHO berada dalam kondisi HIGH. Nilai waktu kemudian digunakan untuk menghitung jarak.
5. Menghitung Jarak
Rumus yang digunakan dalam program jarak = (durasi * 0.0343) / 2. Angka 0.0343 merupakan pendekatan kecepatan suara dalam satuan cm/µs pada kondisi normal. Sedangkan pembagian dengan 2 dilakukan karena gelombang ultrasonik melakukan perjalanan pergi dan kembali. Hasil akhirnya dibulatkan menggunakan return round(jarak, 2). Contohnya: 25.63 cm.
6. Membuat URL Data Sensor
Setelah mendapatkan nilai jarak, program membuat URL:
url = SERVER_URL + "?distance=" + str(jarak)
Misalnya hasil pembacaan sensor adalah 25,63 cm, URL yang dikirim menjadi https://domain-anda.com/sensor.php?distance=25.63. Parameter distance berisi nilai hasil pembacaan HC-SR04.
7. Mengirim Data ke Web Server
Pengiriman dilakukan menggunakan response = urequests.get(url). Pico W membuat HTTP GET request menuju web server. Server kemudian membaca parameter distance menggunakan PHP. Respons dari server ditampilkan pada Thonny Shell print(response.text).
Contoh Hasil Pengujian
Jika objek berada pada jarak sekitar 20 cm dari sensor, Thonny Shell dapat menampilkan:
Jarak: 20.34 cm
Mengirim data ke server...
Respons server:
Data berhasil diterima
Jarak: 20.34 cm
Beberapa detik kemudian, Pico W melakukan pembacaan berikutnya.
Contoh:
Jarak: 21.12 cm
Mengirim data ke server...
Jarak: 21.12 cm
Perubahan nilai tersebut terjadi ketika posisi objek terhadap sensor berubah.
Alur Pengiriman Data
Secara keseluruhan, proses dalam proyek ini dapat diringkas sebagai berikut:
HC-SR04
│
│ Mengukur jarak
▼
Raspberry Pi Pico W
│
│ Membaca hasil pengukuran
▼
Menghubungkan ke WiFi
│
│ HTTP GET
▼
Web Server
│
│ PHP menerima parameter
▼
Data Jarak
Dengan mekanisme tersebut, Raspberry Pi Pico W dapat mengirim data sensor ultrasonik ke web server secara otomatis.
Mengembangkan Sistem Menjadi Monitoring Jarak
Eksperimen ini masih menggunakan web server sederhana. Data hanya diterima kemudian ditampilkan. Namun, sistem dapat dikembangkan menjadi sistem monitoring jarak berbasis IoT.
1. Menyimpan Data ke Database
Data yang diterima server dapat disimpan ke database seperti MySQL.
Misalnya:
Data tersebut dapat digunakan untuk melihat perubahan jarak dari waktu ke waktu.
2. Membuat Grafik
Data yang tersimpan juga dapat digunakan untuk membuat grafik. Misalnya, grafik dapat menunjukkan perubahan jarak selama beberapa menit atau jam. Dengan demikian, proyek tidak lagi hanya berfungsi sebagai eksperimen HC-SR04 Raspberry Pi Pico W, tetapi dapat menjadi sistem monitoring yang lebih lengkap.
3. Membuat Dashboard Web
Data sensor juga dapat ditampilkan dalam dashboard sederhana:
+--------------------------------+
| MONITORING JARAK |
+--------------------------------+
| |
| Jarak Saat Ini |
| |
| 25.63 cm |
| |
| Status: Objek Terdeteksi |
+--------------------------------+
Dashboard tersebut dapat dibuat menggunakan HTML, CSS, JavaScript, dan PHP.
Contoh Penerapan
Konsep mengirim data sensor Raspberry Pi Pico W ke web server dapat digunakan untuk berbagai proyek. Beberapa contohnya:
1. Monitoring Ketinggian Air
HC-SR04 dapat dipasang di bagian atas wadah untuk mengukur jarak permukaan air. Nilai jarak kemudian dikirim ke server dan digunakan untuk mengetahui perubahan ketinggian air.
2. Tempat Sampah Pintar
Sensor ultrasonik dapat dipasang pada bagian atas tempat sampah. Ketika jarak antara sensor dan sampah semakin kecil, sistem dapat mengetahui bahwa tempat sampah semakin penuh.
3. Sistem Parkir Sederhana
HC-SR04 dapat digunakan untuk mendeteksi keberadaan kendaraan pada posisi tertentu. Informasi tersebut kemudian dapat dikirim ke server dan ditampilkan melalui halaman web.
4. Monitoring Jarak Objek
Sistem juga dapat digunakan untuk memantau posisi atau keberadaan suatu objek secara berkala.
Hal yang Perlu Diperhatikan
Beberapa hal perlu diperhatikan agar sistem dapat bekerja dengan baik antara lain:
Pertama, perhatikan level tegangan pin ECHO. Jangan langsung memberikan sinyal 5V ke GPIO Pico W. Gunakan voltage divider atau rangkaian level shifting yang sesuai.
Kedua, pastikan WiFi dapat terhubung dengan baik. Pico W membutuhkan koneksi jaringan untuk mengirimkan data ke server.
Ketiga, pastikan URL server benar. Jika alamat sensor.php salah atau server tidak dapat diakses, data tidak akan berhasil dikirim.
Keempat, jangan mengirim data terlalu cepat. Dalam contoh ini digunakan interval 10 detik time.sleep(10). Interval tersebut dapat diubah sesuai kebutuhan proyek.
Baca juga: Kontrol Relay via Web Server Menggunakan Raspberry Pi Pico W
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino






0 Komentar