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