Offri al tuo progetto Arduino un proprio mini-server Web, con uno scudo Ethernet

Qualche tempo fa, ti ho mostrato come configurare un sistema di controllo internet per il tuo Arduino, ma doveva rimanere connesso a un computer tramite USB per mantenere la connessione Internet. Se si dispone di uno scudo Ethernet, non è necessario. Oggi vedremo come configurare un Arduino come server web di base in modo da poter ospitare il nostro sito Web di controllo del dispositivo.

Qualche tempo fa, ti ho mostrato come configurare un sistema di controllo internet per il tuo Arduino, ma doveva rimanere connesso a un computer tramite USB per mantenere la connessione Internet.  Se si dispone di uno scudo Ethernet, non è necessario. Oggi vedremo come configurare un Arduino come server web di base in modo da poter ospitare il nostro sito Web di controllo del dispositivo.
Annuncio pubblicitario

server web arduino Qualche tempo fa, ti ho mostrato come configurare un sistema di controllo internet per il tuo Arduino Come configurare Arduino Web Control senza uno scudo Ethernet Come configurare Arduino Web Control senza uno scudo Ethernet Nelle ultime settimane ho passato il controllo di l'illuminazione d'atmosfera nel mio studio per gli spettatori durante la trasmissione in diretta di Technophilia Podcast - puoi vedere i risultati di questo nel ... Leggi di più - ma doveva rimanere connesso a un computer tramite USB per mantenere la connessione internet. Se si dispone di uno scudo Ethernet, non è necessario. Oggi vedremo come configurare un Arduino come server web di base in modo da poter ospitare il nostro sito Web di controllo del dispositivo.

Avrai bisogno:

  • Un clone di Arduino o Arduino come descritto qui Non spendere soldi per un Arduino - Costruisci il tuo da molto meno Non spendere soldi per un Arduino - Costruisci il tuo da molto meno Amo i miei Arduino. Ad un certo punto, ho parecchi progetti in movimento - la prototipazione è così semplice con loro. Ma a volte, voglio mantenere il progetto funzionale senza comprare ... Per saperne di più
  • Ethernet Shield (~ $ 35): assicurati di avere una versione che corrisponda al tuo Arduino in quanto non sono tutti compatibili
  • Porta di ricambio sul router o sullo switch e cavo Ethernet
  • L'esempio WebServer fornito nell'applicazione Arduino

Impostare

Lo scudo Ethernet utilizza i pin da 10 a 13 per controllare la connessione di rete, quindi lascia fuori i tuoi progetti; il pin 4 è anche usato per la scheda SD, ma non lo useremo oggi.

Per prima cosa, apri File -> Esempi -> Ethernet -> WebServer fornito all'interno dell'IDE di Arduino. Trova le linee che si riferiscono all'indirizzo MAC e IP.

server web arduino

L'indirizzo MAC per il mio è stato trovato sulla scatola - il tuo potrebbe trovarsi sullo scudo stesso. Regola la prima riga di valori - devi comunque lasciare il bit 0x precedente. Dal punto di vista tecnico, non importa ciò che si mette qui fintanto che non si hanno valori in conflitto sulla sottorete - ma anche così, questo è stato l'indirizzo assegnato dal produttore, quindi dovremmo probabilmente attenerci a questo. Sappi solo che se ti sbagli, funzionerà ancora.

esempio di webserver arduino

Il prossimo è l'indirizzo IP. Vogliamo un indirizzo fisso specifico in modo che possiamo configurare correttamente il port forwarding - lo shield è in grado di ottenere un indirizzo da DHCP, ma è utile solo se verrà usato solo come client, non come server. Inserisci un indirizzo IP non utilizzato e memorizzabile sulla rete locale, l'IP del router e 255.255.255.0 (la subnet). Se tutto questo non ha senso per te, leggi la nostra guida gratuita e completa alla rete domestica Tutto ciò che c'è da sapere sulla rete domestica Tutto ciò che c'è da sapere sulla rete domestica La configurazione di una rete domestica non è così difficile come pensi che sia . Leggi di più .

Port forwarding

Modificare la riga che dice server EthernetServer (numero) e cambiare il numero in 8081 . Questo imposterà il nostro server in ascolto sulla porta 8081 nel caso in cui il tuo ISP stia bloccando il traffico web sulla porta tradizionale 80.

Carica la demo a questo punto e provalo da un computer locale. Ovviamente dovrai anche collegare il cavo Ethernet. Tieni anche l'USB collegato, poiché ne abbiamo bisogno per l'alimentazione - puoi sostituirlo con un alimentatore da 9V in seguito, ma stiamo ancora testando.

Noob-tip: se ottieni questo errore, significa che hai erroneamente inserito una O maiuscola invece di 0 nell'area dell'indirizzo MAC. Non c'è O nei valori esadecimali! Se sei veramente nuovo, potrebbe essere utile consultare la nostra guida Arduino per principianti!

esempio di webserver arduino

Per accedere ad Arduino, digitare l'indirizzo e il numero di porta direttamente da un browser.

esempio di webserver arduino

Dovresti vedere qualcosa del genere - fin qui tutto bene. Sfortunatamente, questo è accessibile solo sulla rete locale in questo momento, quindi vai nella pagina di configurazione della porta del tuo router per impostare un reindirizzamento dalla porta 8081 alla stessa porta sull'IP di Arduino ( Vedi: Cos'è il port forwarding? Come posso aiutarmi? [MakeUseOf Explains] Che cos'è il port forwarding e come può aiutarmi? [MakeUseOf Explains] Piangi un po 'dentro quando qualcuno ti dice che c'è un problema di port forwarding ed è per questo che la tua nuova brillante app ha vinto " funziona? La tua Xbox non ti permetterà di giocare, i tuoi download torrent rifiutano ... Continua a leggere )

tutorial sul web server arduino

Prova questo fuori da un dispositivo Internet 3G mobile con Wifi disabilitato; ricorda di usare il tuo indirizzo IP pubblico, non il tuo indirizzo di rete locale. Il tuo router dovrebbe essere in grado di dirti questo, o semplicemente chiedere a Google "qual è il mio IP".

server web arduino

Capire l'output

La pagina che viene mostrata nella demo sta leggendo i valori dei pin analogici, ma dal momento che non c'è nulla di connesso, si otterranno assurdità. Prova a collegare un sensore di luce (fotoresistenza) alla porta A0 e + 5v, con una resistenza da 10k anche su A0 e gnd (questo è un partitore di tensione, poiché i pin analogici possono solo leggere la tensione e non la resistenza) solo per confermare il server sta effettivamente leggendo i valori. Si noti che quando l'intensità della luce cambia, anche i valori sugli altri pin cambiano effettivamente - questo perché sono tutti non connessi.

Ottenere interattivo

Leggere questi valori va bene, ma fare il salto al controllo di un Arduino da qui è un bel passo avanti e al di fuori dello scopo di questo tutorial oggi. Invece di reinventare la ruota, ti indicherò verso l'utente del forum Arduino che ha scritto un'API di base per interagire con i pin digitali. Usando questo codice (l'ho modificato per funzionare con l'ultima libreria Ethernet), collegare il cavo lungo di un LED (anodo) al pin 8 e il cavo corto al pin 7 (con un resistore adatto). È quindi possibile utilizzare gli URL del modulo http: // ip: port / digitalWrite / 8/1 per accendere il LED e http: // ip: port / digitalWrite / 8/0 per disattivarlo e leggere i valori analogici con analogRead / 0 .

Questo esempio di Bildr ti insegnerà anche come controllare una sequenza di LED leggendo la richiesta GET.

Potresti anche voler controllare questo esempio che emette un modulo sulla pagina per controllare un LED RGB lampeggiante, anche se potresti facilmente adattarlo per una striscia RGB come il progetto di illuminazione ambientale dinamica. Costruisci la tua illuminazione dinamica dinamica per un centro multimediale La tua illuminazione ambientale dinamica per un centro multimediale Se guardi un sacco di film sul tuo PC o sul tuo media center, sono sicuro che hai affrontato il dilemma dell'illuminazione; spegni completamente tutte le luci? Li tieni in piena esplosione? O ... Per saperne di più abbiamo costruito un po 'di tempo fa.

Beh, mi sono divertito a costruirle, quindi spero che l'abbiate fatto anche voi. Se hai creato una libreria che semplifica la pubblicazione di pagine e controlli, ti preghiamo di metterti in contatto con i commenti.

In this article