Proyek Raspberry Pi Pico Terbaik untuk Para Kreator

Daftar Isi

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.

Raspberry Pi Pico with LED and resistor on breadboard
Raspberry Pi Pico with LED and resistor on breadboard

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.
DS18B20 sensor connected to Raspberry Pi Pico on breadboard
DS18B20 temperature sensor linked to Raspberry Pi Pico, displaying 1 - Wire interface components.

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.
Raspberry Pi Pico W with BME280 sensor and Wi Fi
Raspberry Pi Pico W with BME280 sensor and Wi - Fi

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!

Berlangganan

Daftar ke milis kami untuk mendapatkan pembaruan blog bulanan, berita teknologi, dan studi kasus. Kami tidak akan pernah mengirimkan spam, dan Anda dapat berhenti berlangganan kapan saja.

Scroll to Top

Instant Quote