(İmaj kredisi: Tom’un Donanımı)
Bir Projede Sırları Kullanma
Secrets dosyasının amacı, ana proje kodumuzu kişisel/güvenli bilgi içerebilecek her türlü dosyadan uzak tutmaktır. Proje kodunu hassas bilgilerden uzak tutarak, başkalarıyla kolayca paylaşabiliriz. Nasıl yapacağımızın bu bölümünde secrets modülünü içe aktaracağız ve konumumuz için hava durumunu almak için Open Weather API ile kullanacağız.
1. Thonny’de yeni bir boş dosya oluşturun.
2. Üç kod modülünü içe aktarın. Ağ, Pico W’nin Wi-Fi’ye bağlanmasını sağlar, Secrets gizli bilgilerle dolu dosyamızdır, urequests uzak cihazlara istek yapmamızı sağlayan bir modüldür, bu durumda Open Weather’ın API’sidir. almak için aynı modülü kullandık. Uluslararası Uzay İstasyonu’ndaki astronotlarla ilgili veriler .
import network
import secrets
import urequests
3. Bir nesne oluşturun, wlan ve kodumuzdan Pico W üzerindeki Wi-Fi yongasına bir bağlantı oluşturmak için kullanın, ardından Wi-Fi yongasını açın.
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
4. Secrets modülünü kullanarak Wi-Fi erişim noktanıza bağlanmak için SSID ve PASSWORD nesnelerini kullanın.
wlan.connect(secrets.SSID,secrets.PASSWORD)
5. Open Weather API’sinden döndürülen verileri depolamak için bir nesne, hava durumu oluşturun. API anahtarınızı URL’ye eklemek için secrets.owm_api kullanın. Bu özel olarak oluşturulmuş URL, q=Blackpool,İngiltere konumumuz için Open Weather’a bir istek gönderir, bu kendi konumunuzla değiştirilebilecektir. Ayrıca kullanılan &units=metric birimlerini de belirtebiliriz (bu, emperyal olarak değiştirilebilir).
weather = urequests.get("http://api.openweathermap.org/data/2.5/weather?q=Blackpool,UK&units=metric&appid="+(secrets.owm_api)).json()
6. Mevcut sıcaklığı bir nesnede saklayın, sıcaklık. Döndürülen veriler, Python’un sözlük veri türüyle neredeyse aynı olan bir JSON biçimindedir. Sözlükler, verileri depolamak için bir anahtar, değer biçimi kullanır. Anahtarlar [“main”][‘temp’] bizi verilerin ana bölümüne götürecek ve ardından sıcaklık değeri yeni oluşturulan sıcaklık nesnemize kaydedilecektir.
temperature = weather["main"]['temp']
gibi bir araç kullanmak https://jsonformatter.curiousconcept.com/ hava durumu veri yapısını görselleştirebiliriz. (İmaj kredisi: Tom’un Donanımı)
7. Mevcut nemi ilgili bir nesnede saklayın.
humidity = weather["main"]['humidity']
8. Mevcut genel hava durumunu hava durumu nesnesinde saklayın. Bu veriler JSON nesnesinde biraz daha derine gömülür. Bu bir sözlük, sonra liste, sonra sözlük nesnesidir. Liste [0]Python sıfırdan saymaya başladığından listedeki ilk öğeyi kullandığımızı tanımlar.
weather = weather["weather"][0]["main"]
9. Döndürülen verileri yazdır karşılık gelen verileri cümleye bırakacak dize biçimlendirmesini kullanma.
print("The weather today is with a temperature of degrees Celsius and a humidity of %".format(weather, temperature, humidity))
10. Kodu Raspberry Pi Pico W’ya weather.py olarak kaydedin. Kodu başlatmak için çalıştır’a tıklayın. Kod, Open Weather API’yi kullanacak, konumunuz için en son hava durumunu indirecek ve ardından bilgileri içeren bir cümleyi Python Shell’e yazdıracaktır.
(İmaj kredisi: Tom’un Donanımı)
Komple Kod Listeleme
import network
import secrets
import urequests
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(secrets.SSID,secrets.PASSWORD)
weather = urequests.get("http://api.openweathermap.org/data/2.5/weather?q=Blackpool,UK&units=metric&appid="+(secrets.owm_api)).json()
temperature = weather["main"]['temp']
humidity = weather["main"]['humidity']
weather = weather["weather"][0]["main"]
print("The weather today is with a temperature of degrees Celsius and a humidity of %".format(weather, temperature, humidity))