Projelerimizi internete bağlamak artık çok daha kolay ve daha ucuz! 6 dolar Ahududu Pi Pico W, orijinal Raspberry Pi Pico’daki bir yükseltme, harika bir güncelleme getirdi: Wi-Fi. Bu yükseltme, 6 dolarlık fiyatla birlikte, üreticilerin çok sayıda Nesnelerin İnterneti uygulaması için RP2040 SoC’nin gücünden yararlanmalarını sağlar. Pico W ayrıca en iyi RP2040 panoları.
Verilerin bir bilgisayardan nasıl aktarılacağını zaten ele aldık. Raspberry Pi Pico W, başka bir web hizmeti olan Anvi’yeben. Ama ya sadece biraz veri toplamak ve dünyaya göndermek istiyorsanız? Bunu yapmanın birçok yolu vardır, ancak en basiti IFTTT olmalıdır.
IFTTT (If This Then That) birçok farklı girdiden (Twitter, Home Automation, Google, Facebook vb.) veri alıp diğer servislere gönderebilen bir web servisidir.
Bu projede, bir Raspberry Pi Pico W’dan IFTTT’nin hizmetine bir HTTP POST isteği göndermek için en temel hizmeti olan web kancalarını kullanacağız. IFTTT’de web kancasını durduracak ve Twitter’da gönderilecek bir tweet’i tetikleyecek bir uygulama oluşturacağız.
Bu proje için ihtiyacınız olacak
Sıcaklık Sensörü Devresi
Devremiz basit, sadece Raspberry Pico W ve bir sıcaklık sensöründen oluşuyor. DHT11, üretici topluluğunda her yerde bulunan düşük maliyetli dört pimli bir sıcaklık sensörüdür. Önden bakıldığında (mavi “kafes”) Raspberry Pico W’ya şu şekilde bağlanıyoruz:
Pim 1: (Kırmızı Kablo) VCC’yi Pico W’nin 3V3(OUT)’una bağlayın.
Pim 2: (Sarı Kablo) Verileri Pico W’nin GP4’üne bağlayın.
Pim 3: Bağlantı yok.
4 numaralı pim: (Siyah Tel) GND’yi Pico W’nin GND’sine bağlayın.
IFTTT’yi Ayarlama
IFTTT (Eğer Bu, O Zaman Bu), Raspberry Pi Pico W’mizi Twitter’a bağlayan kanaldır. IFTTT, farklı veri hizmetlerini birbirine bağlamak için sayısız yol sunan ücretsiz bir hizmettir.
IFTTT’ye veri gönderen bir web kancasına (özel bir URL) tepki veren bir uygulama oluşturacağız. Ardından IFTTT, verileri Twitter’daki takipçilerimize gönderilecek bir mesaja ekleyecektir.
1. bir tarayıcıda IFTTT’yi ziyaret edin ve giriş yapın / bir hesap oluşturun.
2. Oluştur’a tıklayın.
3. Ekle’ye tıklayın. Bu bizim tetikleyici olayımız. Bu olursa, uygulamamız başlar. Bizim durumumuzda, Raspberry Pi Pico W’dan bir web kancası gönderilirse.
4. Web kancasını arayın ve ardından web kancası simgesine tıklayın.
5. Bir web isteği al’a tıklayın. Raspberry Pico W’dan gönderilen isteğimiz budur.
6. Etkinlik Adını Post_Tweet olarak ayarlayın ve ardından Tetikleyici Oluştur’a tıklayın.
7. Sonra Ekle’ye tıklayın. Bu, tetikleyicimizin sonucudur, bu durumda bir Tweet gönderilir.
8. Twitter’ı arayın ve ardından Twitter simgesine tıklayın.
9. Tweet Gönder’i seçin.
10. Doğru Twitter hesabının seçildiğini kontrol edin, Twitter hesabınızı IFTTT’ye bağlamanız gerekebilir. Tweet metnini kendi özel mesajınızla değiştirin. Twitter hesabınızı IFTTT’ye bağlamak, IFTTT’nin tetikleyip sizden onaylamanızı isteyeceği otomatik bir işlemdir.
11. Bileşen ekle’ye tıklayın ve Değer 1’i seçin. Ardından, bu durumda sıcaklığın Santigrat derece cinsinden olduğunu belirterek mesajın geri kalanını tamamlayın. Kaydetmek için Eylem Oluştur’a tıklayın. Malzemeler, IFTTT’nin verileri özel URL’mizden çekerek tweetimize ekstra bilgi ekleme yöntemidir.
12. Devam’ı tıklayın.
13. Uygulama ayrıntılarını gözden geçirin, bildirimler seçeneğini açık olarak işaretleyin ve hazır olduğunda Bitir’e tıklayın. Bildirimler, bir sorun oluştuğunda uygulamada hata ayıklamamızı sağlar.
IFTTT Uygulaması oluşturuldu, ancak henüz web kancası URL’sine sahip değiliz. Bu URL, Raspberry Pi Pico W’dan IFTTT hizmetimize sıcaklık verilerini gönderen şeydir. URL, tetikleyicimizi (Post_Tweet) ve IFTTT erişiminin kilidini açan bir API anahtarı gerektirir.
1.Ziyaret etmek bu bağlantı yeni bir tarayıcı sekmesinde / penceresinde.
2. Bir POST yap veya web isteği al bağlantısını not defterine veya bir metin düzenleyiciye kopyalayın. Metniniz, güvenlik nedeniyle metni düzenlediğimiz için doğru bir API anahtarı gösterecektir.
https://maker.ifttt.com/trigger/event/json/with/key/YOUR API KEY HERE
3. /json’u kaldırın ve event öğesini Post_Tweet olarak değiştirin.
https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR API KEY HERE
Artık Raspberry Pi Pico W’nizi IFTTT aracılığıyla Twitter’a bağlayacak geçerli bir web kancası URL’niz var.
Raspberry Pi Pico W’yi Kurma
Raspberry Pi Pico W ürünümüz bir veri toplama cihazı görevi görmektedir. Wi-Fi’ımıza bağlanır ve her saat bir sıcaklık ölçümü alır. Bu daha sonra özel bir web kancası URL’si kullanılarak IFTTT’ye gönderilir. IFTTT daha sonra az önce oluşturduğumuz uygulamaya göre mesajı Twitter’a gönderir.
Şimdi hedefimiz Raspberry Pi Pico W için en son MicroPython ürün yazılımı sürümünü yüklemek, ardından Wi-Fi’ımıza bağlanmak için birkaç satır MicroPython kodu yazmak, sıcaklık okuması yapmak ve ardından bu verileri IFTTT’ye göndermek.
1. Takip et bu kılavuz MicroPython ürün yazılımını indirip yüklemek ve Thonny’yi kurmak için.
2. Thonny’yi açın ve yeni bir dosya oluşturun.
3. Üç kod modülünü içe aktarın. Ağ, Pico W’nin bir Wi-Fi ağına bağlanmasını sağlar. Urequests, MicroPython için web verileriyle çalışmanın bir yolu olan isteklerin bir sürümüdür. DHT, projede kullanılan DHT11 sıcaklık sensörünü ifade eder.
import network
import urequests
import dht
4. Diğer iki kod modülünü içe aktarın. Zaman modülünden uyku fonksiyonunu içe aktarın, bunu projeye bir duraklama eklemek için kullanacağız. Makine modülü içe aktarma Pininden bu, kodumuzun GPIO ile etkileşime girmesini sağlar.
from time import sleep
from machine import Pin
5. Kodumuzu GPIO aracılığıyla bağlanan DHT11’e bağlayan bir “sensör” nesnesi oluşturun. Bu nesne, sıcaklık verilerini sorgulayarak Pin 2’ye bağlı sensörle etkileşime girmemizi sağlar.
sensor = dht.DHT11(Pin(2))
6. Bir “wlan” nesnesi oluşturun ve kodu Raspberry Pi Pico W’daki Wi-Fi’ye bağlamak için kullanın, ardından Wi-Fi’yi açın.
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
7. SSID ve parolasını kullanarak Pico W’nizi Wi-Fi erişim noktanıza bağlayın.
wlan.connect("SSID","PASSWORD")
8. Devam etmeden önce beş saniye duraklayın. Önceki Wi-Fi bağlantısı, bağlanacak veya başarısız olacak ve ardından bloğu serbest bırakacak bir engelleme çağrısı olduğundan, bu kesinlikle gerekli değildir. Bu duraklama, biraz daha fazla hareket alanı sağlamak için mevcuttur.
sleep(5)
9. Wi-Fi bağlantısının mevcut durumunu yazdırın. Bu, başarılı bir bağlantı için Doğru veya bağlanamadıysa Yanlış olacaktır.
print(wlan.isconnected())
10. Aşağıdaki kodu sürekli olarak çalıştırmak için bir döngü ekleyin. Bir while True döngüsü, Pico W kapatılana kadar kodu sürekli olarak çalıştırır. Bu satırı izleyen kodun, döngünün bir parçası olduğunu göstermek için girintili olduğuna dikkat edin.
while True:
11. DHT11 ile bir okuma yapın. Ham verileri elde etmek için bunu yapmamız gerekiyor.
sensor.measure()
12. Mevcut sıcaklığı bir nesneye, sıcaklığa kaydedin.
temperature = sensor.temperature()
13. Sıcaklığı Python Shell’e (REPL) yazdırın. Bu, herhangi bir sorunda hata ayıklamak için kullanışlıdır. Döngü her yinelendiğinde sıcaklığı göstermelidir.
print(temperature)
14. Daha önce oluşturduğumuz benzersiz web kancası URL’sini saklamak için bir nesne, mesaj oluşturun. URL’nin sonuna ?değer1= ekleyin ve bunun tırnak işaretleri arasında ” ” olduğundan emin olun.. Benzersiz IFTTT API anahtarınızı eklemeyi unutmayın.
message = "https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR IFTTT API KEY HERE?value1="
15. Aynı satıra, “sıcaklık” nesnesinde depolanan mevcut sıcaklığı ekleyin. str() işlevini kullanarak sıcaklığı bir tamsayı/şamandıradan bir dizgeye dönüştürmemiz gerektiğini unutmayın. Mesaj satırınız şimdi aşağıdaki gibi okunmalıdır.
message = "https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR IFTTT API KEY HERE?value1="+str(temperature)
16. Mesajı urequests.post kullanarak Twitter’a gönderin. Bu aslında verileri web kancası URL’si aracılığıyla IFTTT’ye gönderir ve ardından IFTTT bunu Twitter’a gönderir.
urequests.post(message)
17. Döngünün tekrar etmesine izin vermeden önce kodu bir saat (3600 saniye) duraklatın. IFTTT’nin günde 25 tweet’lik bir hız limiti vardır, bu nedenle sabit bir veri akışına sahip olmak için tweet’leri saatte bir ile sınırlamamız gerekir. Bu sınırı aşarsanız, IFTTT bir sonraki güne kadar uygulamayı devre dışı bırakır.
sleep(3600)
18. Kodu Raspberry Pi Pico W’nize tweet_temp.py olarak kaydedin
Komple Kod Listeleme
import network
import urequests
import dht
from time import sleep
from machine import Pin
sensor = dht.DHT11(Pin(2))
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID","PASSWORD")
sleep(5)
print(wlan.isconnected())
while True:
sensor.measure()
temperature = sensor.temperature()
print(temperature)
message = "https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR IFTTT API KEY HERE?value1="+str(temperature)
urequests.post(message)
sleep(3600)
Kodu Test Etme ve Çalıştırma
Projeyi düzgün bir şekilde dağıtmadan önce kodun çalışıp çalışmadığını test etmemiz gerekiyor.
1. Thonny’nin sol üst köşesinde bulunan Çalıştır düğmesine tıklayın.
2. Çıkışı kontrol edin. Wi-Fi’ye bağlı olduğumuzu onaylayan True’yu görmelisiniz. Sonra sıcaklık görünmelidir.
3. Twitter hesabınızı ziyaret edin ve mesajın gönderildiğini kontrol edin. Bunun görünmesi yaklaşık 10 – 20 saniye sürer.
4. Çalışan kodu durdurmak için Durdur’a tıklayın.
Kod başarıyla test edildiğinde, artık kodu Raspberry Pico W önyüklendiğinde otomatik olarak çalışacak şekilde ayarlayabiliriz.
1. Kodu Raspberry Pi Pico W’nize main.py olarak kaydedin. MicroPython (herhangi bir cihazda), açıldığında main.py’yi arayacaktır. Varsa, bu dosyanın içindeki kod otomatik çalıştırmadır.
2. Mikro USB kablosunu Pico W’dan çıkarın, ardından yeniden başlatmaya zorlamak için yeniden takın.
3. İlgili tweet için Twitter hesabınızı kontrol edin.