Elektrik elektronik temrinleri
Ders Notları => Arduino Öğreniyorum => Uzaktan kontrol => Konuyu başlatan: Hasan ERTÜRK - 25 Haziran 2015, 23:31:32
-
Bu dersimizde arduino ethernet shild kullanarak 2 adet röleyi internet tarayıcınız üzerinden açıp kapatma uygulaması yapacağız. Uygulamayı yapabilmek için öncelikle arduino programınıza weduino (http://temrinlerim.org/index.php?topic=188.msg203#msg203) kütüphanesinin ekli olması gereklidir. Webduino kütüphanesi ekli değilse öncelikle webduino kütüphanesini ekleyiniz.
Arduino kodlarımız:
Kodlari sadece uyeler gorebilir. Lutfen Uye Olun ya da Giris Yapin.
ISIS Devre şeması:
(http://temrinlerim.org/images/arduino25.PNG)
ARES Baskı Devresi:
(http://temrinlerim.org/images/arduino26.PNG)
Tarayıcı arayüzü:
(http://temrinlerim.org/images/arduino27.PNG)
Devrenin bitmiş hali:
(http://temrinlerim.org/images/arduino28.jpg)
(http://temrinlerim.org/images/arduino29.jpg)
-
Hocam röle sayısını 4'e çıkarınca 4. röleyi açıyor fakat kapatmaya basınca sayfa hatası veriyor. sorun neden kaynaklanıyor olabilir acaba.
kod aşağıdaki gibi yaptım.
#include "SPI.h"
#include "Ethernet.h"
#include "WebServer.h"
#define RELAY1 2
#define RELAY2 3
#define RELAY3 6
#define RELAY 7
static uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
boolean ROLE1Durum = false;
boolean ROLE2Durum = false;
boolean ROLE3Durum = false;
boolean ROLEDurum = false;
static uint8_t ip[] = { 192, 168, 1, 10 };
#define ONEK ""
WebServer webserver(ONEK, 80);
/* Ana sayfa isteği geldiğinde çağırılacak fonksiyon */
void anaSayfa(WebServer &server, WebServer::ConnectionType baglantiTipi, char *, bool)
{
server.httpSuccess();
if (baglantiTipi != WebServer::HEAD)
{
LEDdurumlariniGoster(server);
}
}
void ROLE1AcKomut(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
server.httpSuccess();
if (type != WebServer::HEAD)
{
digitalWrite(RELAY1,HIGH);
LEDdurumlariniGoster(server);
}
}
void ROLE1KapatKomut(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
server.httpSuccess();
if (type != WebServer::HEAD)
{
digitalWrite(RELAY1,LOW);
LEDdurumlariniGoster(server);
}
}
void ROLE2AcKomut(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
server.httpSuccess();
if (type != WebServer::HEAD)
{
digitalWrite(RELAY2,HIGH);
LEDdurumlariniGoster(server);
}
}
void ROLE2KapatKomut(WebServer &server, WebServer::ConnectionType type, char * , bool)
{
server.httpSuccess();
if (type != WebServer::HEAD)
{
digitalWrite(RELAY2,LOW);
LEDdurumlariniGoster(server);
}
}
void ROLE3AcKomut(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
server.httpSuccess();
if (type != WebServer::HEAD)
{
digitalWrite(RELAY3,HIGH);
LEDdurumlariniGoster(server);
}
}
void ROLE3KapatKomut(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
server.httpSuccess();
if (type != WebServer::HEAD)
{
digitalWrite(RELAY3,LOW);
LEDdurumlariniGoster(server);
}
}
void ROLEAcKomut(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
server.httpSuccess();
if (type != WebServer::HEAD)
{
digitalWrite(RELAY,HIGH);
LEDdurumlariniGoster(server);
}
}
void ROLEKapatKomut(WebServer &server, WebServer::ConnectionType type, char * , bool)
{
server.httpSuccess();
if (type != WebServer::HEAD)
{
digitalWrite(RELAY,LOW);
LEDdurumlariniGoster(server);
}
}
void LEDdurumlariniGoster(WebServer &server)
{
/*
P() makrosu ile string'leri RAM yerine program
belleğine kaydedebiliyoruz. Server'a gönderirken de
printP() fonksiyonunu kullanıyoruz
*/
P(htmlHead) =
"<html>"
"<head>"
"<title>Arduino Web Sunucusu</title>"
"<link rel='stylesheet' type='text/css' href='http://temrinlerim.org/ethernet.css' />"
"</head>"
"<body>";
server.printP(htmlHead);
/*
LED'lerin durumlarını yazdırıyoruz ve açma / kapama
işlemleri için linkleri yazdırıyoruz
*/
server.print("<h2>OGUZELi MESLEKi VE TEKNiK ANADOLU LiSESi</h2>");
server.print("<h2>AKILLI EV UYGULAMASI</h2>");
server.print("<h2>-----------------------</h2>");
server.print("<h2>KLiMA:</h2>");
if(digitalRead(RELAY1))
{
server.print("AÇIK<BR /><BR />");
server.println("<a href=\"ROLE1Kapat\"> KAPAT</a>");
}
else
{
server.print("KAPALI<BR /><BR />");
server.println("<a href=\"ROLE1Ac\"> AÇ</a>");
}
server.print("<h2>KOMBi:</h2>");
if(digitalRead(RELAY2))
{
server.print("AÇIK<BR /><BR />");
server.println("<a href=\"ROLE2Kapat\"> KAPAT</a>");
}
else
{
server.print("KAPALI<BR /><BR />");
server.println("<a href=\"ROLE2Ac\"> AÇ</a>");
}
server.print("<h2>SALON AYD.:</h2>");
if(digitalRead(RELAY3))
{
server.print("AÇIK<BR /><BR />");
server.println("<a href=\"ROLE3Kapat\"> KAPAT</a>");
}
else
{
server.print("KAPALI<BR /><BR />");
server.println("<a href=\"ROLE3Ac\"> AÇ</a>");
}
server.print("<h2>MUTFAK AYD.:</h2>");
if(digitalRead(RELAY))
{
server.print("AÇIK<BR /><BR />");
server.println("<a href=\"ROLEKapat\"> KAPAT</a>");
}
else
{
server.print("KAPALI<BR /><BR />");
server.println("<a href=\"ROLEAc\"> AÇ</a>");
}
}
void setup()
{
// LED Pinlerini çıkış olarak ayarlıyoruz
pinMode(RELAY1,OUTPUT);
pinMode(RELAY2,OUTPUT);
pinMode(RELAY3,OUTPUT);
pinMode(RELAY,OUTPUT);
digitalWrite(RELAY1,LOW);
digitalWrite(RELAY2,LOW);
digitalWrite(RELAY3,LOW);
digitalWrite(RELAY,LOW);
/* IP ve MAC adresi ile ethernet bağlantısını başlatıyoruz */
Ethernet.begin(mac, ip);
/* Web sunucuya gelen isteklere göre çağırılacak fonksiyonları listeye ekliyoruz */
/* Varsayılan istek */
webserver.setDefaultCommand(&anaSayfa);
/* ana sayfa isteği geldiğinde */
webserver.addCommand("index.html", &anaSayfa);
/* Diğer istekler */
webserver.addCommand("ROLE1Ac", &ROLE1AcKomut);
webserver.addCommand("ROLE1Kapat", &ROLE1KapatKomut);
webserver.addCommand("ROLE2Ac", &ROLE2AcKomut);
webserver.addCommand("ROLE2Kapat", &ROLE2KapatKomut);
webserver.addCommand("ROLE3Ac", &ROLE3AcKomut);
webserver.addCommand("ROLE3Kapat", &ROLE3KapatKomut);
webserver.addCommand("ROLEAc", &ROLEAcKomut);
webserver.addCommand("ROLEKapat", &ROLEKapatKomut);
/* Sunucuyu başlatıyoruz */
webserver.begin();
}
void loop()
{
char webserver_tampon[64];
int boyut = 64;
/* Sürekli olarak gelen istekleri işliyoruz */
webserver.processConnection(webserver_tampon, &boyut);
}
-
4. röleye kapat komutu gidince
aşağıdaki hatayı veriyor web de
EPIC FAIL