Gönderen Konu: Raspberry Pi ile Isı ve Nem Sensörü (DHT11) Kullanımı  (Okunma sayısı 18509 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı atlantis

  • Yönetici
  • Forum Gurusu
  • *****
  • İleti: 600
  • Truva Linux
    • Truva Linux
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 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.



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.


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.











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.



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.
« Son Düzenleme: 18 Ocak 2014, 11:33:39 öö Gönderen: atlantis »

Çevrimdışı fortran

  • Forum Gurusu
  • *****
  • İleti: 1.671
  • Bir insanı sevmekle başlar her şey...
    • get GNU
Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
« Yanıtla #1 : 14 Ocak 2014, 12:11:29 ös »
Teşekkürler atlantis.

Çevrimdışı atlantis

  • Yönetici
  • Forum Gurusu
  • *****
  • İleti: 600
  • Truva Linux
    • Truva Linux
Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
« Yanıtla #2 : 14 Ocak 2014, 12:40:25 ös »
Rica ederim. Hastalıktan kurtuldum baya.  Faaliyete başladım. Gerisi de gelecek inşallah.

Çevrimdışı fortran

  • Forum Gurusu
  • *****
  • İleti: 1.671
  • Bir insanı sevmekle başlar her şey...
    • get GNU
Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
« Yanıtla #3 : 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.




Çevrimdışı atlantis

  • Yönetici
  • Forum Gurusu
  • *****
  • İleti: 600
  • Truva Linux
    • Truva Linux
Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
« Yanıtla #4 : 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

Çevrimdışı fortran

  • Forum Gurusu
  • *****
  • İleti: 1.671
  • Bir insanı sevmekle başlar her şey...
    • get GNU
Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
« Yanıtla #5 : 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. :)


Çevrimdışı atlantis

  • Yönetici
  • Forum Gurusu
  • *****
  • İleti: 600
  • Truva Linux
    • Truva Linux
Ynt: Raspberry Pi ile Isı ve Nem Sensörü Kullanımı
« Yanıtla #6 : 14 Ocak 2014, 01:39:06 ös »
Sağol. Evet baya kötüydüm. 2 gün sadece su içebildim.