Sebagai seorang pembuat yang selalu mencari papan mikrokontroler yang terjangkau namun bertenaga, saya jatuh cinta pada Raspberry Pi Pico. Ukurannya yang ringkas, performa yang mengesankan, dan pilihan pemrograman yang serbaguna menjadikannya pilihan yang sempurna untuk berbagai macam proyek. Dalam postingan ini, saya akan membagikan beberapa proyek Pico favorit saya yang menampilkan kemampuannya, mulai dari proyek sederhana untuk pemula hingga aplikasi yang lebih canggih.
Proyek 1: LED Berkedip dengan Pola Khusus (Cocok untuk Pemula)
Pengaturan Perangkat Keras
Untuk proyek ini, Anda memerlukan Raspberry Pi Pico, papan prototipe, LED, resistor 220 ohm, dan kabel jumper. Hubungkan anoda LED ke pin GPIO 25 melalui resistor, dan katoda ke pin ground pada Pico. Pengaturan ini memastikan bahwa LED terlindungi dari arus berlebih berkat resistor dan terhubung dengan benar ke pin GPIO Pico untuk pengendalian.

Penerapan Kode
Dengan menggunakan MicroPython, kita akan membuat program untuk membuat LED berkedip dengan pola yang berbeda-beda. Pertama, impor modul-modul yang diperlukan:
from machine import Pin, Timer
Kemudian, inisialisasi pin LED:
led = Pin(25, Pin.OUT)
Buat objek timer untuk mengatur interval kedipan. Potongan kode berikut ini membuat timer yang menyalakan dan mematikan LED setiap 500 milidetik:
tim = Timer()
def tick(timer):
led.toggle()
tim.init(freq=2, mode=Timer.PERIODIC, callback=tick)
Pengujian dan Penyesuaian
Setelah kode diunggah ke Pico (dengan menyimpannya sebagai main.py dan menghubungkan Pico), LED seharusnya mulai berkedip. Anda dapat menyesuaikan pola kedipan dengan mengubah periode timer atau membuat fungsi yang lebih kompleks untuk mengontrol waktu menyala dan mati LED. Misalnya, Anda dapat membuat fungsi yang membuat LED berkedip dalam pola kode morse atau pola yang berubah berdasarkan masukan eksternal. Proyek ini merupakan cara yang bagus untuk mengenal kontrol pin GPIO dan MicroPython pada Pico.
Proyek 2: Sistem Pemantauan Suhu (Tingkat Menengah)
Persyaratan Perangkat Keras
Siapkan sebuah Raspberry Pi Pico, sensor suhu DS18B20, resistor 4,7 kOhm, papan prototipe, dan kabel jumper. DS18B20 menggunakan antarmuka 1-Wire, jadi hubungkan VCC-nya ke 3,3V, GND ke ground, dan pin DATA ke pin GPIO 18 pada Pico. Resistor dipasang antara pin DATA dan VCC untuk menarik sinyal ke atas (pull-up). Pengaturan ini memastikan komunikasi yang stabil antara Pico dan sensor suhu, karena protokol 1-Wire memerlukan resistor pull-up yang tepat untuk transmisi data yang andal.

Pengembangan Kode
Di MicroPython, gunakan pustaka onewire dan ds18x20 untuk berkomunikasi dengan sensor. Pertama, impor pustaka-pustaka tersebut dan inisialisasi bus 1-Wire:
import machine
import onewire
import ds18x20
import time
Kemudian, atur bus pada pin GPIO yang dipilih:
ds_pin = machine.Pin(18)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
Cari perangkat dan buat objek DS18B20:
roms = ds_sensor.scan()
print('Found DS devices: ', roms)
Kode berikut ini membaca suhu dan menampilkannya di konsol:
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(ds_sensor.read_temp(rom))
time.sleep(2)
Pencatatan dan Penampilan Data
Agar sistem ini lebih bermanfaat, Anda dapat menambahkan layar OLED kecil (yang terhubung melalui I2C) untuk menampilkan suhu secara real-time atau mencatat data ke dalam berkas di komputer yang terhubung. Untuk layar OLED tersebut, Anda dapat menggunakan pustaka ssd1306. Pertama, impor modul yang diperlukan dan inisialisasi antarmuka I2C:
from machine import I2C, Pin
import ssd1306
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 32, i2c)
Kemudian, ubah loop pembacaan suhu agar suhu ditampilkan pada layar OLED:
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
oled.fill(0)
oled.text(f"Temp: {temp} C", 0, 0)
oled.show()
time.sleep(2)
Untuk pencatatan data, Anda dapat menggunakan kode berikut untuk menyimpan data suhu ke dalam berkas di sistem berkas internal Pico:
file = open('temperatures.txt', 'w')
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
file.write(f"{time.time()},{temp}\n")
file.flush()
time.sleep(2)
Proyek ini menunjukkan cara menghubungkan sensor eksternal menggunakan pin GPIO Pico dan memperlihatkan kemampuannya dalam mengelola pengambilan data sensor.
Proyek 3: Pengunggah Data IoT (Tingkat Lanjut)
Pengaturan Perangkat Keras
Anda akan membutuhkan Raspberry Pi Pico W (dengan Wi-Fi terintegrasi), sensor lingkungan BME280 (mengukur suhu, kelembapan, dan tekanan), papan prototipe, serta kabel jumper. Hubungkan BME280 ke Pico menggunakan I2C: SDA ke GPIO 8, SCL ke GPIO 9, VCC ke 3,3V, dan GND ke ground. Pengaturan koneksi ini memungkinkan Pico berkomunikasi dengan sensor BME280 melalui bus I2C, sehingga memungkinkan pengambilan data lingkungan.

Integrasi Kode dan IoT
Untuk menggunakan MicroPython di Pico W, pertama-tama sambungkan ke jaringan Wi-Fi. Atur kredensial Wi-Fi:
import network
ssid = 'your_SSID'
password = 'your_PASSWORD'
Hubungkan menggunakan antarmuka jaringan:
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('Connected to WiFi')
Selanjutnya, inisialisasi sensor BME280 menggunakan kelas bme280. Anda mungkin perlu menginstal pustaka bme280 jika belum terpasang. Berikut cara menginisialisasinya:
import bme280_i2c
i2c = machine.I2C(0, sda=machine.Pin(8), scl=machine.Pin(9))
bme = bme280_i2c.BME280_I2C(i2c)
Kode tersebut membaca data sensor dan mengunggahnya ke platform IoT seperti Ubidots atau Thingspeak menggunakan metode HTTP POST. Berikut ini adalah versi sederhana dari fungsi pengunggahan data:
import urequests
def upload_data(temperature, humidity, pressure):
url = 'https://industrial.api.ubidots.com/api/v1.6/devices/your_device_label'
headers = {'X-Auth-Token': 'your_token', 'Content-Type': 'application/json'}
data = '{"temperature": %s, "humidity": %s, "pressure": %s}' % (temperature, humidity, pressure)
response = urequests.post(url, headers=headers, data=data)
if response.status_code == 200:
print('Data uploaded successfully')
else:
print('Error uploading data')
response.close()
while True:
temperature, pressure, humidity = bme.values
temperature = float(temperature.strip(' C'))
humidity = float(humidity.strip(' %'))
pressure = float(pressure.strip(' hPa'))
upload_data(temperature, humidity, pressure)
time.sleep(60)
Pengujian dan Skalabilitas
Setelah kode dijalankan, Pico W akan terhubung ke internet, membaca data dari BME280, dan mengunggahnya ke platform IoT yang dipilih. Anda dapat melihat data tersebut secara real-time di dasbor platform. Proyek ini menonjolkan kemampuan nirkabel Pico W dan menunjukkan cara membangun solusi IoT yang dapat diskalakan dengan Pico, yang membuka peluang untuk aplikasi rumah pintar, pemantauan lingkungan, dan banyak lagi. Jika Anda berencana untuk mengembangkan proyek ini, Anda dapat menambahkan lebih banyak sensor, menyesuaikan interval pengumpulan data, atau bahkan menggunakan platform IoT yang lebih tangguh dengan fitur analitik canggih.
Kesimpulan
Raspberry Pi Pico adalah alat yang luar biasa bagi para pembuat (maker) dari segala tingkat keahlian, yang menawarkan kemungkinan tak terbatas untuk proyek-proyek kreatif. Baik Anda baru memulai dengan proyek sederhana seperti menyalakan dan mematikan LED, atau sedang membangun sistem IoT yang canggih, harga yang terjangkau, performa, dan kemudahan penggunaan Pico menjadikannya pilihan utama. Saya harap proyek-proyek ini menginspirasi Anda untuk mulai bereksperimen dengan kreasi Pico Anda sendiri. Bagikan proyek Anda di kolom komentar di bawah – saya sangat ingin melihat hasil karya Anda!




