100 Satırda ŞeyterNET

IoT: Internet of Things; Şeylerin interneti demek. Yani hemen her şeyin internete bağlandığı ağın adı. Bildiğimiz internet,  bunun bir alt kümesi.

Bu tabir kullanılmaya başladığında, zannediyorum(?) ilk Intel Türkiye’nin karşılık bulma çabasıyla, herŞEYin inTERNETi sözünden yola çıkarak, Türkçeye “Şeyternet” olarak çevirmişlerdi.

Kulağa eğlenceli geldiği için şahsen ben sevmiştim. Ancak zamanla yaşan dil içinde Nesnelerin İnterneti tabiri daha çok kullanılmaya başladı ve  artık oturmuş karşılığı da sanırım bu olacak.

Bir süredir beklediğimiz siparişlerimiz geldi. Ve minik de olsa ilk Nesnelerin İnterneti projemizi yaptık.

Hem kendimi pekiştirmek için hem de Türkçe olarak açıklamalı kaynak zenginliği olması için, mevcut kaynaktaki açıklama kısımlarını genişlettim ve yeni açıklamalar ekledim.

Açık söylemek gerekirse ancak 2 Kilobayt‘lık paketlerle iletişim kurabilen bozuk para kadar cihazın, Node.js’ye 10 bastığını söyleyebilirim. // Harbiden.

Steemit’in kafası karışacak uzunlukta olduğu için, Steempress’te bu kodlara yer verince Steemit’e bozulur mu kestiremiyorum. Okuma zorluğu olursa aşağıdaki linkten murattatar.xyz üzerinden göz atabilirsiniz.

 

#define ag_adi "Telekom_Zyxel_HG13W" // wifi ağınızın adı
#define ag_sifresi "34ist1453" // wifi şifreniz 

#include <Stepper.h>  //  standart Arduino Adım Motor kütüphanesi eklenir. 

byte m; // Mototun kaç defa döneceğini m değeri ile söylüyoruz. 256'dan küçük olduğu için byte olarak
const int birTuruKacAdimlaDonecek = 360;
Stepper stepMotorumuz(birTuruKacAdimlaDonecek, 8, 9, 10, 11);


void setup()
{
  stepMotorumuz.setSpeed(100); // motor hizi

  Serial.begin(115200); // Seriport'u açıyoruz.
  // ESP modülünün baudRate değeri 115200 olduğu için bizde Seriport'u 115200 şeklinde seçiyoruz
  Serial.println("AT"); // ESP modülümüz ile bağlantı kurulup kurulmadığını kontrol ediyoruz.
  pinMode(13, OUTPUT);
  delay(3000); //ESP ile iletişim için 3 saniye bekliyoruz.

  if (Serial.find("OK")) {       // esp modülü ile bağlantıyı kurabilmişsek modül "AT" komutuna "OK" komutu ile geri dönüş yapıyor.
    Serial.println("AT+CWMODE=1"); // esp modülümüzün WiFi modunu STA şekline getiriyoruz. Bu mod ile modülümüz başka ağlara bağlanabilecek.
    delay(2000);
    String baglantiKomutu = String("AT+CWJAP=\"") + ag_ismi + "\",\"" + ag_sifresi + "\"";
    Serial.println(baglantiKomutu);
    delay(5000);
  }

  Serial.print("AT+CIPMUX=1\r\n");
  delay(200);
  Serial.print("AT+CIPSERVER=1,80\r\n");
  delay(1000);
}


void loop() {
  if (Serial.available() > 0) {
    if (Serial.find("+IPD,")) {
      String icerik = "<head> Wifi ile Kablosuz Motor ve Led Kontrolu </head>";
      icerik += "<br><a href=\" ?led=ac\"><button type='button'>LED AC</button></a> ";
      icerik += " <a href=\" ?led=kapat\"><button type='button'>LED KAPAT</button></a>";
      icerik += "<br><br><a href=\" ?aksiyon=motor\"><button type='button'>MOTOR</button></a>";

      String gonder = "AT+CIPSEND=0," + icerik.length() + "\r\n";
      Serial.print(gonder);
      delay(500);
      // CIPSEND ile ESP Sunucumuza data gönderimini başlatıyoruz.
      // AT+CIPSEND=0, 140
      // 0. iletim, 140 karekter gibi..

      Serial.println(icerik);
      // yukarıdaki HTML sayfamızı gönderiyoruz.
      // Tarayıcıda adres satına 192.168.42.13 yazdıdığımızda, ESP karşımıza bu sayfayı sunacak.

      atraksiyonlar();
      // Loop'un içinde olduğu için, Emirlerinizi bekliyoruz merkez ;) modunda sürekli çalışıyor olacak

      Serial.println("AT+CIPCLOSE=0"); // Bağlantıyı kapat

    }
  }
}


void atraksiyonlar() {

  String gelen_istek = "";
  char okunan;
  while (Serial.available() > 0) {
    okunan = Serial.read();
    gelen_istek += okunan;
  }
  // Serialden bir şey okunana kadar While dönecek, okunan değeri "gelen_istek" değişkenine atayacak

  Serial.println(gelen_istek);
  if ((gelen_istek.indexOf(":GET /?led=ac") > 1)) {
    digitalWrite(13, HIGH);
    // LED AC butonuna basıldığında adres satırı 192.168.42.13/?led=ac şeklinde olacak, yani severa GET isteği gelecek
    // bunun içinde led=ac varsa ilgili pine elektrik gönderecek, bağlı olan bileşene (bu örnekte lede) güç verecek.
  }


  if ((gelen_istek.indexOf(":GET /?led=kapat") > 1)) {
    digitalWrite(13, LOW);
    // LED AC butonuna basıldığında adres satırı 192.168.42.13/?led=kapat şeklinde olacak, yani severa GET isteği gelecek
    // bunun içinde led=ac varsa ilgili pine elektrik gönderecek, bağlı olan bileşene (bu örnekte lede) güç verecek.
  }


  if ((gelen.indexOf(":GET /?aksiyon=motor") > 1)) {
    for (m = 0; m < 20; m++) {
      stepMotorumuz.step(1 * (birTuruKacAdimlaDonecek));
      // MOTOR butonuna basıldığında adres satırı 192.168.42.13/?aksiyon=motor şeklinde olacak, yani severa GET isteği gelecek
      // bunun içinde aksiyon=motor varsa step motorumuz 20 tur dönecek.
      // ters yönde dönmesi için -1 ile çarpabilirsiniz
    }
  }


}

 


Kaynak: sametsavas55 , instructables, coeleveld
Görsel: viktak

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir