İçindekiler:

Raspberry Pi Sıcaklık Monitörü Nasıl Yapılır: 9 Adım
Raspberry Pi Sıcaklık Monitörü Nasıl Yapılır: 9 Adım

Video: Raspberry Pi Sıcaklık Monitörü Nasıl Yapılır: 9 Adım

Video: Raspberry Pi Sıcaklık Monitörü Nasıl Yapılır: 9 Adım
Video: Raspberry Pi Kurulumu Yapıp Uzaktan Arayüze Bağlanıyoruz! 2024, Kasım
Anonim
Ahududu Pi Sıcaklık Monitörü Nasıl Oluşturulur
Ahududu Pi Sıcaklık Monitörü Nasıl Oluşturulur

Sıcaklık ve nem, günümüzün endüstriyel dünyasında hayati veri noktalarıdır. Sunucu odaları, ticari dondurucular ve üretim hatları için çevresel verilerin izlenmesi, işlerin sorunsuz yürümesi için gereklidir. Temelden karmaşığa kadar birçok çözüm var ve işinizin neye ihtiyacı olduğu ve nereden başlayacağınız konusunda bunaltıcı görünebilir.

Raspberry Pi ve kullanabileceğiniz farklı sıcaklık sensörleri ile sıcaklığın nasıl izleneceğini anlatacağız. Bu çözümler ucuz olduğundan, yapılması kolay olduğundan ve size diğer çevresel izlemeler için bir temel oluşturmanız için iyi bir başlangıç noktasıdır.

Gereçler

  • Ahududu Pi (3, 4 veya Sıfır WH)
  • Sıcaklık Sensörü (DHT2, DSB18B20, BME280 veya Sense HAT)
  • 6" 40-Pin IDE Erkek - Dişi Uzatma Kablosu (Sense HAT Çözümü)
  • 10K Direnç, Breadboard, 40-Pin Breakout Board + Ribbon Kablo, Teller (DSB18B20 Çözümü İçin)

Adım 1: Ahududu Pi

Raspberry Pi, bir sıcaklık sensörüne bağlanmanıza ve verileri bir veri görselleştirme yazılımına aktarmanıza olanak tanıyan ucuz bir tek kartlı bilgisayardır. Raspberry Pi bir öğrenme aracı olarak başladı ve endüstriyel bir işyeri aracına dönüştü. En hızlı büyüyen programlama dili olan Python ile kullanım kolaylığı ve kodlama yeteneği, onları çözüme ulaştırdı.

Herhangi bir model 3, 4 ve sıfır W/WH olan WiFi yerleşik bir Raspberry Pi isteyeceksiniz. Bunlar arasında fiyat ve özelliklere göre seçim yapabilirsiniz. Zero W/WH en ucuzudur ancak daha fazla işlevselliğe ihtiyacınız varsa 3 ve 4 arasında seçim yapabilirsiniz. Raspberry Pi Foundation'ın sınırlamaları nedeniyle aynı anda yalnızca bir Zero W/WH satın alabilirsiniz. Hangi Pi'yi seçerseniz seçin, bir şarj cihazı satın aldığınızdan emin olun, çünkü işletim sisteminin kurulumunu olabildiğince kolaylaştırmak için Pi'yi ve bir SD kartı Raspbian ile bu şekilde çalıştıracaksınız.

Çalışabilecek başka tek kartlı bilgisayarlar da var, ancak bu başka bir zaman ve başka bir makale için.

Adım 2: Sensörler

Ucuz oldukları, bağlanması kolay oldukları ve doğru okumalar verdikleri için kullanmanızı önerdiğimiz üç sensör vardır; DSB18B20, DHT22 ve Raspberry Pi Sense HAT.

DHT22 - Bu sıcaklık ve nem sensörü, +/- 0,5 C sıcaklık doğruluğuna ve yüzde 0 ila 100 nem aralığına sahiptir. Raspberry Pi'ye bağlamak kolaydır ve herhangi bir çekme direnci gerektirmez.

DSB18B20 - Bu sıcaklık sensörü, Raspberry Pi ile iyi çalışan bir dijital çıkışa sahiptir. Üç kablosu vardır ve bağlantı için bir devre tahtası ve direnç gerektirir.

BME280 - Bu sensör sıcaklık, nem ve barometrik basıncı ölçer. Hem SPI hem de I2C'de kullanılabilir.

Sense HAT - Bu, Raspberry Pi için LED'ler, sensörler ve küçük bir joystick içeren yerleşik bir eklentidir. Doğrudan Raspberry Pi'deki GPIO'ya bağlanır, ancak şerit kablo kullanarak size daha doğru sıcaklık okumaları sağlar.

Adım 3: Raspberry Pi Kurulumu

Raspberry Pi'nizi ilk kez kuruyorsanız, Raspbian İşletim Sistemini kurmanız ve Pi'nizi WiFi'ye bağlamanız gerekir. Bu, Pi'ye bağlanmak için bir monitör ve klavye gerektirecektir. Çalıştırıp WiFI'ye bağladığınızda, Pi'niz kullanıma hazırdır.

Adım 4: İlk Durum Hesabı

İlk Durum Hesabı
İlk Durum Hesabı
İlk Durum Hesabı
İlk Durum Hesabı

İlk Durumu kullanmamız için geçmiş bir günlük tutmak ve gerçek zamanlı veri akışını görüntülemek için verilerinizi göndermek için bir yere ihtiyacınız olacak. https://iot.app.initialstate.com adresine gidin ve yeni bir hesap oluşturun veya mevcut hesabınıza giriş yapın.

Ardından, Pi'nize Initial State Python modülünü kurmamız gerekiyor. Bir komut isteminde (önce Pi'nize SSH yazmayı unutmayın), aşağıdaki komutu çalıştırın:

$ cd /ev/pi/

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

Komut istemine curl komutunu girdikten sonra, ekranda aşağıdaki çıktıya benzer bir şey göreceksiniz:

@raspberrypi ~

$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash Şifre: 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 bir örnek komut dosyası almanız istendiğinde, y yazın. Bu, verileri İlk Duruma aktarabileceğimizden emin olmak için çalıştırabileceğimiz bir test komut dosyası oluşturacaktır. Sonraki istem, örnek dosyayı nereye kaydetmek istediğinizi soracaktır. Varsayılan konumu kabul etmek için özel bir yerel yol yazabilir veya enter tuşuna basabilirsiniz. Son olarak, hangi Initial State uygulamasını kullandığınız sorulacak. Yakın zamanda bir hesap oluşturduysanız, 2. seçeneği seçin, kullanıcı adınızı ve şifrenizi girin. Bundan sonra kurulum tamamlanmış olacaktır.

Oluşturulan örnek scripte bir göz atalım.

$ nano is_example.py

15. satırda, streamer = Streamer(bucket_ … ile başlayan bir satır göreceksiniz. Bu satırlar, “Python Stream Example” adında yeni bir veri grubu oluşturur ve hesabınızla ilişkilendirilir. Bu ilişkilendirme, access_key=”…” nedeniyle gerçekleşir. Aynı satırdaki parametre. Bu uzun harf ve rakamlar dizisi, Initial State hesap erişim anahtarınızdır. Web tarayıcınızda Initial State hesabınıza giderseniz, sağ üstteki kullanıcı adınıza tıklayın ve ardından "ayarlarım"a gidin., aynı erişim anahtarını burada “Akış Erişim Anahtarları” altında bulacaksınız.

Her veri akışı oluşturduğunuzda, bu erişim anahtarı bu veri akışını hesabınıza yönlendirecektir (bu nedenle anahtarınızı kimseyle paylaşmayı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ğıdakileri çalıştırın:

$ python is_example.py

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). Bu kovaya tıklayın ve ardından test verilerini görüntülemek için Dalgalar simgesine tıklayın

Python 3 kullanıyorsanız, aşağıdaki komutu kullanarak kurabileceğiniz Initial State Streamer Module'ü kurabilirsiniz:

pip3 ISStreamer'ı kurun

Şimdi sıcaklığı bir gösterge panosuna aktarmak için sıcaklık sensörünü Pi ile kurmaya hazırız.

Adım 5: DHT22 Çözümü

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

DHT22'nin üç pimi olacaktır - 5V, Gnd ve veri. DHT22'de güç için bir pin etiketi olmalıdır (örneğin, '+' veya '5V'). Bunu Pi'nin 2 numaralı pinine (sağ üst pin, 5V) bağlayın. Gnd pini '-' veya 'Gnd' veya eşdeğer bir şey olarak etiketlenecektir. Bunu Pi üzerindeki 6 Gnd'ye (5V pinin altındaki iki pin) bağlayın. DHT22'de kalan pin veri pinidir ve 'out' veya 's' veya 'data' olarak etiketlenecektir. Bunu Pi üzerindeki GPIO4 (pin 7) gibi GPIO pinlerinden birine bağlayın. Bu kablolandıktan sonra Pi'nizi açın.

DHT22 sensör verilerini okumayı çok kolay hale getirmek için Adafruit DHT Python modülünü bir komut istemine kurun:

$ sudo pip Adafruit_DHT'yi kurun

Sensör verilerini okumak ve İlk Duruma veri göndermek için iki Python modülümüzle birlikte kurulu işletim sistemimiz ile Python betiğimizi yazmaya hazırız. Aşağıdaki komut dosyası, bir Başlangıç Durumu veri paketi oluşturacak/ekleyecek, DHT22 sensör verilerini okuyacak ve bu verileri gerçek zamanlı bir gösterge panosuna gönderecektir. Tek yapmanız gereken 6-11 satırlarını değiştirmek.

Adafruit_DHT'yi içe aktar

ISStreamer'dan. Streamer içe Aktarıcı içe aktarma zamanı# --------- Kullanıcı Ayarları --------- SENSOR_LOCATION_NAME = "Ofis" BUCKET_NAME = ":partly_sunny: Oda Sıcaklıkları" BUCKET_KEY = "rt0129" ACCESS_KEY = "BAŞLANGIÇ DURUM ERİŞİM ANAHTARINIZI BURAYA YERLEŞTİRİN" MINUTES_BETWEEN_READS = 10METRIC_UNITS = Yanlış # --------------------------------- yayıncı = Streamer(bucket_name=BUCKET_NAME, kova_key=BUCKET_KEY, access_key=ACCESS_KEY) while True: nem, temp_c = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22, 4) eğer METRIC_UNITS: streamer.log(SENSOR_LOCATION_NAME), "temp_c": temp_f = format(temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log(SENSOR_LOCATION_NAME + " Sıcaklık(F)", temp_f) nem = format(nem, ".2f") streamer.log(SENSOR_LOCATION_NAME + " Nem(%)", nem) streamer.flush() time.sleep(60*DAKİKA_BETWEEN_READS)

  • Satır 6 - Bu değer, her düğüm/sıcaklık sensörü için benzersiz olmalıdır. Bu, sensör düğümünüzün oda adı, fiziksel konumu, benzersiz tanımlayıcısı veya herhangi bir şey olabilir. Bu düğümden gelen verilerin gösterge tablonuzdaki kendi veri akışına gitmesini sağlamak için her düğüm için benzersiz olduğundan emin olun.
  • Satır 7 - Bu, veri paketinin adıdır. Bu, İlk Durum Kullanıcı Arayüzü'nde herhangi bir zamanda değiştirilebilir.
  • Satır 8 - Bu sizin kova anahtarınız. Aynı panoda görüntülenmesini istediğiniz her düğüm için aynı paket anahtarı olması gerekir.
  • 9. Satır - Bu, İlk Durum hesap erişim anahtarınızdır. Bu anahtarı İlk Durum hesabınızdan kopyalayıp yapıştırın.
  • Satır 10 - Bu, sensör okumaları arasındaki süredir. Buna göre değiştirin.
  • 11. satır - 11. satırda metrik veya İngiliz ölçü birimleri belirtebilirsiniz.

Pi'nizdeki Python betiğinizde 6-11 satırlarını ayarladıktan sonra, metin düzenleyiciden kaydedin ve çıkın. Komut dosyasını aşağıdaki komutla çalıştırın:

$ python tempsensor.py

Artık bir İlk Durum panosuna veri göndereceksiniz. Kontrol panelinizi nasıl özelleştireceğinizle ilgili ayrıntılar için bu makalenin son bölümüne gidin.

Adım 6: DSB18B20 Çözümü

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

Şerit kablo, Pi üzerindeki GPIO pinlerine bağlanır. DS18B20'nin üç kablosu vardır. Kırmızı kablo 3.3V'a bağlanır. Mavi/siyah kablo toprağa bağlanır. Sarı kablo, bir çekme direncine/pin 4'e bağlanır. Bu kablolar bağlandıktan sonra Pi'nizi açın.

Raspbian'ın en son sürümü (çekirdek 3.18), Pi'nin DS18B20 ile iletişim kurması için /boot/config.txt dosyanıza bir ek gerektirir. Bu dosyayı düzenlemek için aşağıdakileri çalıştırın:

$ sudo nano /boot/config.txt

Aşağıdaki satır bu dosyada zaten yoksa (varsa, muhtemelen dosyanın altındadır), onu ekleyin ve dosyayı kaydedin.

dtoverlay=w1-gpio, gpiopin=4

Değişikliklerin etkili olması için Pi'nizi yeniden başlatın.

$ sudo yeniden başlatma

Sıcaklık sensörü okuma arayüzünü başlatmak için iki komut çalıştırmamız gerekiyor. Pi veya SSH'nizdeki bir komut istemine Pi'nize gidin. Aşağıdaki komutları yazın:

$ sudo modprobe w1-gpio$ sudo modprobe w1-therm

Sıcaklık sensörünüzün çıktısı şimdi Pi'nizdeki bir dosyaya yazılıyor. O dosyayı bulmak için:

$ cd /sys/bus/w1/cihazlar

Bu dizinde “28-“ile başlayan bir alt dizin olacaktır. “28-”den sonra gelen ise sensörünüzün seri numarasıdır. cd'yi bu dizine atın. Bu dizinin içinde w1_slave adlı bir dosya sensörünüzün çıktısını içerir. Dosyanın içeriğini görüntülemek için nano'yu kullanın. Dosyaya girdikten sonra, şöyle görünecektir:

a2 01 4b 46 7f ff 0e 10 d8: crc=d8 YESa2 01 4b 46 7f ff 0e 10 d8 t=26125

“t=” den sonraki sayı istediğimiz sayıdır. Bu, 1/1000 santigrat derece cinsinden sıcaklıktır (yukarıdaki örnekte sıcaklık 26.125 C'dir). Sadece bu dosyayı okuyan ve bu sayıyı ayrıştıran basit bir programa ihtiyacımız var. Buna bir saniye içinde geleceğiz.

Artık veri akışına başlamamız için her şey hazır. Metin düzenleyiciyi açmak için komut istemine aşağıdakini yazın:

$ nano sıcaklık.py

Aşağıdaki kodu kopyalayıp metin düzenleyiciye yapıştırın.

işletim sistemini içe aktar

ISStreamer. Streamer'dan küre içe aktarma süresi içe aktarma Streamerstreamer = Streamer(bucket_name="Sıcaklık Akışı", kova_key="piot_temp_stream031815", access_key="PUT_YOUR_ACCESS_KEY_HERE") os.system('modprobe w1-gpio') os.system('modprobe w1 -therm') base_dir = '/sys/bus/w1/devices/' device_folder = glob.glob(base_dir + '28*')[0] device_file = device_folder + '/w1_slave' def read_temp_raw(): f = open(device_file, 'r') satırlar = f.readlines() f.close() satırları döndürür def read_temp(): satırlar = read_temp_raw() iken satırlar[0].strip()[-3:] != 'EVET': time.sleep(0.2) satır = read_temp_raw() equals_pos = satır[1].find('t=') if equals_pos != -1: temp_string = satır[1][equals_pos+2:] temp_c = kayan nokta(temp_string) / 1000.0 True iken temp_c döndürür: temp_c = read_temp() temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log("sıcaklık (C)", temp_c) streamer.log("sıcaklık (F)", temp_f) zaman.sleep (.5)

İlk Durum erişim anahtarınızı PUT_YOUR_ACCESS_KEY_HERE yerine 6. satıra koymanız gerekir (akış anahtarını 'Hesabım'dan panonuza kopyalayın ve terminalinizdeki nano'daki koda yapıştırın).

6. satır, İlk Durum hesabınızda "Sıcaklık Akışı" adlı bir paket oluşturacaktır (aynı satırda access_key'inizi doğru bir şekilde belirttiğinizi varsayarak). Bu komut dosyasının 8'den 30'a kadar olan satırları, daha önce tartıştığımız w1_slave dosyasından sıcaklığını okumak için DS18B20 sensörüyle arayüz oluşturur. 15. satırdaki read_temp_raw() işlevi, ham w1_slave dosyasını okur. 21. satırdaki read_temp() işlevi, o dosyadaki sıcaklığı ayrıştırır. Hat 34, mevcut sıcaklığı almak için bu fonksiyonları çağırır. Hat 35, sıcaklığı Celsius'tan Fahrenheit'e dönüştürür. 35 ve 36. satırlar, sıcaklığı İlk Durum hesabınıza aktarır. Satır 37, komut dosyasını 0,5 saniye duraklatır ve sıcaklık sensörünün ne sıklıkta okunacağını ve aktarılacağını ayarlar.

Akışı başlatmaya hazırız. Aşağıdaki komutu çalıştırın:

$ sudo python sıcaklık.py

Web tarayıcınızda İlk Durum hesabınıza geri dönün ve Sıcaklık Akışı adlı yeni bir veri paketi arayın. Sıcaklık verilerinin canlı olarak akışını görmelisiniz. Elinizde tutarak veya bir bardak buza koyarak sensörün sıcaklığını değiştirin.

Şimdi bir İlk Durum panosuna veri göndereceksiniz. Kontrol panelinizi nasıl özelleştireceğinizle ilgili ayrıntılar için bu makalenin son bölümüne gidin.

Adım 7: BME280 Çözümü

Bu çözümü oluşturmak için aşağıdakilere ihtiyacınız olacak:

-BME280 Basınç, Sıcaklık ve Nem Sensörü

Bu sensör, sensöre lehimlemeniz gereken pimlerle birlikte gelir. Lehimlemeyi kolaylaştırmak için pimleri uzun tarafı devre tahtasına gelecek şekilde bir devre tahtası kullanmanızı öneririm. Bunu tamamladıktan sonra sensörü Pi'ye bağlamamız gerekiyor.

Sensördeki VIN pinini Pi üzerindeki 3.3V pin 1'e bağlayın. Sensör üzerindeki GND pimini Pi üzerindeki topraklama pimi 6'ya bağlayın. Sensördeki SCK pinini Pi üzerindeki SCL pin 5'e bağlayın. Sensördeki SDI pinini Pi üzerindeki SDA pin 3'e bağlayın. Bu çözüm için Python 3 kullanmanız ve pip3 kurulum yöntemini kullanarak Initial State Streamer modülünü kurmanız gerekir.

Ayrıca birkaç Adafruit Python kitaplığı kurmanız gerekecek.

pip3 adafruit-blinkapip3 kurunpurpurio pip3 kurun spidev pip3 kurun adafruit-GPIO pip3 kurun adafruit-circuitpython-bme280 kurun

Sensörü kullanmak için Pi'de I2C'yi etkinleştirmemiz gerekiyor.

sudo raspi yapılandırması

Bu, Raspberry Pi Yazılım Yapılandırma Aracını açacaktır. Seçenek 5 Arayüz Seçenekleri'ne gidin. Buradan I2C'ye gidin. I2C'yi etkinleştirmek isteyip istemediğinizi soracak, Evet'i seçin ve Bitir. Artık sensörle iletişim kurmak için I2C'yi etkinleştirdiniz.

Aşağıdakileri çalıştırarak bunu test edebiliriz:

sudo i2cdetect -y 1

Bu, Pi'nizin sensörü gördüğünü doğrulayacaktır. Bağlantı şekli olarak 77 adresindeki sensörü göstermelidir. Sensörü algılamazsanız Pi'nizi yeniden başlatın, Pi'nizde I2C interface seçeneğini yeniden etkinleştirin ve tekrar deneyin. Sensörünüz algılandıktan sonra artık zamanı gelmiştir. İlk Duruma veri gönderecek olan ana kodumuzu çalıştırmak için. Nano komutuyla bme280sensor.py adlı bir dosya oluşturuldu. Kodu ana bölümden kopyalayıp metin düzenleyiciye yapıştırın. 12–19 arasındaki satırlarda değişiklik yapmanız gerekecek.

ithalat zamanı

panoyu içe aktar busio'yu içe aktar adafruit_bme280'i ISStreamer. Streamer'dan içe aktar Streamer'ı içe aktar # Bus I2C portumuzu kullanarak kitaplık nesnesi oluşturun i2c = busio. I2C(board. SCL, board. SDA) bme280 = adafruit_bme280. Adafruit_BME280_I2C(i2c) # ------- -- Kullanıcı Ayarları --------- SENSOR_LOCATION_NAME = "Ofis" BUCKET_NAME = ":partly_sunny: Oda Sıcaklığı" BUCKET_KEY = "temp1" ACCESS_KEY = "BURADAN ERİŞİM ANAHTARI BURADA" # bunu konumun basıncına uyacak şekilde değiştirin (hPa) deniz seviyesinde bme280.sea_level_pressure = 1013,25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = Yanlış # --------------------------------- # VEYA Bus SPI bağlantı noktamızı kullanarak kütüphane nesnesi oluşturun #spi = busio. SPI(board. SCK, board. MOSI, board. MISO) #bme_cs = digitalio. DigitalInOut(board. D10) #bme280 = adafruit_bme280. Adafruit_BME280_SPI(spi, bme_cs) streamer = Streamer(bucket_name=BUCKET_NAME, kova_key=BUCKET_KEY, access_key=ACCESS_KEY) iken True: nem = format(bme280.humidity, ".1f") basınç = format(bme280.pressure, ".1f") temp_c = bme280.temperatu re if METRIC_UNITS: streamer.log(SENSOR_LOCATION_NAME + "Sıcaklık(C)", temp_c) başka: temp_f = format(temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log(SENSOR_LOCATION_NAME + " Sıcaklık(F)", temp_f) streamer.log(SENSOR_LOCATION_NAME + "Nem(%)", nem) streamer.log(SENSOR_LOCATION_NAME + "Basınç(hPA)", basınç) streamer.flush() time.sleep(60*DAKİKA_BETWEEN_READS)

  • Satır 12- Bu değer, her bir düğüm/sıcaklık sensörü için benzersiz olmalıdır. Bu, sensör düğümünüzün oda adı, fiziksel konumu, benzersiz tanımlayıcısı veya herhangi bir şey olabilir. Bu düğümden gelen verilerin gösterge tablonuzdaki kendi veri akışına gitmesini sağlamak için her düğüm için benzersiz olduğundan emin olun.
  • Satır 13- Bu, veri kovasının adıdır. Bu, İlk Durum Kullanıcı Arayüzü'nde herhangi bir zamanda değiştirilebilir.
  • Satır 14- Bu sizin kova anahtarınız. Aynı panoda görüntülenmesini istediğiniz her düğüm için aynı paket anahtarı olması gerekir.
  • Satır 15- Bu, Başlangıç Durumu hesap erişim anahtarınızdır. Bu anahtarı İlk Durum hesabınızdan kopyalayıp yapıştırın.
  • Satır 17- Bu, bulunduğunuz yerin deniz seviyesindeki basıncıdır (hPa). Bu bilgiyi çoğu hava durumu web sitesinde bulabilirsiniz.
  • Satır 18 - Bu, sensör okumaları arasındaki süredir. Buna göre değiştirin. Satır 19- Burada metrik veya İngiliz ölçü birimlerini belirtebilirsiniz.

Pi Zero WH'nizdeki Python betiğinizde 12–19 satırlarını ayarladıktan sonra, metin düzenleyiciden kaydedin ve çıkın. Komut dosyasını aşağıdaki komutla çalıştırın:

$ python3 bme280sensor.py

Şimdi bir İlk Durum panosuna veri göndereceksiniz. Kontrol panelinizi nasıl özelleştireceğinizle ilgili ayrıntılar için bu makalenin son bölümüne gidin.

Adım 8: HAT'ı Algılayın

Duyu ŞAPKA
Duyu ŞAPKA
Duyu ŞAPKA
Duyu ŞAPKA

Sense HAT'ı kullanmanın ilk adımı, onu Pi'nize fiziksel olarak kurmaktır. Pi kapalıyken, HAT'ı resimde gösterildiği gibi takın.

Çözümü yukarıda gösterildiği gibi kullanmaya karar verirseniz, Sense HAT'ınızın sıcaklık okumalarının biraz yüksek olacağını fark edebilirsiniz - çünkü öyledir. Suçlu, Pi'nin üzerinde otururken Sense HAT'ın etrafındaki havayı ısıtan Pi'nin CPU'su tarafından üretilen ısıdır. Sıcaklık sensörünü kullanışlı hale getirmek için, HAT'ı Pi'den uzaklaştırmamız veya sıcaklık sensörü okumasını kalibre etmeye çalışmamız gerekir. Sensörü Pi'den uzaklaştırmak için iyi bir çözüm, Sense HAT'ın Pi'den sarkmasını sağlayan bir kablodur. 6 , 40-pin IDE erkek - dişi uzatma kablosu kablosu işinizi görecektir.

İki seçeneğe karar verdikten sonra Pi'nizi açın. Sense HAT'tan sensör değerlerini okumayı kolaylaştırmak için Python kütüphanesini kurmamız gerekiyor. Öncelikle, Raspbian sürümünüzde her şeyin güncel olduğundan emin olmanız gerekir:

$ sudo apt-get güncellemesi

Ardından, Sense HAT Python kitaplığını yükleyin:

$ sudo apt-get install sense-hat

Pi'nizi yeniden başlatın. Sensör verilerini okuyarak ve bu verileri İlk Duruma göndererek Sense HAT'ı test etmeye hazırız.

Sensehat adlı bir dosya oluşturun ve komut istemine aşağıdakileri girerek metin düzenleyicide açın:

$ nano sensehat.py

Aşağıdaki kodu kopyalayıp metin düzenleyiciye yapıştırın.

sense_hat'tan SenseHat'ı içe aktar

ISStreamer. Streamer'dan içe aktarma zamanı içe aktarma Streamer # --------- Kullanıcı Ayarları --------- BUCKET_NAME = "Ofis Hava Durumu" BUCKET_KEY = "Sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = " Office" MINUTES_BETWEEN_SENSEHAT_READS = 0,1 # --------------------------------- yayıncı = Yayıncı(kova_adı=BUCKET_NAME, kova_key=BUCKET_KEY, access_key=ACCESS_KEY) sense = SenseHat() iken True: # Sensörleri okuyun temp_c = sense.get_temperature() nem = sense.get_humidity() press_mb = sense.get_pressure() # Verileri biçimlendir temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = float("{0:.2f}".format(temp_f)) nem = float("{0:.2f}".format(nem)) basınç_in = 0.03937008*(basınç_mb) basınç_in = kayan("{ 0:.2f}".format(pressure_in)) # Yazdırma ve akış yazdırma SENSOR_LOCATION_NAME + " Sıcaklık(F): " + str(temp_f) print SENSOR_LOCATION_NAME + " Nem(%): " + str(nem) print SENSOR_LOCATION_NAME + " Basınç(IN): " + str(basınç_in) streamer.log(":güneşli: " + SEN SOR_LOCATION_NAME + " Sıcaklık(F)", temp_f) streamer.log(":sweat_drops: " + SENSOR_LOCATION_NAME + " Nem(%)", nem) streamer.log(":bulut: " + SENSOR_LOCATION_NAME + " Basınç(IN)", basınç_in) streamer.flush() time.sleep(60*MINUTES_BETWEEN_SENSEHAT_READS)

İlk satırda SenseHat kitaplığını komut dosyasına aktardığımıza dikkat edin. Bu betiği çalıştırmadan önce kullanıcı parametrelerimizi ayarlamamız gerekiyor.

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

BUCKET_NAME = "Ofis Hava Durumu"BUCKET_KEY = "sensehat"ACCESS_KEY = "Your_Access_Key"SENSOR_LOCATION_NAME = "Ofis"MINUTES_BETWEEN_SENSEHAT_READS = 0.1# ------------------------- --------

Özellikle, ACCESS_KEY'inizi Başlangıç Durumu hesap erişim anahtarınıza ayarlamanız gerekir. BUCKET_NAME ve SENSOR_LOCATION_NAME öğesini gerçek sensör konumuna değiştirebilirsiniz. Metin düzenleyiciyi kaydedin ve çıkın.

Pi'nizdeki bir komut isteminde komut dosyasını çalıştırın:

$ sudo python sensehat.py

Şimdi bir İlk Durum panosuna veri göndereceksiniz. Kontrol panelinizi nasıl özelleştireceğinizle ilgili ayrıntılar için bu makalenin son bölümüne gidin.

9. Adım: İlk Durum Panonuzu Özelleştirin

İlk Durum Kontrol Panelinizi Özelleştirin
İlk Durum Kontrol Panelinizi Özelleştirin

İlk Durum hesabınıza gidin ve verilerinize bakın. Grafik türünü değiştirmek için bir Döşemeye sağ tıklayabilir ve Döşemelerinizi yeniden boyutlandırmak ve hareket ettirmek için Döşemeleri Düzenle'ye tıklayabilirsiniz. Sıcaklık için gösterge termostatını ve nem için gösterge sıvı seviyesini kullanmanızı tavsiye ederim. Zaman içindeki değişiklikleri görmek için hem sıcaklık hem de nem için çizgi grafikler oluşturabilirsiniz. Kontrol panelinize bir arka plan resmi de ekleyebilirsiniz.

Sıcaklık belirli bir eşiğin altına düşerse veya üstüne çıkarsa bir SMS veya e-posta alabilmeniz için Tetikleyici uyarıları ayarlayabilirsiniz. Veri paketinize gidin ve ayarlara tıklayın. Oradan Tetikleyiciler sekmesine gidin. İzlemek istediğiniz yayın anahtarını, kullanmak istediğiniz operatörü ve eşik değerini girin. Tetikleyiciyi eklemek için artı işaretine tıklayın. Ardından, uyarıyı almak için e-posta adresinizi veya telefon numaranızı girip artı işaretini tıklayacaksınız. Tüm Tetikleyicilerinizi ayarladıktan sonra alttaki Bitti düğmesini tıklayın.

Artık bir sıcaklık sensörü ve bir Raspberry Pi kullanarak bir sıcaklık monitörü oluşturduğunuza göre, daha sonra başka hangi çevresel verileri izleyebileceğinizi düşünmeye başlayabilirsiniz.

Önerilen: