PHP ile GPIO Pinlerini Kontrol Etmek – 2

Bir önceki yazımda PHP ile gpio kontrolünü anlatmıştım. Burada WiringPi-PHP’den bahsedeceğim. Bildiğiniz gibi WiringPi kütüphanesi C dilinde yazılmış ve derlemiş programlar ile GPIO kontrolü 7MHz gibi hızlara çıkabilmekte. Ancak kontrolü system/exec komutları üzerinden /sys/class/gpio arayüzü ile yapınca muazzam yavaş hızlara takılı kalıyoruz.

Bu yazıda WiringPi’nin bir PHP extension’ı (PHP uzantısı) olarak web sunucuya yüklenmesinden bahsedeceğim. WiringPi-PHP WiringPi kütüphanesini  bir alt modül olarak kullanan bir PHP uzantısı. Bu uzantı ile GPIO kontrolü çok yüksek hızlara çıkabilmekte. Henüz bir osilaskop ile frekans ölçümü yapmadım fakat en kısa zamanda yapıp burada sizler ile paylaşacağım.

Öncelikle php-dev’i kuruyoruz:

Daha sonra github’dan WirinPi-PHP’yi kendimize klonluyoruz. –recursive ile alt modülleri de dahil ediyoruz.

Klonlama tamamlandığında WiringPi-PHP dizinine girip derleme ve yükleme işlemini gerçekleştiriyoruz.

install script’i bizim için wiringpi.so PHP uzantısını derleyip PHP extension dizinine kopyaladı. PHP’nin extension dizinini öğrenmek isterseniz aşağıdaki komutu kullanabilirsiniz.

Şimdi sırada bu uzantıyı PHP’ye tanıtma işlemi var. Önceklikle nano ile yeni bir php ayar dosyası oluşturacağız.

Daha sonra bu dosyanın içerisine aşağıdaki satırları aynen yazın ve kaydedin.

extension=wiringpi.so
wiringpi.pinmaptype=PINS

Ayarların geçerli olması için apache’yi yeniden başlatıyoruz.

WiringPi-PHP ‘nin doğru olarak yüklendiğini test etmek için aşağıdaki php sayfasını çağırın ve wiringpi modülünü aratın.

Şimdi gelelim WiringPi-PHP’nin kullanımına. Öncelikle WiringPi sınıf yükleyicisini sunucunuzun yayın dizininde bir yere wiringpi.php adıyla kaydedin. Daha sonra bu php dosyasını örneğimiz içerisinde include ile çağıracağız.

Daha önce burada verdiğim örneğin aynısını bu kez WiringPi-PHP ile gerçekleştireceğim. Lütfen kodları inceleyin.

Bu örnekte $delay değerini artırarak döngüleri yavaşlatabilirsiniz. Gördüğünüz gibi WirinPi-PHP uzantısı shell exec örneğine göre çok daha hızlı.

Umarım faydalı olur. Sorularınız olursa sayfanın sonuna yazarsanız elimden geldiğince yanıtlamaya çalışırım.

Kolay gelsin.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.