Sense HAT kullanarak bir Raspberry Pi sıcaklık monitörü oluşturun ve LED matrisinde düzenli okumalar gösterin.

Raspberry Pi tek kartlı bilgisayar kullanarak, belki de hava durumu istasyonu kurulumunun bir parçası olarak, ortam sıcaklığını izlemenin birkaç yolu vardır. Raspberry Pi'nin GPIO pinlerine bağlı harici bir sensör kullanabilirsiniz ancak burada Sense HAT ile donatılmış Raspberry Pi ile sıcaklığın nasıl izleneceğini açıklayacağız.

Sense HAT Nedir?

Resim Kredisi: Ahududu Pi

Bir yetkili Ahududu Pi ŞAPKA Raspberry Pi şirketi tarafından tasarlanıp üretilen (Üste Donanım Eklendi) eklenti kartı olan Sense HAT, ilk olarak Uluslararası Uzay İstasyonundaki astronotlar tarafından kullanılmak üzere yaratıldı. 2015'ten bu yana, Sense HAT ile donatılmış iki Raspberry Pi bilgisayarı, devam eden deneye katılan okul çocukları tarafından tasarlanan bilimsel deneylerde kullanıldı. AstroPi Bu iki ünite o zamandan beri Raspberry Pi 4 tabanlı ve Yüksek Kaliteli Kamerayla donatılmış yükseltilmiş versiyonlarla değiştirildi.

instagram viewer
Resim Kredisi: Ahududu Pi

Uzayda kullanılmak üzere tasarlanmış özel gümüş kasaya sahip olmasa da standart Sense HAT kartı tamamen aynı işlevselliğe sahiptir. Herhangi biriyle uyumlu Ahududu Pi modeli 40 pinli GPIO başlığıyla çevredeki ortamı izlemesine ve aynı zamanda kendi yönelimini ve hareketini algılamasına olanak tanıyan bir dizi yerleşik sensöre sahiptir. Ayrıca metin, veri ve görüntüleri görüntülemek için 8x8 RGB LED matrisine sahiptir. Ayrıca beş yönlü mini bir joystick de bulunmaktadır.

Sense HAT duyusal fonksiyonlarının tamamı aşağıdaki gibidir:

  • Nem: %0 ila %100 bağıl nem aralığına sahip bir STMicro HTS221 sensörü ve ayrıca 32°F ila 149°F (0°C ila 65°C ± 2°C) arasında sıcaklık algılama.
  • Barometrik basınç: 260 ila 1260 hPa aralığına sahip bir STMicro LPS25HB sensör ve ayrıca 59°F ila 104°F (15°C ila 40°C ±0,5°C) arasında sıcaklık algılama.
  • Sıcaklık: Bu, nem veya basınç sensöründen okunabilir veya her iki okumanın ortalaması alınarak ölçülebilir.
  • Jiroskop: STMicro LSM9DS1 IMU, Sense HAT'ın Dünya yüzeyine göre dönüşünü (ve ne kadar hızlı döndüğünü) ölçebilir.
  • İvmeölçer: IMU'nun bir başka işlevi de, ivme kuvvetini birden fazla yönde ölçebilmesidir.
  • Manyetometre: IMU, dünyanın manyetik alanını algılayarak manyetik kuzeyin yönünü belirleyebilir ve böylece bir pusula değeri verebilir.

Artık bu çok amaçlı Raspberry Pi HAT'ın neler yapabileceğini anladığınıza göre projeye başlama zamanı geldi.

Adım 1: Sense HAT'ı monte edin

Sense HAT'ı bağlamak için öncelikle Raspberry Pi'nizin kapalı olduğundan ve elektrik bağlantısının kesildiğinden emin olun. Ardından Sense HAT'ı (ürünle birlikte verilen siyah başlık genişleticisi takılı olarak) Raspberry Pi'nin 40 pinli GPIO başlığına dikkatlice itin, böylece Sense HAT kartı Raspberry Pi kartının üzerine yerleştirilecektir. Tüm pinlerin doğru şekilde hizalandığından ve her iki sıranın da bağlı olduğundan emin olun. Ayrıca sabitlemeye yardımcı olmak için vidalı ayırıcıları da kullanabilirsiniz.

40 pinli GPIO başlığına sahip herhangi bir standart Raspberry Pi modelini kullanabilirsiniz. Biri Raspberry Pi 400'ün temel sınırlamalarıAncak GPIO başlığının entegre klavyenin arkasında bulunmasıdır. Bu, Sense HAT'ın arkaya doğru bakacağı anlamına gelir; bu nedenle, onu bağlamak için bir GPIO uzatma kablosu kullanmak isteyebilirsiniz.

Adım 2: Raspberry Pi'yi Kurun

Diğer projelerde olduğu gibi, bir USB klavye ve fare takmanız ve ardından Raspberry Pi'nizi bir monitöre veya TV'ye bağlayın. Ayrıca üzerinde standart Raspberry Pi işletim sistemi bulunan bir microSD kartınızın da olması gerekir; bunu henüz yapmadıysanız şuraya göz atın: Raspberry Pi'ye işletim sistemi nasıl kurulur. Artık gücü açmaya hazırsınız.

Alternatif olarak, Raspberry Pi'nizi Sense HAT ile başsız modda, bir monitör bağlı olmadan kullanabilirsiniz. SSH kullanarak Raspberry Pi'ye uzaktan bağlanın başka bir bilgisayardan veya cihazdan. Bunu yaparsanız Thonny Python IDE'yi kullanamayacaksınız, nano metin düzenleyiciyi kullanarak programları düzenleyebilir ve komut satırından çalıştırabilirsiniz.

Sense HAT ürün yazılımının varsayılan olarak yüklenmesi gerekir. Tekrar kontrol etmek için bir Terminal penceresi açın ve şunu girin:

sudo apt install sense-hat

Ardından, paket yeni kurulduysa Raspberry Pi'yi yeniden başlatın:

sudo reboot

Adım 3: Python'da Programlamaya Başlayın

Raspberry Pi Sense HAT'ı Scratch blok tabanlı programlama diliyle kullanabilseniz de, sensör okumalarını okumak ve görüntülemek için Python'u kullanacağız.

Thonny IDE (entegre geliştirme ortamı), yararlı hata ayıklama özellikleri de dahil olmak üzere birçok işlevselliğe sahip olduğundan Raspberry Pi'de Python programlaması yapmanın iyi bir yoludur. Raspberry Pi OS'nin masaüstü GUI'sinde şu adrese gidin: Menü (sol üstte ahududu simgesi) > Programlama > Thonny IDE başlatmak için.

Adım 4: Sıcaklık Ölçümü Alın

Thonny IDE'nin ana penceresine aşağıdaki kod satırlarını girin:


from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

İlk satır şunları içe aktarır: SenseHat gelen sınıf sense_hat Python kütüphanesi (Raspberry Pi OS'ye önceden yüklenmiştir). Bu daha sonra şuna atanır: algı değişken. Üçüncü satır Sense HAT'ın LED matrisini temizler.

Daha sonra sıcaklık okumasını alıyoruz ve bunu Thonny IDE'nin Shell alanına yazdırıyoruz. Bu santigrat derece cinsindendir, dolayısıyla önce onu Fahrenheit'e dönüştürmek isteyebilirsiniz:

temp = (sense.get_temperature() * 1.8 + 32)

Sıcaklık sensörü okuması ondalık noktadan sonra birkaç haneye sahip olacaktır. Bu yüzden kullanacağız yuvarlak onu tek bir ondalık basamağa yuvarlama işlevi:

temp = round(temp, 1)

sense.get_temperature() işlevi, nem sensörüne yerleşik sıcaklık sensörünü okur. Alternatif olarak basınç sensöründen sıcaklık ölçümü alabilirsiniz. sense.get_temperature_from_press() hatta her iki okumayı da alıp ortalama bir ortalama hesaplayabilirsiniz (bunları toplayıp ikiye bölerek).

Adım 5: Sıcaklığı Sense HAT'ta Gösterin

Python Kabuğuna tek bir sıcaklık okuması yazdırmak biraz sıkıcıdır, bu yüzden düzenli olarak yeni bir okuma alıp bunu Sense HAT'ın RGB LED matrisinde gösterelim. Kayan bir metin mesajını görüntülemek için, show_message işlev. Ayrıca şunu da kullanacağız: iken: Doğru her 10 saniyede bir yeni bir okuma almaya devam etmek için döngü; bunun için uyumak işlevi zaman kütüphane.

İşte programın tamamı:

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
sense.clear()

whileTrue:
 temp = (sense.get_temperature() * 1.8 + 32)
 temp = round(temp, 1)
 message = "Temp: " + str(temp)
 sense.show_message(message)
 sleep (10)

Bu kodu çalıştırdığınızda, her yeni sıcaklık değerinin LED matrisinde kaydığını göreceksiniz. Sıcaklığın değişip değişmediğini görmek için Sense HAT'ı üflemeyi deneyin.

Sıcaklık okumaları, Raspberry Pi'nin hemen altındaki CPU'sundan aktarılan ısıdan etkilenebilir, bu nedenle daha doğru bir rakam elde etmek için bir ayarlama yapılması gerekebilir. Diğer bir çözüm ise Sense HAT'ı Raspberry Pi'nin üzerine çıkarmak için bir istifleme başlığı kullanmaktır.

Sıcaklığı İzlemek İçin Raspberry Pi Kullanın

Bu proje için bağımsız bir sıcaklık sensörü kullanabilirsiniz ancak Sense HAT, sıcaklığı cihazınızla izlemenizi kolaylaştırır. Ahududu Pi. Ayrıca barometrik basınç ve bağıl nem gibi bir dizi başka sensör okumasını almak ve bunları LED'inde göstermek için de kullanabilirsiniz. matris.