skip to Main Content

IoT ara katman yazılımları (middleware)

ÜrünDesteklenen Programlama Dillerihaberleşme, protokolBarındırma durumuURL
MuleSoft Anypoint Platform Java, Python, JavaScriptMQTT, AMQP, WebSockets, HTTP, TCP Hosted or On-Premise mulesoft.com
ProSyst mBS Java MQTT, CoAP, OMA Lightweight M2M On-Premise prosyst.com
Red Hat JBoss A-MQ Java, C, C++, JavaScript,.NET MQTT, AMQP, STOMP, Openwire, WebSockets
On-Premise redhat.com
Vortex by PrismTech Node.js, HTML, Java,JavaScript DDS, CoAP, MQTT, AMQP, JMS, REST Hosted prismtech.com
WSO2 Platform Java, JavaScript MQTT, AMQP, XMPP Hosted or On-Premise wso2.com

IoT için kullanabileceğiniz donanımlar

ÜrünGeliştirme içim desteklenen dillerResmi Site
Arduino YúnPython, Ruby, Node.js, PHParduino.cc
Artik 5 by Samsung C, C++, Java, Groovy artik.io
BeagleBone BlackJava, C, C++, Python, Perl, Ruby, Node.js beagleboard.org
Edison by Intel JavaScript, C++, Pythonintel.com
Gizmo Anygizmosphere.org
KinomaJavaScriptkinoma.com
MojoLucidembeddedmicro.com
NetduinoVisual Basic netduino.com
Papilio Duo Drag-and-drop interfacepapilio.cc
Raspberry PiPython, Scratch, C, C++, Ruby raspberrypi.org
Tessel 2 Node.js, JavaScript, Python, Rust tessel.io
TI LaunchpadCti.com
Wiring SC++wiring.org.co

nesnelerin interneti için veri kayıt alanları : thingspeak platformunun raspberry ile kullanım örneği

nesnelerin interneti için veri kayıt alanları : thingspeak temel kullanım yazısında thingspeak üzerinde nasıl kanal oluşturulacağı ve temel yönetim özellikleri değinilmişti.

şimdi bu platform üzerine basit bir örnek yapalım. raspberry pi üzerinde phyton ile bir kaç temel parametreyi okuyarak thingspeak kanalı üzerine gönderelim.

thingspeak üzerinde bir kanalda veri tutulabiliyor. biz bu örneğimizde anlık cpu kullanımı, ram kullanımını ve cpu sıcaklık değerini gönderelim.

siz gpio arayüzünden aldığınız verileri kod üzerinde ufak bir değişiklik ile gönderebilirsiniz.

import httplib, urllib
import psutil
import time
import os

def cpu_sicaklik_oku():
 res = os.popen('vcgencmd measure_temp').readline()
 return(res.replace("temp=","").replace("'C\n",""))

if __name__ == "__main__":
    while True:
        cpu = psutil.cpu_percent()
        ram = (psutil.avail_phymem()/1024)/1024
        cpu_sicaklik = cpu_sicaklik_oku()
        params = urllib.urlencode({'field1': cpu, 'field2':ram, 'field3':cpu_sicaklik, 'key':'THINKSPEAK_KEY'})
        headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
        conn = httplib.HTTPConnection("api.thingspeak.com:80")
        conn.request("POST", "/update", params, headers)
        response = conn.getresponse()
        print response.status, response.reason
        data = response.read()
        conn.close()
        time.sleep(60)

şimdi yazdığımız basit bu konu çalıştıralım.

pi@cicek ~ $ python thingspeak_ornek.py > /dev/null &

artık her 1 dakikada bir bu veriler okunarak thingspeak platformuna gönderilecektir. benim yapmış olduğum bu örneğin sonuçlarını

https://thingspeak.com/channels/70080/

adresinden bakılabilir. isterseniz web siteniz içerisinede sorunsuz olarak gömebiliyorsunuz.

<iframe width="450" height="260" style="border: 1px solid #cccccc;" 
src="http://api.thingspeak.com/channels/70080/charts/1?width=450&
height=260&results=60&dynamic=true&yaxis=Y%C3%BCzde&xaxis=Tarih&
title=CPU%20Kullan%C4%B1m" >
</iframe>





nesnelerin interneti için veri kayıt alanları : thingspeak temel kullanım

nesnelerin interneti uygulamalarının artması, uygulamalardan elde edilen verilerin kaydedileceği veri kayıt merkezi uygulamaları ihtiyaçlarınıda doğurmaktadır. bu verilerin yerelde tutulması kimi zaman imkansız, kimi zamanda veriye erişim ve inceleme gereksinimlerinden dolayı bir uygun değildir. yani nesnelerin interneti kavramı büyük veri ve bulut bilişim ile iç içe geçmiş durumdadır.

bu gereksinimin farkında olan bir çok şirket kullanıcılara parasız ve paralı seçenekler sunmaya başlamıştır. bunlardan bir taneside arkasında mathworksun olduğu thingspeak. thingspeak i diğerlerinden farklı kılan yanı matlab ile entegrasyonu. matlab ile veri işlemeye ve karışık hesaplamalarla sıklıkla uğraşan birisiyseniz gerçek dünyadan elde ettiğiniz verileri saklamak için ideal bir ortam konumunda.

örnek olarak iliniz içerisinde ayırdığınız bölgelerdeki hava sıcaklık, nem, rüzgar ile hava kirliği arasında bir ilişki   konusunda bir araştırma yapıyorsanuz sahadaki internet erişimi olan sensörlerinizin verilerini bu platformda tutabilirsiniz.

https://thingspeak.com/users/sign_up adresinde çok kısa sürede kendinize bir hesap oluşturabilirsiniz.

th1

hesabınızı oluşturduktan sonra My Channels linkine girerek New Channel diyerek yeni bir channel – yani bir veri tabanı – tablo oluşturuyoruz.

th2karşımıza çıkan ekran yandaki şekilde olacaktır.

burada yer alan alanlara ait açıklamalar kısaca aşagıdaki şekildedir.

  • Channel Name: kanal için kullanılacak isim.
  • Description: kanal için açıklama.
  • Field#: kanalda kaydedilebilecek 8 adet veri alanı mevcuttur. bu veri alanı için isim. kullanabilek için yandaki kutucuk seçilerek aktif edilmelidir..
  • Metadata: kanal datasının JSON, XML, veya CSV olup olmadığı bilgisi.
  • Tags: kanalı tanımlamak için kullanılacak anahtar kelimeler.
  • Latitude: kullanılacak sensör – kanal için enlem bilgisi
  • Longitude: kullanılacak sensör – kanal için boylam bilgisi.
  • Elevation: kullanılacak sensör – kanal için yükseklik bilgisi..
  • Make Public: verileri herkese açık hale getirmek.
  • URL: kanal hakkında bilgi içeren bir web sitesi var ise.
  • Video ID: kanal hakkında bilgi içeren bir youtube veya vimeo videosu var ise..

her kanal içine 8 tane anlık veri kaydedebiliyoruz. bu bir çok uygulama için yeterli olacaktır. formu doldurarak kaydettiğimizde thingspeak bize bir kanal oluşturacaktır.

oluşturulan her kanala ait bir idye sahip olacaktır. verilere erişmek için bu id bilgisi gerekmektedir.

kanalı oluştuduktan sonra My Channels görünümü aşagıdaki şekilde olacaktır.

th3

burada bizim için önemli alanları inceleyelim.

th4

private ve public viewde kendimizin görebileceği ve herkesin görebileceği verileri görebiliyruz. burada kanal id miz ve kanala ait temel bilgilerde yer almaktadır.

Chanel Setting kanalı oluşturken kullandığmız alanları yönetebileceğimiz kısımdır.

API Keys altında ise thingspeaka veri yazma ve okuma işlemi sırasında kullanacağımız keyler yer almaktadır. bu keyler birbirinden farklı olduğu için uygulmalar sırasında buna dikkat etmek gerekmektedir.

th5

Data Import/Export altında ise kanal altında veri eklemenize ve veri almanıza yarayan tool mevcuttur.. Export ile CSV formatında alınan dosya yapısı aşagıdaki şekildedir.

created_at,entry_id,field1
2015-12-04 19:26:13 UTC,1,
2015-12-04 19:32:53 UTC,2,0.0
2015-12-04 19:33:16 UTC,3,1.9
2015-12-04 19:33:31 UTC,4,1.9
2015-12-04 19:33:45 UTC,5,6.3
2015-12-04 19:33:59 UTC,6,3.5
2015-12-04 19:34:15 UTC,7,1.8
2015-12-04 19:34:29 UTC,8,2.4
2015-12-04 19:34:43 UTC,9,1.9
2015-12-04 19:34:58 UTC,10,4.7
2015-12-04 19:35:18 UTC,11,3.2
2015-12-04 19:35:32 UTC,12,2.1
2015-12-04 19:35:46 UTC,13,6.8
2015-12-04 19:36:00 UTC,14,4.3
2015-12-04 19:36:14 UTC,15,2.6

bir sonraki yazıda raspberry üzerinde python ile veri gönderimi konusunda bir örnek yapılacaktır. uygun bir zamandada matlab kısmına değinebiliriz.

Back To Top