Non ho mai usato la connessione a qualche server, ma ci sono diverse cose strane:
if (client.connected()) {
char c = client.read();
Serial.print(c);
}
Qui leggi un carattere e lo stampi sul monitor seriale... A cosa ti serve quel carattere?
if (client.find('permesso')) {
client.find(':');
client.find('ok');
ok = client.parseInt();
Serial.print("permesso");
Serial.println(ok);
Qui controlli la stringa "permesso" (che credo vada tra doppi apici) nell'if.
Poi controlli ":" e "ok"... ma cosa dovrebbero fare queste 2 istruzioni?
Poi alla variabile ok assegni un intero... cosa ti aspetti dalla parseInt()?
In ogni caso, questo è sicuramente un errore:
if (ok == ok) {
Confronti la variabile con sè stessa, quindi quell'if sarà sempre vera...