You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/tr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md

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.

  1. Bilgisayarınızda temperature-sensor adlı bir klasörde app.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.

  2. 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
    
  3. CounterFit web uygulamasının çalıştığından emin olun.

  4. Bir nem sensörü oluşturun:

    1. Sensors panelindeki Create sensor kutusunda, Sensor type kutusunu açın ve Humidity seçeneğini seçin.

    2. Units ayarını Percentage olarak bırakın.

    3. Pin ayarının 5 olduğundan emin olun.

    4. Pin 5 üzerinde nem sensörünü oluşturmak için Add düğmesini seçin.

    Nem sensörü ayarları

    Nem sensörü oluşturulacak ve sensörler listesinde görünecektir.

    Oluşturulan nem sensörü

  5. Bir sıcaklık sensörü oluşturun:

    1. Sensors panelindeki Create sensor kutusunda, Sensor type kutusunu açın ve Temperature seçeneğini seçin.

    2. Units ayarını Celsius olarak bırakın.

    3. Pin ayarının 6 olduğundan emin olun.

    4. Pin 6 üzerinde sıcaklık sensörünü oluşturmak için Add düğmesini seçin.

    Sıcaklık sensörü ayarları

    Sıcaklık sensörü oluşturulacak ve sensörler listesinde görünecektir.

    Oluşturulan sıcaklık sensörü

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.

  1. temperature-sensor uygulamasının VS Code'da açık olduğundan emin olun.

  2. app.py dosyasınıın.

  3. 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)
    
  4. 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çin DHT sensör sınıfını içe aktarır.

  5. 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ün 5 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.

  6. 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.

  7. 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)
    
  8. 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
    
  9. 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.