İçindekiler:

Buluttaki Nem: 5 Adım
Buluttaki Nem: 5 Adım

Video: Buluttaki Nem: 5 Adım

Video: Buluttaki Nem: 5 Adım
Video: Yalçın Bulut&Memati Baş - En iyi sahneler 2024, Temmuz
Anonim
Buluttaki Nem
Buluttaki Nem

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.

Gereçler

Raspberry Pi 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

Donanım Hazırlama
Donanım Hazırlama
Donanım Hazırlama
Donanım Hazırlama
Donanım Hazırlama
Donanım Hazırlama
Donanım Hazırlama
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).
  • İnternet bağlantısını sağlayan mikro-USB. LAN kablosu aracılığıyla 5V/1A.
  • 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 işler 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.

Harika! Devam edelim ve içine SSH.

Güvenlik tamam, hoşuma gidiyor ama bu işleri biraz daha zorlaştırıyor. Kabuğa erişmek ve SSH'yi etkinleştirmek için UART-USB adaptörünü kullanacağım…

UART yerine bir ekran kullanmak bunu çok daha kolaylaştırır.

Yeniden başlattıktan sonra nihayet içeri giriyorum.

İlk önce ilk şeyler, güncelleyelim:

sudo apt güncelleme && sudo apt yükseltme -y

Şimdi bu yeni cihazı Bulut'a bağlayalım.

2. Adım: Cloud4RPi'yi Yükleme

Cloud4RPi'yi Yükleme
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 python3 python3-pip -y

İstemci kitaplığı tek bir komutla kurulabilir:

sudo pip3 cloud4rpi'yi kurun

Şimdi bazı örnek kodlara ihtiyacımız var.

git klonu https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python

Yürütülebilir komut dosyası control.py'dir.

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. Control.py dosyasındaki _YOUR_DEVICE_TOKEN_ dizesini cihazınızın belirteciyle değiştirin ve dosyayı kaydedin. Şimdi ilk lansman için hazırız.

sudo python3 kontrol.py

Cihaz sayfasını açın ve verilerin orada olup olmadığını kontrol edin.

Şimdi gerçek dünya verilerine geçelim.

Adım 3: Sensörü Bağlama

Sensörü Bağlama
Sensörü Bağlama

İhtiyacımız olacak:

  • DHT22 veya DHT11 nem sensörü
  • Pull-up direnci (5-10 KΩ)
  • Teller

DHT22 sensörü, sıcaklık ve nemi aynı anda ö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.gitcd 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 4: Sensör Okumalarını Buluta Gönderme

Sensör Okumalarını Buluta Gönderme
Sensör Okumalarını Buluta Gönderme
Sensör Okumalarını Buluta Gönderme
Sensör Okumalarını Buluta Gönderme

Control.py'yi temel olarak kullanacağım ve içine DHT22 etkileşimini ekleyeceğim.

cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py

Yukarıdaki resimdeki gibi örnek kodu kaldırın.

DHT22 tek bir aramada hem sıcaklık hem de nemi döndürdüğü için, bunları global olarak saklayacağım ve aralarındaki gecikmenin 10 saniyeden fazla olduğunu varsayarak yalnızca bir istekte güncelleyeceğim. DHT22 verilerini alan aşağıdaki kodu göz önünde bulundurun:

Adafruit_DHT'yi içe aktar

sıcaklık, uğultu = Yok, Yok

last_update = zaman.zaman() - 20

def update_data():

global last_update, hum, temp if time.time() - last_update > 10: hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22, 4) last_update = time.time()

tanım get_t():

update_data() dönüş turu(temp, 2) temp değilse Hiçbiri Yok def get_h(): update_data() dönüş turu(hum, 2) uğultu değilse Başka Yok 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': { 'tür': 'sayısal', 'bağlama': cpu_temp } }

Manipülasyonların kafa karıştırıcı olduğunu düşünüyorsanız, bu dosyanın son halini alın. Veri aktarımını başlatmak için kırmızı düğmeye basın:

Ardından cihaz sayfasını kontrol edebilirsiniz.

python3 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. Zaten cloud4rpi-raspberrypi-python dizininde bulunan tam otomatik komut dosyasıyla bir hizmet oluşturma:

service_install.sh 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) Aktif: 2017-05-17 Çar'dan beri aktif (çalışıyor) 20:22:48 UTC; 1 dakika önce Ana PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 /usr/bin/python /home/pi/cloud_dht22.py

17 Mayıs 20:22:51 raspberrypi python[560]: iot-hub/mesaj yayınlama: {'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 20 Mayıs: 22:53 raspberrypi python[560]: iot-hub/mesaj yayınlama: {'type': 'system', 'ts': '2017-05-17T20….4'}}

Her şey beklendiği gibi çalışıyorsa, devam edebilir ve Cloud4RPi platformunun verileri işlemek için yeteneklerini kullanabiliriz.

Adım 5: Grafikler ve Alarmlar

Grafikler ve Alarmlar
Grafikler ve Alarmlar
Grafikler ve Alarmlar
Grafikler ve Alarmlar
Grafikler ve Alarmlar
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!

Cloud4RPi ile Raspberry Pi ve diğer IoT cihazlarınızı gerçek zamanlı olarak uzaktan kontrol edebilirsiniz. Sitemizi ziyaret edin ve sınırsız sayıda cihazı ücretsiz olarak bağlayın.

Önerilen: