Differenze tra le versioni di "ArduinoYunNodejs"
(9 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 33: | Riga 37: | ||
Node.js è sviluppato con la modularità come feature principale. Per aggiungere moduli ha un packet manager: npm. | Node.js è sviluppato con la modularità come feature principale. Per aggiungere moduli ha un packet manager: npm. | ||
…. | …. | ||
+ | |||
+ | <pre> | ||
+ | opkg update | ||
+ | opkg install node | ||
+ | </pre> | ||
=== Hello world === | === Hello world === | ||
Riga 39: | Riga 48: | ||
<pre> | <pre> | ||
− | # node | + | root@Arduino:~# node |
> console.log('hello world'); | > console.log('hello world'); | ||
+ | hello world | ||
+ | > process.version | ||
+ | 'v0.10.28' | ||
+ | > process.versions.v8 | ||
+ | '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 48: | 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 54: | Riga 106: | ||
* [http://nodejs.org Node.js official page] | * [http://nodejs.org Node.js official page] | ||
− | [[Category: | + | [[Category:doc]] |
[[Category:tutorial]] | [[Category:tutorial]] | ||
− | [[Category: | + | [[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 $@
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