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 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 hai 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 dei dispositivi.
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 pin 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, aprite il File->Esempi->Ethernet->Server web questo è fornito all'interno dell'IDE di Arduino. Trova le linee che si riferiscono all'indirizzo MAC e IP.
L'indirizzo MAC per il mio è stato trovato sulla scatola - il tuo potrebbe trovarsi sullo scudo stesso. Regola la prima riga di valori - devi lasciare il precedente 0x un po 'però. Dal punto di vista tecnico, non importa ciò che si mette qui fintanto che non si hanno valori contrastanti 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.
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
Modifica la riga che dice Server EthernetServer (numero), e cambia 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 messo un capitale O invece di a 0 nell'area degli indirizzi MAC. Non c'è O nei valori esadecimali! Se sei veramente nuovo, potrebbe essere utile consultare la nostra guida Arduino per principianti!
Per accedere ad Arduino, digitare l'indirizzo e il numero di porta direttamente da un browser.
Dovresti vedere qualcosa del genere - fin qui tutto bene. Sfortunatamente, questo è accessibile solo su rete locale in questo momento, quindi vai nella pagina di configurazione della porta del tuo router per configurare un reindirizzamento dalla porta 8081 alla stessa porta sull'IP di Arduino (Vedi: Cos'è il port forwarding? Che cos'è il port forwarding e come può 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 app non funzionerà? La tua Xbox non ti permetterà di giocare, i tuoi download torrent rifiutano ... Leggi altro )
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“.
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 (resistenza foto) alla porta A0 e +5v, con un Resistenza 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 tutto bene, ma fare il salto controllo un Arduino da qui è un bel salto, 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.
Scopri di più su: Arduino, Web Server.