Ana Sayfa Raspberry Pi Apache Web Server ve DS18B20 ile Temperature Monitor

Apache Web Server ve DS18B20 ile Temperature Monitor

7 min read
1
3
820

Merhaba Arkadaşlar ,

Bu yazımda sizlere DS18B20 digital sıcaklık sensörü kullanarak sıcaklığı web server üzerinden yayınlamayı anlatacağım. Bunun için ilk önce web server sunucumuzu kuralım.

  • sudo apt-get install apache2 php5 libapache2-mod-php5
  • sudo service apache2 restart
  • sudo chown -R pi /var/www
  • ln -s /var/www/ ~/www

Kurulum işlemi tamamlandığında son yaptığınız komutla birlikte pi klasörüne www kısayolu eklenecektir. İçerisinde demo web sayfası bulunmaktadır index.html. Ben bu sayfayı değiştirmeyeceğim başka bir html hazırlayacağım.

Şimdi ise raspi-config den 1-wire donanımını açalım

  • sudo raspi-config

 

DS18B20 sıcaklık sensörümüzü aşağıdaki gibi GPIO4 e bağlantısını yapıp Raspberry e bağlayınız.

Bağlantıyı yaptıktan sonra klasörden DS18B20 nin bağlı olup olmadığına bakalım

  • ls /sys/devices/w1_bus_master1

çıkan listede 28-…. bir kod var ise DS nin rom kodudur ve bağlanmıştır.

Manuel olarak okuma yaptıralım.

  • cat /sys/devices/w1_bus_master1/28-xxxxxxxxx/w1_slave

Web server ve DS18B20 hazır, gelelim PHP ile yapacağımız sayfaya. İlk önce PHP ile yukarıda açtığımız dosyayı okuyup içerisinden sıcaklık değerini pars edip 1000 e böldük mü istediğimiz ondalıklı değeri yazdıracağız. Sudo nano ile ds_temp.php dosyamızı hazırlayalım.

  • sudo nano /home/pi/www/html/ds_temp.php

içerisine aşağıdaki kodu yazalım.

<?php
$dosya_yol = ‘/sys/devices/w1_bus_master1/28-xxxxxxxxx/w1_slave’;
$dosya = fopen($dosya_yol, ‘r’);
$icerik = fread($dosya, filesize($dosya_yol));
$temp = explode(‘=’, $icerik);
$temp = number_format($temp[2]/ 1000, 3, ‘,’, ”);
echo $temp . ” °C”;
fclose($dosya);
?>
Tarayıcımızdan bu sayfayı açtığımızda sıcaklık değerini ekranda görmüş olacağız. Tabi bu hali çok basit ve sade oldu. Biz bunu bir html sayfası içinde çağırsak ve bu işlem sürekli olursa birazda görsellik katsak dahada güzel olacak.

Bunun için ajax kullanacağız. html sayfasında bir ID tanımlayıp oraya php sayfasını her saniye yazdırdık mı istediğimiz özellik olacak. Aşağıda HTML kodunu veriyorum. Sudo nano ile temp.html olarak kaydedelim.

 

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>

<head>
<meta content=”tr” http-equiv=”Content-Language” />
<meta content=”text/html; charset=utf-8″ http-equiv=”Content-Type” />
<title>RaspberryPi ve DS18B20 ile Termometre</title>

<script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js”>
</script>

<script>
$(document).ready(function(){
setInterval(function(){
$(“#screen”).load(‘ds_temp.php’)
}, 1000);
});
</script>

<style type=”text/css”>
.auto-style2 {
background-image: url(‘http://roboturka.com/wp-content/uploads/bulut.png’);
}
.auto-style3 {
text-align: center;
font-family: Tahoma;
font-size: x-large;
color: #F1DFDF;
}
.auto-style4 {
text-align: center;
font-family: Tahoma;
font-size: xx-large;
color: #F1DFDF;
}
</style>

</head>

<body>

<table class=”auto-style2″ style=”width: 388px; height: 324px”>
<tr>
<td class=”auto-style3″ style=”height: 31px” valign=”top”><strong>
RaspberryPi ve<br />
DS18B20 ile Termometre</strong></td>
</tr>
<tr>
<td class=”auto-style4″ style=”height: 31px” valign=”bottom”><strong>
<div id = “screen”></strong></div></td>

</tr>
</table>

</body>

</html>

 

Şimdi temp.html sayfasını açtığımızda her 1 saniyede bir sensör okunup ekran güncellenecektir.

İsterseniz modeminizden port yönlendirmesi yapıp sıcaklık değerini dışarıdan da takip edebilirsiniz.

Bir sonraki yazımda görüşmek üzere;

Kolay gelsin.

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Umut Kazanç
Daha Fazla Göster -  Raspberry Pi

1 Yorum

  1. […] Bağlayacağınız DS18B20 için ROM kodunu  yazmalısınız bunun için önceki yazıma bakabilirsiniz. Tıklayın […]

    Reply

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

NodeMCU : DS18B20 ile Sıcaklık Web Server

Merhaba Arkadaşlar, Bu uygulamada sizlere ESP8266 da LUA ile DS18b20 yi okuyacağım.. Bunun…