İçindekiler:
- Adım 1: Donanımı Hazırlama
- 2. Adım: SSH'yi Etkinleştirme
- 3. Adım: Cloud4RPi'yi Yükleme
- Adım 4: Sensörü Bağlama
- Adım 5: Sensör Okumalarını Buluta Gönderme
- Adım 6: Grafikler ve Alarmlar
Video: Raspberry Pi Kullanarak Sıcaklık ve Nem Takibi: 6 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Yaz geliyor ve kliması olmayanlar, içerideki atmosferi manuel olarak kontrol etmeye hazırlanmalıdır. Bu yazıda, insan konforu için en önemli parametreleri ölçmenin modern yolunu anlatıyorum: sıcaklık ve nem. Toplanan bu veriler buluta gönderilir ve orada işlenir.
Raspberry Pi 1 kartı ve DHT22 sensörü kullanıyorum. Aynı şeyi İnternet, GPIO ve Python bulunan herhangi bir bilgisayarda da yapabilirsiniz. Daha ucuz olan DHT11 sensörü de gayet iyi çalışıyor.
Adım 1: Donanımı Hazırlama
Raspberry Pi'mi uzun süredir kullanmadığım için en baştan başlayalım.
İhtiyacımız olacak:
- Raspberry Pi kartı (veya diğer IoT odaklı platform).
- SD veya microSD kart (platforma bağlı olarak).
- Mikro USB üzerinden 5V/1A.
- İnternet bağlantısını sağlayan LAN kablosu.
- HDMI ekranı, RCA ekranı veya UART bağlantı noktası (SSH'yi etkinleştirmek için).
İlk adım Raspbian'ı indirmek. Ekran yerine SSH kullanacağım için Lite sürümünü seçtim. Son yaptığımdan bu yana her şey değişti: şimdi Etcher adında mükemmel çalışan ve çarpıcı bir tasarıma sahip harika bir yazma yazılımı var..
Görüntü yazma işlemi tamamlandıktan sonra SD kartımı Pi'me yerleştirdim, LAN ve güç kablolarını taktım ve bir süre sonra yönlendiricim yeni cihazı kaydetti.
2. Adım: SSH'yi Etkinleştirme
SSH varsayılan olarak devre dışıdır. Kabuğa erişmek ve SSH'yi etkinleştirmek için UART-USB dönüştürücü kullanabilir veya sadece bir ekran bağlayabilirim.
Yeniden başlattıktan sonra nihayet girdim. İlk önce, güncelleyelim:
sudo apt güncelleme && sudo apt yükseltme -y
Şimdi bu yeni cihazı Bulut'a bağlayalım.
3. Adım: Cloud4RPi'yi Yükleme
IoT için tasarlanmış Cloud4RPi adlı bulut platformunu denemeye karar verdim.
Dokümanlara göre, onu çalıştırmak için aşağıdaki paketlere ihtiyacımız var:
sudo apt kurulumu git python python-pip -y
İstemci kitaplığı tek bir komutla kurulabilir:
sudo pip cloud4rpi yükleyin
Şimdi çalıştığından emin olmak için bazı örnek kodlara ihtiyacımız var.
git klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git klon https://Gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal.py minimal.py && rmdir -re
Minimal.py'yi çalıştırmaya karar verdim, ancak sahte verileri sevmiyorum. Neyse ki, bu örnekte tanılama verilerini gerçeğe dönüştürmenin kolay bir yolunu fark ettim. İçe aktarma bölümüne bir içe aktarma daha ekleyin:
rpi'den içe aktarma *
Ardından, sahte veri sağlayan bu işlevleri silin (rpi.py şimdi bunları tanımlar):
tanımlı işlemci_temp():
return 70 def ip_address(): '8.8.8.8' def host_name(): 'hostname' def os_name(): 'osx' döndür
Şimdi Cloud4RPi'nin cihazları hesaplara bağlamasını sağlayan bir jetona ihtiyacımız var. Bir tane almak için cloud4rpi.io'da bir hesap oluşturun ve bu sayfadaki Yeni Cihaz düğmesine basın. Minimal.py dosyasındaki _YOUR_DEVICE_TOKEN_ dizesini cihazınızın belirteci ile değiştirin ve dosyayı kaydedin. Şimdi ilk lansman için hazırız.
piton minimal.py
Cihaz sayfasını açın ve verilerin orada olup olmadığını kontrol edin.
Şimdi gerçek dünya verilerine geçelim.
Adım 4: Sensörü Bağlama
İhtiyacımız olacak:
- DHT22 veya DHT11 nem sensörü
- Pull-up direnci (5-10 KΩ)
- teller
DHT22 sensörü, aynı anda sıcaklık ve nemi ölçer. İletişim protokolü standartlaştırılmamıştır, bu nedenle onu raspi-config'de etkinleştirmemize gerek yoktur - basit bir GPIO pini fazlasıyla yeterlidir.
Verileri elde etmek için Adafruit'in DHT sensörleri için harika kitaplığını kullanacağım, ancak olduğu gibi çalışmayabilir. Bir keresinde kodda, donanımım için çalışmayan garip bir sabit gecikme buldum ve iki yıl sonra çekme isteğim hala beklemede. BCM2835'li Raspberry Pi 1'im şaşırtıcı bir şekilde Raspberry Pi 3 olarak algılandığı için kart algılama sabitlerini de değiştirdim. Keşke gerçek olsaydı… Bu yüzden çatalımı kullanmanızı tavsiye ederim. Bununla ilgili herhangi bir sorun yaşarsanız, lütfen orijinal depoyu deneyin, belki birilerinin işine yarar ama ben onlardan biri değilim.
git klon https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Kitaplık C ile yazıldığı için derleme gerektirir, bu nedenle build-essential ve python-dev paketlerine ihtiyacınız vardır.
sudo apt kurulum inşa-temel python-dev -ysudo python setup.py kurulumu
Paketler kurulurken DHT22'yi resimdeki gibi bağlayınız.
Ve test edin:
cd ~python -c "Adafruit_DHT'yi d olarak içe aktar; d.read_retry (d. DHT22, 4) yazdır"
(39.20000076293945, 22.600000381469727) gibi bir şey görürseniz, bunun yüzde cinsinden nem ve Santigrat cinsinden sıcaklık olduğunu bilmelisiniz.
Şimdi her şeyi bir araya getirelim!
Adım 5: Sensör Okumalarını Buluta Gönderme
Minimal.py'yi temel olarak kullanacağım ve içine DHT22 etkileşimini ekleyeceğim.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
DHT22 tek bir çağrıda hem sıcaklığı hem de nemi döndürdüğü için, bunları global olarak saklıyorum ve aralarındaki gecikmenin 10 saniyeden fazla olduğunu varsayarak yalnızca bir istekte güncelliyorum. DHT22 verilerini alan aşağıdaki kodu göz önünde bulundurun:
Adafruit_DHT'yi içe aktar
temp, uğultu = Yok, Yok last_update = time.time() - 20 tanımlı update_data(): global last_update, uğultu, temp if time.time() - last_update > 10: uğultu, temp = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22, 4) last_update = time.time() def get_t(): update_data() dönüş turu(temp, eğer temp değilse 2) Başka Yok def get_h(): update_data() uğultu değilse dönüş turu(uğultu, 2) Başka Yok
Bu kodu mevcut içe aktarmalardan sonra ekleyin ve değişkenler bölümünü yeni işlevleri kullanacak şekilde düzenleyin:
değişkenler = {
'DHT22 Temp': { 'type': 'numeric', 'bind': get_t }, 'DHT22 Nem': { 'type': 'numeric', 'bind': get_h }, 'CPU Temp': { 'type ': 'sayısal', 'bağlama': cpu_temp } }
Veri aktarımını başlatmak için kırmızı düğmeye basın:
python cloud_dht22.py
Ardından cihaz sayfasını kontrol edebilirsiniz.
Olduğu gibi bırakabilirsiniz ama ben her şey için bir hizmet almayı tercih ederim. Bu, betiğin her zaman çalışmasını sağlar. Tam otomatik komut dosyasıyla bir hizmet oluşturma:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Hizmetin başlatılması:
sudo hizmeti cloud4rpi başlangıcı
Ve kontrol etmek:
pi@raspberrypi:~ $ sudo hizmeti cloud4rpi durumu -l
● cloud4rpi.service - Cloud4RPi arka plan programı Yüklendi: yüklendi (/lib/systemd/system/cloud4rpi.service; etkin) Etkin: 2017-05-17 Çarşamba 20:22:48 UTC'den beri aktif (çalışıyor); 1 dakika önce Ana PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 /usr/bin/python /home/pi/cloud_dht22.py17 Mayıs 20:22:51 raspberrypi python[560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20…y'}]}17 Mayıs 20:22:53 raspberrypi python[560]: iot-hub/mesaj yayınlama: {'type': 'data', 'ts': '2017-05-17T20:2…40'}}17 Mayıs 20:22:53 raspberrypi python[560]: iot-hub/messages yayınlama: {'type': 'sistem', 'ts': '2017-05-17T20….4'}}
Her şey beklendiği gibi çalışıyorsa, Cloud4RPi platformunun verileri işlemek için yeteneklerini kullanabiliriz.
Adım 6: Grafikler ve Alarmlar
Her şeyden önce, nasıl değiştiklerini görmek için değişkenleri çizelim. Bu, yeni bir Kontrol Paneli ekleyerek ve gerekli çizelgeleri buna yerleştirerek yapılabilir.
Burada yapabileceğimiz başka bir şey de bir Uyarı ayarlamaktır. Bu özellik, bir değişken için güvenli aralığı yapılandırmanızı sağlar. Menzil aşılır aşılmaz bir e-posta bildirimi gönderir. Kontrol Paneli düzenleme sayfasında, Uyarılar'a geçebilir ve bir tane ayarlayabilirsiniz.
Hemen ardından odamdaki nem, fark edilir bir sebep olmaksızın hızla azalmaya başladı ve hemen ardından alarm geldi.
Cloud4RPi'yi Python çalıştırabilen herhangi bir donanımla ücretsiz olarak kullanabilirsiniz. Bana gelince, artık hava nemlendiriciyi ne zaman açacağımı her zaman biliyorum ve hatta Cloud4RPi aracılığıyla uzaktan kontrol için bir röleye bile bağlayabilirim. Sıcaklara hazırım! Hoşgeldin yaz!
Önerilen:
M5STACK Visuino Kullanarak M5StickC ESP32 Üzerinde Sıcaklık, Nem ve Basıncı Görüntüleme - Yapması Kolay: 6 Adım
M5STACK Visuino Kullanarak M5StickC ESP32 Üzerinde Sıcaklık, Nem ve Basıncı Görüntüleme - Yapması Kolay: Bu eğitimde, ESP32 M5Stack StickC'yi Arduino IDE ve Visuino ile ENV sensörünü (DHT12, BMP280, BMM150)
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: 4 Adım
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: Merhaba arkadaşlar bu derste LM35'i Arduino ile nasıl kullanacağımızı öğreneceğiz. Lm35, -55 °C ile 150 °C arasındaki sıcaklık değerlerini okuyabilen bir sıcaklık sensörüdür. Sıcaklıkla orantılı analog voltaj sağlayan 3 terminalli bir cihazdır. Yüksek
SHT25 ve Raspberry Pi Kullanarak Sıcaklık ve Nem İzleme: 5 Adım
SHT25 ve Raspberry Pi Kullanarak Sıcaklık ve Nem İzleme: Son zamanlarda sıcaklık ve nem izleme gerektiren çeşitli projeler üzerinde çalıştık ve daha sonra bu iki parametrenin bir sistemin çalışma verimliliğini tahmin etmede gerçekten çok önemli bir rol oynadığını fark ettik. Hem sanayide
HTS221 ve Raspberry Pi Kullanarak Nem ve Sıcaklık Ölçümü: 4 Adım
HTS221 ve Raspberry Pi Kullanarak Nem ve Sıcaklık Ölçümü: HTS221, bağıl nem ve sıcaklık için ultra kompakt kapasitif bir dijital sensördür. Dijital seri aracılığıyla ölçüm bilgilerini sağlamak için bir algılama elemanı ve karma sinyal uygulamasına özel entegre devre (ASIC) içerir
HDC1000 ve Raspberry Pi Kullanarak Sıcaklık ve Nem Ölçümü: 4 Adım
HDC1000 ve Raspberry Pi Kullanarak Sıcaklık ve Nem Ölçümü: HDC1000, çok düşük güçte mükemmel ölçüm doğruluğu sağlayan entegre sıcaklık sensörüne sahip bir dijital nem sensörüdür. Cihaz, yeni bir kapasitif sensöre dayalı olarak nemi ölçer. Nem ve sıcaklık sensörleri fac