Arduino
OKUDUĞUNUZ KONU
Arduino Sd Kart Üzerine Web Server Kurulumu
0

Arduino Sd Kart Üzerine Web Server Kurulumu

Yazar : Kenan Yemencioğlu5 Mart 2016

Merhaba arkadaşlar, bu yazımda sizlere Türkçe kaynak sıkıntısı olan bir Arduino güzelliğinden bahsetmek istiyorum.Bildiğimiz ve okuduğumuz üzere Arduino ile hayal ettiklerimizi yapmak aslında çok eğlenceli ve kolay olduğu sürekli söylenmekte fakat ne yazık ki türkçe kaynak bulmak led uygulamaları dışında pekte kolay sayılmıyor.Kendimden biliyorum bir proje aşamasındayım ve bu proje internet üzerinden fiziksel ortam kontrolü ve otomasyonunu konu alan yapay zeka barındıran bir çalışma, çalışmam bittiğinde tabikide sizlere gerekli yerler hakkında arzu ederseniz elimden geldiği kadar açıklama yapabilirim fakat şuanda projem hakkında konuşmak doğru olmayacağı kanısındayım.

Şimdi gelelim anlatacağımız bu arduino kolaylığının ne olduğuna.Arkadaşlar, bildiğimiz üzere Arduinonun bizlere sağladığı en büyük kolaylıkların başında shield’lar geliyor.Bizim ilgi alanımız ve anlatacağımız bu konuda Ethernet Shield üzerine olacak.

Şimdi isterseniz Ethernet Shield hakkında biraz konuşalım.Arkadaşlar Ethernet Shield Arduino projelerimizi internet üzerinden kontrol edilmesini ve projemizi web ortamından yürütmemizi sağlayan temel amacı bu olan geliştirilmeye açık bir sanal server gibi tanımlayabiliriz.Yani bir proje oluşturduğumuzu varsayacak olursak, bu projemizi internet üzerinde aç kapa işlemlerinden tutunda sensörlerden gelen anlık durum bilgilerini görüntüleyip müdahale etmemize kadar bizlere kolaylık sağlayan bir arduino donanımıdır.

Yukarıda resimde görülen donanım Arduino ile tam uyumlu olarak çalışan bir Ethernet Shield.Üzerinde Wiznet W5100 entegresi bulunmakta ve arduino’nun orjinal tasarımının kolunudur.Bu donanım Arduino tarafından sağlanan kütüphanelerle tam anlamıyla uyum sağlamaktadır.Ayrıca üzerinde dikkat ederseniz birde SD kart yuvası bulunmakta.Bu sd kart yuvasıyla çeşitli işlemler yapılmakta arkadaşlar.Mesela sisteme bağlanan bu donanım sayesinde anlık data bilgilerini kaydedebilme vb. İşlemler sağlanmakta.

Fakat biz burada SD kart bölümünü daha farklı bir amaç için kullanacağız.Web Serverimizi bu SD kart bölümüne takılacak olan SD kart üzerine kuracağız.Web Server çalışması yapan ya da yapmak isteyen arkadaşlar araştırdırma yaptıkları esnada muhakkak görmüşlerdir ki, hazırlanan web arayüzü kodları Arduinonun hafızasına yüklenmektedir.Böyle oluncada Arduino belleği epeyi dolmakta ve farklı çözmler aranmaktadır.İşte tam da bu nokta da bizlerin yardımına bu SD kart özelliğinin kullanılması koşuyor.

Biraz sonra aşağıda basit bir şekilde Web Server oluşturulmasını ve oluşturulan bu web server kontrol arayüzünün SD kart modülüne takılacak olan SD karta yüklenip yüklendikten sonra arduino içerisinden çağrılmasını göstereceğim.

Umarım sizler içinde faydalı olur.
Web Server Kurulması ve Arayüzün SD Karta Yüklenmesi

İsterseniz biraz arayüz kodumuzun dilinden bahsedelim.Nedir bu HTML ?

HTML, bir programlama dili olarak tanımlanamaz. Zira HTML kodlarıyla kendi başına çalışan bir program yazılamaz. Ancak bu dili yorumlayabilen programlar aracılığıyla çalışabilen programlar yazılabilir. Programlama dili denilememesinin nedeni tam olarak budur. Temel gereği yazı, görüntü, video gibi değişik verileri ve bunları içeren sayfaları birbirine basitçe bağlamak, buna ek olarak söz konusu sayfaların web tarayıcısı yazılımları tarafından düzgün olarak görüntülenmesi için gerekli kuralları belirlemektir. HTML kodunu web tarayıcıları okur, yorumlar ve görsel hale dönüştürürler, dolayısıyla aynı HTML kodunun farklı tarayıcılarda farklı sonuç vermesi olasıdır.

Küçüktür ve büyüktür işaretleri arasına yazılan HTML komutları kullanılarak yazılır (ör:

<html>

). İşaretlenen metnin başını ve sonunu belirtmek için çoğunlukla çift olarak kullanılırlar (Örnek:


<h1>Selam</h1>


) ancak işaretlemek yerine metnin bir yerine bir işaret konacaksa tek olarak da kullanılabilirler (Ör:

[/html)).(Alıntı Vikipedi : HTML NEDİR).

Arkadaşlar Dreamwiever gibi web tasarım programlarında arayüzünüzü tasarlamanız sizlere hız ve görsellik kazandıracaktır.Tasarım konusuna burada girmeyeceğim burada.Web arayüz tasarımınızı yaptığınızı varsayarak anlatmaya devam ediyorum.Oluşturduğunuz bu web arayüzünü ilk öncelikle bir isim vererek (.html) olarak kaydediyoruz.

Daha sonrasında ise bu kaydettiğimiz arayüz dosyasını sd kartımıza bilgisayarımızdan atıyoruz.Artık arayüz dosyası SD kartımızda olduğuna göre arduino ile bir web server oluşturup bu web server arayüzünü SD kart üzerinden çağırabiliriz.Bu durumu web tasarım işleriyle uğraşan arkadaşlar dosya barındırma (host) işlemine benzetebilirler gayette doğaldır.Çünkü bu işlem tipik bir dosya barındırma işlemidir.

Nasıl ki bir web sitesi yaptığımızda bir alan adı ve dosyalarımızı yükleyip kullanıcıya sunmak için bir alan satın alıyorsak buradaki işlemde aslında aynen böyledir.Şimdi ise kodları paylaşalım ve elimizden geldiğince açıklayalım.

#include <SPI.h>//Seri haberleşme kütüphanemizi çağırıyoruz...
#include <Ethernet.h>//Ethernet kütüphanemizi çağırıyoruz...
#include <SD.h>

// Ethernet shield için mac ve ip tanımlamalarımızı yapıyoruz...
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(10, 0, 0, 20); // Ip adresimiz.
EthernetServer server(80); // Server için portumuzu yazıyoruz...

File webArayuz; //değişkenimizi tanımlıyoruz...

void setup()
{
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);

// initialize SD card
Serial.println("SD Kart başlatılıyor...");
if (!SD.begin(4)) {
Serial.println("HATA ! SD Kart başlatılamıyor...");
return;
}
Serial.println("SD Kart başarı ile açıldı...");
// arayüz dosyasını kontrol et...
if (!SD.exists("index.htm")) {
Serial.println("Dosya Bulunamadı...");
return;
}
Serial.println("Dosya başarılı bir şekilde bulundu...");
}

void loop()
{
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n' &amp;&amp; currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
// arayüzü gönderme...
webArayuz = SD.open("index.htm"); //Sd kart içinden index.html isimli arayüz dosyasını aç...
if (webArayuz) {
while(webArayuz.available()) {
client.write(webArayuz.read());
}
webArayuz.close();
}
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
}

SİZCE NASIL OLMUŞ?
Beğendim
64%
İlginç
5%
Eh İşte
2%
Anlamadım
14%
Kötü
7%
Berbat
7%
YAZAR HAKKINDA
Kenan Yemencioğlu
Kenan Yemencioğlu
1991 Diyarbakır doğumluyum.İlk ve Orta öğretimimi Kocaeli'de tamamladım. GATEM Elektrik - Elektronik Bölümü Kontrol ve Otomasyon Alanından Mezun olduktan sonra 1 sene kadar özel bir otomasyon şirketinde çalıştıktan sonra TRT Çocuk kanalında yayınlanan 2 adet projede 3D modelleme, animasyon ve render alanında 4 yıl çalıştım daha sonra eğitimime devam etmek için üniversiteye başladım şuanda Mehmet Akif Ersoy Üniversitesi Mekatronik bölümü son sınıf öğrencisiyim. İnternet of things, akıllı otomasyon ve kontrol sistemleri, yapay zeka üzerine kendimi geliştirmekteyim.Uzaktan kontrol sistemleri ve gömülü sistemler hakkında çalışmalarım mevcut.Ayrıca şuanda arduino ile nesnelerin interneti ve gömülü sistemler hakkında bir kitap bitirme aşamasındayım.
YORUMLAR

YORUM YAP