Seguimi su Youtubue
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Google AdSense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
I postatori più attivi del mese
Poderak
 
Ilfalco78
 
Lorenzo lollo
 

Codice - Accendere/Spegnere led in remoto con Arduino Ethernet Shield

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Codice - Accendere/Spegnere led in remoto con Arduino Ethernet Shield

Messaggio Da Poderak il Gio Giu 16, 2016 10:35 am


In questo progetto andremo a vedere il funzionamento della Ethernet Shield. In pratica accendere un LED con l'uso di una semplice web app. Il codice utilizzato è il seguente:

Codice:
#include <Ethernet.h> //libreria ethernet
#include <SPI.h> //collabora con la libreria ethernet
#include <String.h> //gestione stringhe

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //indirisso fisico
byte ip[] = {192, 168, 1, 177}; //indirizzo ip locale
byte subnet[] = {255, 255, 255, 0}; //indirizzo subnet
byte gateway[] = {192, 168, 1, 1}; //indirizzo gateway
EthernetServer server(80); //imposto porta protocollo HTTP

int led = 7; //dichiarazione led
String ascoltatore; //dichiarazione stringa

void setup() {
  Ethernet.begin(mac, ip, gateway, subnet); //inizializzazione impostazioni
  pinMode(led, OUTPUT); //impostazione led come output
  ascoltatore=""; //inizializzazione stringa
}

void loop() {
  EthernetClient client = server.available(); //attendo l'arrivo di un client
  
  if (client) { //se c'è il cliente deve..
    
    while(client.connected()) {
      if(client.available()) {
        char c = client.read(); //..leggere i caratteri che invia
        ascoltatore.concat(c); //concatena i caratteri del client
        
        if (c == '\n') { //se arrivo a fine riga
           if(ascoltatore.indexOf("led=1")>0) { //controllo che nell'url ci sia led=1
            digitalWrite(led, HIGH); //se c'è accendo il led
           }
           else {
            digitalWrite(led, LOW); //altrimenti spengo il led
           }
        client.println("HTTP/1.1 200 OK"); //dico al client che è tutt'ok - standard http
        client.println("Content-Type: text/html"); //indico il formato - standard http
        client.println(); //necessario per non buggare
        client.println("<html>"); //inizio codice html
        client.println("<head><title>Accendi/Spegni led</title> <link rel='shortcut icon' type='image/x-icon' href='http://i44.servimg.com/u/f44/16/84/89/65/23570310.png' /></head>");
        client.println("<body><a href='/?led=1'>Accendi</a> - <a href='/?led=0'>Spegni</a></body");
        client.println("</html>"); //fine codice html
        client.stop(); //stop richieste dal client
        ascoltatore="";
        }
      }
    }
  }
}
avatar
Poderak
♔ Amministratore

Messaggi Messaggi : 4147
Crediti Crediti : 11648
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

Vedere il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Re: Codice - Accendere/Spegnere led in remoto con Arduino Ethernet Shield

Messaggio Da Poderak il Sab Nov 05, 2016 2:56 pm

Aggiornamento: Il codice non era esattamente come quello nel video. Mi ero dimenticato una riga di codice. Adesso l'ho aggiornato e dovrebbe funzionare Ciao!
avatar
Poderak
♔ Amministratore

Messaggi Messaggi : 4147
Crediti Crediti : 11648
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

Vedere il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto


 
Permesso di questo forum:
Non puoi rispondere agli argomenti in questo forum