Blog Single

Bu makale ve fikir tamamen bana ait olup, sizlerin de geliştirmesine olanak tanımak amacıyla paylaşmak istedim.

Sağladığı avantajlar

  • Apache kullanmanıza gerek kalmaz.
  • Ücretli/ücretsiz dns servisi kullanmanıza gerek kalmaz.
  • IP adresine bağımlılık derdi ve maliyeti olmaz.
  • Cihaza doğrudan erişim değil, cihaz ile servisin, servis ile web'in etkileşimi sağlanır.
  • Cihaz ile etkileşim kopması ve tekrar bağlanmasından sonra, görevler ile web servis konuşacağından işlem sırasına bağıl sorun oluşmaz. (işlem zamanının uzunluğuna bağlı)
  • IoT Organizasyonu sağlanabilir.

Sağladığı dezavantajlar

  • Uygulamamız cron ile belirli zamanlarda görevi gerçekleştireceğinden, belirli görevlerde zaman gecikmesi yaşanabilir.

Hangi amaçlarla kullanılabilir ?

  • Her dakikada 1 kez fotoğraf çekip, web ortamına yüklemek. (JSON POST)
  • Ortamın sıcaklığını web ortamına taşıyabilmek. (POST)
  • Web ortamından alınan görevleri yerine getirmek (gpio pin açma-kapama yada sistemsel görevler)

Not: Cihazı kişisel erişiminize ait olan alanlar dışında kullanmanız gerekli durumlarda, ssh,rdp gibi servislerin kapatılmasını öneririm.

Örnek çalışma 1: (Web ortamından alınan bilgilere göre gpio pin açma-kapama / Turta 4 Kanal Röle kartı ile denenmiştir.)

Python kodlarımız:

from xml.dom import minidom
import RPi.GPIO as GPIO
import urllib
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
url_str = 'http://websiteniz.com/items.xml'
xml_str = urllib.urlopen(url_str).read()
xmldoc = minidom.parseString(xml_str)
itemlist = xmldoc.getElementsByTagName('item')
#print(len(itemlist))
#print(itemlist[0].attributes['name'].value)


if itemlist[0].attributes['value'].value == '1':
        GPIO.setup(21, GPIO.OUT)
        GPIO.output(21, GPIO.HIGH)
        print "GPIO pin 21 on"
else:
        GPIO.setup(21, GPIO.OUT)
        GPIO.output(21, GPIO.LOW)
        print "GPIO pin 21 off"


if itemlist[1].attributes['value'].value == '1':
        GPIO.setup(22, GPIO.OUT)
        GPIO.output(22, GPIO.HIGH)
        print "GPIO pin 22 on"
else:
        GPIO.setup(22, GPIO.OUT)
        GPIO.output(22, GPIO.LOW)
        print "GPIO pin 22 off"


if itemlist[2].attributes['value'].value == '1':
        GPIO.setup(23, GPIO.OUT)
        GPIO.output(23, GPIO.HIGH)
        print "GPIO pin 23 on"
else:
        GPIO.setup(23, GPIO.OUT)
        GPIO.output(23, GPIO.LOW)
        print "GPIO pin 23 off"


if itemlist[3].attributes['value'].value == '1':
        GPIO.setup(24, GPIO.OUT)
        GPIO.output(24, GPIO.HIGH)
        print "GPIO pin 24 on"
else:
        GPIO.setup(24, GPIO.OUT)
        GPIO.output(24, GPIO.LOW)
        print "GPIO pin 24 off"

Web siteniz için xml sayfa kodlarımız:

Denetim için Cron kullanıyoruz. (Belirli sürelerle python kodlarımızı çalıştırmak için);

İyi çalışmalar dilerim.

Bu makaleyi paylaşın:
İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum.

Bir yorum bırakın