19 Şubat 2015 Perşembe

Arduino Ethernet Shield(Wiznet W5100) Server Uygulama


     

     Yaklaşık bir ay önce Ethernet Shield (Wiznet W5100) aldım. Tamamen deneme amaçlıydı , nasıl kullanıldığını ve ne yapacağımı bilmiyordum. Bu yüzden klon ürün aldım. Böylece çok ucuza geldi , en azından bir işe yaramazsa bir kenara atabilirdim. Eğer işe yararsa da yeni çalışmamda kullanacaktım. 



               (Ethernet Shield ortadaki , sorunsuz çalışıyor. Bir çok işimiz halledebilir. Orjinalinden farksız.)     

     Ürün geldi ,  daha sonra nereden başlasam bilemedim. Özelliklerini araştırdığımda Client ve Server olarak kullanılabileceği yazıyor ama nasıl olacağı yazmıyor. Bende normal olarak  ilk başta Arduino'nun hazır örneklerini deneyeyim dedim ama yine sonuç alamadım. Daha sonra internette araştırma yaptım ve gerçekten çalışan basit , güzel uygulamalar buldum. Bu yazımda geçen süre içerisinde edindiğim bilgileri ve internetten bulduğum güzel bir örneği paylaşmak istiyorum. 

     Ethernet Shield ile Arduino'muzu Client , Server veya her ikisini aynı anda  kullanabiliyoruz. Ben burada yeni kullanmaya başladığımızı varsayarak kolay olduğunu düşündüğümden sadece Server kullanımından bahsetmek istiyorum. 


     Aşağıdaki örneği randomnerdtutorials.com adresinden aldım. Örnekte aynı ağ üzerinden led on/off uygulaması yapmış. Aynı zamanda servo kontrolüde yapıyor. Gerekli yerlerde açıklamalarda bulunmuş ve en önemlisi de kod çalışıyor. Kodu aşağıdaki linkten alabilirsiniz;

Kod ve uygulama

     Gerekli kodları yazıp Arduino'yu Server olarak başlattığımızda kodların içerisinde bizim belirttiğimiz ip adresinde sunucu başlatılır. Bu sunucu üzerinden Arduino'yu kontrol edebiliriz veya Arduino üzerinden bu sunucuya veri aktarabiliriz.  Bu kullanıma örnek olarak kendi kullandığımız modemleri örnek verebiliriz. Modemlerin genelde 192.168.1.1 ip adresinde şeklinde yönetici paneli vardır ve buradan modemi kontrol edebilir , ayarlarını değiştirebilir ve bağlı cihazları görebiliriz. Arduino'yu da Server olarak başlattığımızda bu şekilde çalışır. Farklı bir ağdan erişmemiz mümkün değildir. Kısacası Server derken sadece aynı ağdaki kullanıcıların erişebileceği bir yapıdan bahsedilmektedir. 





     Bu uygulamanın ip adresini ve mac adresini değiştirebiliriz sıkıntı olmayacaktır. Kodu incelediğimizde sunucuyu başlattıktan sonra sayfada olmasını istediği şeyleri tek tek client.println() ile HTML kodlarını yazdırmış. CSS kodunu da dikkat ederseniz kendi sitesinden çağırmış. Kodu yükleyip çalıştırdığımızda ve tarayıcı üzerinde 192.168.1.178 ip adresini yazdığımızda aşağıdaki ekran gelecektir.





     Çalışma mantığı ise oldukça basit. Butonlara bastığımızda adres çubuğundaki değişimi farketmişsinizdir. Bu değişimi Arduino tarafında string okuyarak algılıyor ve gerekli işlemleri if blokları ile yapıyor. Aslında butonlara basmadan da direk adres çubuğuna belirlenen şekilde(?button1on ...) yazdığımızda çalışacaktır. Temel amaç buna görsel sağlamak ve telefon tablet ile bağlanarak ağın çektiği herhangi bir konumdan veri akışını sağlamak. 





     Bu kodu kendimizce değiştirip daha işlevsel hale getirebiliriz. Ama css konusuna dikkat etmeliyiz yoksa sayfa birşeye benzemez. Genel olarak Server kullanımı bu şekildedir. Arduino ve Raspberry Pi ile gerçekleştirilen bazı açık kaynak akıllı ev uygulamaları bu mantığa göre inşaa edilmiştir. Ama bu şekilde yapılan uygulamalarda dünyanın herhangi bir yerinden cihazınızı kontrol etmenizi sağlamaz. 


     Sonraki yazımda Ethernet Shield ile Client kullanımı ile bu cihazları yukarıda bahsettiğim gibi dünyanın herhangi bir yerinden kontrol işlemininin nasıl yapılabileceğini incelediğim bir sistem üzerinden anlatacağım. Şimdilik bu kadar.

3 yorum: