Truva Linux Destek Forumu

Raspberry Pi => Projeler => Konuyu başlatan: atlantis - 13 Ocak 2014, 11:54:59 ös

Başlık: Raspberry Pi ile Isı ve Nem Sensörü (DHT11) Kullanımı
Gönderen: atlantis - 13 Ocak 2014, 11:54:59 ös
Selam arkadaşlar. Raspberry Pi ile adım adım otomasyonun ilk makalesinde ısı ve nem sensörünün kullanımı anlatılacaktır. Olabildiğince ayrıntılı anlatmaya çalışacağım.

Gerekli Malzemeler :
Raspberry Pi
Breadboard
Isı ve Nem Sensörü (Dht11)
Direnç (4.7K veya 10 K - 1 Adet)
Jumper Kablo


Eğer ısı sensörünü dx.com (http://dx.com) gibi bir siteden alırsanız plaket üzerine monte edilmiş olarak kullanmanız mümkün. Ayrıca pinlerin ne olduğu da üzerinde yazılı olur. Isı sensörünün 3 bacağı kullanım için yeterli.

(http://www.truvalinux.org.tr/raspi/isivenem/DHT11_pinout.JPG)

Pin    Name       Description
 1     VDD     Güç Kaynağı 3 - 5.5 V DC (Power supply 3 - 5.5 V DC)
 2     DATA     Data çıkış bağlantısı (Serial data output)
 3     NC       Boş (Not connected)
 4     GND     Şase (Ground)


Devremizin şemasını Adafruit sayfasından aldım. Buna göre breadboard üzerinde devremizi hazırlıyoruz.
(http://www.truvalinux.org.tr/raspi/isivenem/sema.gif)

Bende Raspberry Pi Model B rev 1 olduğu için açıklamalarda buna göre anlatılacaktır, rev 2 de de aynı pinler kullanılabilir.

Kırmızı ile gösterilen güç bağlantısı 1 nolu pine, siyah kablo (ground) gnd yazan pine, beyaz kablolu data bağlantısı 7 nolu pine bağlanıyor. Ayrıca data bağlantısına arada direnç kullanarak güç veriliyor. Bende belirttiğim direnç olmadığı için elimdeki rasgele bir direnci kullandım mecburen. Aşağıdaki resimlerde daha net görülüyor sanıyorum.


(http://www.truvalinux.org.tr/raspi/isivenem/1.jpg)

(http://www.truvalinux.org.tr/raspi/isivenem/2.jpg)

(http://www.truvalinux.org.tr/raspi/isivenem/3.jpg)

(http://www.truvalinux.org.tr/raspi/isivenem/4.jpg)


Artık sıra Python kodumuzu hazırlayıp çalıştırmakta. Orjinal kodumuz [2] ısı ve nem bilgilerini alıp Google Spread'e aktarmaktaydı. Ben kodu sadeleştirip konsola bilgi verecek şekilde düzenledim [1]. Program DHT11 sensöründen aldığı veriyi 3 saniyede bir ekrana tarih ve saat bilgisi ile yazdırmaktadır.

Kod: [Seç]
#!/usr/bin/python

import subprocess
import re
import sys
import time
import datetime

while(True):
  output = subprocess.check_output(["./dht11", "11", "4"]);
  matches = re.search("Temp =\s+([0-9.]+)", output)
  if (not matches):
time.sleep(3)
continue
  temp = float(matches.group(1))
  
  matches = re.search("Hum =\s+([0-9.]+)", output)
  if (not matches):
time.sleep(3)
continue
  humidity = float(matches.group(1))

  print "-----------------------------------------"
  print datetime.datetime.now()
  print "Sicaklik : %.1f C" % temp
  print "Nem Orani: %.1f %%" % humidity

  time.sleep(3)


Bu işlemin dışında bir nokta çok önemli. Python kodu sensörden bilgi almak için yavaş kaldığından dolayı bu işlemi yapması için bir C koduda geliştirilmiş. Bu kodu da aşağıdaki gibi indirebilirsiniz.

Kod: [Seç]
$ git clone git://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
$ cd Adafruit-Raspberry-Pi-Python-Code
$ cd Adafruit_DHT_Driver

Bu kodları çalışma dizinine indirdiğinizde Adafruit_DHT dosyası göreceksiniz. Ben bu dosyanın adını dht11 olarak değiştirdim. Aşağı da görüldüğü gibi. Burada 11 sensör tipini (DHT11, DHT22, AM2302), 4 yazan yerde sensörün bağlı olduğu GPIO pinini göstermektedir.

Kod: [Seç]
 output = subprocess.check_output(["./dht11", "11", "4"]);



Program çıktısı aşağıdaki şekildedir.
(http://www.truvalinux.org.tr/raspi/isivenem/5.jpg)


Sonraki aşamalarda çıktıyı 16x2 lcd ekrana yazdırma işlemini de yapacağız.


Projeye ait kodu aşağıdaki adresten indirebilirsiniz.
[1] http://www.truvalinux.org.tr/raspi/isivenem/isi_nem.py

[2] Orjinal Proje Sayfası :
http://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/wiring


Not : Program ve devreyi çalıştırma esnasında meydana gelebilecek sorunlardan Truva Linux sorumlu tutulamaz. Kaynak gösterilmek şartıyla paylaşılabilir.
Başlık: Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
Gönderen: fortran - 14 Ocak 2014, 12:11:29 ös
Teşekkürler atlantis.
Başlık: Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
Gönderen: atlantis - 14 Ocak 2014, 12:40:25 ös
Rica ederim. Hastalıktan kurtuldum baya.  Faaliyete başladım. Gerisi de gelecek inşallah.
Başlık: Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
Gönderen: fortran - 14 Ocak 2014, 12:47:58 ös
Rica ederim. Hastalıktan kurtuldum baya.  Faaliyete başladım. Gerisi de gelecek inşallah.

Hasta mıydın, geçmiş olsun. Görünmez olmuştun, işlerin olduğuna yormuştum.



Başlık: Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
Gönderen: atlantis - 14 Ocak 2014, 12:49:44 ös
Sağol. 9 gündür hastalıkla mücadele ediyorum. Aynı zamanda bebekte hastaydı. Katarin sağolsun ben kendime getirdi ama tam düzelme yok hala. 2-3 kilo verdim hastalık sırasında :D
Başlık: Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
Gönderen: fortran - 14 Ocak 2014, 01:35:46 ös
Sağol. 9 gündür hastalıkla mücadele ediyorum. Aynı zamanda bebekte hastaydı. Katarin sağolsun ben kendime getirdi ama tam düzelme yok hala. 2-3 kilo verdim hastalık sırasında :D

Öyle mi, bayağı rahatsızmışsın yahu. Tekrar geçmiş olsun. Tabii bebeğe de geçmiş olsun. :)

Başlık: Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
Gönderen: atlantis - 14 Ocak 2014, 01:39:06 ös
Sağol. Evet baya kötüydüm. 2 gün sadece su içebildim.