4 Aralık 2016 Pazar

Web Tabanlı Otomasyon (Raspberry_Pi + Linux + PHP + Python)




Amaç : Ev, Ofis, Tarla vs. yerlerdeki uzaktan kontrol etme ihtiyacı olan  klima, kombi, aydınlatmalar, doğalgaz, bahçe sulaması gibi cihazları kontrol etmek.
Kontrol işlemi internet üzerinden web arayüzü kullanılarak yapılacak. Local kısımda kontrol ise Kart üzerinde bulunan Dokunmatik Lcd ekran, Monitör üzerinden yapılacaktır. Local ve web üzerinden verilen komutlar birbiri ile senkronize çalışacak. yani web üzerinden verilen komut local ekrandan, Local ekran üzerinden verilen komut ise web üzerinden aynı anda okunabilecek.


Şimdi kullanacağımız sistemi inceleyelim.

Raspberry Pi2: Üzerinde ARM Cortex A7   4 çekirdekli 900MHz işlemci, 1GB SDRam, Hdmi, Ses, Ethernet Portu 10/100, MicroSD kart yuvası, 4 adet USB portu bulunan 86mm x 56mm ölçülerinde karttır. Kartın Türkiye dağıtıcısı Samm Teknoloji'dir.
Kart alındığında tek başına herhangi bir işe yaramamaktadır. Yanında 1 adet Class10(Tavsiyem) SDCard ve adaptör gereksinimi olmaktadır. Sd kart içerisinde yüklü olarak Linux Debian sürümünün Raspberry için uyarlanmış versiyonu olan raspbian sürümü bulunmaktadır. Eğer elinizde Class10 Sd kart var ise buradan raspbian sürümünü indirebilirsiniz. İndirilen dosyayı SD karta yazmadan önce Sd Card Formatter Programını kullanarak kartı formatlamak gerekiyor. Ardından disk imager kullanarak karta yükleyebilirsiniz.


Eğer Raspberry'e takacağınız LCD ekran yada Hdmi çıkışına bağlayacağınız Tv yada monitörden bunun gibi görüntü alıyorsanız buraya kadar anlatılanları sorunsuz yaptınız demektir




.








Sıra geldi gerekli ayarları yapmaya. Eğer elinizde Lcd ekran/Tv yada Monitör var ise kart üzerindeki usb portlarına fare/klavye takıp kullanabilirsiniz. Ethernet portuna da modemden gelen kabloyu bağlamalısınız.
Eğer elinizde Lcd ekran, Monitör/Tv yok ise SSH bağlantısı kurarak bilgisayar monitörü üzerinden gerekli ayarlamaları yapabilirsiniz. Bunun için Putty gibi programa ihtiyacımız var. Öncelikle Raspberry'nin ethernet portuna modemden gelen kabloyu bağlayınız ve ardından modemden almış olduğu local ip'yi öğreniniz. 192.168.*.*** şeklindedir. Putty ekranında Hostname yazan yere bu ip'yi yazın. Port kısmına 22 giriniz. SSH işaretli olduğunuza emin olun. Sol tarafta Connection->SSH->X11 altında Enable X11 Forwarding işaretleyip Open yazan yere tıklayınız.

Open tıkladıktan sonra Putty ekranı resimde göründüğü gibi olması gerekiyor.  Burada kullanıcı adı kısmına Pi yazıp entere basıyoruz.








 Ardından bize parola soruyor buraya da raspberry girip enter diyoruz.










Giriş yaptıktan sonra gerekli güncellemeleri yapacağız. Burada sırasıyla ,
  • sudo apt-get update 
  • sudo apt-get upgrade
  • sudo reboot
 komutlarını uyguluyoruz. 

Yapacağımız otomasyon hem web üzerinden hem de Raspberry üzerinden kontrol edileceğinden ve bir biri ile senkron çalışacağından bahsetmiştik. Web üzerinden kontrol kısmında Html ve Php kullanarak oluşturduğum 3 sayfa üzerinden komut verilmektedir. Normalde bu gibi durumlarda sayfaları internette barındırmak için hosting hizmeti almak gerekiyor ama biz bunu raspberry'nin Sd kartı üzerinden internete açacağız. Şimdi Web server hizmetini kuralım. 


  • sudo apt-get install apache2 -y


Yukarıdaki komutu  uyguladıktan sonra web tarayıcınızda Raspberry kartınızın local ip adresini yazdığınızda resimdeki gibi ekran gelmiş olması gerekiyor.



Şimdi web sayfamızı barındırıp ve yayınlayabileceğimiz bir servisimiz oldu. Bu sayfa sdcart içerisinde /var/www/html/index.html dizininde bulunmaktadır. Biz bu sayfanın yerine kendi sayfamızı koyacağız.

Ama önce PHP servisini kurmamız gerekmekte. Çünkü bizim sayfamız Php üzerinde çalışacak.Bunun için aşağıdaki kodu kullanacağız.

  • sudo apt-get install php5 libapache2-mod-php5 -y
 Şimdi sıra geldi kendi sayfamızı oluşturmaya. Bunun için önce web sayfamızı barındıracağımız dizinde index.html dosyasını silmemiz gerekecek, sırasıyla;

  • cd /var/www/html
  • sudo rm index.html
 Daha sonra buraya kadar yaptıklarımızı test amaçlı olarak ;

  • sudo nano index.php
yazıp açılan pencereye

  • <?php echo "Merhaba Raspberry"; ?>
 Yazıp  Ctrl + X tuşlarına basıp sorulan soruya Y diyerek çıktıktan sonra tarayıcınıza ip adresini girip deneyebilirsiniz.






Şimdilik bu kadar fırsat buldukça yazımın kalanını tamamlamaya çalışacağım.Projenin bitmiş haline ait birkaç resim/ekran görüntüsü ekliyorum. Uzaktan erişim için port yönlendirmeyi de anlatacağım.








İndex.Php dosyası. Buraya dijital saat ekledim. Görüldüğü üzere 2 adet link var şimdi bunları inceleyelim.













Burada tüm pinler görülmektedir. Ben 0-17 pinleri çıkış olarak 18-27 pinleri ise giriş olarak yönlendirdim. Bu sayfayı tamamen size göstermek için koyuyorum yoksa bu şekilde kullanılışlı değil. İstediğiniz pini giriş-çıkış yapmak mümküm. Hatta Pwm bile alabilirsiniz. Yaptığım testlerde Pwm performansı oldukça iyi diyebilirim. Bunu da başka bir yazımda ele alırım.









Bahçe giriş kapısı, Sulama pompası ve aydınlatma erişim sayfası görülmektedir.















Elektronik devre Pcb çizimi ve 3 boyutlu görüntüsü. 10 adet cihaz kumanda edebiliyor(arttırılabilir) ve 10 adet bilgi girişine(arttırılabilir) sahip.
















Hiç yorum yok:

Yorum Gönder

Not: Yalnızca bu blogun üyesi yorum gönderebilir.