Yaratıcılar İçin En İyi Raspberry Pi Pico Projeleri

İçindekiler

Uygun fiyatlı ama güçlü mikrodenetleyici kartlarını her zaman takip eden bir maker olarak, Raspberry Pi Pico'ya hayran kaldım. Kompakt boyutu, etkileyici performansı ve çok yönlü programlama seçenekleri, onu çok çeşitli projeler için ideal kılıyor. Bu yazıda, basit başlangıç projelerinden daha gelişmiş uygulamalara kadar, Pico'nun yeteneklerini sergileyen en sevdiğim projelerden bazılarını paylaşacağım.

Proje 1: Özel Desenlerle Yanıp Sönen LED (Yeni Başlayanlar İçin Uygun)

Donanım Kurulumu

Bu proje için bir Raspberry Pi Pico, bir devre tahtası, bir LED, 220 ohm'luk bir direnç ve bağlantı kablolarına ihtiyacınız olacak. LED'in anotunu direnç üzerinden GPIO 25 numaralı pime, katodunu ise Pico'nun toprak pimine bağlayın. Bu kurulum, LED'in direnç sayesinde aşırı akımdan korunmasını ve kontrol amacıyla Pico'nun GPIO pimine doğru şekilde bağlanmasını sağlar.

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

Kod Uygulaması

MicroPython kullanarak LED'i farklı desenlerde yanıp sönmesini sağlayacak bir program yazacağız. Öncelikle gerekli modülleri içe aktaralım:

				
					from machine import Pin, Timer
				
			

Ardından, LED pinini başlatın:

				
					led = Pin(25, Pin.OUT)
				
			
Yanıp sönme aralıklarını kontrol etmek için bir zamanlayıcı nesnesi oluşturun. Aşağıdaki kod parçacığı, LED'i her 500 milisaniyede bir açıp kapatan bir zamanlayıcı kurar:
				
					tim = Timer()

def tick(timer):
    led.toggle()

tim.init(freq=2, mode=Timer.PERIODIC, callback=tick)
				
			

Test ve Özelleştirme

Kod Pico'ya yüklendikten sonra (main.py olarak kaydedip Pico'yu bağlayarak), LED yanıp sönmeye başlamalıdır. Zamanlayıcı süresini değiştirerek veya LED'lerin açılma ve kapanma zamanlarını kontrol etmek için daha karmaşık işlevler oluşturarak yanıp sönme desenlerini özelleştirebilirsiniz. Örneğin, LED'in mors kodu deseninde yanıp sönmesini sağlayan bir işlev veya harici bir girişe göre değişen bir desen oluşturabilirsiniz. Bu proje, Pico'da GPIO pin kontrolü ve MicroPython'a aşina olmak için harika bir yoldur.

Proje 2: Sıcaklık İzleme Sistemi (Orta Seviye)

Donanım Gereksinimleri

Bir Raspberry Pi Pico, bir DS18B20 sıcaklık sensörü, bir 4,7 kOhm direnç, bir devre tahtası ve bağlantı kabloları hazırlayın. DS18B20, 1-Wire arabirimi kullanır; bu nedenle VCC'sini 3,3V'a, GND'sini toprağa ve DATA pinini Pico'daki GPIO pin 18'e bağlayın. Direnç, sinyali çekmek için DATA pini ile VCC arasına yerleştirilir. 1-Wire protokolü, güvenilir veri iletimi için uygun bir çekme direnci gerektirdiğinden, bu kurulum Pico ile sıcaklık sensörü arasında istikrarlı bir iletişim sağlar.
DS18B20 sensor connected to Raspberry Pi Pico on breadboard
DS18B20 temperature sensor linked to Raspberry Pi Pico, displaying 1 - Wire interface components.

Kod Geliştirme

MicroPython'da sensörle iletişim kurmak için onewire ve ds18x20 kütüphanelerini kullanın. Öncelikle, kütüphaneleri içe aktarın ve 1-Wire veriyolunu başlatın:
				
					import machine
import onewire
import ds18x20
import time
				
			
Ardından, otobüsü seçilen GPIO pini üzerine kurun:
				
					ds_pin = machine.Pin(18)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
				
			
Aygıtları tarayın ve bir DS18B20 nesnesi oluşturun:
				
					roms = ds_sensor.scan()
print('Found DS devices: ', roms)
				
			
Aşağıdaki kod sıcaklığı okur ve konsola yazdırır:
				
					while True:
    ds_sensor.convert_temp()
    time.sleep_ms(750)
    for rom in roms:
        print(ds_sensor.read_temp(rom))
    time.sleep(2)
				
			

Veri Kaydı ve Görüntüleme

Sistemi daha kullanışlı hale getirmek için, sıcaklığı gerçek zamanlı olarak göstermek veya verileri bağlı bir bilgisayardaki bir dosyaya kaydetmek üzere küçük bir OLED ekran (I2C üzerinden bağlanan) ekleyebilirsiniz. OLED ekran için ssd1306 kütüphanesini kullanabilirsiniz. Öncelikle, gerekli modülleri içe aktarın ve I2C arabirimini başlatın:
				
					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)
				
			
Ardından, sıcaklığı OLED ekranında görüntülemek için sıcaklık okuma döngüsünü değiştirin:
				
					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)
				
			
Veri kaydı için, sıcaklık verilerini Pico'nun dahili dosya sistemindeki bir dosyaya yazmak üzere aşağıdaki kodu kullanabilirsiniz:
				
					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)
				
			
Bu proje, Pico’nun GPIO pinlerini kullanarak harici sensörlerle nasıl bağlantı kurulacağını gösterir ve sensör verilerinin toplanmasını yönetme yeteneğini sergiler.

Proje 3: IoT Veri Yükleyici (İleri Düzey)

Donanım Kurulumu

Bir Raspberry Pi Pico W (dahili Wi-Fi özellikli), bir BME280 ortam sensörü (sıcaklık, nem ve basıncı ölçer), bir devre tahtası ve bağlantı kablolarına ihtiyacınız olacak. BME280'i I2C kullanarak Pico'ya bağlayın: SDA'yı GPIO 8'e, SCL'yi GPIO 9'a, VCC'yi 3,3V'a ve GND'yi toprağa bağlayın. Bu bağlantı kurulumu, Pico'nun I2C veriyolu üzerinden BME280 sensörüyle iletişim kurmasını ve çevre verilerinin alınmasını sağlar.
Raspberry Pi Pico W with BME280 sensor and Wi Fi
Raspberry Pi Pico W with BME280 sensor and Wi - Fi

Kod ve IoT Entegrasyonu

Pico W'de MicroPython kullanmak için önce bir Wi-Fi ağına bağlanın. Wi-Fi kimlik bilgilerini girin:
				
					import network

ssid = 'your_SSID'
password = 'your_PASSWORD'
				
			
Ağ arabirimi kullanarak bağlanın:
				
					wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)

while not wlan.isconnected():
    pass

print('Connected to WiFi')
				
			
Ardından, bme280 sınıfını kullanarak BME280 sensörünü başlatın. Henüz yüklenmemişse bme280 kütüphanesini yüklemeniz gerekebilir. Sensörü şu şekilde başlatabilirsiniz:
				
					import bme280_i2c

i2c = machine.I2C(0, sda=machine.Pin(8), scl=machine.Pin(9))
bme = bme280_i2c.BME280_I2C(i2c)
				
			
Kod, sensör verilerini okur ve HTTP POST yöntemini kullanarak Ubidots veya Thingspeak gibi bir IoT platformuna yükler. İşte veri yükleme işlevinin basitleştirilmiş bir versiyonu:
				
					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)
				
			

Test ve Ölçeklenebilirlik

Kod çalıştırıldığında, Pico W internete bağlanacak, BME280'den verileri okuyacak ve bunları seçilen IoT platformuna yükleyecektir. Verileri platformun kontrol panelinden gerçek zamanlı olarak görüntüleyebilirsiniz. Bu proje, Pico W'nin kablosuz özelliklerini öne çıkarır ve Pico ile ölçeklenebilir IoT çözümlerinin nasıl oluşturulacağını göstererek akıllı ev uygulamaları, çevre izleme ve daha fazlasına kapı açar. Bu projeyi ölçeklendirmeyi planlıyorsanız, daha fazla sensör ekleyebilir, veri toplama aralıklarını ayarlayabilir veya hatta gelişmiş analiz özelliklerine sahip daha sağlam bir IoT platformu kullanabilirsiniz.

Sonuç

Raspberry Pi Pico, her seviyedeki makerlar için harika bir araçtır ve yaratıcı projeler için sınırsız olanaklar sunar. İster basit bir LED yanıp sönme projesiyle başlıyor olun, ister gelişmiş bir IoT sistemi kuruyor olun, Pico’nun uygun fiyatı, performansı ve kullanım kolaylığı onu en iyi seçenek haline getirir. Umarım bu projeler, kendi Pico projelerinizle denemeler yapmaya başlamanız için size ilham verir. Projelerinizi aşağıdaki yorumlarda paylaşın – yarattıklarınızı görmek isterim!

Abone ol

Aylık blog güncellemeleri, teknoloji haberleri ve vaka analizleri almak için abone listemize katılın. Asla spam göndermeyeceğiz ve istediğiniz zaman aboneliğinizi iptal edebilirsiniz.

Scroll to Top

Instant Quote