6 $’lık Raspberry Pi Pico W sayesinde Raspberry Pi projenizi çevrimiçi hale getirmek artık daha ucuz ve daha kolay. Raspberry Pi Pico W’nizi dünyaya bağlamak için yalnızca beş satır kod yeterlidir, ancak kodunuzu paylaşmak sizi birkaç güvenlik açığına açık bırakabilir. endişeler.
MicroPython kodunuz artık Wi-Fi şifrenizi, API anahtarlarınızı ve ısmarlama URL’lerinizi içerir. Peki verilerimizi taşınabilir tutarken riski nasıl azaltabiliriz?
Bir MicroPython modülü oluşturmak, sırlarınızı proje kodunuzdan uzak tutmanın en iyi yoludur. Modülü diğer modüller gibi içe aktarabilir ve içeriğine aynı şekilde referans verebiliriz.
Bu nasıl yapılır bölümünde, bir sır modülü oluşturacağız ve bunu, ev konumumuz için mevcut hava durumu ayrıntılarını almak için Açık Hava Durumu ile birlikte kullanacağız. Proje kodu, herhangi bir kişisel bilgi ekleme korkusu olmadan başkalarıyla kolayca paylaşılabilir.
Bu proje için ihtiyacınız olacak
Kimlik Bilgileri için Gizli Dosya Oluşturma
Secrets modülü, Wi-Fi erişim noktamıza, Wi-Fi şifremize ve Open Weather API anahtarımıza başvuran nesneleri içeren gerçekten standart bir MicroPython dosyasıdır.
1. Raspberry Pi Pico W’nizi kurmak için bu kılavuzu izleyin. “Bir LED nasıl yanıp söner”e kadar olan adımları izleyin.
2. Yeni bir boş dosya oluşturun.
3. Bir nesne SSID’si oluşturun ve ona Wi-Fi erişim noktanızın adını atayın. Eşittir işareti, sağdaki değeri nesneye atayacaktır.
SSID = “YOUR WI-FI AP NAME”
4. Bir nesne ŞİFRESİ oluşturun ve ona Wi-Fi erişim noktanız için şifre atayın.
PASSWORD = “YOUR WI-FI PASSWORD”
5. Bir nesne oluşturun, owm_api ve ona Open Weather API anahtarınızı atayın. Ücretsiz bir API anahtarı alabilirsiniz. Open Weather’e kaydolmak.
6. Dosyayı Raspberry Pi Pico W’nize secrets.py olarak kaydedin.
7. Python kabuğunda (Thonny’nin penceresinin alt kısmı) secrets dosyasını içe aktarın ve ardından Wi-Fi erişim noktanızın SSID’sini yazdırın. Esasen, güvende tutmak istediğimiz tüm detayları içeren bir Python modülü yaptık.
import secrets
print(secrets.SSID)
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']
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.
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))