Ynt: Ynt: arduino webserver "epic fail" hatası

Başlatan Emre MERMİ, 26 Nisan 2015, 19:25:07

Emre MERMİ

26 Nisan 2015, 19:25:07 Son düzenlenme: 26 Nisan 2015, 22:06:01 Emre MERMİ
merhaba arkadaşlar,

Coşkun hocamın kitabındaki webserver uygulaması üzerinde değişiklik yaptım aynı şekilde birkaç tane daha çıkış ekledim ama 3. çıkıştan sonraki çıkışlarda hep "epic fail" hatası aldım başka pinleri denedim olmadı ne yaptıysam olmadı. ne yapabilirim yardımcı olur musunuz ? Şimdiden teşekkürler.

kodlar;
/*
  Arduino ile Basit bir Web Sunucusu 
  Web sunucusuna gönderilen istekler ile 2 adet LED kontrol ediliyor.
  
  8 ve 9 nolu dijital pinlere 2 Adet LED Bağlı (470 Ohm'luk dirençler ile)
    
  Arduino Ethernet Eklentisi ve WebDuino kütüphanesi kullanılmıştır.
  WebDuino Kütüphanesi: [url]https://github.com/sirleech/Webduino[/url]
*/

#include "SPI.h"
#include "Ethernet.h"
#include "WebServer.h"
#include "AFMotor.h"


#define LED1 6
#define LED2 7
#define FAN1 8
#define FAN2 9
static uint8_t mac[] = { 0xDE0xAD0xBE0xEF0xFE0xED };
boolean LED1Durum false;
boolean LED2Durum false;
boolean FAN1Durum false;
boolean FAN2Durum false;
boolean a 0;
boolean b 0;
boolean c 0;
boolean d 0;
AF_DCMotor motor4(4);
AF_DCMotor motor3(3);
AF_DCMotor motor2(2);
AF_DCMotor motor1(1);


static 
uint8_t ip[] = { 1921681188 };

/* Bir webserver nesnesi oluşturuyoruz.
Bütün gelen dosya istekleri kök dizin olarak görülmesi için
önek bölümünü boş bırakıyoruz. Bütün istekler
http://webserver-adresi/dosya-adi şeklinde gelecek.  */

#define ONEK ""
WebServer webserver(ONEK80);

/* Ana sayfa isteği geldiğinde çağırılacak fonksiyon */
void anaSayfa(WebServer &serverWebServer::ConnectionType baglantiTipichar *, bool)
{

  
server.httpSuccess();

  if (
baglantiTipi != WebServer::HEAD)
  {
    
LEDdurumlariniGoster(server);
  }
}

void led1AcKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
digitalWrite(LED1,HIGH);
    
LEDdurumlariniGoster(server);
  }
}

void led1KapatKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
digitalWrite(LED1,LOW);   
    
LEDdurumlariniGoster(server);
  }
}

void led2AcKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
     
digitalWrite(LED2,HIGH);    
     
LEDdurumlariniGoster(server);
  }
}

void led2KapatKomut(WebServer &serverWebServer::ConnectionType typechar * , bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
digitalWrite(LED2,LOW);
    
LEDdurumlariniGoster(server);
  }
}

void FAN1AcKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
     
digitalWrite(FAN1,HIGH);    
     
LEDdurumlariniGoster(server);
  }
}

void FAN1KapatKomut(WebServer &serverWebServer::ConnectionType typechar * , bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
digitalWrite(FAN1,LOW);
    
LEDdurumlariniGoster(server);
  }
}

void FAN2AcKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
digitalWrite(FAN2,HIGH);
    
LEDdurumlariniGoster(server);
  }
}

void FAN2KapatKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
digitalWrite(FAN2,LOW);   
    
LEDdurumlariniGoster(server);
  }
}

void MOTOR1AcKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
     
motor1.run(FORWARD);
     
a=1;
    
LEDdurumlariniGoster(server);
  }
}

void MOTOR1KapatKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
motor1.run(RELEASE);  
   
a=0
    
LEDdurumlariniGoster(server);
  }
}

void MOTOR2AcKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
     
motor2.run(FORWARD);
     
b=1;
    
LEDdurumlariniGoster(server);
  }
}

void MOTOR2KapatKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
motor2.run(RELEASE);  
   
c=0
    
LEDdurumlariniGoster(server);
  }
}

void MOTOR3AcKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
     
motor3.run(FORWARD);
     
c=1;
    
LEDdurumlariniGoster(server);
  }
}

void MOTOR3KapatKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
motor3.run(RELEASE);  
   
c=0
    
LEDdurumlariniGoster(server);
  }
}

void MOTOR4AcKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
     
motor4.run(FORWARD);
     
d=1;
    
LEDdurumlariniGoster(server);
  }
}

void MOTOR4KapatKomut(WebServer &serverWebServer::ConnectionType typechar *, bool)
{
  
server.httpSuccess();

  if (
type != WebServer::HEAD)
  {
    
motor4.run(RELEASE);  
   
d=0
    
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>"
    "</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("<h1>LED1:</h1>");
    if(
digitalRead(LED1))
    {
      
server.print("AÇIK");
      
server.println("<a href=\"led1Kapat\"> KAPAT</a>");
    }
    else
    {
      
server.print("KAPALI");
      
server.println("<a href=\"led1Ac\"> AÇ</a>");
    }
    
server.print("<h1>LED2:</h1>");
    if(
digitalRead(LED2))
    {
      
server.println("AÇIK");
      
server.println("<a href=\"led2Kapat\"> KAPAT</a>");
    }
    else
    {
      
server.println("KAPALI");
      
server.println("<a href=\"led2Ac\"> AÇ</a>");
    }
      
server.print("<h1>FAN1:</h1>");
    if(
digitalRead(FAN1))
    {
      
server.print("AÇIK");
      
server.println("<a href=\"FAN1Kapat\"> KAPAT</a>");
    }
    else
    {
      
server.print("KAPALI");
      
server.println("<a href=\"FAN1Ac\"> AÇ</a>");
    }
     
    
server.print("<h1>FAN2:</h1>");
        
    if(
digitalRead(FAN2))
    {
      
server.print("AÇIK");
      
server.println("<a href=\"FAN2Kapat\"> KAPAT</a>");
    }
    else
    {
      
server.print("KAPALI");
      
server.println("<a href=\"FAN2Ac\"> AÇ</a>");
    }
    
server.print("<h1>MOTOR1:</h1>");
        if(
a==1)
    {
      
server.print("AÇIK");
      
server.println("<a href=\"MOTOR1Kapat\"> KAPAT</a>");
    }
    else
    {
      
server.print("KAPALI");
      
server.println("<a href=\"MOTOR1Ac\"> AÇ</a>");
    }
    
server.print("<h1>MOTOR2:</h1>");
        if(
b==1)
    {
      
server.print("AÇIK");
      
server.println("<a href=\"MOTOR2Kapat\"> KAPAT</a>");
    }
    else
    {
      
server.print("KAPALI");
      
server.println("<a href=\"MOTOR2Ac\"> AÇ</a>");
    }
    
server.print("<h1>MOTOR3:</h1>");
         if(
c==1)
    {
      
server.print("AÇIK");
      
server.println("<a href=\"MOTOR3Kapat\"> KAPAT</a>");
    }
    else
    {
      
server.print("KAPALI");
      
server.println("<a href=\"MOTOR3Ac\"> AÇ</a>");
    }
    
server.print("<h1>MOTOR4:</h1>");
           if(
d==1)
    {
      
server.print("AÇIK");
      
server.println("<a href=\"MOTOR4Kapat\"> KAPAT</a>");
    }
    else
    {
      
server.print("KAPALI");
      
server.println("<a href=\"MOTOR4Ac\"> AÇ</a>");
    }
}

void setup()
{
  
// LED Pinlerini çıkış olarak ayarlıyoruz
  
pinMode(LED1,OUTPUT);
  
pinMode(LED2,OUTPUT);
  
pinMode(FAN1,OUTPUT);
  
pinMode(FAN2,OUTPUT);
  
digitalWrite(LED1,LOW);
  
digitalWrite(LED2,LOW);
  
digitalWrite(FAN1,LOW);
  
digitalWrite(FAN2,LOW);
  
motor4.setSpeed(200);
  
motor3.setSpeed(200);
  
motor2.setSpeed(200);
  
motor1.setSpeed(200);

  
/* IP ve MAC adresi ile ethernet bağlantısını başlatıyoruz */
  
Ethernet.begin(macip);

  
/* 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("led1Ac", &led1AcKomut);
  
webserver.addCommand("led1Kapat", &led1KapatKomut);
  
webserver.addCommand("led2Ac", &led2AcKomut);
  
webserver.addCommand("led2Kapat", &led2KapatKomut);
  
webserver.addCommand("FAN1Ac", &FAN1AcKomut);
  
webserver.addCommand("FAN1Kapat", &FAN1KapatKomut);
  
webserver.addCommand("FAN2Ac", &FAN2AcKomut);
  
webserver.addCommand("FAN2Kapat", &FAN2KapatKomut);
  
webserver.addCommand("MOTOR1Ac", &MOTOR1AcKomut);
  
webserver.addCommand("MOTOR1Kapat", &MOTOR1KapatKomut);
  
webserver.addCommand("MOTOR2Ac", &MOTOR2AcKomut);
  
webserver.addCommand("MOTOR2Kapat", &MOTOR2KapatKomut);
  
webserver.addCommand("MOTOR3Ac", &MOTOR3AcKomut);
  
webserver.addCommand("MOTOR3Kapat", &MOTOR3KapatKomut);
  
webserver.addCommand("MOTOR4Ac", &MOTOR4AcKomut);
  
webserver.addCommand("MOTOR4Kapat", &MOTOR4KapatKomut);

  
/* 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);
}



http://i.hizliresim.com/JYXozq.png
http://i.hizliresim.com/zAgPpB.jpg

mesaj birleştirme:: [time]26 Nisan 2015, 18:23:29[/time]

led 1 ve led 2 coşkun hocamın kitabındaki örnekte bulunan linkler. geri kalanını ben ekledim. sonradan eklediğim FAN1 çalışıyor ama gerisi çalışmıyor.