Raspberry Pi ile Sıcaklık Ölçer (RaspiMetre)

Raspi Temp Metre

Ne işe yarar: RaspiTempMetre bir odadaki sıcaklığı ölçüp kririk eşiğin aşılması durumda eposta ile uyarılar göndermektedir.

Nerede kullanıldı: Sistem odasındaki kritik sıcaklıkları otomatik olarak takip edip uyarı mesajlarını göndermek amacıyla yapılmıştır. Siz kendi amaçlarınız doğrultusunda güncelleyebilirsiniz.

raspiweb01-284x300
Raspi Temp Metre

Fiziksel Bileşenler

Proje kapsamında aşağıdaki fiziksel bileşenler kullanılmıştır,

Bileşen Açıklama  
RaspBerry Pi Raspbian çalışan mini bilgisayar
raspiweb02
Raspberry Pi
DS18B20 Hazır Kart Sıcaklık ölçer transistör devresi
raspiweb03
Sıcaklık Ölçen Transistör
Dişi – Dişi Jumper Kablo Raspi GPIO ve DS18B20 arasındaki bağlantılar için kullanılır
raspiweb04
Pin Kabloları
RaspBerry Pi Case
SD Card Raspbian (Debian Wheezy) işletim sistemi kuruludur

RaspBerry Pi ve DS18B20 Hazır Kart Arasındaki Bağlantılar

RaspBerryo Pi üzerinde bulunan GPIO portalarından, DS18B20 kartına jumper kablo kullanılarak aşağıdaki bağlantılar yapılır,

RaspBerry Pi GPIO Port DS18B20 Hazır Kart
1 (3,3 V) 3 (VCC)
6 (GND) 1 (GND)
7 (GPIO4) 2

Raspbian Üzerinde Kurulum ve Ayarlar

Aşağıdaki adımlar öncesinde Raspbian kurulumunu SD Card üzerinde tamamlanmış olmalıdır.

DS18B20 Üzerinden Sıcaklık Ölçümlerinin Okunması

  1. İlk önce Raspbian üzerinde ilgili cihaz sürücülerinin açılması gerekir,
  • sudo modprobe w1-gpio # GPIO birimleri açılır
  • sudo modprobe w1-therm # Termometre cihazları desteklenir

Ayarların kalıcı olması için /etc/modules dosyası güncellenir ve aşağıdaki satırlar eklenir,

  • sudo nano /etc/modules

# 1-Wire cihazları açılır

  • w1-gpio

# 1-Wire termometre cihazları açılır

  • w1-therm
  1. lsmod ile cihazların durumları kontrol edilir
  2. Cihaz kontrol edilir
  • cd /sys/bus/w1/devices/
  • ls

Cihaz genelde 10-000802824e58 formatında görünür

  1. Cihaza bağlanılır ve değer okunur
  • cd 10-000802824e58
  • cat w1_slave

Raspbian Üzerinde Cron (crontab) Ayarları

Oluşturulan Python dosyasının her yarım saatte bir çalışması istenmektedir. Bı kapsamda aşağıdaki konfigürasyon yapılır,

  • sudo crontab –e

Açılan dosyanın en altına aşağıdaki satır eklenir.

*/30 * * * * /home/pi/TempMeter/SendMail.py

Sıcaklığı Okuyup Mail Atan Python Dosyası

Sıcaklığı okuyan ve koşullu olarak mail atan SendMail.py dosyasyının içeriği aşağıdadır,

</div>
<color=”green”>!/usr/bin/python

# smtp kutuphanesi eklenir

import smtplib

# Eposta kutuphanesi eklenir

from email.MIMEText import MIMEText

#—————————————

# Sıcaklık (dosyadan) veri okuma bolumu

#—————————————

# Sicaklik bilgisini iceren dosya okunur

tfile = open(“/sys/bus/w1/devices/28-00042d7029ff/w1_slave”)

# Dosyanin icerigi okunur

text = tfile.read()

# Dosya kapatilir

tfile.close()

# Text satirbasindan ikiye bolunur ve ikinci satir secilir

secondline = text.split(“\n”)[1]

# Mesaj kelimelere bolunur, 10 siradaki alan secilir

tempdata = secondline.split(” “)[9]

# Sicakligin basindaki “t=” alani atilir, geriye kalan ifade floata donusturulur

temperature = float(tempdata[2:])

# 10 lu sayi sistemine donusturulur

temperature = temperature / 1000

#—————————————

# Mail atma bölümü

#—————————————

# Kontrol edilecek sıcaklık değerlerine göre tasarlanır

if temperature > 20:

addr_to = ‘adres@abcsirketi.com’

addr_from = ‘uyari@ abcsirketi.com ‘

# SMTP sunucu bilgileri

smtp_server = ‘smtpmailserver. abcsirketi.com ‘

# Mail olusturma

msg = MIMEText(‘ Sicaklik Uyarisi\n\nOda Sicakligi : ‘ + str(temperature))

msg[‘To’] = addr_to

msg[‘From’] = addr_from

msg[‘Subject’] = ‘ Kritik Sicaklik Uyarisi ‘

# SMTP sunucusu uzerinden mesaji gonder

s = smtplib.SMTP(smtp_server)

s.sendmail(addr_from, addr_to,msg.as_string())

s.quit()

else:

quit()

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s