7.9 KiB
Sıcaklık Ölçümü - Sanal IoT Donanımı
Bu dersin bu bölümünde, sanal IoT cihazınıza bir sıcaklık sensörü ekleyeceksiniz.
Sanal Donanım
Sanal IoT cihazı, simüle edilmiş bir Grove Dijital Nem ve Sıcaklık sensörü kullanacaktır. Bu, bu laboratuvarı fiziksel bir Grove DHT11 sensörü ile bir Raspberry Pi kullanmakla aynı hale getirir.
Sensör, bir sıcaklık sensörü ile bir nem sensörünü birleştirir, ancak bu laboratuvarda yalnızca sıcaklık sensörü bileşeniyle ilgileneceksiniz. Fiziksel bir IoT cihazında, sıcaklık sensörü, sıcaklık değiştikçe dirençteki değişimi algılayarak sıcaklığı ölçen bir termistör olurdu. Sıcaklık sensörleri genellikle, ölçülen direnci dahili olarak Santigrat derece (veya Kelvin ya da Fahrenheit) cinsinden bir sıcaklığa dönüştüren dijital sensörlerdir.
Sensörleri CounterFit'e Ekleme
Sanal bir nem ve sıcaklık sensörü kullanmak için, iki sensörü CounterFit uygulamasına eklemeniz gerekir.
Görev - Sensörleri CounterFit'e ekleyin
Nem ve sıcaklık sensörlerini CounterFit uygulamasına ekleyin.
-
Bilgisayarınızda
temperature-sensor
adlı bir klasördeapp.py
adlı tek bir dosya içeren yeni bir Python uygulaması oluşturun, bir Python sanal ortamı oluşturun ve CounterFit pip paketlerini ekleyin.⚠️ Gerekirse ders 1'de CounterFit Python projesi oluşturma ve ayarlama talimatlarına başvurabilirsiniz.
-
DHT11 sensörü için bir CounterFit shim yüklemek üzere ek bir Pip paketi yükleyin. Bu işlemi, sanal ortamın etkin olduğu bir terminalden yaptığınızdan emin olun.
pip install counterfit-shims-seeed-python-dht
-
CounterFit web uygulamasının çalıştığından emin olun.
-
Bir nem sensörü oluşturun:
-
Sensors panelindeki Create sensor kutusunda, Sensor type kutusunu açın ve Humidity seçeneğini seçin.
-
Units ayarını Percentage olarak bırakın.
-
Pin ayarının 5 olduğundan emin olun.
-
Pin 5 üzerinde nem sensörünü oluşturmak için Add düğmesini seçin.
Nem sensörü oluşturulacak ve sensörler listesinde görünecektir.
-
-
Bir sıcaklık sensörü oluşturun:
-
Sensors panelindeki Create sensor kutusunda, Sensor type kutusunu açın ve Temperature seçeneğini seçin.
-
Units ayarını Celsius olarak bırakın.
-
Pin ayarının 6 olduğundan emin olun.
-
Pin 6 üzerinde sıcaklık sensörünü oluşturmak için Add düğmesini seçin.
Sıcaklık sensörü oluşturulacak ve sensörler listesinde görünecektir.
-
Sıcaklık Sensörü Uygulamasını Programlama
Artık CounterFit sensörlerini kullanarak sıcaklık sensörü uygulamasını programlayabilirsiniz.
Görev - Sıcaklık sensörü uygulamasını programlayın
Sıcaklık sensörü uygulamasını programlayın.
-
temperature-sensor
uygulamasının VS Code'da açık olduğundan emin olun. -
app.py
dosyasını açın. -
Uygulamayı CounterFit'e bağlamak için aşağıdaki kodu
app.py
dosyasının en üstüne ekleyin:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Gerekli kütüphaneleri içe aktarmak için aşağıdaki kodu
app.py
dosyasına ekleyin:import time from counterfit_shims_seeed_python_dht import DHT
from seeed_dht import DHT
ifadesi,counterfit_shims_seeed_python_dht
modülünden bir shim kullanarak sanal bir Grove sıcaklık sensörüyle etkileşim kurmak içinDHT
sensör sınıfını içe aktarır. -
Yukarıdaki kodun ardından, sanal nem ve sıcaklık sensörünü yöneten sınıfın bir örneğini oluşturmak için aşağıdaki kodu ekleyin:
sensor = DHT("11", 5)
Bu, sanal Dijital Nem ve Sıcaklık sensörünü yöneten
DHT
sınıfının bir örneğini tanımlar. İlk parametre, kullanılan sensörün sanal bir DHT11 sensörü olduğunu kodlara bildirir. İkinci parametre, sensörün5
portuna bağlı olduğunu kodlara bildirir.💁 CounterFit, bu birleştirilmiş nem ve sıcaklık sensörünü,
DHT
sınıfı oluşturulduğunda verilen pin üzerindeki bir nem sensörüne ve bir sonraki pin üzerinde çalışan bir sıcaklık sensörüne bağlanarak simüle eder. Eğer nem sensörü pin 5 üzerindeyse, shim sıcaklık sensörünün pin 6 üzerinde olmasını bekler. -
Sıcaklık sensörü değerini sorgulamak ve konsola yazdırmak için yukarıdaki kodun ardından sonsuz bir döngü ekleyin:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
sensor.read()
çağrısı, nem ve sıcaklık değerlerinden oluşan bir tuple döndürür. Sadece sıcaklık değerine ihtiyacınız var, bu yüzden nem değeri göz ardı edilir. Sıcaklık değeri daha sonra konsola yazdırılır. -
Döngünün sonunda, sıcaklık seviyelerinin sürekli olarak kontrol edilmesine gerek olmadığından, cihazın güç tüketimini azaltmak için on saniyelik bir bekleme süresi ekleyin.
time.sleep(10)
-
Sanal ortamın etkin olduğu bir VS Code Terminalinden aşağıdaki komutu çalıştırarak Python uygulamanızı çalıştırın:
python app.py
-
CounterFit uygulamasından, uygulama tarafından okunacak sıcaklık sensörünün değerini değiştirin. Bunu iki şekilde yapabilirsiniz:
-
Sıcaklık sensörü için Value kutusuna bir sayı girin ve ardından Set düğmesini seçin. Girdiğiniz sayı, sensör tarafından döndürülen değer olacaktır.
-
Random kutusunu işaretleyin ve bir Min ve Max değeri girin, ardından Set düğmesini seçin. Sensör her değer okuduğunda, Min ve Max arasında rastgele bir sayı okuyacaktır.
Konsolda ayarladığınız değerlerin göründüğünü görmelisiniz. Value veya Random ayarlarını değiştirerek değerin değiştiğini gözlemleyin.
(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
-
💁 Bu kodu code-temperature/virtual-device klasöründe bulabilirsiniz.
😀 Sıcaklık sensörü programınız başarıyla çalıştı!
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.