console.log("Hodor") console.log(process.version) // var GrovePi = require('../libs').GrovePi var GrovePi = require('node-grovepi').GrovePi var Commands = GrovePi.commands var Board = GrovePi.board var AirQualityAnalogSensor = GrovePi.sensors.AirQualityAnalog var DHTDigitalSensor = GrovePi.sensors.DHTDigital var AnalogSensor = GrovePi.sensors.base.Analog var SPDTRelay = GrovePi.sensors.SPDTRelay var board function start() { console.log('starting') board = new Board({ debug: true, onError: function(err) { console.log('TEST ERROR') console.log(err) }, onInit: function(res) { if (res) { var soilAnalogSensor = new AnalogSensor(0) // Analog Port 0 var airQualitySensor = new AirQualityAnalogSensor(1) // Analog Port 1 var dhtSensor1 = new DHTDigitalSensor(6, DHTDigitalSensor.VERSION.DHT22, DHTDigitalSensor.CELSIUS) var dhtSensor2 = new DHTDigitalSensor(7, DHTDigitalSensor.VERSION.DHT22, DHTDigitalSensor.CELSIUS) var dhtSensor3 = new DHTDigitalSensor(8, DHTDigitalSensor.VERSION.DHT22, DHTDigitalSensor.CELSIUS) // Digital Port 3 // var lightSensor = new LightAnalogSensor(2) // Analog Port 2 var SPDTRelayD2 = new SPDTRelay(2) var SPDTRelayD3 = new SPDTRelay(3) var SPDTRelayD4 = new SPDTRelay(4) SPDTRelayD2.write(0) console.log('GrovePi Version :: ' + board.version()) // SPDTRelayD4 // console.log('SPDTRelayD4 Sensor (start watch)') // SPDTRelayD4.on('change', function(res) { // console.log('SPDTRelayD4 onChange value=' + res) // }) // SPDTRelayD4.watch() // Air Quality Sensor console.log('AirQuality Analog Sensor (start watch)') airQualitySensor.on('change', function(res) { console.log('AirQuality onChange value=' + res) }) airQualitySensor.watch(10000) // Soil Analog Sensor console.log('Soil Analog Sensor (start watch)') soilAnalogSensor.on('change', function(res) { console.log('Soil onChange value=' + res) }) soilAnalogSensor.watch(10000) // DHT Sensor console.log('DHT1 Digital Sensor (start watch)') dhtSensor1.on('change', function(res) { console.log('DHT1 onChange value=' + res) if (SPDTRelayD2.read()) { SPDTRelayD2.write(false) } else { SPDTRelayD2.write(true) } }) dhtSensor1.watch(500) // milliseconds console.log('DHT2 Digital Sensor (start watch)') dhtSensor2.on('change', function(res) { console.log('DHT2 onChange value=' + res) if (SPDTRelayD3.read()) { SPDTRelayD3.write(false) } else { SPDTRelayD3.write(true) } }) dhtSensor2.watch(500) // milliseconds console.log('DHT1 Digital Sensor (start watch)') dhtSensor3.on('change', function(res) { console.log('DHT3 onChange value=' + res) if (SPDTRelayD4.read()) { SPDTRelayD4.write(false) } else { SPDTRelayD4.write(true) } }) dhtSensor3.watch(500) // milliseconds // // Light Sensor // console.log('Light Analog Sensor (start watch)') // lightSensor.on('change', function(res) { // console.log('Light onChange value=' + res) // }) // lightSensor.watch() // Custom external reading // console.log('Custom external reading') // console.log('customAccelerationReading()::' + customAccelerationReading()) } else { console.log('TEST CANNOT START') } } }) board.init() } function customAccelerationReading() { var write = board.writeBytes(Commands.acc_xyz.concat([Commands.unused, Commands.unused, Commands.unused])) if (write) { board.wait(100) board.readByte() var bytes = board.readBytes() if (bytes instanceof Buffer) { var x = bytes[1] > 32 ? -(bytes[1]-224) : bytes[1] var y = bytes[2] > 32 ? -(bytes[2]-224) : bytes[2] var z = bytes[3] > 32 ? -(bytes[3]-224) : bytes[3] return [x, y, z] } else { return false } } else { return false } } function onExit(err) { console.log('ending') board.close() process.removeAllListeners() process.exit() if (typeof err != 'undefined') console.log(err) } // starts the test start() // catches ctrl+c event // process.on('SIGINT', onExit)