電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arduino Nano 33 BLE與Web應(yīng)用程序通信

Arduino Nano 33 BLE與Web應(yīng)用程序通信

2022-11-01 | zip | 1.59 MB | 次下載 | 免費(fèi)

資料介紹

描述

什么是 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 名稱。

poYBAGNggMuAE6buAAKOAyQUztw438.png
董事會(huì)經(jīng)理
?

然后,轉(zhuǎn)到工具 >> 管理庫,搜索 ArduinoBLE,單擊安裝(或更新,如果您以前安裝過)。

pYYBAGNggM-AOJvyAAKY3p4KWb8175.png
圖書館經(jīng)理
?

然后,我們準(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),等待連接...”

pYYBAGNggNGASIkpAADh-7SyQBA572.png
串行監(jiān)視器
?

如果您按下面包板上的按鈕,您應(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>
poYBAGNggNaAZzNXAAIZIUYeF5A581.png
添加 p5.ble.js 庫
?

第 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ì)。

pYYBAGNggNmAburQAABlraZv5fQ635.png
配對(duì)窗口
?

然后,您應(yīng)該在控制臺(tái)中看到以下日志:

pYYBAGNggOCAY-MYAABWr_v-r9A394.png
控制臺(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。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)