Stap 4: Karakteristiek voor licht controle wijzigen
Wijzig characteristic.js als GPIO bewerking met behulp van de module mraa wilt uitvoeren.
De karakteristieke initialisatie moet definiëren en initialiseren van de GPIO pinnen. Ik heb een relais op mijn setup op de Arduino digitale pin 3 aangesloten.
// Initialize BLE Characteristic var FirstCharacteristic = function() { FirstCharacteristic.super_.call(this, { uuid: 'fc0f', properties: ['read', 'write', 'notify'], value: null }); this._value = new Buffer("0", "utf-8"); console.log("Characterisitic's value: "+this._value); this._light = new mraa.Gpio(3); this._light.dir(mraa.DIR_OUT); this._light.write(0); this._updateValueCallback = null; } util.inherits(FirstCharacteristic, BlenoCharacteristic);
De schrijfaanvraag BLE leest de BLE-gegevens naar een string. Als de tekenreeks op "1 neerkomt" weer we het licht op. Anders uitschakelen we. Snelle en vuile.
// BLE write request FirstCharacteristic.prototype.onWriteRequest = function(data, offset, withoutResponse, callback) { this._value = data; if (data == "1") { this._light.write(1); } else { this._light.write(0); } console.log('FirstCharacteristic - onWriteRequest: value = ' + this._value.toString("utf-8")); if (this._updateValueCallback) { console.log('FirstCharacteristic - onWriteRequest: notifying'); this._updateValueCallback(this._value); } callback(this.RESULT_SUCCESS); };
Vergeet niet te verplichten de mraa module in de JS als je het gemist lezen tussen de regels. ;)