
Yazının Başlıkları
Arduino ve ENC28J60 ile Ağa Bağlanma
Arduino ile ağa bağlanmak için kullanabileceğimiz en ucuz yöntem sanırım ENC28J60 kullanmak. Promini ile birleşince boyutları açısından da yemede yanında yat oluyor. Şahsen kendi evimde bu yöntemi kullanarak aydınlatmaları mı kontrol ediyorum. Sonraki anlatımlarım da Promini 328, ENC28J60 ve RF alıcı vericiler ile evinizde kendi otomasyon sisteminizi ne kadar kolay ve ucuza yapabileceğinizi anlatacağım.
Gerekli Alet Edevat Listesi
- ENC28J60 Ethernet Kartı
- Arduino Promini 328
- ENC28J60 Ethernet Kart Kütüphanesi
Arduino Yeni Kütüphanenin Eklenmesi
ENC28J60 Ethernet Kart kütüphanesini GitHub dan indirmek için açılan sayfada a tılıyoruz gelen kütüphaneyi Arduino Kurulum klasörümüzün içinde bulunan libraries klasörünün içine kopyalıyoruz.
Arduino ve ENC28J60 Bağlantı Şeması
ENC28j60 | UNO-Promini-DUE | Mega2560 |
CS | Dijital Port 10 | Dijital Port 53 |
SI | Dijital Port 11 | Dijital Port 51 |
SO | Dijital Port 12 | Dijital Port 50 |
SCK | Dijital Port 13 | Dijital Port 52 |
RESET | RESET | RESET |
INT | Dijital Port 2 | Dijital Port 2 |
VCC | 3.3 – 5 VOLT OLABİLİR | 3.3 – 5 VOLT OLABİLİR |
GROUND | GROUND | GROUND |
Bağlantı sırasında dikkat edilmesi gereken ethernet kartınızın kaç volt olduğudur. 3.3 volt ise gerekli pine bağlanmalı 5 volt ise zaten VCC ye bağlıyoruz. Bu projede 5 Volt güç kaynağı ve 5 Volt ethernet kartı kullanmanızı öneririm. Gelelim Web Server Kodumuza
ENC28J60 Arduino Kodu
#include <EtherCard.h> // EtherCard kütüphanesini ekliyoruz. #include <RCSwitch.h> static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };// Daha önce bulduğumuz modülümüze atanan yerel ip adresini bu kısma yazıyoruz. static byte myip[] = { 192,168,1,199 }; static byte gwip[] = { 192,168,1,1 }; // MOdemimizin IP Adresi byte Ethernet::buffer[700];BufferFiller bfill;RCSwitch mySwitch = RCSwitch(); char value; // incoming data String incomingByte = “”; String goingByte = “”; unsigned long interval=100; // the time we need to wait String inputString = “”; // a string to hold incoming data Serial.begin(9600); //Seri iletişimi başlatıyoruz. if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) Serial.println(); // 1 satır boşluk bırakıyoruz. } word len = ether.packetReceive();
if (pos) { if (strncmp(“GET /”, data, 5) ==0){ char *token = strtok(data, “H”); // Get everything up to the / incomingByte.concat(token); // check if “interval” time has passed (1000 milliseconds) } void serialEvent() { |
Arduino web server da dikkat edilmesi gerekenler başlıca IP adresimizin modemimizin havuzundan seçilmesi yani… modemimizin havuzu 192.168.2.1 yada 10.0.0.1 gibi bir adres ise biz ethernet kodumuza 192.168.1.1 dediğimizde Arduino modemden ip adresi alamaz. Modem havuzumuzun ne olduğunu öğrenmek için bilgisayarımızın ağ bağlantısına sağ tıklayıp Ağ ve paylaşım merkezinden bağlı olduğumuz ağa tıklıyoruz ve ayrıntıya tıklıyoruz.
Bağlantıları doğru yaptıysak, doğru adresi verdiysek ve yukarıda verdiğim kodu yüklediyseniz browsera 192.168.1.199 yazdığımızda. Aşağıdaki sayfayı görebiliriz.