İçindekiler:
- Gereçler
- Adım 1: Donanımı Hazırlama
- 2. Adım: Cloud4RPi'yi Yükleme
- Adım 3: Sensörü Bağlama
- Adım 4: Sensör Okumalarını Buluta Gönderme
- Adım 5: Grafikler ve Alarmlar
Video: Buluttaki Nem: 5 Adım
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.
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
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
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
İ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
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
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:
Sıcaklık, Nem Monitörü - Arduino Mega + Ethernet W5100: 5 Adım
Sıcaklık, Nem Monitörü - Arduino Mega + Ethernet W5100: Modül 1 - FLAT - donanım: Arduino Mega 2560 Wiznet W5100 Ethernet kalkanı OneWire veriyolunda 8x DS18B20 sıcaklık sensörü - 4 OneWire veriyoluna bölünmüş (2,4,1,1) 2x dijital sıcaklık ve nem sensörü DHT22 (AM2302) 1x sıcaklık ve nem
ESP8266 ile Solar Toprak Nem Ölçer: 10 Adım (Resimlerle)
ESP8266 ile Güneş Toprak Nemi Ölçer: Bu Talimatta, güneş enerjili bir toprak nemi monitörü yapıyoruz. Düşük güç kodu çalıştıran bir ESP8266 wifi mikro denetleyici kullanır ve her şey su geçirmezdir, böylece dışarıda bırakılabilir. Bu tarifi birebir uygulayabilir ya da içinden
Arduino Bölüm 2'de Kolay Çok Düşük Güç BLE -- Sıcaklık/Nem Monitörü -- Rev 3: 7 Adım
Arduino Bölüm 2'de Kolay Çok Düşük Güç BLE -- Sıcaklık/Nem Monitörü -- Rev 3: Güncelleme: 23 Kasım 2020 – 15 Ocak 2019'dan beri 2 x AAA pilin ilk değişimi, yani 2xAAA Alkalin için 22 ay Güncelleme: 7 Nisan 2019 – Rev 3 / lp_BLE_TempHumidity, pfodApp V3.0.362+ kullanarak Tarih/Saat grafikleri ekler ve hangi
Toprak Nem Sensörü Kalibrasyonu: 5 Adım
Toprak Nemi Sensörü Kalibrasyonu: Piyasada bahçıvanın bitkilerini ne zaman sulayacağına karar vermesine yardımcı olacak birçok toprak nemi ölçer vardır. Ne yazık ki, bir avuç toprak alıp renk ve dokuyu incelemek bu aletlerin çoğu kadar güvenilir! Hatta bazı sondalar kayıt
Kablosuz Nem Monitörü (ESP8266 + Nem Sensörü): 5 Adım
Kablosuz Nem Monitörü (ESP8266 + Nem Sensörü): Maydanozu saksıda alıyorum ve çoğu gün toprak kuruydu. Bu yüzden, ne zaman su dökmem gerektiğini kontrol etmek için, maydanozlu tencerede toprağın nemini algılamak için bu projeyi yapmaya karar verdim. Sanırım, bu sensör (Kapasitif nem sensörü v1.2) iyi çünkü