Paso 4: Modificar características para el control de luz
Modificar characteristic.js para realizar operación de GPIO utilizando el módulo mraa.
La inicialización característica debe definir e inicializar los pines GPIO. Tengo un relé conectado a mi setup en el pin digital de Arduino 3.
// 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);
La solicitud de escritura BLE leerá los datos BLE para una cadena. Si la cadena es igual a "1" encienda la luz. Que apague. Rápido y sucio.
// 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); };
No te olvides de requieren el módulo mraa el JS si te perdiste la lectura entre líneas. ;)