資料介紹
描述
什么是 BLE?
BLE(低功耗藍(lán)牙)以低能耗處理硬件和軟件之間的無線通信。它是創(chuàng)建智能家居設(shè)備、可穿戴設(shè)備和各種物聯(lián)網(wǎng)項(xiàng)目的非常方便的工具。然而,構(gòu)建一個(gè)定制的應(yīng)用程序來與設(shè)備通信對(duì)于初學(xué)者來說可能會(huì)讓人感到困惑和恐懼。
什么是 p5.ble.js?
p5.ble.js是一個(gè) JavaScript 庫,可以在 BLE 設(shè)備和 p5 草圖之間進(jìn)行通信。它使用 Web 藍(lán)牙 API 并將復(fù)雜的設(shè)置變成幾個(gè)簡單的功能。它可以幫助您創(chuàng)建與支持 BLE 的電路交互的定制 Web 應(yīng)用程序。
關(guān)于本教程
本教程將通過一個(gè)示例向您展示 p5.ble.js 的一些基本功能:讀取、寫入和訂閱。按照本教程,您將讓您的 Arduino Nano 33 BLE 與運(yùn)行在 Chrome 瀏覽器上的 Web 應(yīng)用程序通信。
第 1 步:組裝電路
Arduino Nano 33 BLE 或 Arduino Nano 33 BLE Sense 可能沒有焊接頭針。你需要焊接頭針。使用面包板可以幫助您對(duì)齊插頭引腳。
然后,將按鈕連接到數(shù)字引腳 4。
第 2 步:安裝庫
要對(duì) Arduino Nano 33 BLE 進(jìn)行編程,我們需要安裝相應(yīng)的庫。轉(zhuǎn)到工具>>板>>板管理器,搜索Arduino Nano 33 BLE,單擊安裝(如果您以前安裝過,則單擊更新)。
安裝后,進(jìn)入工具>>板,選擇Arduino Nano 33 BLE。
注意:Arduino Nano 33 BLE 和 Arduino Nano 33 BLE Sense 使用相同的板設(shè)置。Arduino Nano IoT 使用不同的。請(qǐng)?jiān)诰幊讨白屑?xì)檢查您的 Arduino 名稱。
然后,轉(zhuǎn)到工具 >> 管理庫,搜索 ArduinoBLE,單擊安裝(或更新,如果您以前安裝過)。
然后,我們準(zhǔn)備對(duì) Arduino Nano 33 BLE 進(jìn)行編程。
第 3 步:對(duì) Arduino 進(jìn)行編程
在本教程中,我們將使用示例草圖。轉(zhuǎn)到文件 >> 示例 >> ArduinoBLE >> 外圍設(shè)備,打開示例 ButtonLED
驗(yàn)證草圖并對(duì)其進(jìn)行編程。
編程完成后,打開串行監(jiān)視器,您應(yīng)該看到“藍(lán)牙設(shè)備處于活動(dòng)狀態(tài),等待連接...”
如果您按下面包板上的按鈕,您應(yīng)該會(huì)看到板載 LED 亮起并且串行監(jiān)視器中打印“LED on”。這是為了驗(yàn)證您的電路是否正確接線。如果您沒有看到 LED 或打印,請(qǐng)檢查您的接線。
第 4 步:添加 p5.ble.js 庫
在 Chrome 瀏覽器中打開p5.js Editor,點(diǎn)擊箭頭圖標(biāo)打開index.html文件。如下所示粘貼以下代碼行。
<script src="https://unpkg.com/p5ble@0.0.4/dist/p5.ble.js" type="text/javascript">script>
第 5 步:p5 編程
首先,我們將聲明服務(wù)和特征的 UUID。這些是我們 Arduino 草圖中特征的唯一標(biāo)識(shí)符。
const serviceUuid = "19b10010-e8f2-537e-4f6c-d104768a1214";
const characteristicsUUID = {
led:"19b10011-e8f2-537e-4f6c-d104768a1214",
button:"19b10012-e8f2-537e-4f6c-d104768a1214"
}
然后,我們需要在 p5 草圖中創(chuàng)建 BLE 對(duì)象和特征的實(shí)例。
let buttonCharacteristic;
let ledCharacteristic;
let myBLE;
接下來,我們將創(chuàng)建一個(gè)全局變量來保存從按鈕讀取的值
let buttonValue = 0;
在setup
函數(shù)內(nèi)部,我們將啟動(dòng) BLE 對(duì)象和界面按鈕。
function setup() {
createCanvas(400, 400);
myBLE = new p5ble();
createCanvas(600, 400);
background("#FFF");
const connectButton = createButton('Connect and Start Notifications')
connectButton.mousePressed(connectAndStartNotify);
const toggleButton = createButton('Toggle');
toggleButton.position(15, 15);
toggleButton.mousePressed(toggleLED);
}
然后,我們將聲明每個(gè)動(dòng)作對(duì)應(yīng)的回調(diào)函數(shù):當(dāng)connectButton
被按下時(shí), connectAndStartNotify
函數(shù)將被觸發(fā)。當(dāng) toggleButton 被按下時(shí),toggleLED
函數(shù)將被觸發(fā)。
function connectAndStartNotify() {
myBLE.connect(serviceUuid, gotCharacteristics);
}
function gotCharacteristics(error, characteristics)
if (error) console.log('error: ', error);
console.log(characteristics[1].uuid);
for(let i = 0; i < characteristics.length;i++){
if(characteristics[i].uuid == characteristicsUUID.button){
buttonCharacteristic = characteristics[i];
myBLE.startNotifications(buttonCharacteristic, handleButton);
}else if(characteristics[i].uuid == characteristicsUUID.led){
ledCharacteristic = characteristics[i];
}else{
console.log("nothing");
}
}
function handleButton(data) {
console.log('Button: ', data);
buttonValue = Number(data);
}
function toggleLED(){
myBLE.read(ledCharacteristic, handleLED);
}
function handleLED(error, data){
if (error) console.log('error: ', error);
console.log('LED: ', data);
myBLE.write(ledCharacteristic, !data);
}
然后,在draw
函數(shù)內(nèi)部,我們將使用buttonValue
來繪制一個(gè)正方形。
function draw() {
noStroke();
if(buttonValue>0){
fill(color(200, 200, 200));
}else{
fill(color(100, 200, 200));
}
rect(15, 40, 60, 60);
}
現(xiàn)在,我們準(zhǔn)備運(yùn)行 p5 草圖。
第 6 步:運(yùn)行 p5 草圖
單擊編輯器左上角的播放按鈕,我們可以運(yùn)行草圖。當(dāng)草圖運(yùn)行時(shí),您會(huì)看到連接和開始通知按鈕。單擊該按鈕,您將在瀏覽器中看到一個(gè)彈出窗口。這是選擇 BLE 設(shè)備的窗口。如果只有一個(gè)帶有 ButtonLED 草圖編程和供電的 Arduino,那么您應(yīng)該只會(huì)在窗口中看到一個(gè)選項(xiàng)。配對(duì)。
然后,您應(yīng)該在控制臺(tái)中看到以下日志:
現(xiàn)在,如果您單擊面包板上的按鈕,網(wǎng)絡(luò)應(yīng)用程序中的方塊將改變顏色。如果您單擊 Web 應(yīng)用程序中的按鈕,板載 LED 將切換。
現(xiàn)在,您已經(jīng)成功運(yùn)行了您的第一個(gè)p5.ble.js項(xiàng)目。您可以按照示例為您的 Arduino BLE 項(xiàng)目創(chuàng)建自己的 Web 應(yīng)用程序。
提示
- 如果您遇到多個(gè) BLE 項(xiàng)目,最好將示例中的服務(wù) UUID 更改為不同的 UUID。您可以使用UUID 生成器來生成它。請(qǐng)不要忘記替換 Arduino 草圖和 p5 草圖中的 UUID。
- 如果您無法將 p5 草圖正確連接到您的 Arduino,您可以使用通用 BLE 移動(dòng)應(yīng)用程序,例如 LightBlue,首先測(cè)試您的 Arduino。
- 使用Arduino Nano 33構(gòu)建嵌入式語音識(shí)別應(yīng)用程序
- Arduino Nano 33 Sense BLE開源
- Arduino Nano 33物聯(lián)網(wǎng)調(diào)試
- 基于Arduino Nano 33 BLE Sense的深蹲計(jì)數(shù)器
- 帶有Arduino Nano 33 IoT的氣鼓
- 基于Nano 33 BLE Sense的數(shù)字魔杖
- 基于Arduino 33 BLE的智慧教室 1次下載
- Arduino Nano 33 BLE Sense的語音識(shí)別項(xiàng)目
- Arduino Nano 33 BLE OV7670相機(jī)擴(kuò)展板
- 在Arduino Nano BLE Sense 33邊緣設(shè)備上訓(xùn)練神經(jīng)網(wǎng)絡(luò)
- Arduino Nano 33 BLE Sense上的白血病檢測(cè)
- 利用Nano 33 BLE Sense板功能尾隨大象
- 使用TinyML和Arduino Nano 33 BLE計(jì)算閱讀時(shí)間
- Arduino Nano 33 IoT遠(yuǎn)程調(diào)試及編碼
- 基于組合測(cè)試的Web應(yīng)用程序搜索功能 11次下載
- 如何使用Python和PinPong庫控制Arduino 718次閱讀
- 基于Arduino的機(jī)器學(xué)習(xí)開發(fā) 1.7w次閱讀
- PreEmptiveProtection:全面的移動(dòng)應(yīng)用程序保護(hù) 529次閱讀
- NanoBeacon? BLE掃描器教程(第一部分) 725次閱讀
- 怎么使用uboot引導(dǎo)應(yīng)用程序? 1360次閱讀
- 聊聊PHP的web應(yīng)用程序開發(fā)框架存在的漏洞有哪些 1561次閱讀
- 當(dāng)Arduino遇上樹莓派:Nano RP2040連接板 6472次閱讀
- 如何使用Arduino Nano控制紅綠燈 5001次閱讀
- 淺談RAM 執(zhí)行應(yīng)用程序 3060次閱讀
- 八個(gè)將在未來發(fā)揮重要作用的Web應(yīng)用程序的API 2281次閱讀
- dfrobot Arduino Nano控制板介紹 5611次閱讀
- 如何使用HyperledgeFabric網(wǎng)絡(luò)react.js來構(gòu)建Web應(yīng)用程序 1149次閱讀
- python的web部署方式大全! 3061次閱讀
- 兩種開發(fā) RFID 應(yīng)用程序的方法分析 791次閱讀
- arduino串口通信 2.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多