Differenze tra le versioni di "ArduinoYunNodejs"

Da WeMake Wiki.
Jump to navigation Jump to search
 
(7 versioni intermedie di 2 utenti non mostrate)
Riga 28: Riga 28:
  
 
Questo sketch compie varie operazioni…. (spiega)
 
Questo sketch compie varie operazioni…. (spiega)
 +
 +
=== Check ===
 +
 +
Per accertarsi che sia andato a buon fine eseguire i check (sia che l'immagine sia corretta sia df)
  
 
=== Installare node.js e npm ===
 
=== Installare node.js e npm ===
Riga 47: Riga 51:
 
> console.log('hello world');
 
> console.log('hello world');
 
hello world
 
hello world
undefined
 
 
> process.version
 
> process.version
 
'v0.10.28'
 
'v0.10.28'
Riga 53: Riga 56:
 
'3.14.5.10'
 
'3.14.5.10'
 
</pre>
 
</pre>
 +
 +
=== Installare i moduli principali ===
 +
 +
<pre>
 +
opkg update
 +
npm install express
 +
npm install body-parser
 +
npm install ejs
 +
opkg install sqlite3-cli
 +
npm install dblite
 +
</pre>
 +
 +
Ser installare express fallisce con un messaggio di poca memoria
 +
 +
<pre>
 +
FATAL ERROR: Evacuation Allocation failed - process out of memory
 +
</pre>
 +
 +
bisogna modificare il file /usr/bin/node
 +
 +
<pre>
 +
#!/bin/sh
 +
 +
#NODE_PATH=/usr/lib/node_modules /usr/bin/nodejs --stack_size=1024 --max_old_space_size=20 --max_new_space_size=2048 --max_executable_size=5 --gc_global --gc_interval=100 $@
 +
NODE_PATH=/usr/lib/node_modules /usr/bin/nodejs $@
 +
</pre>
 +
 +
[http://forum.arduino.cc/index.php?topic=193765.0 Arduino forum post]
  
 
=== Deployment ===
 
=== Deployment ===
Riga 59: Riga 90:
 
Una soluzione può essere utilizzare il proprio computer per programmare (con molte facilità, vedi nodemon), mettere il codice su un repository (per esempio git) e scaricarlo da wrt.
 
Una soluzione può essere utilizzare il proprio computer per programmare (con molte facilità, vedi nodemon), mettere il codice su un repository (per esempio git) e scaricarlo da wrt.
 
Sfortunatamente wrt deriva da OpenWRT e c'è qualche problema per l'autenticazione https e git. Una soluzione semplice è installare unzip e scaricare lo zip dei codici. Vedi [http://walkerlindley.wordpress.com/2014/03/12/arduino-yun-and-git/ Arduino Yun and Git]
 
Sfortunatamente wrt deriva da OpenWRT e c'è qualche problema per l'autenticazione https e git. Una soluzione semplice è installare unzip e scaricare lo zip dei codici. Vedi [http://walkerlindley.wordpress.com/2014/03/12/arduino-yun-and-git/ Arduino Yun and Git]
 +
 +
Per i repository privati su github si può utilizzare questo snippet:
 +
 +
<pre>
 +
curl -L -k --user "user:pass" https://github.com/WeMake-cc/AccessControlSystem/zipball/master > repo.zip
 +
</pre>
 +
 +
dove user:pass sono utente e password del proprio account di github
 +
 +
TODO: curl del zipball dei repo privati usando i github Token
  
 
=== References ===
 
=== References ===
Riga 65: Riga 106:
 
* [http://nodejs.org Node.js official page]
 
* [http://nodejs.org Node.js official page]
  
[[Category:arduino]]
+
[[Category:doc]]
 
[[Category:tutorial]]
 
[[Category:tutorial]]
[[Category:augmilano]]
+
[[Category:AugMilano]]
 +
[[Category: Arduino]]

Versione attuale delle 20:30, 14 feb 2016

Installare Node.js su Arduino Yun

Alcune istruzioni per installare Node.js su Arduino Yun

Materiale necessario

  • Arduino Yun
  • Cavo Micro-B USB
  • Micro SD card (>2 GB consigliato)
  • Arduino IDE versione >1.5.4
  • Una rete wirless funzionante connessa a internet

Arduino Yun and OpenWRT 101

il terminale, netstat e capire l'ip di wrt, ssh per collegarsi alla shell, opkg update, scp per copiare i file, etc (un tutorial separato?)

Cos'è nodejs

bla bla bla

Aggiornare all'ultima immagine

Il team di Arduino ha creato un comodo pacchetto per installare node.js senza dover compilare il codice. Per questo però dobbiamo aggiornare l'immagine del sistema operativo sulla macchina limino. Si veda Yun System Upgrade

Espandere la memoria

Node.js ha bisogno di una memoria aggiuntiva. Si può utilizzare la scheda sd card come memoria della macchina limino. Il team arduino ha creato uno sketch per farlo in maniera semplice. Si veda Expand Yun disk space.

Questo sketch compie varie operazioni…. (spiega)

Check

Per accertarsi che sia andato a buon fine eseguire i check (sia che l'immagine sia corretta sia df)

Installare node.js e npm

Node.js è sviluppato con la modularità come feature principale. Per aggiungere moduli ha un packet manager: npm. ….

opkg update
opkg install node

Hello world

Qualche test sulla console (magari un minimale benchmark?)

root@Arduino:~# node
> console.log('hello world');
hello world
> process.version
'v0.10.28'
> process.versions.v8
'3.14.5.10'

Installare i moduli principali

opkg update
npm install express
npm install body-parser
npm install ejs
opkg install sqlite3-cli
npm install dblite

Ser installare express fallisce con un messaggio di poca memoria

FATAL ERROR: Evacuation Allocation failed - process out of memory

bisogna modificare il file /usr/bin/node

#!/bin/sh

#NODE_PATH=/usr/lib/node_modules /usr/bin/nodejs --stack_size=1024 --max_old_space_size=20 --max_new_space_size=2048 --max_executable_size=5 --gc_global --gc_interval=100 $@
NODE_PATH=/usr/lib/node_modules /usr/bin/nodejs $@

Arduino forum post

Deployment

Entrando in ssh su wrt possiamo scrivere file con vi o nano. Ma per qualcuno può non essere l'ambiente di sviluppo più pratico. Una soluzione può essere utilizzare il proprio computer per programmare (con molte facilità, vedi nodemon), mettere il codice su un repository (per esempio git) e scaricarlo da wrt. Sfortunatamente wrt deriva da OpenWRT e c'è qualche problema per l'autenticazione https e git. Una soluzione semplice è installare unzip e scaricare lo zip dei codici. Vedi Arduino Yun and Git

Per i repository privati su github si può utilizzare questo snippet:

curl -L -k --user "user:pass" https://github.com/WeMake-cc/AccessControlSystem/zipball/master > repo.zip

dove user:pass sono utente e password del proprio account di github

TODO: curl del zipball dei repo privati usando i github Token

References