Elektronik ve İşlemciler

Gelişen mikrokontrol teknolojileri ve artan bilgi birikimi sayesinde geliştirici düzeyinde daha yaygın kullanımına olanak tanımıştır. Burada elimden geldiği kadar bazı örnekler sunmaya çalışacağım... Görüleceği gibi ilk örneklerimizde çoğunlukla ASM üzerinde iken daha sonraları C üzerinde örnekler yer almaktadır. Hatta ilerleyen zamanlarda Arduino örneklerinin yer alması kaçınılmaz olacaktır.

9 Kasım 2020 Pazartesi

ENC28J60 ve Raduino ile LCD üzerinde IP görüntüleme ve IP değiştirme

Ethernet'e bağlanan cihazlarda sabit ip iyi olabilir, ama belli bir sayının üzerine çıktığı zaman ve özellikle üretilen cihaz sayısı birkaç yüzlere ulaştığında ip takibi, ve özellikle arıza, yenileme gibi işin içine girdiğinde ip takip etmek giderek zorlaşır ki işin içinden çıkılmaz bir hal alır.

Bu noktadaki çözümlerden biri değeri değiştirilebilir ip'dir. Hele ki her cihazın üzerinde cihazın ip'sini görebilir hale getirilirse, çok daha iyi olur.

Bu projede "ENC28J60 ve Arduino ile Cep Telefonu haberleşmesi" projesinde anlatılan projeyi bir adım öteye taşıyarak, IP değerini LCD ekran üzerinde görüntüleme ve aynı zamanda ip değerini değiştirilebilir hale getirmeyi amaçlanmaktadır.

NotProjeye bir buton eklenirse, istenildiği anda default ip değerine geri dönüşü sağlanabilir. IP ayarlarında daha fazla ayrıntılı değişiklik isteyen, kendi geliştirebilir.

Raduino


Arduino UNO modelinde artık bellek yetersizliği ortaya çıkmaya başladığı için, Arduino MEGA eşdeğeri ama UNO boyutlarında bir klon Arduino kullanılacaktır. Hele ki, bir de LCD ve ip değiştirme için kodların da ekleneceği düşünülür ise, iki veya üç tane UNO kullanımı gerekebilir. Böyle bir çözüm işi daha da karıştıracağı düşünülürse. Arduino MEGA kapasitesinde bir model kullanımı yerinde bir çözüm olabilir. Ya da ARM tabanlı bir işlemcinin kullanıldığı bir kart daha iyi olabilir.

Arduino MEGA kartı kullanımı mümkündür, ama bu daha önce paylaşımı yapılan ENC28J60 kartları ile uyum sorununu getirecektir. En azından SPI bacaklarının (MISO, MOSI, CLK ) uçları ne yazık ki farklı pin yerleşimine sahiptir. Bu noktada bizi ilgilendiren UNO pin uyumluluğu (özellikle SPI bacakları). Diğer çözüm SPI bacaklarını uyumlu hale getirmek, ama bu başka bir çözüm yoludur.

Yöneldiğimiz çözüm, UNO bacak uyumluluğu olduğu için, piyasada bir şekilde ulaşılan Raduino kartı oldu. Hiç bir değişiklik yapmadan ENC28J60 ethernet kartı bacakları kullanılabilme imkanı tanımaktadır.

Tek sıkıntısı Raduino üzerinde harici besleme girişi yer almamaktadır. Ama test amacı için uygulamalar da harici besleme girişi, USB portu üzerinden mobil telefon şarj cihazları ile çözülebilmektedir.

Daha fazla bilgi adresinden (http://kontrolcepte.blogspot.com/2017/04/raduino-yerli-arduino.html) ulaşılabilir.

LCD ve I2C

LCD olarak arkaplan aydınlatması olmayan bir model tercih edilecektir. Sonuçta arkaplan aydınlatması LED bile olsa bir enerji ihtiyacı vardır. Kendi adıma o LED'in harcadığı enerjiyi bile kıskanacak durumdayız, çünkü burada oldukça enerjiye ihtiyacı olan ENC28J60 var.

Şekil-1:LCD modülünün görünümü. Üzerindeki şeffaf plastik LCD'nin söküldüğü cihaz üzerinden geldi.

LCD haberleşmesi için daha önce paylaşımı yapılan projedeki i2c haberleşmesi kullanılacak. Mega2560'ın çok bacağı olsa bile, diğer projelerde kullanılabilmesi için sadece 2 hat ile haberleşmesini sağlamak için i2c haberleşmesini kullanır. Önceki projede kullanılan ENC28J60 kartı kullanmak isteğinden dolayı en az ek bağlantı gerektirdiği için bu yol seçildi.

Bu bölümün seçimi kullanıma göre değişecektir, çoğunlukla cihazın kullanım yerine göre senede birkaç kereden fazla ip değerine ihtiyaç olmayacaktır. Hele oturmuş bir sistem ise, yıllarca ihtiyaç olmayacaktır. İsteyen bu bölümü sadece ihtiyaç olduğu zaman ip değeri görüntüleyecek şekilde düzenleyebilir. Bu şekilde devrenin enerji tüketimi oldukça düşecektir. İş ek bir butona bakar. Aynı etkinlik ethernet bağlantısından bir komut gönderme şeklinde de yerine getirilebilir.

Sadece IP değeri görüntüleme açısından, LCD olarak 1x16 karakter LCD yeterlidir. Ama çoğumuzun elinin altında en azından 2x16 LCD vardır. Bu yoldan ilerleyerek, 2x16 karakter lcd kullanımı yolu seçildi

Sadece gerekirse, LCD sürücü kartı üzerindeki trimpot ile kontrast ayarı yapılması gerekir. Çok önemli değil ise de bazı üreticilerin LCD ürünleri arasında fark olabiliyor.

Raduino üzerindeki i2c bacakları UNO üzerinde yer aldığı AREF yanındaki konumdadır. (Arduino UNO modelinde olduğu gibi Analog girişlerin olduğu A4 ve A5 bacakları değil tabii. Arduino MEGA modelinde i2c bacakları 20 ve 21. pinlere denk gelir.)

ENC28J60 modülü


Bir önceki projede ayrıntıları anlatılan ENC28J60 entegresi üzerine kurulu bir karttır. Ethernet haberleşmesinin tamamını Arduino üzerindeki SPI bağlantıları üzerinden yürütülür.

Şekil-2:ENC28J60 modülünün görünümü.

Ethernet bağlantısı da RJ45 konnektörü üzerinden sağlanır. Projede kullanılan RJ45 konnektörünün içinde darbe trafosu bulunduğu (2 adet) için projede anlatılan devreler güvenle ethernet hattına bağlanabilir. Hatta yeni sürüm modemler (router) cross kablo kullanılsa bile devrenizin ihtiyacı olan ethernet bağlantısını sağlayabilmektedir.

RJ45 üzerindeki iki adet LED, ethernet modül için kablo bağlantısı yapıldı(hub veya router için) ve ethernet aktivasyonu göstermek için kullanılmaktadır.

Elbette piyasada birçok Arduino ile uyumlu ethernet modülü yer almaktadır. ENC28J60 bunlardan biridir. Kodu uyarlamanız halinde diğer ethernet modülleri ile de kullanabilirsiniz.

ENC28J60 3.3V besleme (kart üzerinde bulunan regülatör) ve 25MHz ile çalışmaktadır. İstenirse bağlanacak işlemciler için saat kaynağı olarak da çalışmaktadır. Yani işlemci için saat kristalı ihtiyacını ortadan kaldırır. Elbette bu seçenektir, Projede zaten Raduino kullanıldığı için (hazır modül) bu seçenek söz konusu olmaz. Eğer birleşik bir proje şeklinde geliştirilmesi düşünülürse mümkündür.

ENC28J60 için anlatılabilecek çok şey olduğu kesin, ne de olsa Microchip 100 sayfanın üzerinde bir datasheet hazırlamış. Ama amacımız ENC28J60 veri kağıdını Türkçe olarak yayınlamak olmadığı için, bu işi ayrıntılı öğrenmek isteyenlere bırakıyoruz.

Kutu

Bu projede bir değişiklik yaparak, projedeki modüllerin içine konulacak fazla karmaşık olmayan bir kutu eklemek istedim.

Çoğumuzun o veya bu şekilde bildiği 3D yazıcılar sayesinde 3D ile çizimi oluşturulan bir nesne plastik bir cisme dönüştürülebilmektedir(hatta metal). 3D yazıcılar birçok yöntemi kullansa da, çoğunlukla plastik eritilip üst üste yığılması yöntemi ile istenen nesne üretilebilmektedir.

Projede 3d yazıcılardan biri kullanılarak 2 parçalı bir kutu oluşturulmuştur.

Projede 3d modelin üretilmesi ve üretilen modelin 3d yazıcıda basılması anlatılmayacak. Onun yerine üretilmiş olan parçanın kullanımı ve 3d çizim dosyaları paylaşılacaktır. (stl dosyası olarak)

Şekil-3:Tinkercad üzerinde çalışması yapılan kutu görünümü.

Kutunun 3d modelin üretilmesinde (çiziminde) Tinkercad ismi ile anılan, web sitesi üzerinde çalışan bir uygulama kullanılmıştır. Çizimden elde edile 3d model dosyası bilgisayara indirilmiştir.

Şekil-4:iki parçalı kutunun içi görünümü.

Şekil-5:İki parçalı kutunun dış görünümü.


Kutu devrenin testi için gerekli olmasa da sadece bir seçenektir. Yine de devreyi kutuya koymanın elbette olumlu yanları var.
Şekil-6:İki parçalı kutunun birleşik hali.

Şema

Proje de Arduino bölümünü ayrı tutarsak, geriye sadece ENC28J60 ve birkaç tane ayrık eleman ilavesi ile devreyi oluşturuyor. Devre birçok elemanı SMD olacak şekilde tasarlandı ki, Arduino üzerinde kullanılabilecek bir modül olsun. Çünkü PCB üretiminde, kendi imkanlarımızla yapılabilecek bir yapıda olması açısından tek yüzlü karta montaj uygun görüldü.

Kısaca devre üzerinden geçecek olursak; R4,R4,R5,R6 dirençleri (49.9 Ohm %1) hat uygunlaştırma dirençleridir.).R1, R2 220R dirençleri RJ45 konnektörü üzerindeki dirençlere akım sınırlama elemanı olarak iş görür. R3 (2K) direnci ENC28J60 için R bias olarak çalışır. R16 (22k) ENC28J60 RESET bacağı için pull_up direnci olarak çalışacaktır. Aynı zamanda devre ilk açıldığında resetleme işlemi için RC zaman sabiti olarak işlev görür. R15 (10k) direnci INT bacağına pull-up direnci olarak iş görür, çünkü ENC28J60 herhangi bir durum, örneğin başlama gibi durumlarda cevap vermemesi halinde işlemcinin kesmeye gitmemesi için int çıkışı garantiye alınmış olur. Burada PCB çiziminde yer almayan ama, şemada gösterilen R8..R13 (1K) direnç devrede test amacı ile devreye eklenmiştir. Şemada gösterilmeyip de, PCB üzerinde gösterilen R14 (0R) jumper olarak devreye monte edilmiştir.

C1 (10uF) kondansatörü ENC28J60 iç beslemesi için gerilim regülatörü filtre kondansatörüdür. Bu regülatör 3.3Voltdan 2.5Volt üretir. C3 (100uF) ve C14 (100nF) kondansatörler U2 (LM1117) giriş filtereleridir. C2 (10uF) ve C13 (100nF) kondansatörleri U2 (LM1117) çıkış filtreleridir. C11 ve C12 (18pF) kondansatörleri ENC28J60 entegresinin osilatör destek kondansatörleridir. Diğer tüm kondansatörler filtre amaçlı devre üzerinde bulunmaktadır.

U2 (LM1117-3V3) gerilim regülatörüdür ve 5Voltdan devre için gereken 3.3V beslemeyi üretir. U3 (74HC125) Arduino ile ENC28J60 arasındaki gerilim seviyesini uygulaştırma amacı ile kullanılmaktadır. U1 (ENC28J60) bu projenin üzerine kurulu olan elemandır ki, ethernet haberleşmesi ile ilgili tüm işlemleri ve Arduino ile ilgili ileştimi yürütür. Arduino ile ethernet hattı arasında köprü görevini yerine getirir.

TR1 (HR911105A) ENC28J60 ile ethernet hattı arasındaki bağlantı ve elektriksel yalıtımı yerine getirir. BB (ferrit beat) ethernet veya HR911105A üzerinden gelebilecek yüksek frekanslı sinyallerin beslemeye ulaşmasını engeller. LED1..LED6 bu devreye test amacı ile monte edilmiş elemanlardır.

Buraya kadar her şey PCB üzerindeki bağlantıla ile sağlandı LCD ise 4 adet kablo +5V, GND SCL ve SDA ENC28J60 modül üzerindeki bağlantı noktalarına bağlanması gerekmektedir. (PCB'yi yeniden çizecek olanlar LCD için ENC28J60 modülü üzerine bir bağlantı konnektörü ekleyebilir.)
Resim 7: Projenin devre şeması. Raduino üzerinde diğer bacaklar gösterilmemiştir.(Raduino Arduino Mega formatında bir karttır.)

Devre üzerinde M1 olarak gösterilen veya PCB üzerinde J1...J4 olarak gösterilen (sıra pinler) Arduino UNO veya benzeri özellikle SPI hatları sıra pinler üzerinde yer alan Arduino modellerinin kullanımına uygundur.

Y1 (25MHz) kristal devrenin çalışması için gereken frekansı üretir.

Montaj

Öncelikle pcb tek yüzlü olarak verilse de isteyen gerekli değişiklikleri yaparak çift yüzlü bastırabilir. Bu şekilde köprüleme elemanlarından kurtulmak mümkündür.


Resim 8:PCB'nin üst eleman yüzü

Resim 9: PCB'nin alt yüzdeki bakır yolları.(üst yüzden görüldüğü şekildedir.)

Resim 10: PCB'nin alt yüzdeki elemanlar. (üst yüzden bakıldığında görüldüğü şekildedir.)


Devre montajına öncelikle dip elemanların montajı ile başlanır, U1 istenirse entegre soketi kullanılmadan entegreler doğrudan PCB üzerine monte edilebilirse de, eğer entegre soketi kullanımı, yanan elemanların değiştirilmesi gibi birçok sorundan kurtaracaktır. Montajı sonuna sıra pin ve HR911105A montajının bırakılması iyi olur. SMD elemanlar malzeme listesinde 805 olarak belirtilse de, SMD eleman çizimleri 1206 kılıf monte edilebilecek şekilde yapılmıştır.
Resim 11: PCB'nin üst eleman yüzünün model görünümü.

Resim 12:PCB'nin alt eleman yüzünün model görünümü.


Resim 13: PCB'nin monteli halinin üstten ve alttan görünümü. Bu görüntüde 2 adet ek pin yoktur.

Devre montajında tek yüzlü tasarım nedeniyle, çizimde oluşturulmuş tel köprüler unutulmamalıdır. Ne yazık ki, sıra pinler PCB'nin bakır yollarının bulunduğu yüze monte edilmelidir.

Proje planlanırken tabii işin içinde kutu yoktu. Dolayısı ile ENC28J60 modülü üzerindeki LED'ler kolaylıkla görülebiliyordu. Ama kutu projeye dahil edildiğinde LEDlerin görülebilirliği sınırlandı. Optik kanal gibi değişik çözümler olabilse de, bu tür çözümler tam erişim alanımda yer almıyor veya LASER kesici gibi özel cihazlara erişim gerektiriyor. Hali ile ek bir kart ile kutu yüzeyine taşımak benim açımdan daha sıcak bir çözüm olarak görülüyor.(Tabii ki kutunun açıklığı ile hizalama sorunlarını saymıyorum bile.) Ek LED kart kablo ile monte monte edildiği için kutudaki LED'lerin açıklığına göre ek kartı biraz sağa-sola çekiştirmek mümkün..

Ek PCB olarak fazla bir çizim yok, sadece 6 adet LED için 6 adet bacak (anot) ve bir tane ortak bacak (ortak katot) bağlantısı yeterlidir.

Şekil-14:EK LED kartı PCB görünümü. LED'lerin yerini tahmin edersiniz. Katot uçları ortak olacağına göre, LED'in katot uçları ortak yönde olması gerekiyor. Elimde başka proje için basılmış bir PCB vardı...

Şekil-15:EK LED kartı monte edilmiş görüntüsü. LED'ler ve kablolar

Şekil-16:ENC28J60 kartı üzerindeki LED'lerin yerine, ek LED kartı kablolar ile monte edilir. LED'lerin yönünü şaşırmamak yeterlidir.

Şekil-17:LED ek kartın yolları solda ve malzeme yerleşimi sağda verilmiştir.
Şekil-18:LED ek kartın 3 boyutlu modeli. Malzemeler açıkça görülmekte.

Malzeme Listesi

ENC28J60 kartı için Malzeme Listesi

LM1117-3V3 TO220U2
74HC125 SOICU3
ENC28J60 dip28U1
50R 1/4W dipR4,R5,R6,R7
220R 1/4W dipR1,R2
2K 1/4W dipR3
22k 805 kılıfR16
10k 805 kılıfR15
0R 805 kılıfR14
1K 805 kılıfR8..R13
100nF 1206 kılıfC4,...C10,C13,C14
18p 1206 kılıfC11,C12
10uF/25VC1,C2
100uF/16VC3
LEDLED1...LED6
HR911105ATR1
1 adet 40'lı erkek sıra pinJ1..J4


İstenirse, e ENC28J60 (28'li dar) için entegre soketi kullanılabilir. Raduino ve ethernet bağlantısı için ethernet kablosu unutulmamalıdır. Raduino için gerekli olan USB kablosunu söylenmesine bile gerek yok.

ENC28J60 projenin çalıştırılması

Besleme Raduino USB portuna bağlı USB kablosu üzerinden 5V olarak sağlanacaktır. İsteyen harici bir güç kaynağı veya taşınabilir cep telefon şarj aletlerini kullanabilir.
  1. LCD ekranı kutu içinde kendine ayrılan bölüme tak
  2. Raduino üzerine ENC28J60 modülünü pinlerin tümünün birbirine girmesine dikkat ederek, takın
  3. Birleşik ENC28J60 modülünü ve Raduino modülünü kutuya yerleştir.
  4. Kutunun üst parçasını yerleştir.
  5. USB kablosunu Raduino USB girişine takın. (Kare şeklindeki giriş)
  6. Ethernet kablosunun ENC28J60 modülünü üzerindeki RJ45 girişine takın.
  7. USB kablosunun diğer ucunu güç kaynağına takın.
  8. Son olarak ENC28J60 modülündeki RJ45 konnektörüne takılan ethernet kablosunun diğer ucunu modeme takın.
  9. Her şey tamam ise kutunun kenarındaki LCD ekran üzerinde ip değer görülecektir.

Resim 19: Cihazın montaj aşamaları


Resim 20: Cihazın montaj aşamaları

Resim 21: Cihazın montaj aşamaları.


İnternetten bağlantısı verilen programı indirin, Arduino IDE uygulamasına yükleyin açın ve Raduino üzerine yükleyin. (ip numarasını kendi ethernet sistemine uygun olduğundan emin olun.)

Her şey tamam ise, Raduino+ENC28J60 modülü çalışmaya başlayacak ve ethernete bağlanacaktır. Bunu modem üzerinden ve ENC28J60 modülü üzerinde yer alan RJ45 konnektörü üzerindeki LED'lerden izlenebilir.

Resim 22: Cep telefonu çalıştırılmış ve bir LED yakılmış halde görünümü. hedef ip (ENC28J60 ip) olarak belirtilen değer 192.168.0.45 olarak denendi.

Konu ile ilgili ayrıntılı bilgilerin "ENC28J60 ve Arduino ile Cep Telefonu haberleşmesi" projesinden ulaşabilirsiniz.

Cep Telefonu programı (Android)

Android Cep telefonu (veya tablet) programı "App inventor" ile yazıldı.(veya kodlandı)

App inventor sitesine üye olup, kendi uygulamanıza geliştirebilirsiniz. Oluşturduğunuz uygulamanızdan başka bir şeyi bilgisayarınıza bir şey indirmeniz gerekmez. Sadece internet bağlantısı gereklidir. Derlenen uygulama ister bilgisayara, isterse cep telefonunuza indirilebilir. Konu ile ilgili bilgiler kendi sitesinde yer almaktadır.

Şekil-23:Bilgisayarın ağ ayarlarında genel ip ayarları görülmektedir. Projemizde biz sadece "ip adresi:" ayarını değiştirmekteyiz. Daha doğru bir ifade ile zaten ağa bağlı olan projemizin sadece ip adresinin son değerini değiştiriyoruz.

ip değiştirme için geliştirilen uygulama "ENC28J60 ve Arduino ile Cep Telefonu haberleşmesi" uygulamasına entegre edilmemiştir. (cep telefonu uygulamasına) Sadece Raduino üzerine yazılan kodlamaya entegre edilmiştir. Çünkü cep telefonu uygulamasında sürekli ip değişimi yapılmaz. Tabii daha komplike bir uygulama daha fazla hafıza işgal eder.

Şekil-24:"ENC28J60 IP Değiştirme" uygulamasının cep telefonu ekranı üzerindeki görümü Bir ağda değişiklik yapılacak bölüm kırmızı daire ile gösterilmiştir. Ip ayarın tamamı da değiştirilmesi mümkündür. Ama buraya girilen değer kaydedilmez ve uygulamaya her bir girişte tekrar girilmesi gerekir.

Uygulama değiştirilmek istenen ip numarası (nokta ile ayrılmış 4 adet 0 ile 255 arasındaki rakam-sadece kutucuklara yazılacak), cihaz ip numarası, "Gönder" butonu ve "IP Kaydet" butonundan oluşur. Cihaz ip numarası noktalar ile ayrılmış 4 adet 0-255 arasındaki rakamdan oluşur. Bu Ethernet modül üzerinde yer alan LCD ekranda görülen numara olacaktır. Cihaz ip girişi tamam ise, "IP Kaydet" butonu basılarak, programın bir sonraki açılışında kullanılmak üzere kaydedilebilir. Pencerenin en üstünde yer alan noktalar ile ayrılmış 4 adet kutucuk değiştirilmek istenen ip değeri girişini temsil eder. Her bir kutucuğa 0-255 aralığında bir değer girilmesi gerekir. Girişler tamam ise sadece "GÖNDER" butonuna tıkla. Girilmiş ip değerinin ENC28J60 bağlantısındaki cihaza gider, ip değeri kaydedilir ve cihaz yeniden başlatılır. Sonrasında elbette gönderilen IP cihazın yeni ip değeri olur ki. LCD ekran üzerinde de görülebilir.

Bu noktada girilen yeni ip değeri sadece en sağdaki hanede değişiklik yapılması yerinde olacaktır. Modem (router) ip numarası değiştirilmek istenmiyorsa tabii.

"GÖNDER" butonuna basıldıktan sonra Raduino yeniden başlar ve cihaz yeni ip değerini alır. "ENC28J60 ile Cep" uygulamasını kullanarak yeni ip üzerinden LED yak/söndür işlemleri test edilebilir. Yeni ip ENC28J60+Raduino (Atmega2560) üzerine kaydedilir ve enerji kesilse bile, tekrar besleme verildiğinde kayıtlı ip üzerinden bağlantı kurmaya çalışacaktır.

Şekil-25:LCD ekran üzerinde görülen IP değeri. Bu son noktadan sonrası değiştirilmiş bir değerdir. Kayıtlı değeri: "192.168.0.55" dir.

ip konusunda proje anlatılanları kafanızda bir yere oturtulamıyorsa, internet üzerinde ethernet ve ip bağlantısı konusunda araştırma yapmanız gerekebilir.

IP Değiştirme programı

Android App uygulaması daha önce de belirtildiği gibi App inventor üzerinde geliştirildi.

Şekil-26:android uygulamasında kullanılan öğelerin isimleri.


Uygulamada değiştirilecek ip'nin girildiği bölüm, programı basit tutmak için 4 bölümü ayrı girilecek şekilde (her biri 0-255) bölündü. Bu giriş kutucukları "IP1", "IP2", "IP3", "IP4" olarak isimlendirildi.

Diğer bir öğemiz bilginin gönderildiği cihazın IP değeridir ki, "ip_no" olarak isimlendirildi. Buraya ip değeri noktaları da girilmesi gerekir.

Girilen cihaz ip değerini kaydetmek için bir buton bulunmaktadır."But_kaydet" olark isimlendirilmiştir.

Son olarak değiştirilmek istenen ip değerinin gönderildiği buton vardır ki, bu "gonder_but" olarak adlandırılmıştır.

Şekil-27:Android App için kodlama.

Sonuç

Proje için gerekli belgeleri buradan indirebilirsiniz. 

Projede istenen uygulama gerçekleştirildi. Daha fazlası elbette geliştirilebilir, ki çoğu uygulamada örneğin modem(router) cihazlarında bu uygulamaları görebilmekteyiz.

Yazılım açısından üzerinde harcanacak zamana bağlıdır.


1 Eylül 2020 Salı

ENC28J60 ve Arduino ile Cep Telefonu haberleşmesi

 


Bir önceki projede "ENC28J60 ve Arduino ile ethernet haberleşmesi" ile Arduino ve ENC28J60 üzerinden bilgisayar ile ethernet hablerleşmesi sağlandı. Bilgisayar üzerinden Arduino'ya bağlı iki led web sayfası etkileşimi ile yapılıp söndürüldü. (Buna ek bir röle de olabilirdi.)

Kablolu haberleşmeye ek olarak (LAN) özellikle cep telefonu ikincil haberleşmesi olan wifi kablosuz haberleşmesi işin içine girmektedir. Bilindiği gibi cep telefonlarında (veya tablet) LAN ethernet yer almamaktadır.

Not: wifi haberleşmesi oldukça yaygınlaştığı için cep telefonu, tablet ve dizüztü bilgisayarda standart donanım olarak yer almaktadır.

Projede ENC28J60 ve Arduino Uno ikilisi kullanarak cep telefonu üzerinden haberleşerek 6 adet LED yakılıp söndürülmesi üzerinde çalışılacaktır.

Ethernet

Ethernet kablo bağlantısı üzerine bağlantıyı tanımlamaktadır. RJ45 bağlantısı olarak tanımlamakta ise de, BNC, Fiberoptik , Power-line gibi kablolu ethernet bağlantı yöntemleri de vardır.

İş bir ağ ortamına girildiği zaman TCP/IP, UDP, sunucu, DHCP, gibi kavramlar işin içine karışmaktadır. Konu oldukça dallı budaklı hale gelir ki, başlı başına bir meslek/bilim dalı olduğu bilinir.

En az 4 kablo ile bağlantısı gerçekleştirilir.Bu 10MBit iletişimi gerçekleştirir. Eğer 8 kablo ile bağlantı yapılırsa, 100MBit ve 1Gbit iletişim hızına çıkabilir. Ama bu ethernet bağlantısının hızını tanımlar. Tabii ki her zaman için bağlantı hızını kablonun uçlarına bağlanmış olan donanımlar belirler. Sonuçta ENC28J60 ethernet bağlantı hızı, 10Mbit olduğu için tüm sistemin hızı 10MBit ile sınırlanmış olur.

Wifi



Haberleşme ortamı kablolu bağlantıdan kablosuz ortama taşındığında işin rengi biraz değişir. Telsiz (Marconi) icadından bu yana kablosuz yayınlarda gelişmeler wifi olarak tanımlanan haberleşme yöntemine kadar gelinmiştir. (Daha da ileri gidilmiş olsa da, konumuz wifi).

Resim 1: Bilindik wifi simgesi (kablosuz bağlantı)

Wifi ingilizce:Wireless Fidelity kelimelerinin (Türkçe kablosuz bağlantı alanı) kısatması olarak algılanabilir. Çeşitli ülkelere göre değişiklik gösterse de, 2.4GHZ ile 5.8 Ghz radyo frekansında veya yakın frekanslarda yayın alanını kapsar. (IEEE 802.11 protokolüne göre ve a,b,g,h,n,ac,ax standartlarına göre uyumluluğu vardır.)

Şifreleme yöntemleri ile güvenliği sağlanmaktadır. WEP, WPA ve WPA2 gibi şifreleme yöntemleri var olup, daha iyi şifreleme yöntemleri geliştirilmektedir. Bu önemlidir çünkü ortama yayılan elektromagnetik sinyallerin yetkisiz kişilerde izlenmesi veya teknik ifade ile "kırılması", verilerin güvenliği açısından sorun oluşturabilir.

Yine de Wifi ile aynı frekans aralığını kullanan bluetoot, mikrodalga fırın hatta wifi'nin kendisi,telsiz telefon gibi cihazlar wifi iletişimin sürekliliğinde kesintilere sebep olabilir.

Neyse ki şu an için bu konuda fazla bir şey yapılması gerekmiyor. Sorunları çözülmüş bir konu, çünkü Cep telefonu wifi bağlantısı doğrudan cep telefonu işletim sistemini ilgilendiren bir konu. Bizi ilgilendiren bölümü cep telefonu üzerine yükleyeceğimiz App (uygulama) ile ENC28J60 + Arduino çiftinin yazılımının uyumluluğu.

Modem

Bu kadar laf kalabalıklığının yanında asıl can alıcı nokta, modem'dir. Daha doğrusu üzerinde hem wifi modül hem de RJ45 (LAN) bağlantılarını barındıran modem cihazıdır.(modem özelliği zaten işin olmazsa olmazı.) Wifi bağlantısı Cep telefonu için kullanılırken, LAN bağlantısı da ENC28J60 + Arduino ikilisi için kullanılmaktadır.

Resim 2:ADSL modem olarak bilinen ethernet (RJ45) ve wifi özellikli.(doğrudan sabit telefon hattı üzerine bağlanarak kullanılabilir modem)

Modem ayarlarının nasıl yapılacağı ve cep telefonun nasıl bağlanacağı konusu kullanıcıya bırakılmaktadır. Çünkü bu konular kullanılacak modeme ve cep telefonuna göre değişiklik göstermektedır.

Resim 3:Uydunet (televizyon ve internet bağlantısının dağıtıldığı kablo hattı-sokakta fiber kablo, ev girişi koaksiyel kablo) modem. Wifi ve RJ45-ethernet bağlantısı bulunan modem. Resimde arkasındaki kablo bağlantı girişi görülmektedir.

Ayrıca burada verilen program örneği sadece android tabanlı cep telefonları için uygundur, diğer işletim sistemlerine uygun değildir. Yine de diğer işletim sistemleri için web tarayıcı üzerinden de deneme yapılması mümkündür.

Modem burada ethernet (LAN) ile wifi üzerinden bağlanan cihaz arasında bir köprü olarak çalışacaktır. Modem olarak çalışıyorsa, zaten o bağlantı içinde bir köprü olarak çalışmaktadır.Tabii ki bu işlemlerin toplamına router fonkiyonu sağlar. Modem internet'e bağlı olmasa bile kendi kapsamında bir ağ ortamı oluşturacaktır.

Modem diyerek işi basite indirgemek oldu, router özelliği olan bir modem demek daha doğru olacaktır. Gerçi üzerinde wifi ve LAN bağlantısı olan modemler; router özelliğini barındırmaktadır.

Cep telefonu açısından, cep telefonun wifi'sini açıp, wifi listesinden modemin ismi seçildiğinde, modemin wifi şifresini isteyecektir. Her şey tamam ise cep telefonu wifi üzerinden modeme bağlanacaktır. Cep telefonu modeme bağlama işin hazırlık aşamasıdır.

Resim 4:Modem üzerinde bağlantı yöntemleri. Telefon hattı haricindeki bağlantılar gösterilmektedir. Dizüstü bilgisayarın hem kablo ethernet, hem de kablosuz bağlantı mümkündür. Kullanma isteğine göre aynı anda sadece biri tercih edilmesi gerekir. (emülatör yazılımı kullanımı durumunda.)

Her ne kadar cep telefonu ismi geçse de, emülatör yazılımlar yardımı ile, cep telefonu programı bilgisayar üzerinde de çalıştırılması mümkündür.

Birden fazla ENC28J60 + Arduino çiftinin bağlanması mümkündür, ama her bir ENC28J60 + Arduino çiftinin Ip numarası (ve MAC adres) farklı olacağı için aynı cep telefonu uygulamasında değişiklik yapılması gerekir.

ENC28J60

Bu projede elbette ethernet bağlantısı ENC28J60 üzerinden yürütülüyor ki, "ENC28J60 ve Arduino ile ethernet haberleşmesi" projesinde ayrıntılı olarak görülebileceği gibi üreticinin web sitesinden datasheet (veri kağıtları) indirilip incelenebilir.

Kısaca özetlenirse; ENC28J60 3.3V ile çalışıyor, işlemciye SPI olarak bilinen bağlantı üzerinden bağlanır, ethernet bağlantısı içinde darbe trafosu bulunan RJ45 (8P8C) üzerinden sağlanır, ek bağlantı olarak CS (çip seçme) ucu işlemciye bağlanır. ENC28J60 çoğu bacağı 5V uyumlu ise de bazı bacaklar (MISO gibi) seviye çevirici veya tampon kullanımı iyi bir fikir olabilir.(Bu üretici tarafından yayınlanan veri kağıtlarında belirtilmiştir.)

Resim 5:ENC28J60 28pin DIL çipi.

Donanım olarak bir yere kadar işlevi yerine getirse de, iletişimi asıl yürüten yazılım ve özellikle Arduino kütüphaneler olmaktadır.

Şema

Proje de Arduino bölümünü ayrı tutarsak, geriye sadece ENC28J60 ve birkaç tane ayrık eleman ilavesi ile devreyi oluşturuyor. Devre birçok elemanı SMD olacak şekilde tasarlandı ki, Arduino üzerinde kullanılabilecek bir modül olsun. Çünkü PCB üretiminde, kendi imkanlarımızla yapılabilecek bir yapıda olması açısından tek yüzlü karta montaj uygun görüldü.

Kısaca devre üzerinden geçecek olursak; R4,R4,R5,R6 dirençleri (49.9 Ohm %1) hat uygunlaştırma dirençleridir.).R1, R2 220R dirençleri RJ45 konnektörü üzerindeki dirençlere akım sınırlama elemanı olarak iş görür. R3 (2K) direnci ENC28J60 için R bias olarak çalışır. R16 (22k) ENC28J60 RESET bacağı için pull_up direnci olarak çalışacaktır. Aynı zamanda devre ilk açıldığında resetleme işlemi için RC zaman sabiti olarak işlev görür. R15 (10k) direnci INT bacağına pull-up direnci olarak iş görür, çünkü ENC28J60 herhangi bir durum, örneğin başlama gibi durumlarda cevap vermemesi halinde işlemcinin kesmeye gitmemesi için int çıkışı garantiye alınmış olur. Burada PCB çiziminde yer almayan ama, şemada gösterilen R8..R13 (1K) direnç devrede test amacı ile devreye eklenmiştir. Şemada gösterilmeyip de, PCB üzerinde gösterilen R14 (0R)jumper olarak devreye monte edilmiştir.

C1 (10uF) kondansatörü ENC28J60 iç beslemesi için gerilim regülatörü filtre kondansatörüdür. Bu regülatör 3.3Voltdan 2.5Volt üretir. C3 (100uF) ve C14 (100nF) kondansatörler U2 (LM1117) giriş filtereleridir. C2 (10uF) ve C13 (100nF) kondansatörleri U2 (LM1117) çıkış filtreleridir. C11 ve C12 (18pF) kondansatörleri ENC28J60 entegresinin osilatör destek kondansatörleridir. Diğer tüm kondansatörler filtre amaçlı devre üzerinde bulunmaktadır.

U2 (LM1117-3V3) gerilim regülatörüdür ve 5Voltdan devre için gereken 3.3V beslemeyi üretir. U3 (74HC125) Arduino ile ENC28J60 arasındaki gerilim seviyesini uygulaştırma amacı ile kullanılmaktadır. U1 (ENC28J60) bu projenin üzerine kurulu olan elemandır ki, ethernet haberleşmesi ile ilgili tüm işlemleri ve Arduino ile ilgili ileştimi yürütür. Arduino ile ethernet hattı arasında köprü görevini yerine getirir.

TR1 (HR911105A) ENC28J60 ile ethernet hattı arasındaki bağlantı ve elektriksel yalıtımı yerine getirir. BB (ferrit beat) ethernet veya HR911105A üzerinden gelebilecek yüksek frekanslı sinyallerin beslemeye ulaşmasını engeller. LED1..LED6 bu devreye test amacı ile monte edilmiş elemanlardır.

Resim 6: Projenin devre şeması

Devre üzerinde M1 olarak gösterilen veya PCB üzerinde J2,J3,J4,J5 olarak gösterilen (sıra pinler) Arduino UNO veya benzeri özellikle SPI hatları sıra pinler üzerinde yer alan Arduino modellerinin kullanımına uygundur.

Y1 (25MHz) kristal devrenin çalışması için gereken frekansı üretir.

Montaj

Öncelikle pcb tek yüzlü olarak verilse de isteyen gerekli değişiklikleri yaparak çift yüzlü bastırabilir. Proje başlangıç aşamasında blog üzerinde nanino olarak paylaşılan proje ile kullanılmak üzere tasarlanmıştı. Daha sonra ufak tefek güncellemeler ile Arduino Uno üzerinde de kullanılabilecek hale getirildi.


Resim 7:PCB'nin üst eleman yüzü


Resim 8: PCB'nin alt yüzdeki bakır yolları.(üst yüzden görüldüğü şekildedir.)


Resim 9: PCB'nin alt yüzdeki elemanlar. (alt yüzden bakıldığında görüldüğü şekildedir.

Devre montajına öncelikle dip elemanların montajı ile başlanır, U1 istenirse entegre soketi kullanılmadan entegreler doğrudan PCB üzerine monte edilebilirse de, eğer entegre soketi kullanımı, yanan elemanların değiştirilmesi gibi birçok sorundan kurtaracaktır. Montajı sonuna sıra pin ve HR911105A montajının bırakılması iyi olur. SMD elemanlar malzeme listesinde 805 olarak belirtilse de, SMD eleman çizimleri 1206 kılıf monte edilebilecek şekilde yapılmıştır.
Resim 10: PCB'nin üst eleman yüzünün model görünümü.

Resim 11:PCB'nin alt eleman yüzünün model görünümü.

Resim 12: PCB'nin monteli halinin üstten ve alttan görünümü.



Devre montajında tek yüzlü tasarım nedeniyle, çizimde oluşturulmuş tel köprüler unutulmamalıdır. Ne yazık ki, sıra pinler PCB'nin bakır yollarının bulunduğu yüze monte edilmelidir.


Resim 13: Test için devreye bağlanan LED 'lerin montajı. SMD LED'leri bir pine lehimlemeye çalışmak iyi bir tecrübe olabiliyor. (SMD LED'ler PCB üzerindeki lehimleme alanları üzerine lehimlemek üzere üretilmiş ürünlerdir.)


 Resim 14: LED'lein ilk tasarlanan hali (solda) ve düzenlemeler yapıldıktan sonraki hali(sağda). Küçük boyutlu ve bacakları bulunan LED'ler bulunabilirse, pekala onlar da kullanılabilir.

Malzeme Listesi

ENC28J60 kartı için Malzeme Listesi

LM1117-3V3 TO220U2
74HC125 SOICU3
ENC28J60 dip28U1
50R 1/4W dipR4,R5,R6,R7
220R 1/4W dipR1,R2
2K 1/4W dipR3
22k 805 kılıfR16
10k 805 kılıfR15
0R 805 kılıfR14
1K 805 kılıfR8..R13
100nF 1206 kılıfC4,...C10,C13,C14
18p 1206 kılıfC11,C12
10uF/25VC1,C2
100uF/16VC3
LEDLED1...LED6
HR911105ATR1
1 adet 40'lı erkek sıra pinJ1..J4


İstenirse,  ENC28J60 (28'li dar) için entegre soketi kullanılabilir. Arduino UNO veya eşdeğeri geliştirme kartı ve ethernet bağlantısı için ethernet kablosu unutulmamalıdır. Arduino UNO için gerekli olan USB kablosunu söylenmesine bile gerek yok.

ENC28J60 projenin çalıştırılması

Şu an için test amacı ile Arduino dolayısı ile ENC28J60 kartının beslemesinin bilgisayardan sağlanacaktır. Besleme Arduino USB portuna bağlı USB kablosu üzerinden 5V olarak sağlanacaktır. İsteyen harici bir güç kaynağı veya taşınabilir cep telefon şarj aletlerini kullanabilir.
  1. Arduino üzerine ENC28J60 modülünü pinlerin tümünün birbirine girmesine dikkat ederek, takın
  2. USB kablosunu Arduino UNO USB girişine takın. (Kare şeklindeki giriş)
  3. Ethernet kablosunun ENC28J60 modülünü üzerindeki RJ45 girişine takın.
  4. Her şey tamam ise, Arduno UNO + ENC 28J60 derli toplu görünecektir
  5. Arduino UNO üzerine takılan USB kablosunun diğer ucuna ya bilgisayarın USB gişine veya CEP telefonu mobil güç kaynağına takın. Arduino'ya program yüklemek gerektiği zaman elbette USB konnektörü bilgisayarın USB portuna takılacaktır.
  6. Son olarak ENC28J60 modülündeki RJ45 konnektörüne takılan ethernet kablosunun diğer ucunu modeme takın.



Resim 15: Montajı tamamlanan ENC28J60 kartının test için yapılması gereken bağlantılar.

ENC28J60 modulu üzerindeki LED'leri test etmek için basıt bir kod verilmiştir. Bu kod LEDleri sıra ile yakıp söndürecektir. Bağlantısı verilen kodları bilgisayarınıza indirin. Eğer değişiklik yapmadı ise, belgelerim klasöründe yer alan Arduino klasörüne kopyalayın. Arduino IDE üzerinde kodunuzu açın ve Arduino UNO üzerine yükleyin.

/*22-08-2020
 * Arduino UNO
 * ENC28J60 ethernet kartı 
 * üzerindeki 6 LED'in testi
 * Sıra ile yanıp sönme
 */
const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
const int LED6 = 8;


void setup() {
  // put your setup code here, to run once:
  pinMode (LED1, OUTPUT);
  pinMode (LED2, OUTPUT);
  pinMode (LED3, OUTPUT);
  pinMode (LED4, OUTPUT);
  pinMode (LED5, OUTPUT);
  pinMode (LED6, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED6, LOW);
  digitalWrite(LED1, HIGH);
  delay(200);
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, HIGH);
  delay(200);
  digitalWrite(LED2, LOW);
  digitalWrite(LED3, HIGH);
  delay(200);
  digitalWrite(LED3, LOW);
  digitalWrite(LED4, HIGH);
  delay(200);
  digitalWrite(LED4, LOW);
  digitalWrite(LED5, HIGH);
  delay(200);
  digitalWrite(LED5, LOW);
  digitalWrite(LED6, HIGH);
  delay(200);
}





Programı Arduino UNO üzerine nasıl yükleneceğini bildiğiniz varsayılmaktadır. Program derlenip yüklendikten sonra sıra ile LER'ler yanıp söner. Bu ko sadece LED'lerin çalıştığı ve kısa devre olmadığının onayını verecektir.

İnternetten bağlantısı verilen programı indirin, Arduino IDE uygulamasına yükleyin açın ve Arduino UNO üzerine yükleyin. (ip nomarasını kendi ethernet sistemine uygun olduğundan emin olun.)


Resim 16: RJ45 konnektörü üzerindeki kablo bağlantı LED'i. Kırmızı daire ile işaretli turuncu LED.


Resim 17: Modem üzerindeki kablo bağlantı LED'i. Kırmızı daire ile işaretli olan.

Her şey tamam ise, Arduino UNO+ENC28J60 modülü çalışmaya başlayacak ve ethernete bağlanacaktır.Bunu modem üzerinden ve ENC28J60 modülü üzerinde yer alan RJ45 konnektörü üzerindeki LED'lerden izlenebilir.

Resim 18: Cep telefon görünümü. Hedef IP değeri girilmiş.Giriş yapmak için yazı alanına tıkla. Ekranın altın bir klavye belirecek. İstediğiniz ip değerini girin. Yalnızca ip doğruluğu testi yapılmaz.

Telefonunuza uygulamanızı indirin veya kopyalayın ve yükleyin.(google play üzerinden indirilmediği için telefon sistemi sizi uyarabilir).Cep telefonunuzu modemin kablosuz ağına dahil edin. (wifi bağlantısı) "ENC28J60_CEP" uygulamasını çalıştırın.Daha önce girilip kaydedilmesi ise, Hedef IP girin. (örnek olarak gelen .ino belgesindeki kayıtlı ip olarak 192.168.0.55 olarak girilebilir.)İsterseniz IP kaydet butonuna basarak kaydadin. Böylece bir sonraki uygulamanızı açışınızda, tekrar yazmanız gerekmez.

Resim 19: Cep telefon görünümü. Bir butonu basılır iken.

Artık tek yapılacak "YAN" yazan butonlardan birine basmak. Basılan butona göre ENC28J60 modülü üzerindeki uygun LED yanar. "YAN" yazan butona basıldığı zaman, "SÖN" yazı ile değişecektir. Doğrudan doğruya cihazdan bir geri besleme alınmadığı için, cep telefonu programı kapatılıp tekrar açıldığı zaman, tüm butonlar "YAN" olarak değer alır.

Resim 20: İlk buton basıldığında yana LED.


Resim 21: Tüm LED'ler yanarken. Arkaplanda yanan kırmızı LED Arduino UNO'ya aittir.

Cep Telefonu programı (Android)

Cep telefonu (veya tablet) programı "app inventor" ile yazıldı.(veya kodlandı) App inventor doğrudan web sayfası üzerinde çalışan yapıdır. Kodlaması sürükle bırak tekniği ile çalışmaktadır. Ayrıntılara girmeden, kodlama resimleri ve derlenmiş uygulama paylaşılacaktır. Hazırını kullanabilir veya kendiniz uygulamayı oluşturabilirsiniz.

App inventor sitesine üye olup, kendi uygulamanıza geliştirebilirsiniz. Oluşturduğunuz uygulamanızdan başka bir şeyi bilgisayarınıza bir şey indirmeniz gerekmez. Sadece internet bağlantısı gereklidir. Derlenen uygulama ister bilgisayara, isterse cep telefonuna indirilebilir.

Resim 22: App inventor çalışma sayfasından görünüm. Sol tarafta yer alan öğelerin isimleri sağ tarafta gösterilmektedir ve istenildiği gibi değişiklik yapılması mümkündür. Öğelerin özel isim verilmesi önemlidir, kodlama esnasında kullanacağınız öğelere atadığınız isimlerdir.
Resim 23: Uygulama telefonda ilk açıldığı anda, yapılması gereken adımları içermektedir.6 adet buton isminin "YAN" olarak atanması ve son olarak daha önce kaydedilmiş ise ip değerini okunup "ip_no" yazı alanına yazılmasını sağlar. Daha önce kaydedilmemiş ise boş bırakılır.

Resim 24: IP kaydet butonuna tıklandığı zaman yapılacak işlem adımlarını içermektedir. "Veri_hazirla" değişkenine http://192.168.0.1 değerini ata. "Buton_kaydet" tıklandığı zaman,"ip_no" yazı alanındaki değeri kaydet.

Resim 25: Her bir buton için, buton yazısı "YAN" ise , buton yazısını "SÖN" olarak değiştir, aksi durumda "YAN" olarak değiştir. (Bu buton tıklandığı fonksiyonundan çıkıldığı zaman yerine getirilir) Ve buton ile ilgili fonksiyonu çağır.

Resim 26: (Mor renkli) Herbir fonksiyon için,öncelikle ip değeri (ip_no yazı alanındaki) girilmiş ise yerine getirilecek şekilde."Veri_hazirla" değişkenine "http://" ata. "Veri_hazirla" değerine ip_no alanındaki ip değerini ekle.Bu noktada buton yazısı "SÖN" olarak görülecekse, "/?durum=L1_ON", buton yazısı "YAN" olarak görülecekse, "/?durum=L1_OFF" "Veri_hazirla" değişkenine eklenir. Web1.URL'ye "Veri_hazirla" değişkeni yüklenir ve Web1.Get fonksiyonu çağrılır. Arduino UNO+ ENC28J60 ikilisine veri gönderilmiş olur.

Projede her ne kadar cep telefonu ile diye belirtildi ise de, aynı ağa bağlı herhangi bir cihazdan web gezinme programının adres çubuğuna "http://192.168.0.55/?durum=L1_ON" veya "http://192.168.0.55/?durum=L1_OFF" yazılarak LED1 kontrol edilebilir.

örnek 192.168.0.55 için verilmiştir. Tabii bu sizin ip adresinize göre değişiklik gösterebilir. Aşağıda sözü edilen komut listesi ve sonuçları görlebilir.

Adres çubuğuna yazılanENC28J60 +Ardunio UNO üzerindeki çalışma şeklindeki
http://192.168.0.55/?durum=L1_ONLED1 yanar
http://192.168.0.55/?durum=L1_OFFLED1 söner
http://192.168.0.55/?durum=L2_ONLED2 yanar
http://192.168.0.55/?durum=L2_OFFLED2 söner
http://192.168.0.55/?durum=L3_ONLED3 yanar
http://192.168.0.55/?durum=L3_OFFLED3 söner
http://192.168.0.55/?durum=L4_ONLED4 yanar
http://192.168.0.55/?durum=L4_OFFLED4 söner
http://192.168.0.55/?durum=L5_ONLED5 yanar
http://192.168.0.55/?durum=L5_OFFLED5 söner
http://192.168.0.55/?durum=L6_ONLED6 yanar
http://192.168.0.55/?durum=L6_OFFLED6 söner


Android cep telefonu programı tabletler için kullanılabildiği gibi bir emülatör programı üzerinden (windows) bilgisayarda kullanılabilir. Yeter ki bilgisayar da ENC28J060 ile aynı ağa bağlı olsun.

Resim 26: Emülatör üzerinde çalışan cep telefonu uygulamasının görünümü. Aynı cep telefonundan kontrol ettiği gibi LED'ler butonlara uygun yakıp söndürülür.

Sonuç

Cep telefonu uygulaması dahil proje ile ilgili belgeleri adresinden indirebilirsiniz. Kütüphane ismi (EtherCard) wiz5500 veya wiz5100 ile aynı olduğu için karışıklığa yer vermemek adına kütüphane Arduino IDE belgesinin (.ino) bulunduğu klasör içinde yer almaktadır.



Translate

Sayfalar

Etiketler

İzleyiciler