Nesnelerin interneti: Orange Pi ve NodeMCU ile web server kurulumu (Python , Flask , BeautifulSoup , urllib.request , Zerynth Studio)

Merhaba bu yazımızda Orange pi ile web server oluşturup, NodeMCU ve Orange pi pinlerini web tarayıcısı üzerinden kontrol edeceğiz. Bu yazıda kullanılan Orange pi ve NodeMCU python kodları ile çalışmaktadır. Orange pi yerine kendi bilgisayarınız veya raspberry pi kullana bilirsiniz. Ancak bu yazıdaki kodları ortama göre değiştirmek gerekecektir.

Bu web serverin amacı lokal ağ üzerinde Orange pi ve NodeMCU’nun haberleşerek web tarayıcısı üzerinden cihazları kontrol etmektir.

Bu örnekte aşağıdaki görselde görüldüğü gibi iki lamba kontrol edilmektedir. Lamba 1 NodeMCU üzerinde, Lamba 2 ise Orange pi üzerinde çalışmaktadır. Not: sıcaklık bilgisi NodeMCU üzerinden bilgi alınması için “random(0,50)” komutuyla test amaçlı eklenmiştir. Gerçek sıcaklık değildir. 🙂

NodeMCU(Lamba 1) üzerindeki D0 pini, Orange pi(Lamba 2) üzerindeki GPIO 7 pini kullanılmıştır.

Temel python, html ve css bilgisini kullanarak kendi nesnelerin interneti (Internet of Things) projenizi bu şekilde yapabilirsiniz.

Öncelikle NodeMCU tarafında çalışan python kodlarını yazıp yüklemek için Zerynth Studio programı kullanıldı. Bu programı yüklemek ve nasıl kullanıldığına göz atmak için aşağıdaki linklere bakabilirsiniz:

Zerynth Studio : https://www.zerynth.com/zerynth-studio/

Bu program içerisinde bir çok örnek mevcut, örnekleri incelemek ve kullanımını görmek için şu linke bakabilirsiniz: Zerynth Docs documentation

NodeMCU üzerine python kodları yüklemek için firmware ve virtualize gibi bazı işlemleri yapmak gerekiyor bu işlemler programın web sitesinde ve docs documentation sitesinde bulunmaktadır.

Programı kurup,  NodeMCU’ya kod yüklemek için hazır hale getirdikten sonra yeni dosya açıp aşağıdaki kodları yazarak NodeMCU içerisine yüklüyoruz. Kodların daha hızlı çalışması için print komutlarını silebilirsiniz:

NOT: Aşağıdaki tüm kodların içindeki ip adreslerini kullandığınız NodeMCU ve Orange pi ip adreslerine göre güncelleyiniz. Bu projede NodeMCU ip adresi :192.168.1.176 ve html kodları içinde yer alan Orange pi ip adresi: 192.168.1.70 dir.

Orange pi üzerindeki kodlara geçmeden önce aşağıdaki python modüllerini terminal üzerinden kurmanız gerekir.

1-Orange pi GPIO pinlerini python3 ile kontrol etmemizi sağlayan python-periphery kütüphanesi kurulur:

Not: python-periphery ile ilgili örnekler ve daha fazla bilgi için aşağıdaki linklere bakınız.

http://python-periphery.readthedocs.io/en/latest/index.html

https://github.com/vsergeev/python-periphery

2-Flask modülü kurulur:

3-BeautifulSoup modülü kurulur:

İsterseniz bu projeyi NodeMCU kullanmadan sadece Orange pi ile yapabilirsiniz. Şimdi Orange pi Üzerinde çalışan kodlara bakalım. Orange pi için masaüstüne server isimli dosya açıp içine aşağıdaki gibi dosyaları açıyoruz.

Yukarıdaki resimdeki gibi dosya bağlantılarımızı hazırladıktan sonra aşağıdaki; server.py python dosyasını static dosyasının içine, buton.css dosyasını /static/css dosyasının içine ve node.html dosyasını /templates dosyasının içine kaydediyoruz. NOT: buton.css dosyası olmadan da kodlarınız çalışır ancak butonların şekillerini ve renklerini göremezsiniz. Standart html buton biçimleri görünür.

1- server.py dosyası:

2- buton.css dosyası:

3- node.html kodları:

Not: Kodların içindeki IP adresi olan yere kendi orange pi ip adresini yazmanız gerekiyor.

Kodları yazdıktan sonra terminali açıp aşağıdaki şekilde python kodlarını orange pi üzerinde çalıştırabiliriz.

Kodlar çalışınca terminal ekranında server kurulduğuna dair bazı bilgiler gelir. Eğer herhangi bir hata alırsanız dosya yolunun doğru olduğuna bakınız veya Orange pi kartını yeniden başlatıp deneyiniz.

Artık işlemlerimiz tamamlanmış oldu orange pi kartını yeniden başlatıp cep telefonu üzerinden web tarayıcısını açıp orange pi kartının ip adresini yazdığınızda aşağıdaki ekren karşınıza gelecektir. Ip adresini öğrenmek için orange pi terminali açıp ifconfig komutunu kullanabilirsiniz.

Açılışta Python Kodlarını Otomatik Çalıştırma (Run Python script at startup in Orange pi or Linux)

Orange pi her açıldığında serverin otomatik olarak başlatılmasını istersek, yani server.py dosyası her açılışta otomatik olarak çalıştırılmak istenirse aşağıdaki adımları yapmamız gerekir.(Dosyalar /bin klasörüne kopyalanır)

1-server.py dosyasının /bin klasörüne kopyalanması:NOT: dosya yolundaki hakan yazan yere kendi dosya yolun adınızı yazmalısınız.

2-server.py dosyasını taşıdıktan sonra bunu açılışta başlatmak için terminale şu komut yazılır:

Alttaki fotoğrafta görüldüğü gibi açılan dosyanın en altına şu satır yazılır:

En alt satıra eklenen komutun önunde # işareti olmamalıdır. Ekledikten sonra önce CTRL+O ile dosyayı kaydedip, CTRL+X ile kapatabilirsiniz.

4-Python kodlarımızın içindeki html ve css kodlarınında çalışması için server klasörünün içinde bulunan static ve templates klasörlerinin de /bin klasörüne kopyalanması gerekir. Önce statik dosyasını kopyalayalım:

Daha sonra templates klasörünü kopyalayalım:

Artık işlemlerimiz tamamlanmış oldu orange pi kartını yeniden başlatıp cep telefonu üzerinden web tarayıcısını açıp orange pi kartının ip adresini yazdığınızda aşağıdaki ekren karşınıza gelecektir. Ip adresini öğrenmek için orange pi terminali açıp ifconfig komutunu kullanabilirsiniz.