İçindekiler:

Dark Sky API Kullanarak Hava Durumu Panosu Oluşturun: 5 Adım (Resimlerle)
Dark Sky API Kullanarak Hava Durumu Panosu Oluşturun: 5 Adım (Resimlerle)

Video: Dark Sky API Kullanarak Hava Durumu Panosu Oluşturun: 5 Adım (Resimlerle)

Video: Dark Sky API Kullanarak Hava Durumu Panosu Oluşturun: 5 Adım (Resimlerle)
Video: Elimi kestim. Demir kanaması deneyi #kimya #shorts 2024, Kasım
Anonim
Image
Image

Dark Sky, hava tahmini ve görselleştirme konusunda uzmanlaşmıştır. Dark Sky'ın en havalı yönü, dünyanın hemen hemen her yerinden hava durumu verilerini almak için kullanabileceğimiz hava durumu API'sidir. Sadece havanın yağmurlu veya güneşli olması değil, aynı zamanda sıcaklık, çiy noktası, şiddetli rüzgar, nem, yağış, basınç, UV indeksi ve daha fazlası, istediğiniz yerde, istediğiniz zaman kolayca kullanılabilir.

Dark Sky'ın süper basit API'sini nasıl kullanacağımızı öğrenelim. API'leri kullanmakta yeniyseniz, size söz veriyorum, bu gerçekten kolay olacak! Daha önce API kullandıysanız, umarım kullandığımız kodla size yeni bir şeyler öğretebiliriz.

Bu proje için ihtiyacınız olacak:

  • Dark Sky API hesabı
  • İlk Durum hesabı
  • Ahududu Pi veya Dizüstü Bilgisayar

1. Adım: Başlarken

Kodu bir araya getirmeniz ve bilgileri düzenlemeniz için zaten çok fazla bacak çalışması yaptık. Sadece yol boyunca birkaç ayarlama yapmanız gerekecek. Biraz zorlanmak istiyorsanız, kodumuzda bazı değişiklikler yapın ve hangi hava durumu verilerinin gönderildiğini yapın, sınırsız olasılık var!

Sizin için hazırladığımız her şeyi almak için depoyu GitHub'dan klonlamanız gerekecek. GitHub, bunun gibi projeleri depolamamıza, gözden geçirmemize ve yönetmemize izin veren bir hizmettir. Bu betiği özel bir cihazda çalıştırmak isteyeceksiniz. Raspberry Pi, bu öğretici gibi uygulamaları çalıştırmak için mükemmel bir seçenektir.

Depoyu klonlamak için tek yapmamız gereken Pi'mizin terminaline veya SSH'li bilgisayar terminalinizin pi'nize girip şu komutu yazmak:

$ git klonu

Enter tuşuna basın ve şu bilgileri göreceksiniz:

'Karanlık gökyüzüne' klonlanıyor…

uzak: Nesneleri sayma: 2, tamamlandı. uzak: Toplam 2 (delta 0), yeniden kullanılan 0 (delta 0), yeniden paketlenen 2 Nesneleri ambalajından çıkarma: %100 (2/2), tamamlandı. Bağlantı kontrol ediliyor… tamamlandı.

Bunu gördükten sonra tebrikler, GitHub Repo'yu başarıyla klonladınız ve bu projeyi oluşturmak için gerekli tüm dosyalara sahip oldunuz. Bir sonraki adıma geçmeden önce, bu dizini keşfetmek için biraz zaman ayıralım ve birkaç temel komut satırı komutunu öğrenelim.

Aşağıdaki komutu terminalinize yazın:

$ l

Bu komut, şu anda bulunduğunuz dizinde bulunan her şeyi listeler. Bu liste, GitHub Repo'muzun “darksky” adı altında dizinimize başarıyla klonlandığını gösterir. Şimdi bu dizinde neler olduğuna bir göz atalım. Bir dizine geçmek için tek yapmanız gereken “cd” yazıp gitmek istediğiniz dizinin adını yazmaktır.

Bu durumda şunu yazacağız:

$ cd karanlık gökyüzü

Enter'a bastığımızda, artık darksky dizininde olduğumuzu göreceksiniz. Pi'mize hangi dosyaları yüklediğimizi görmek için tekrar "ls" yazalım.

README.md darksky.py…

Burada benioku belgemizi ve python dosyalarımızı görüyoruz. "nano" komutunu kullanarak darksky.py'ye bir göz atalım. Nano komutu, bu projenin her bir bölümü için tüm python kodumuza sahip olduğumuz nano metin düzenleyicisini açmamızı sağlar. Devam edin ve şunu yazın:

$ nano darksky.py

Bu proje için sizler için hazırladığımız kodların tamamını burada görebilirsiniz. Henüz bu belgede herhangi bir değişiklik yapmayacağız, ancak bu eğitimde daha sonra ne yapacağımızı görmek için gezinmekten çekinmeyin.

2. Adım: Dark Sky API'sini Kullanma

Başlangıç hali
Başlangıç hali

Dark Sky API'sini kullanmak için önce kendi API anahtarınıza ihtiyacınız var. Endişelenmeyin, bir API anahtarı almak hızlı ve ücretsizdir. Tek yapmanız gereken web sitesine gitmek ve bir hesap oluşturmak için "Ücretsiz Deneyin" e tıklamak.

  • Her gün ücretsiz olarak 1.000 API çağrısı alırsınız. Ücretsiz günlük sınırı aşan her API isteğinin maliyeti 0,0001 ABD dolarıdır.
  • Bu sınır, her gün UTC gece yarısı otomatik olarak sıfırlanır.
  • Tahmin İsteği, gelecek hafta için geçerli hava tahminini döndürür.
  • Zaman Makinesi İsteği, geçmişteki veya gelecekteki bir tarih için gözlemlenen veya tahmin edilen hava koşullarını döndürür.

Gizli Dark Sky API anahtarınız şuna benzer: 0123456789abcdef9876543210fedcba.

Tarayıcınıza aşağıdaki biçimde bir URL yazarak Dark Sky'a API çağrısı yapabilirsiniz:

api.darksky.net/forecast/[anahtar]/[enlem], [boylam]

"Anahtarı", Dark Sky API anahtarınızla ve boylam/enlem ile istediğinizi değiştirin. Google Haritalar'a gidip konumunuzu arayarak boylam ve enleminizi bulabilirsiniz. Bu değerler URL'de olacaktır. Yukarıdaki karanlık gökyüzü URL'sini, erişim anahtarınız ve bir adres çubuğuna eklenen değerlerle kopyalayıp yapıştırın.

Bunu yaptığınızda şöyle bir şey göreceksiniz:

gün", "en yakınFırtınaMesafesi":57, "en yakınStormRulman":15, "yağışYoğunluğu":0, "hassasiyet":0, "sıcaklık":53.9, "görünenSıcaklık":53.9, "çiyNoktası":29.59, "nem":0.39, "basınç":1022.45, "windSpeed":3.87, "windGust":9.25, "windBearing":259, "cloudCover":0.01, "uvIndex":3, "görünürlük":7.8, "ozon":309.71}, "dakika":{"özet":"Saatlik temiz.", "icon":"net gün", "veri":[{"zaman":1550615280, "precipIntensity":0, "precipProbability":0 }, …

Okuması biraz bunaltıcı ve zor olabilir, bu yüzden yapmanızı önerdiğim şey, verileri daha okunabilir hale getirmek için bir JSON Formatlayıcı kullanmaktır. Bunu yaptığınızda şöyle bir şey görünecektir:

nesne {9}

enlem: 37.8267 boylam: -122.4233 saat dilimi: America/Los_Angeles şu anda {19} saat: 1550615286 özet: Simgeyi temizle: açık gün en yakınFırtınaMesafesi: 57 en yakınStormBearing: 15 precipIntensity: 0 precip Olasılık: 0 sıcaklık: 53,9 görünürSıcaklık: 53.9 çiyNoktası: 29.59 0,39 basınç: 1022,45 rüzgar Hızı: 3,87 rüzgarGüst: 9,25 rüzgarRüzgar: 259 bulutKapağı: 0,01 uvIndex: 3 görünürlük: 7,8 ozon: 309,71

Az önce bir API çağrısı yaptınız! Ne kadar kolay olduğunu gördün mü? Tek satır kod yazmanıza bile gerek yoktu. Artık API'lerde ustalaştığınıza göre, veri akışı bölümüne geçebiliriz.

Adım 3: İlk Durum

Tüm hava durumu verilerimizi bir bulut hizmetine aktarmak ve bu hizmetin verilerimizi dizüstü veya mobil cihazımızdan erişebileceğimiz güzel bir panoya dönüştürmesini istiyoruz. Verilerimizin bir hedefe ihtiyacı var. Bu hedef olarak İlk Durumu kullanacağız.

Adım 1: İlk Durum Hesabına Kaydolun

iot.app.initialstate.com adresine gidin ve yeni bir hesap oluşturun. 14 günlük ücretsiz deneme süresine sahip olursunuz ve edu e-posta adresi olan herkes ücretsiz öğrenci planına kaydolabilir.

2. Adım: ISStreamer'ı yükleyin

Raspberry Pi'nize Initial State Python modülünü kurun. Komut isteminde aşağıdaki komutu çalıştırın:

$ cd /home/pi/$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Adım 3: Biraz Automagic yapın Adım 2'den sonra ekranda aşağıdaki çıktıya benzer bir şey göreceksiniz:

pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: ISStreamer Python Kolay Kurulumu Başlıyor! Kurulumu birkaç dakika sürebilir, biraz kahve alın:) Ama tekrar gelmeyi unutmayın, daha sonra sorularım olacak! Bulunan easy_install: setuptools 1.1.6 Bulunan pip: /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg'den pip 1.5.6 (python 2.7) pip ana sürüm: 1 pip küçük sürüm: 5 ISStreamer bulundu, güncelleniyor… Gereksinim zaten güncel: /Library/Python/2.7/site-packages'de ISStreamer Temizleniyor… Otomatik olarak örnek bir komut dosyası almak ister misiniz? [y/N] Örneği nereye kaydetmek istiyorsunuz? [varsayılan:./is_example.py] Lütfen kullandığınız Başlangıç Durumu uygulamasını seçin: 1. app.initialstate.com 2. [YENİ!] iot.app.initialstate.com 1. veya 2. seçeneği girin: iot.app girin.initialstate.com kullanıcı adı: iot.app.initialstate.com parolasını girin:

Otomatik olarak örnek bir komut dosyası almak isteyip istemediğiniz sorulduğunda, evet için "y" koyun ve komut dosyanızı varsayılan konuma kaydetmek için enter tuşuna basın. Hangi uygulamayı kullandığınızla ilgili soru için 2'yi seçin (Kasım 2018'den önce kaydolmadıysanız) ve kullanıcı adınızı ve şifrenizi girin.

Adım 4: Örnek Komut Dosyasını Çalıştırın

İlk Durum hesabınıza bir veri akışı oluşturabileceğimizden emin olmak için test komut dosyasını çalıştırın. Aşağıdaki komutu yazın:

$ python is_example.py

Adım 6: Örnek Veriler

Web tarayıcınızda İlk Durum hesabınıza geri dönün. Günlük rafınızın solunda “Python Akış Örneği” adlı yeni bir veri paketi görünmelidir (sayfayı yenilemeniz gerekebilir). Verilerinizi görüntülemek için bu kovaya tıklayın.

4. Adım: Dark Sky Hava Durumu Gösterge Tablosu

Karanlık Gökyüzü Hava Durumu Gösterge Tablosu
Karanlık Gökyüzü Hava Durumu Gösterge Tablosu

Şimdi eğlenceli kısım için. Bir hava durumu panosu oluşturmak ve seçtiğimiz konum için hava durumu geçmişini yakalamak için Dark Sky API'sini kullanmaya hazırız. Bunu yapmak için Python betiğini kullanacağız: https://github.com/initialstate/darksky/blob/master/darksky.py. Bu komut dosyası, API anahtarınızı kullanarak Dark Sky API'sini çağırır ve belirli bir zaman aralığında hava durumu bilgilerini alır. Ayrıca, bu verileri İlk Durum hesabınıza aktarır ve bu, bir Dark Sky hava durumu panosu oluşturmanıza olanak tanır.

Bu betiği Pi'nize kopyalayabilir veya daha önce klonladığımız GitHub deposundan erişebilirsiniz. Bunu yazarak darksky dizininize geçerek yapabilirsiniz:

$ cd karanlık gökyüzü

Buradan, hava durumu kontrol panelimizi oluşturmak için çalıştıracağımız python dosyasına erişebileceksiniz. Çalıştırmadan önce, istediğiniz parametreleri ayarlamanız ve anahtarlarınızı girmeniz gerekir. Nano'yu darksky.py dosyasına şunu yazarak:

$ nano darksky.py

Ardından, komut dosyasının üst kısmına yakın bölümü düzenleyin:

# --------- Kullanıcı ayarları ---------

CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "DARK SKY API ANAHTARINIZI BURAYA YERLEŞTİRİN" BUCKET_NAME = ":partly_sunny: " + CITY + " Hava Durumu" BUCKET_KEY = "ds1" ACCESS_KEY = "BAŞLANGIÇ DURUMUNUZU YERLEŞTİRİN ANAHTAR BURADA" MINUTES_BETWEEN_READS = 15 # ---------------------------------

İstediğiniz GPS koordinatlarını ve şehir adını ayarlamanız gerekir. Ayrıca Dark Sky API anahtarınızı da eklemelisiniz ve İlk Durum hesap erişim anahtarınız yoksa verileriniz hiçbir yere gitmeyecektir. MINUTES_BETWEEN_READS parametresi, komut dosyanızın hava durumu bilgileri için Dark Sky API'sini ne sıklıkta yoklayacağını belirler. 15 dakika uzun vadede güzel bir aralık sağlar. Kısa süreli testler için bunu 0,5 dakikaya ayarlayabilirsiniz. Değişikliklerinizi yapın, ardından çıkmak ve kaydetmek için control+X tuşlarına basın.

Parametrelerinizi ayarladıktan sonra, betiğinizi çalıştırmaya hazırsınız:

$ piton darksky.py

Pi'nize ssh'ing yapıyorsanız ve bu betiği uzun süre kesintisiz olarak bırakmak istiyorsanız, nohup komutunu (kapatma yok) aşağıdaki gibi kullanabilirsiniz:

$ nohup python darksky.py &

Bu komut dosyası, hava durumu verilerini okumaktan ve İlk Duruma göndermekten biraz daha fazlasını yapacak. Bu komut dosyası, gösterge tablosunu biraz daha havalı hale getirmek için Initial State'in araçlarında yerleşik olarak bulunan emoji desteğinden yararlanacak. Şu anda -> simgesinden hava durumunu almak için kullanılan mantığı görebilir ve bunu weather_icon işlevinde bir emoji belirtecine dönüştürebilirsiniz. moon_icon işlevindeki ay evresi ve wind_dir_icon işlevindeki rüzgar yönü için benzer bir şey olur.

Adım 5: Sonuç

Çözüm
Çözüm
Çözüm
Çözüm

İlk Durum hesabınıza gidin ve verilerinize bakın. Tüm yüzde değerlerimi ark göstergelerine, yağışı sıvı göstergesine ve sıcaklığı sıcaklık göstergesine değiştirdim. Herhangi bir Döşeme türüne geçebilir ve göstergeler ve çizgi grafikler için renklerinizi seçebilirsiniz. Gösterge tablonuzu koyu veya açık hale getirebilir ve bir gömülü iFrame kullanarak nihai ürünü bir web sitesine yerleştirebilirsiniz.

Genel bir paylaşımdaki pano düzenini panonuz olarak kullanmak istiyorsanız, buradaki talimatları izleyerek bir düzeni veri grubunuza aktarabilirsiniz. Daha fazla bağlam sağlamak için panonuza bir arka plan resmi ekleyebilirsiniz.

Kontrol panelimizin genel paylaşım URL'si

Artık Dark Sky API'sinde ustalaştınız, olasılıklar sonsuz! Keşfetmek için sınırsız sayıda çevrimiçi ücretsiz API var, bu yüzden başlayın.

Önerilen: