нужна помощь с библиотекой Webduino

bigoblin
Offline
Зарегистрирован: 09.10.2013

Доброе время суток 

Столкнулся с несколькоми проблеммами с этой библиотекой

сначала вот адресс библиотеки: https://github.com/sirleech/Webduino

написал скоч для теста и всплыли проблемы 

1. почимуто нельзя вывести статус пина 

int val1 = digitalRead(led1); 
if ( val1 = 0) { server.print("off"); } else { server.print("on"); }

2. нельзя сраву включить все пины, их на тесте 4, веб перестает отвечает вообще, если один любой то все работает

  digitalWrite(led1, 1);
  digitalWrite(led2, 1);
  digitalWrite(led3, 1);
  digitalWrite(led4, 1);

3. нельзя включить больше двух ледов перестает отвичать веб хотя пинг идет, 

ниже код скрипта он страшный но работать должен в тиории и работает если включать не более двух ледов

http://x.x.x.x/on1 включить первый лед 

http://x.x.x.x/off1 выключить первый лед 

меняя цифру можно упровлять ледоми от 1 до 4

/* Web_HelloWorld.pde - very simple Webduino example */

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

static uint8_t mac[] = { 0x00, 0x0E, 0xC9, 0x02, 0xFD, 0x00 };
static uint8_t ip[] = { 136, 169, 69, 2 };

int led1 = 4;
int led2 = 5;
int led3 = 6;
int led4 = 7;

int check_state=1;

#define PREFIX ""
WebServer webserver(PREFIX, 80);


void defaultCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  server.httpSuccess();
  if (type != WebServer::HEAD)
  {  
    P(helloMsg) = "<h1>test page</h1>";
    
    server.printP(helloMsg);
   
    int val1 = digitalRead(led1); 
    if ( val1 = 0) { server.print("off");  } else { server.print("on");  }

    int val2 = digitalRead(led2); 
    if ( val2 = 0) { server.print("off");  } else { server.print("on");  }

    int val3 = digitalRead(led3); 
    if ( val3 = 0) { server.print("off>");  } else { server.print("on");  }
       
    int val4 = digitalRead(led4); 
    if ( val4 = 0) { server.print("off");  } else { server.print("on");  }
    
  }
}


void OnCmd1(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  server.httpSuccess();
  if (type == WebServer::HEAD)
    return;
  server.print("on");
  digitalWrite(led1, HIGH);
}
void OffCmd1(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  server.httpSuccess();
  if (type == WebServer::HEAD)
    return;
  server.print("off");
  digitalWrite(led1, LOW);
}

void OffCmd2(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  server.httpSuccess();
  if (type == WebServer::HEAD)
    return;
  server.print("off");
  digitalWrite(led2, LOW);
}
void OnCmd2(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  server.httpSuccess();
  if (type == WebServer::HEAD)
    return;
  server.print("on");
  digitalWrite(led2, HIGH);
}

void OnCmd3(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  server.httpSuccess();
  if (type == WebServer::HEAD)
    return;
  server.print("on");
  digitalWrite(led3, HIGH);
}

void OffCmd3(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  server.httpSuccess();
  if (type == WebServer::HEAD)
    return;
  server.print("off");
  digitalWrite(led3, LOW);
}
void OnCmd4(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  server.httpSuccess();
  if (type == WebServer::HEAD)
    return;
  server.print("on");
  digitalWrite(led4, HIGH);
}

void OffCmd4(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  server.httpSuccess();
  if (type == WebServer::HEAD)
    return;
  server.print("off");
  digitalWrite(led4, LOW);
}

void setup()
{
  Serial.begin(9600);
  
  digitalWrite(led1, 1);
  //digitalWrite(led2, 1);
  //digitalWrite(led3, 1);
  //digitalWrite(led4, 1);
  
  pinMode(led1, OUTPUT); 
  pinMode(led2, OUTPUT); 
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT); 
  
  Ethernet.begin(mac, ip);

  webserver.setDefaultCommand(&defaultCmd);

  webserver.addCommand("on1", &OnCmd1);
  webserver.addCommand("off1", &OffCmd1);

  webserver.addCommand("on2", &OnCmd2);
  webserver.addCommand("off2", &OffCmd2);

  webserver.addCommand("on3", &OnCmd3);
  webserver.addCommand("off3", &OffCmd3);
  
  webserver.addCommand("on4", &OnCmd3);
  webserver.addCommand("off4", &OffCmd3); 
  /* start the webserver */
  webserver.begin();
}

void loop()
{
 char buff[100];
  int len = 64;

  webserver.processConnection(buff, &len);
 
}

 

 

 

MaksMS
Offline
Зарегистрирован: 11.03.2013

Не val1 = 0 ,а val1 ==0 в проверке на условие...Для начала  почитать надо было основы языка Ардуино и Си

bigoblin
Offline
Зарегистрирован: 09.10.2013

во блин столько смотрел почему неработает и незаменил катой ошибки и вроде делал раньше проверки в другом проэкте, может и другие ошибки накиеже