首頁(yè) > 評(píng)測(cè) > 使用BLE來(lái)控制RPI3

使用BLE來(lái)控制RPI3

  • 作者:SATURN
  • 來(lái)源:21ic
  • [導(dǎo)讀]
  • 可穿戴設(shè)備大多都是通過(guò)藍(lán)牙來(lái)進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)設(shè)備間的數(shù)據(jù)交換。與Bluetooth Classic相比較而言,BLE的低功耗特性對(duì)于可穿戴設(shè)備而言,在電池消耗上更具優(yōu)勢(shì)。某種程度上可以說(shuō),BLE成就了今天的可穿戴市場(chǎng),反過(guò)來(lái),可穿戴市場(chǎng)的崛起,讓BLE更具生命力了!

接下來(lái)是控制LED燈的代碼,如下

LedCharacteristic.prototype.onWriteRequest = function(data, offset, withoutResponse, callback) {

console.log('LedCharacteristic write request: ' + data.toString('hex') + ' ' + offset + ' ' + withoutResponse);

if(data.readUInt8(0) == 0) {

console.log('led off');

led.write(0); //led off

} else {

console.log('led on');

led.write(1);

}

callback(this.RESULT_SUCCESS);

};

當(dāng)手機(jī)端通過(guò)藍(lán)牙向LedCharacteristic寫(xiě)入一個(gè)0值的時(shí)候,關(guān)閉LED燈;反之,當(dāng)用戶(hù)寫(xiě)入非0值,則點(diǎn)亮LED燈。注意這里的data,這是一個(gè)byte型數(shù)組,這里也沒(méi)有檢測(cè)數(shù)組的長(zhǎng)度,簡(jiǎn)單的取第一個(gè)字節(jié)值并進(jìn)行判斷,然后使用mraa庫(kù)來(lái)控制GPIO輸出狀態(tài)。

就是這么簡(jiǎn)單。

看看實(shí)際測(cè)試的結(jié)果,控制臺(tái)輸出如下

NRF CONNECT的掃描結(jié)果如下

注意這里的UUID值,與代碼中的UUID值是一致的。

向LedCharacteristic寫(xiě)入0x01值,代表點(diǎn)亮LED燈。

RPI上的LED燈顯示效果

測(cè)試沒(méi)有問(wèn)題,就可以寫(xiě)個(gè)簡(jiǎn)單的APP來(lái)控制RPI3了。

雖然現(xiàn)在還只有GPIO操作,不過(guò)借助mraa庫(kù)及upm庫(kù),可以為RPI添加大量的外設(shè),包括氣壓計(jì)、溫濕度計(jì)、LCD屏等等,只限于你的想像力。

不過(guò)在使用其它外設(shè)之前,記得打開(kāi)相關(guān)的驅(qū)動(dòng)支持,使用raspi-config命令就可以實(shí)現(xiàn),如下圖

只點(diǎn)個(gè)燈,是有點(diǎn)太簡(jiǎn)單了,不過(guò)只要燈點(diǎn)亮了,各種應(yīng)用也就不遠(yuǎn)了!

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評(píng)論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開(kāi)放投稿

熱門(mén)標(biāo)簽
項(xiàng)目外包 more+