Fala galera do Lab, blz?
Vê alguém pode me ajudar.
Andei dando uma pesquisada e não achei nada que pudesse me ajudar.
Possuo 3 Arduínos (Duemilanove/Uno e Mega) e uma Ethernet Shiled W5100 onde conforme o código abaixo consigo controlar alguns leds pela internet.
Alguém sabe como posso adicionar neste código algum tipo de autenticação?
Uma senha para que qualquer pessoa não acesse?
Obrigado.
//W5100 ocupa pinos digitais 10, 11, 12, e 13 (Uno/Duelmilanove)
//W5100 ocupa pinos digitais 10, 50, 51, e 52 (Mega)
#include <LED.h>
#include <Ethernet.h>
#include <SPI.h>
#include <avr/pgmspace.h>
prog_char string_0[] PROGMEM = "<h1><div align='center'><b><i>YOSHIKAWA</i></b></h1><form method=GET>";
prog_char string_1[] PROGMEM = "<br><input type=submit name=b1 value=UM>";
prog_char string_2[] PROGMEM = "<br><input type=submit name=b2 value=DOIS>";
prog_char string_3[] PROGMEM = "</form></body></html>";
prog_char string_4[] PROGMEM = "<font color=green><b>Ligado</b></font>";
prog_char string_5[] PROGMEM = "<font color=red><b>Desligado</b></font>";
PROGMEM const char *string_table[] = // change "string_table" name to suit
{
string_0,
string_1,
string_2,
string_3,
string_4,
string_5,
};
char buffer[85]; // make sure this is large enough for the largest string it must hold
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 200 };
byte gateway[] = { 192, 168, 0, 1 };
byte subnet[] = { 255, 255, 255, 0 };
String inString = String(35);
Server server(8081);
LED led1 = LED(A0);
LED led2 = LED(A1);
String msg="";
int tam=0;
int st1=5,st2=5;
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac, ip,gateway,subnet);
server.begin();
Serial.println("Serial READY");
Serial.println("Ethernet READY");
Serial.println("Server READY");
pinMode(A0,OUTPUT);
pinMode(A1,OUTPUT);
}
void loop()
{
Client client = server.available();
int led=0;
if (client) {
// an http request ends with a blank line
boolean current_line_is_blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// if we've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so we can send a reply
if (inString.length() < 35) {
inString.concat(c);
}
if (c == '\n' && current_line_is_blank) {
if(inString.indexOf("b1")>0){
led1.toggle();
if(led1.getState()) st1=4;
else st1=5;
led=1;
}
if(inString.indexOf("b2")>0){
led2.toggle();
if(led2.getState()) st2=4;
else st2=5;
led=2;
}
if(inString.indexOf("msg")>0){
char charBuf1[50];
char charBuf2[50];
//strcpy(msg,(char*)inString.substring(inString.indexOf("g")+2,inString.indexOf(" H")));
//Serial.print("msg: ");
Serial.println(msg);
}
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<html><header><style>input {height:45px; width:90px }</style></header><body><form method=get>");
client.println("<meta name=\"viewport\" content=\"width=device-width, user-scalable=no\"/>");
client.println("<meta http-equiv=\"refresh\" content=\"30; url=/\">");
client.println("<body bgcolor='#CDC9C9'>");
strcpy_P(buffer, (char*)pgm_read_word(&(string_table[0]))); // Necessary casts and dereferencing, just copy.
client.println( buffer );
for (int i = 1; i < 4; i++)
{
strcpy_P(buffer, (char*)pgm_read_word(&(string_table[i]))); // Necessary casts and dereferencing, just copy.
client.println( buffer );
switch(i){
case 1: strcpy_P(buffer, (char*)pgm_read_word(&(string_table[st1]))); client.println( buffer ); break;
case 2: strcpy_P(buffer, (char*)pgm_read_word(&(string_table[st2]))); client.println( buffer ); break;
}
delay(30);
}
/*if(digitalRead(8)==HIGH){
client.println("<br>Botao 1, ON");
}else{
client.println("<br>Botao 1, OFF");
}
if(digitalRead(9)==HIGH){
client.println("<br>Botao 2, ON");
}else{
client.println("<br>Botao 2, OFF");
}
*/
//strcpy_P(buffer, (char*)pgm_read_word(&(string_table[10]))); client.println( buffer );
break;
}
if (c == '\n') {
// we're starting a new line
current_line_is_blank = true;
} else if (c != '\r') {
// we've gotten a character on the current line
current_line_is_blank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
inString = "";
client.stop();
}
}
Tags:
pode criar uma pagina em php pra controlar esses leds.
Precisando de ajuda com php, pode entrar em contato, se quiser:
caique@hotmail.com
talves isto ajude, mas precisa usar a biblioteca dele
http://ten-fingers-and-a-brain.com/2012/01/webduino-now-with-suppor...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por