Bom dia galera,

Mais uma vez venho pedir uma ajuda ao grupo... Estou realizando um projeto com sensor biométrico embarcado no arduino.

Toda a parte de operação e tratamento de erros estão funcionando normalmente, a segunda etapa do projeto é no próprio arduino, rodar um WebServer (no SD Card) para mostrar algumas informações de logs e sobre o próprio Arduino.

Qual a dificuldade? Deixar o Ethernet Shield (W5100) rodando em tempo real (via Browser) enquanto um usuário cadastro uma nova digital por exemplo.

No loop principal tenho o seguinte sketch:

void loop() // loop
{

count = 0;
idcount = 0;

PARTE DO ETHERNET SHIELD DEVERIA RODAR AQUI.

lcd.clear();
lcd.setCursor(1,0);
lcd.println("BioMult Access ");

while (1){   //Mantém uma mensagem no display LCD (como data e hora e nome do //projeto. Se remover o While, o LCD fica piscando loucamente

lcd.setCursor(4,1);
lcd.print(rtc.getTimeStr());

val = digitalRead(sensorir); //variavel que lê o IR e habilita o Sensor de Impressão Digital
customKey = customKeypad.getKey();

if (val == HIGH){ //lógica para atuar IR

lcd.clear();

verify();
}
else if(customKey == '*'){

value = 0;
estado = true;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Digite o ID: ");

while(count < 3)
{

customKey = customKeypad.getKey();

if(customKey >= '0' && customKey <= '9') {
value = value * 10 + customKey - '0';

lcd.setCursor(12,0);
lcd.print(value);
delay(200);
idcount += 1;
}
if(customKey == '*'){
lcd.clear();
lcd.print("Digite o ID: ");
value = 0;
}

if((customKey == '#') || (idcount == 3)){
if(value < 254){ //limita até 253 o numero de usuários, devido a eeprom
id = value;
enroll();
value = 0;
}

if(value > 254){
lcd.clear();
lcd.print(" **NUMERO** ");
lcd.setCursor(0,1);
lcd.print(" ***INVALIDO*** ");
delay(3000);
loop();
}
}
}
}

else if(customKey == 'D'){
value = 0;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Excluir ID: ");

while(customKey = 2){
customKey = customKeypad.getKey();

if(customKey >= '0' && customKey <= '9') {
value = value * 10 + customKey - '0';

lcd.setCursor(12,0);
lcd.print(value);
delay(200);
}

if(customKey == '#'){

if(value == (pin = EEPROM.read(value))){
id = value;
deletar();
}

else if(value != (pin = EEPROM.read(value))){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ****ERRO**** ");
lcd.setCursor(0,1);
lcd.print(" ***EEPROM*** ");
delay(3000);
loop();
}
}
if(customKey == '*'){
lcd.clear();
lcd.print("Excluir ID: ");
value = 0;
}

}
}
}

}

Desde já eu agradeço a ajuda!

Obrigado!

Exibições: 194

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço