Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Raspberry Pi Pico ile Hava Kalitesi Uyarı Işığı Nasıl Oluşturulur
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Raspberry Pi Pico ile Hava Kalitesi Uyarı Işığı Nasıl Oluşturulur

Liste

Raspberry Pi Pico ile Hava Kalitesi Uyarı Işığı Nasıl Oluşturulur

teknomers
Son güncelleme: 10 Haziran 2023 18:18
teknomers
Paylaş
Paylaş


Contents
  • Devreyi Kurmak
  • Bu Proje İçin İhtiyacınız Olacak
  • Kodu Yazmak
  • Eksiksiz Kod Listesi

Hava kalitesi büyük bir endişe kaynağıdır. Soluduğumuz havayı hafife alıyoruz ve bazen bu hava kirlilikle dolu. Kanada’daki orman yangınları ve Birleşik Krallık’taki tepe yangınları, havamızı kirleten yangınların son örnekleridir, o halde dışarı çıkmanın güvenli olup olmadığını nasıl kontrol edebiliriz?

Bu bölümde, hava kalitesi verilerini kullanan bir proje oluşturacağız. OpenWeather API’sı Evden ayrılmadan önce bize hava kalitesi hakkında bir fikir vermesi için. Veriler, çevrimiçi olabilen, verileri alabilen ve ardından bir NeoPixel RGB LED şeridi kullanarak verileri görüntüleyebilen 6 dolarlık bir mikrodenetleyici olan Raspberry Pi Pico W kullanılarak görselleştirilir.

Devreyi Kurmak

Raspberry Pi Pico ile Hava Kalitesi Uyarı Işığı Oluşturun

(İmaj kredisi: Tom’un Donanımı)

Devre iki bölümden oluşmaktadır. Giriş ve çıkış. Giriş, GPIO14’e ve Pico W’nin 3V3 pinine bağlı basit bir düğmedir. GPIO14’ün normal durumu, temelde 0V olan Toprak’a çekilir. Butona bastığımızda 3V3 pinini GPIO14’e bağlayarak pini yükseğe (3.3V’a) çekmesini sağlıyoruz. Bu durum değişikliği, kodumuzun aradığı şeydir. Çıkış, 3V3, GND ve GPIO16’ya bağlı bir NeoPixel şerididir. GPIO16, gerektiği gibi rengini değiştirerek NeoPixels’e veri göndermek için kullanılır.

bu Raspberry Pi Pico W üzerindeki GPIO pimleri ve NeoPixel çubuğunun lehimlenmesi ve en iyi havyalar veya lehimleme istasyonları işi kolaylaştıracak.

Bu Proje İçin İhtiyacınız Olacak

Kodu Yazmak

Bu projenin kodu, İnternet’e bağlanmak ve bir API’den veri indirmek için gerekli olana, kullanıcı girişini beklemek için koda ve son olarak RGB LED’ler aracılığıyla verileri yorumlamak için koda bölünmüştür.

1. Bu adımları takip et Raspberry Pi Pico W için MicroPython’un en son sürümünü indirmek için. En önemli adımlar, UF2 üretici yazılımı görüntüsünü indirip yüklemek ve Thonny’yi kurmaktır. Gerisi isteğe bağlıdır.

2. Tonny’yi aç Ve Durdur düğmesine tıklayın bağlantıyı yenilemek için. Bu, Python Kabuğunun açık ve doğru şekilde çalışmasını sağlar.

3. Yeni bir dosya oluşturun ve bu bağlantının içeriğini yapıştırın. Dosyayı neopixel.py olarak Raspberry Pi Pico W’nin kök dizinine kaydedin.

4. Proje kodu için yeni bir dosya oluşturun.

5. Proje için gerekli olan bir dizi modülü içe aktarın. Ağ, Pico W’nin Wi-Fi’ye bağlanmasını sağlar, zaman proje kodunun zamanlamasını kontrol etmek için kullanılır, urequests API’den veri almak için kullanılır. Makine, bir GPIO pininin durumunu almak ve ayarlamak için kullanılan “Pin” içerir, NeoPixel, NeoPixel RGB LED şeridinin kontrolünü sağlar.

import network
import time
import urequests
from machine import Pin
from neopixel import Neopixel

6. Bir nesne oluşturun, düğmeyi tıklayın ve GPIO14’e bir bağlantı oluşturun ve bu pim için dahili direnci kullanarak pimi aşağı çekin (GND’ye).

button = Pin(14, Pin.IN, Pin.PULL_DOWN)

7. Kod ile GPIO16’ya bağlı sekiz NeoPixel arasında bağlantı kuran bir nesne, pikseller oluşturun. Modülümüz için piksellerin GRB (Yeşil, Kırmızı, Mavi) sıralamasında olduğuna dikkat edin. Sizinki farklıysa, bunu RGB olarak değiştirin.

pixels = Neopixel(8, 0, 16, "GRB")

8. Bir wlan nesnesi oluşturun ve bunu Wi-Fi erişim noktanızla bağlantı kurmak için kullanın. AP’nize uyması için SSID ve PAROLA’yı değiştirin. Bağlantının kurulmasına ve kararlı olmasına izin vermek için kısa bir duraklama ekleyin.

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID", "PASSWORD")
time.sleep(5)

9. Bağlantı durumunu Python kabuğuna yazdırın.

print(wlan.isconnected())

10. Koşullu bir ifade kullanarak, bağlantının başarılı olduğunu belirtmek için NeoPixels’i 10 kez yeşil renkte yanıp sönmeye ayarlayın.

if wlan.isconnected() == True:
   for i in range(10):
       pixels.fill((0, 64, 0))
       pixels.show()
       time.sleep(0.1)
       pixels.fill((0, 0, 0))
       pixels.show()
       time.sleep(0.1)

11. Başarısız olursa, NeoPixels kırmızısını 10 kez yanıp sönmek için bir for döngüsü kullanın.

else:
       for i in range(10):
           pixels.fill((64, 0, 0))
           pixels.show()
           time.sleep(0.1)
           pixels.fill((0, 0 , 0))
           pixels.show()
           time.sleep(0.1)

12. Sonsuz bir döngü oluşturun ve düğmenin durumunu kontrol edin. Basılmazsa, kod burada duracaktır. Bir kez basıldığında, girinti çalışacaktır.

while True:
   if button.value():

13. Bir nesne oluşturun, aq ve en son hava kalitesi verilerini saklayın. Düğmeye basmak, ücretsiz bir API anahtarı kullanarak OpenWeather’dan en son hava kirliliği verilerini indirmek için kodu tetikler. zorunda kalacağınızı unutmayın. Ücretsiz bir hesap için kaydolun, ardından kullanıcı adınıza tıklayın ve API Anahtarlarım’ı seçin. AirPollution adlı yeni bir API anahtarı oluşturun. API anahtarını kopyalayın ve URL’de değiştirin altında. Ayrıca enlemi (enlem) değiştirin Ve lon (boylam) konumunuzla eşleşir. Bu, Google Haritalar aracılığıyla bulunabilir, bizimki New York’a ayarlanmıştır.

       aq = urequests.get("http://api.openweathermap.org/data/2.5/air_pollution/forecast?lat=40.714272&lon=-74.005966&appid=YOUR API KEY HERE").json()

14. Döndürülen verilerden Hava Kalitesi İndeksini dilimleyin ve onu air_quality_index nesnesine kaydedin. Döndürülen veriler, Python’un sözlük veri depolama nesneleri ile neredeyse aynı olan JSON biçimindedir. Bu, belirli bir anahtar dizisini kullanarak kesin verileri okuyabileceğimiz anlamına gelir. Bunlar, OpenWeather API referansında belgelenmiştir.

       air_quality_index = aq['list'][0]['main']['aqi']

15. Hava kalitesi indeks değerini Python kabuğuna bir cümle olarak yazdırın. Bu hata ayıklama amaçlıdır. Değer 1 ile 5 arasında olabilir. 1 = İyi, 2 = Orta, 3 = Orta, 4 = Zayıf, 5 = Çok Kötü.

       print("The Air Quality index is: ",str(air_quality_index))

16. Hava kalitesi 1 ise, İyi. LED’leri yarım saniye gecikmeyle 10 kez yeşil yanıp sönmeye ayarlayın.

       if air_quality_index == 1:
           for i in range(10):
               pixels.fill((0, 64, 0))
               pixels.show()
               time.sleep(0.5)
               pixels.fill((0, 0, 0))
               pixels.show()
               time.sleep(0.5)

17. Hava kalitesi 2 ise Orta. LED’leri yarım saniye gecikmeyle 10 kez mavi yanıp sönmeye ayarlayın.

       elif air_quality_index == 2:
           for i in range(10):
               pixels.fill((51,255,255))
               pixels.show()
               time.sleep(0.5)
               pixels.fill((0, 0, 0))
               pixels.show()
               time.sleep(0.5)

18. Hava kalitesi 3 ise, Orta. LED’leri yarım saniye gecikmeyle 10 kez mor renkte yanıp sönmeye ayarlayın.

       elif air_quality_index == 3:
           for i in range(10):
               pixels.fill((153, 51, 255))
               pixels.show()
               time.sleep(0.5)
               pixels.fill((0, 0, 0))
               pixels.show()
               time.sleep(0.5)

19. Hava kalitesi 4 ise Kötü. LED’leri yarım saniye gecikmeyle 10 kez turuncu renkte yanıp sönmeye ayarlayın.

       elif air_quality_index == 4:
           for i in range(10):
               pixels.fill((255,153,51))
               pixels.show()
               time.sleep(0.5)
               pixels.fill((0, 0, 0))
               pixels.show()
               time.sleep(0.5)

20. Hava kalitesi 5 ise, Çok Kötü. LED’leri yarım saniye gecikmeyle 10 kez kırmızı yanıp sönmeye ayarlayın.

       elif air_quality_index == 5:
           for i in range(10):
               pixels.fill((255, 0, 0))
               pixels.show()
               time.sleep(0.5)
               pixels.fill((0, 0, 0))
               pixels.show()
               time.sleep(0.5)

21. Son olarak, geri dönen hava kalitesi verisi yoksa etkinleştirilen ve döngünün geri dönmesini ve kullanıcı girişini beklemesini sağlayan else koşulunu ayarlayın.

       else:
           pass

22. Kodu main.py olarak Raspberry Pi Pico W’ye kaydedin. MicroPython’da, main.py dosyası Pico her başlatıldığında çalıştırılır.

23. Kodu başlatmak için Çalıştır’a tıklayın. Bir Wi-Fi bağlantısını onaylamak için NeoPixels yeşil renkte yanıp sönmelidir. Değilse, SSID’nizin ve parolanızın doğru olup olmadığını kontrol edin.

24. Çevrimiçi olmak ve en son hava kirliliği verilerini indirmek üzere Pico W’yi tetiklemek için düğmeye basın. NeoPixels, verileri beş renk aracılığıyla gösterecek ve Python kabuğu, tam hava kalitesi değerini gösterecektir.

Raspberry Pi Pico ile Hava Kalitesi Uyarı Işığı Oluşturun

(İmaj kredisi: Tom’un Donanımı)

Eksiksiz Kod Listesi

import network
import time
import urequests
from machine import Pin
from neopixel import Neopixel

button = Pin(14, Pin.IN, Pin.PULL_DOWN)
pixels = Neopixel(8, 0, 16, "GRB")

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID", "PASSWORD")
time.sleep(5)
print(wlan.isconnected())
if wlan.isconnected() == True:
    for i in range(10):
        pixels.fill((0, 64, 0))
        pixels.show()
        time.sleep(0.1)
        pixels.fill((0, 0, 0))
        pixels.show()
        time.sleep(0.1)
else:
        for i in range(10):
            pixels.fill((64, 0, 0))
            pixels.show()
            time.sleep(0.1)
            pixels.fill((0, 0 , 0))
            pixels.show()
            time.sleep(0.1)
while True:
    if button.value():
        aq = urequests.get("http://api.openweathermap.org/data/2.5/air_pollution/forecast?lat=40.714272&lon=-74.005966&appid=282f4cee730d75261ae4855ee7719e44").json()
        air_quality_index = aq['list'][0]['main']['aqi']
        print("The Air Quality index is: ",str(air_quality_index))
        if air_quality_index == 1:
            for i in range(10):
                pixels.fill((0, 64, 0))
                pixels.show()
                time.sleep(0.5)
                pixels.fill((0, 0, 0))
                pixels.show()
                time.sleep(0.5)
        elif air_quality_index == 2:
            for i in range(10):
                pixels.fill((51,255,255))
                pixels.show()
                time.sleep(0.5)
                pixels.fill((0, 0, 0))
                pixels.show()
                time.sleep(0.5)
        elif air_quality_index == 3:
            for i in range(10):
                pixels.fill((153, 51, 255))
                pixels.show()
                time.sleep(0.5)
                pixels.fill((0, 0, 0))
                pixels.show()
                time.sleep(0.5)
        elif air_quality_index == 4:
            for i in range(10):
                pixels.fill((255,153,51))
                pixels.show()
                time.sleep(0.5)
                pixels.fill((0, 0, 0))
                pixels.show()
                time.sleep(0.5)
        elif air_quality_index == 5:
            for i in range(10):
                pixels.fill((255, 0, 0))
                pixels.show()
                time.sleep(0.5)
                pixels.fill((0, 0, 0))
                pixels.show()
                time.sleep(0.5)
        else:
            pass



genel-21

Piksel Katlama/Not Defteri için uçlu selfie kamerası için nadiren kullanılan yerleşim
Samsung Galaxy S25 Ultra Fiyat Damlası, Büyük Takas Tasarrufları ile Galaxy Watch Ultra’dan daha ucuz hale getirir
Microsoft Phi-4 Açık Kaynaklı Küçük Dil Modeli Tanıtıldı; Gemini 1.5 Pro’dan daha iyi performans gösterdiği iddia edildi
Android, telefonunuzu otomatik olarak kalkış için hazırlayabilir
Lego’nun 25. Yıldönümü Yıldız Savaşları Setleri Gemileri, Droidleri ve Olması Gereken Minifigürü Sunuyor
ETİKETLENDİ:HavaileışığıKalitesinasılOluşturulurPicoRaspberryuyarı
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Pixel 8 ve Pixel 8 Pro, neredeyse 1 inçlik sensörler alacak ve eski model ayrıca yeni bir “ultra geniş” ve sıcaklık sensörü alacak
Sonraki Makale Lionsgate, Leprikon Filmlerini Yeniden Başlatacak

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

N++ Ekibinin Geri Dönüşü: Çok Oyunculu Devam Oyunu Geliyor
Liste
Müzik Oyunları Dünyasında Fırtına Yaratacak Mr. Records
Oyun
Seyahatte Yeşil Yıkama İddialarını Nasıl Anlarsınız?
Genel
9800X3D ve RX 9070 XT ile 4K oyun PC’sinde 550$ indirim!
Donanım
Orta Çağ Destanlarının Epik Savaşları: Cesaretini Sınayacak Mücadeleler
Oyun
Reid Hoffman Microsoft’un Yönetim Kurulu’ndan Ayrılıyor: Yeni Bir Girişim İçin Hazırlıkta
Genel
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?