Étape 4: Modifier les caractéristiques de la commande d’éclairage
Modifiez characteristic.js pour effectuer l’opération GPIO en utilisant le module mraa.
L’initialisation caractéristique doit définir et initialiser les broches GPIO. J’ai un relais connecté à mon installation sur la broche numérique 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 demande d’écriture BLE lit les données BLE pour une chaîne. Si la chaîne correspond à « 1 » nous allumer la lumière. Sinon nous éteindre. Rapide et sale.
// 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); };
N’oubliez pas d’exiger le module mraa dans le JS, si vous avez manqué de lire entre les lignes. ;)