Merhaba arkadaşlar

Akıllı ev sistemlerinin yazılımları nasıl oluyor profesyonel bir bilgiye sahip değilim ama yapmak istediğim şey biraz benziyor. C# veya Java ile donanım ile nasıl bilgi alışverişini sağlayabilirim ? Örneğin : web sayfasından kullanıcı ışığı aç dediği zaman evdeki bir cihazın ışığı açması gibi.Tabiki burada aslında web servisi kullanmak en mantıklısı olacaktır sanırım çünkü asıl yapmak istediğim sistemin platform bağımsız olması, mesela 2 gün sonra aynı sisteme Android cihazımdanda ışığı aç komutunu gönderebilirim

Böyle bir sistemi öğrenmek için bir yol önerebilirmisiniz referans olabilecek kaynaklar varmıdır?

İyi çalışmalar

soruldu: 28 Tem '12, 19:27

gokhanakgol's gravatar image

gokhanakgol
705687777
cevap kabul oranı: 30%


Verdiğiniz sembolik örnek üzerinden gidelim. Evdeki ışığı bir program aracılığı ile yakmak istiyoruz diyelim. Işığı yakmak için bir cihazınız olacak ve bu cihazınız da seri port, ethernet gibi portlardan kontrol edilebilir olacak. Ayrıca bu cihazın da anlayacağı komutlar olacak. Örneğin; seri porttan 0x30 verdiğimde lambayı yak, 0x40 verdiğimde söndür gibi. Java veya C# ile o cihaza bu komutları gönderdiğimizde ışığı kapatıp açabileceğiz.

Işığı yakıp söndürecek devreyi nasıl yapacağız derseniz orada mikrodenetleyiciler işin içine giriyor. Mikrodenetleyiciler de Assembly ve C programlama dili ile programlanabilir.

Kolay gelsin.

permanent link

cevaplandı: 28 Tem '12, 20:12

kazimsoylu's gravatar image

kazimsoylu
22015
cevap kabul oranı: 22%

Mikrodenetleyiciler hazır aslında ben sadece bir web arayüz'ünden buton'a basıldığı zaman nasıl bir yol izlenmesi gereklidir onu öğrenmek istiyorum.web sayfası arayüz'ündeki ışığı yak buton'una bastım o komut şu an bir .Net platformundaki komut oluyor örneğin bu aşamadan sonra servis aracılığı ile hazır olam mikrodenetleyiciye bu komutu nasıl göndericez?

Soket mantığında bir yapımı kurmak gerekli ? web arayüz'ünden sinyal (veri) gönderdiğimi mikrodenetleyiciye nasıl alğılatacağım ?

(28 Tem '12, 20:48) gokhanakgol gokhanakgol's gravatar image

Mikrodenetleyici devreniz bilgisayarın seri portuna bağlı diyelim. Web uygulamasından butona basınca bir web servisi aracılığı ile komut göndermek istiyorsunuz, bunu da bir web servisi aracılığı ile yapmak istiyorsunuz. Web servisinde seri porta bağlanıp cihaza komut gönderen bir method olmalı ve web uygulamasından butona basıldığında bu method çağırılmalı. Mikrodenetleyicinizin yazılımında komutları belirlemeli ve seri porttan o komutları göndermelisiniz.

Seri iletişim (RS232,RS485) veya TCP/IP gibi bir protokol ile haberleşmek gerekir.

(29 Tem '12, 05:19) kazimsoylu kazimsoylu's gravatar image

Aşağıdaki şekilde bir yapı kurduğumuzu varsayalım : alt text

Evdeki cihazları kontrol edebilmek için arayüz devremizin hazır olduğunu varsayalım. Bu arayüz devremizi USB,SerialPort,ParallelPort seçeneklerinden biriyle PC bilgisayarımızla haberleşebilecek duruma getirdik. Tavsiyem USB arayüzüdür, zira yeni cihazların birçoğunda paralel port ve serii port desteği kalkıyor, kullanılmıyor.

Burada sunucu görevinde, yapacağınız işin boyutuna uygun bir cihaz seçmeniz yeterli. Bu normal kullandığınız masaüstü bilgisayarınız bile olabilir. Sadece kullandığınız internet servis sağlayıcınızdan statik ip hizmeti almanız gereklidir. Bir de dinamik dns yöntemi vardır, bunları araştırmanızı tavsiye ederim.

Statik ip aldık ve artık internet olan heryerden cihazımıza hangi adresten ulaşabileceğimizi biliyoruz. Bir sonraki aşama, sunucumuza usb,serial,parallel arayüzlerinden birinden bağlı olan entegre sistemle haberleşecek uygulamayı yazmak. Bu uygulama sizin kurduğunuz haberleşme protokolüyle aldığı komutları bu entegre sisteme kullanılan arayüz üzerinden iletme görevini üstlenecek. Uygulamayı hangi dille yazacağınız size kalmış. Bu uygulamanızın komutları göndermesinin yanında, istenilen komutları da algılaması lazım. Bu işi sizin belirlediğiniz bir portu dinleyerek gerçekleştirebilirsiniz. Kısacası bir soket uygulamasıyla internet ağından aldığınız komutu entegre sisteme gönderebilirsiniz.

Bunun alternatifi olan bir diğer mimaride ise internet uygulamanızı bir host'ta barındırabilir, komutları da yine internet aracılığıyla evinizdeki entegre sisteme gönderebilirsiniz. Yani sunucu-entegre sistem arasında tekrar internet ağı kullanırsınız. Tabii burada entegre sisteminizin üzerinde wireless veya kablo aracılığıyla gelen komutları yakalayabilecek bir ek sistem gerekli, bu tarz entegre ve geliştirilebilir yapılar mevcut fakat maliyeti biraz daha yüksek.

Yukarıdaki iki yöntemin de kendine göre avantaj ve dezavantajları mevcut. Size uygun olanı araştırıp seçebilirsiniz. Benzer sorulara da çözüm olabilmesi için yanıtı fazlasıyla uzattığımın farkındayım, umarım faydalı olmuştur. İyi çalışmalar, kolay gelsin :)

Dinamik DNS üzerine bir yazı link text

permanent link

cevaplandı: 30 Tem '12, 09:47

ersinyildiz's gravatar image

ersinyildiz
2.8k31438
cevap kabul oranı: 28%

değiştirildi: 30 Tem '12, 09:54

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×58
×6

Soruldu: 28 Tem '12, 19:27

Görüntüleme: 1,410 kez

Son güncelleme: 30 Tem '12, 09:54

powered by BitNami OSQA