ArduinoYunNodejs

Da WeMake Wiki.
Jump to navigation Jump to search

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