Dopo aver visto nell’articolo precedente come leggere la temperatura ed umidità dal sensore DHT11 in python
Lettura temperatura ed umidità in python
eseguiamo la stessa operazione in javascript. Scarichiamo il modulo dht per node.js. Il modulo è disponibile sul sito
Colleghiamoci sul Beaglebone in ssh come debian (temppwd come password di default) ed eseguiamo il comando
1 2 3 4 |
sudo npm install -g mocha sudo npm install -g chai sudo npm install -g beaglebone-dht@0.0.3 sudo npm install -g beaglebone-dht --save |
per installare il modulo globalmente.
Per la lettura del sensore creare un file test.js con il seguente codice all’interno
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
var dht = require('/usr/local/lib/node_modules/beaglebone-dht'), sensor = dht.sensor('DHT11'); var i=0; do { read=dht.read('P8_11'); try { valore=read['humidity']; if(valore<=100.00&&valore>=0.0) { console.log(read); break; } } catch(err) { console.log("Error in sensor reading!"); } sleep(2000); } while (i<15) function sleep(milliseconds) { var start = new Date().getTime(); for (var i = 0; i < 1e7; i++) { if ((new Date().getTime() - start) > milliseconds){ break; } } } |
La lettura viene eseguita con il comando
1 |
sudo node test.js |
Il risultato nel nostro caso è il seguente
Lo stesso codice può essere eseguito dall’IDE Cloud9. Accedere all’ide Cloud9 sul Beaglebone con il link http://beaglebone.local:3000 e creare un file dht.js con il seguente codice all’interno
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
var b = require('bonescript'); var dht = require('/usr/local/lib/node_modules/beaglebone-dht'), sensor = dht.sensor('DHT11'); var i=0; do { read=dht.read('P8_11'); try { valore=read['humidity']; if(valore<=100.00&&valore>=0.0) { console.log(read); break; } } catch(err) { console.log("Error in sensor reading!"); } sleep(2000); } while (i<15) function sleep(milliseconds) { var start = new Date().getTime(); for (var i = 0; i < 1e7; i++) { if ((new Date().getTime() - start) > milliseconds){ break; } } } |
L’esecuzione dello script dà il seguente risultato
Di seguito il link per scaricare il due file di esempio