#Installazione Node-Red su RoadRunner <abstract> Appunti installazione Node-RED su scheda RoadRunner Acme Systems </abstract> ### Testato su Debian Jessie Kernel 4.9.109-linux4sam_5.8++ ### Installazione eseguita come utente root <pre class="terminal"> apt-get install curl apt-get install ntpdate apt-get install sqlite apt-get install npm curl -sL https://deb.nodesource.com/setup_8.x | sudo bash - apt-get install -y nodejs curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list apt-get update && apt-get install yarn npm install -g --unsafe-perm node-red </pre> Ora da terminale lanciare il comando: <pre class="terminal"> node-red </pre> Dopo l'avvio CTRL+C - Verrà creata la directory dentro /root/.node-red. Ora dobbiamo creare un servizio per avviare Node Red automaticamente al boot della scheda: <pre class="terminal"> nano /lib/systemd/system/node-red.service </pre> Inserire al suo interno: <pre class="terminal"> [Unit] Description=Node-RED After=syslog.target network.target [Service] ExecStart=/usr/bin/node-red WorkingDirectory=/root User=root Group=root Nice=10 SyslogIdentifier=Node-RED StandardOutput=syslog Restart=on-failure # Node-RED need a SIGINT to be notified to stop KillSignal=SIGINT [Install] WantedBy=multi-user.target </pre> Aggiornare i servizi: <pre class="terminal"> systemctl daemon-reload systemctl enable node-red systemctl start node-red </pre> Controllare la partenza del servizio Node Red <pre class="terminal"> systemctl start node-red </pre> Eseguire un reboot e controllare l'avvio automatico di Node Red.<br><br> Ora andiamo nella directory .node-red ed installiamo il pacchetto per gestire l'accesso con il browser in Node Red con utente e password.<br> L'indirizzo è http://IP_RoadRunner:1880 <pre class="terminal"> npm install -g node-red-admin </pre> Esguire il comando per impostare utente e password di accesso <pre class="terminal"> node-red-admin hash-pw </pre> <font color="blue"> Password: acmesystems<br> Risultato: $2a$08$cdAk7WZqMq6Yu0Bh5U4LoeaVjv8GM.k5drbvjO8jyVkwxPo8RSvZi </font> Inserire utente e password dentro il file .node-red/settings.js <pre class="terminal"> module.exports = { adminAuth: { type: "credentials", users: [{ username: "acme", password: "$2a$08$cdAk7WZqMq6Yu0Bh5U4LoeaVjv8GM.k5drbvjO8jyVkwxPo8RSvZi", permissions: "*" }] }, </pre> Riavviare il servizio: <pre class="terminal"> systemctl restart node-red.service </pre> L'indirizzo per accedere a Node Red è http://IP_RoadRunner:1880<br><br> Installiamo il necessario per vedere le porte seriali: <pre class="terminal"> apt-get install python-pip pip install pyserial </pre> Verifichiamo ora con il comando: <pre class="terminal"> python -m serial.tools.list_ports </pre> Esempio di risultato ottenuto:<br> /dev/ttyAMA0 /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3 /dev/ttyUSB4 /dev/ttyUSB5 7 ports found Ora installare i pacchetti in node red all'indirizzo http://indirizzo_ip_scheda:1880 <div class="alert alert-warning"> <strong>Attenzione !</strong><br> <font color="red"> Installare i pacchetti controllando con htop oppure top, attraverso il browser non si vede il termine dell'avvenuta installazione del pacchetto. </font> </div> Elenco pacchetti <pre class="terminal"> node-red-contrib-config # Configurazione variabili flusso e globali node-red-contrib-contextbrowser # Visualizza variabili flusso e globali node-red-contrib-cron # Scheduler come cronjob Linux node-red-contrib-file-function # Lettura e scrittura file node-red-contrib-file-upload # Upload node-red-contrib-modbus # TCP / Modbus node-red-contrib-mqtt-broker # MQTT Broker node-red-contrib-pythonshell # Utilizzo con script python node-red-contrib-splitter # Funzioni stringhe node-red-contrib-string # Funzioni stringhe node-red-dashboard # Web Page Node Red node-red-node-rbe # Report by Exception node - only passes on data if the payload has changed node-red-contrib-roadrunner # I/O scheda Roadrunner node-red-node-serialport # Comunicazione porte seriali node-red-contrib-influxdb # Database per utilizzo Grafana node-red-contrib-serialport-rs485 # Comunicazioni RS 485 node-red-contrib-md5 # Hashing MD5 node-red-node-mysql # Connect to MySQL server </pre> Altri pacchetti interessanti <pre> node-red-contrib-light-scheduler # Cron con schedulazione grafica node-red-node-snmp # SNMP Protocol node-red-contrib-dht-sensor # Sensori temperatura umidità DHT11 e DHT22 node-red-contrib-sensor-ds18b20 # Sensori temperatura node-red-piervin-sensor-wired # Comunicazione Wired node-red-contrib-i2c # Comunicazione 12c </pre> <pre class="terminal"> node-red-contrib-lcd20x4-i2c # LCD su i2c 20X4 Questo pacchetto richiede: sudo apt-get install python-smbus sudo raspi-config Interfacing Options>I2C>Enable </pre> Se il nodo node-red-node-sqlite dovesse presentare problemi d'installazione eseguire in sequenza: <pre class="terminal"> npm install node-gyp -g node-gyp npm install sqlite3 npm outdated npm update apt-get install libsqlite3-dev npm install sqlite3 --build-from-source --sqlite=/usr npm audit fix </pre> Installare node-red-node-sqlite direttamente da console per problemi Fermare prima il servizio: <pre class="terminal"> systemctl stop node-red.service cd .node-red npm i --unsafe-perm node-red-node-sqlite npm uninstall sqlite3 npm install --save sqlite3 npm rebuild npm audit fix </pre> Altri pacchetti installati da http://IP_roadrunner:1880 <pre class="terminal"> node-red-contrib-roadrunner reboot </pre> ### In Node Red è possibile installare i paccheti anche da linea di comando come di seguito descritto: <pre class="terminal"> cd .node-red npm install node-red-contrib-config npm install node-red-contrib-contextbrowser npm install node-red-contrib-cron npm install node-red-contrib-file-function npm install node-red-contrib-file-upload npm install node-red-contrib-modbus npm install node-red-contrib-mqtt-broker npm install node-red-contrib-pythonshell npm install node-red-contrib-splitter npm install node-red-contrib-string npm install node-red-dashboard npm install node-red-node-rbe npm install node-red-contrib-roadrunner npm install node-red-node-serialport npm install node-red-contrib-influxdb npm install node-red-contrib-serialport-rs485 npm install node-red-contrib-md5 npm install node-red-node-mysql </pre> Durante il processo d'installazione può esere richiesto di lanciare il comando: <b>npm audit fix</b><br> Al termine dell'installazione dei pacchetti lanciare il comando : <b>systemctl restart nodered.service</b> Alla pagina http://IP_roadrunner:1880/ui sono visibili i vari Dashboard creati. ## Links * Appunti installazione Node Red su RoadRunner di Sergio Tanzilli <https://www.acmesystems.it/node-red> * RoadRunner - System On Module <https://www.acmesystems.it/roadrunner> * Berta D2 - Evaluation board for RoadRunner SoM <https://www.acmesystems.it/roadrunner_devkit> * Documentazione Node Red <https://nodered.org/> * Flows <https://flows.nodered.org> @include='bio_mauro_tocci'
2018 Ⓒ TanzoLab