нужна помощь с библиотекой Webduino
- Войдите на сайт для отправки комментариев
Пт, 15/11/2013 - 14:38
Доброе время суток
Столкнулся с несколькоми проблеммами с этой библиотекой
сначала вот адресс библиотеки: 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);
}
Не val1 = 0 ,а val1 ==0 в проверке на условие...Для начала почитать надо было основы языка Ардуино и Си
во блин столько смотрел почему неработает и незаменил катой ошибки и вроде делал раньше проверки в другом проэкте, может и другие ошибки накиеже