Come posso usare Arduino e node.js?


9

Sono nuovo di Arduino, tuttavia ho esperienza nello sviluppo web, ultimamente ho usato meteor js e lo stack medio per diversi progetti. Tuttavia, sono aperto a provare qualsiasi lingua per lo sviluppo.

Quello che sto cercando di fare è costruire una semplice applicazione per controllare il LED su Arduino sul web.

Sto lavorando con un'altra persona e Arduino sarà protetto da un firewall, quindi non sono sicuro di come accedervi via Internet. Ho accesso a un Arduino Uun che posso usare per i test a casa che ha linio collegato tramite bridge, che non capisco bene cosa faccia.

Ho anche sentito parlare di questo , ma vorrei stare lontano da terzi si basa il più possibile se posso farlo io stesso.

Qual è il modo comune per farlo con un Arduino dietro un firewall? Come posso farlo con un Arduino Yun? È più facile con uno Yun?

Risposte:


9

Sto lavorando a un progetto simile che utilizza Internet per comunicare con un dispositivo esterno (mobile). Sto leggendo i dati dai sensori e li sto passando sul web con socket web. Sto usando Arduino Yun per questo progetto e Spacebrew (per la comunicazione tramite web socket). È un approccio molto interessante ma in alcuni casi rappresenta una vera sfida. Probabilmente ti imbatterai in un problema asincrono / sincrono, che nel mio caso mi porta a eseguire alcuni script Python su Yun innescati dal codice di elaborazione. Attualmente sto eseguendo il server Spacebrew sulla mia VPN, quindi posso connettere il mio Yun lasciato a casa e usare il mio iPhone ovunque per ottenere le letture.

Vale anche la pena ricordare che Yun viene fornito con la libreria Temboo preinstallata, che è un ottimo punto di partenza per la comunicazione web. La configurazione è davvero semplice e veloce. Troverai anche la documentazione ufficiale molto utile e di facile comprensione. È davvero un ottimo punto di partenza per sperimentare applicazioni simili al Web integrate con Arduino Yun.

Spacebrew

  • http://docs.spacebrew.cc/

    Spacebrew è un toolkit software aperto e reindirizzabile dinamicamente per coreografare spazi interattivi. O, in altre parole, un modo semplice per collegare tra loro cose interattive. Ogni elemento collegato al sistema può iscriversi e pubblicare feed di dati.

  • http://github.com/Spacebrew/pySpacebrew

    Questo repository contiene la libreria Spacebrew per Python insieme alla documentazione e alle app di esempio.

  • http://github.com/julioterra/yunSpacebrew

    La libreria Spacebrew Yun presenta due componenti principali: un set di script Python eseguiti sul linino e una libreria eseguita sul chip atmel. Troverai informazioni su come installare entrambi questi componenti in modo da poterti connettere a Spacebrew da uno schizzo di Arduino.

Temboo

Yun ha anche costruito nella libreria Temboo, è un ottimo modo per iniziare a sperimentare, una volta dimostrato il concetto puoi iniziare a restringere il tuo ambiente e allontanarti se non vuoi usare software di terze parti.

  • http://www.temboo.com/arduino

    La libreria Temboo semplifica la connessione a oltre 100 risorse e servizi basati sul Web con Processing. Attualmente puoi trovare librerie per Android, Arduino, iOS, Java, Node.js, PHP, Processing, Python, API REST, Ruby, Twyla

Node.js

Puoi anche eseguire node.js sullo stesso Yun, ecco un buon articolo e alcuni pacchetti pronti per l'installazione:

Cos'è la libreria Bridge per Arduino Yun?

Hai anche chiesto della biblioteca di Bridge. Come sai Yun ha due processori a bordo, uno sta eseguendo il tuo codice di elaborazione, l'altro ha Linux su di esso (Linino). Bridge semplifica sostanzialmente la comunicazione tra loro in modo che possano "parlare" tra loro, maggiori informazioni qui:

  • http://arduino.cc/en/Reference/YunBridgeLibrary

    (Tratto dalla documentazione di arduino.cc :)

    Arduino Yún ha due processori a bordo. Uno è un ATmega32U4 come sull'Arduino Leonardo. L'altro è un Atheros 9331, che esegue Linux e lo stack wireless OpenWRT, che consente alla scheda di connettersi alle reti WiFi ed Ethernet. È possibile chiamare programmi o script personalizzati sul sistema Linux tramite Arduino per connettersi con vari servizi Internet.

    La libreria Bridge semplifica la comunicazione tra ATmega32U4 e AR9331. Eredita da Stream e molti dei metodi dovrebbero avere familiarità con Serial e altri derivati ​​di Stream.

    I comandi Bridge dalla 32U4 sono interpretati da Python sull'AR9331. Il suo ruolo è quello di eseguire programmi sul lato GNU / Linux quando richiesto da Arduino, fornire uno spazio di archiviazione condiviso per condividere dati come letture dei sensori tra Arduino e Internet e ricevere comandi da Internet e passarli direttamente ad Arduino.

    Bridge consente la comunicazione in entrambe le direzioni, fungendo da interfaccia con la riga di comando di Linino.

Dove iniziare?

Vorrei iniziare con Temboo se fossi in te, è una grande curva di apprendimento e un passaggio abbastanza semplice per iniziare. Imparerai anche e capirai come funziona la lavagna e come puoi comunicare con il "mondo esterno". Una volta che hai la prova del concetto, inizia a sperimentare diverse librerie e a migliorare l'approccio. Forse troverai Spacebrew più utile in seguito o addirittura scoprirai diverse soluzioni.


Benvenuto in Arduino Stack Exchange! Potete per favore aggiungere maggiori dettagli alla vostra risposta? Le risposte che sono tutti o principalmente collegamenti non sono accettabili su Stack Exchange perché la risposta è inutile se il sito non funziona. I collegamenti alle biblioteche vanno bene, poiché la biblioteca è inutile se il sito non funziona; articoli e tutorial dovrebbero essere parafrasati. Forse basta citare alcune frasi e aggiungere qualche codice di esempio? Grazie!
Pinguino anonimo

1

prima di tutto devi avere chiaro cosa devi fare. Arduino UNO è solo un microcontrollore con una connessione seriale (tramite USB). Per rendere il tuo arduino accessibile da Internet, deve essere collegato a Internet o avere qualcosa che si comporti come un ponte. Puoi usare uno scudo ethernet, un wifi shiled, o una strega YUN è un arduino UNO + un micro linux con ethernet e wifi (programmabile in phyton, oppure il chip può comandare il comando di invio linux a bash shell usando la libreria bridge speciale ) Puoi persino connettere arduin sul PC tramite USB e creare un programma bridge oppure, se il tuo firewall / router è un linux / simile sbloccato, puoi usarlo.

Quante opzioni, e iniziamo l'evento per decidere come parlare con esso. Come vuoi usare node.sj, puoi usare socket o get / post. L'uso di socket è più veloce, più leggero e può creare una connessione pull e js sarà un requisito. Con get / post non hai nemmeno bisogno di js, lo farà il modulo HTML puro.

quindi, dopo aver deciso il sistema stregato che ti piace (arduino come server http o socket normale) puoi aprire la porta corrispondente sul firewall / nat. ma è solo l'ultima parte


Ho uno yun quindi lo userò. Mi sono collegato allo yun tramite wifi e ssh. Come posso configurare il server Linux e come posso aprire una porta?
Anders Kitson,

guarda il tutorial ufficiale, altready ha un server webv, devi solo aggiungere la tua pagina :) scuola.arduino.cc/lesson/b4EoRkV/…
Lesto
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.