使用Arduino實(shí)現(xiàn)低功耗藍(lán)牙(BLE)加密狗通信的USB CDC主機(jī)
資料介紹
描述
#1。介紹
該項(xiàng)目是一個(gè)簡(jiǎn)單的示例,展示了一種將帶有 USB Host Shield 的 Arduino 設(shè)置為能夠與 BleuIO 加密狗通信的 USB CDC 主機(jī)的快速方法。
當(dāng) BleuIO Dongle 連接到 USB 端口時(shí),BleuIO Dongle 將開始廣播。然后它將充當(dāng)終端,接受輸入并將數(shù)據(jù)發(fā)送到 Arduino 虛擬 Com 端口。
在本示例中,我們使用了帶有 SparkFun 的 USB Host Shield (DEV-09947) 的 Arduino Uno Rev. 3。
#2。你需要什么
- 固件版本為 2.1.0 或更高版本的BleuIO BLE USB 加密狗
- Arduino Uno Rev. 3 ( https://store.arduino.cc/products/arduino-uno-rev3)
- USB 主機(jī)屏蔽 ( https://www.sparkfun.com/products/9947)
- Arduino IDE(https://www.arduino.cc/en/software)
SparkFun 板的要求
- 使用 SparkFun 板,您似乎必須在 Vin 或筒式千斤頂上提供外部電源。來自 USB 電纜的 5V 不起作用。
- 您還必須從引腳 D7 到 RESET 使用跳線。
#3。關(guān)于守則
你可以在這里獲得項(xiàng)目
該項(xiàng)目基于Host USB Shield Library 2.0中的“acm_terminal”示例
?
函數(shù) Acm.RcvData() 最大可能的最大數(shù)據(jù)包大小為 64 字節(jié),因此為了容納我們將接收的數(shù)據(jù)量,我們使用三個(gè)緩沖區(qū)來接收來自 BleuIO 加密狗的數(shù)據(jù)。
如果緩沖區(qū)接收到任何數(shù)據(jù),我們將其打印到連接到虛擬 COM 端口的串行終端。
void loop()
{
Usb.Task();
if( Acm.isReady()) {
uint8_t rcode;
uint8_t rcode2;
uint8_t rcode3;
/* reading the keyboard */
if(Serial.available()) {
uint8_t data= Serial.read();
/* sending to the BleuIO Dongle */
rcode = Acm.SndData(1, &data);
if (rcode)
ErrorMessage<uint8_t>(PSTR("SndData"), rcode);
}//if(Serial.available()...
if(start_flag == 0x00)
{
rcode = Acm.SndData(strlen((char *)START_CMDS), (uint8_t *)START_CMDS);
if (rcode)
{
ErrorMessage<uint8_t>(PSTR("SndData"), rcode);
}
start_flag = 0x01;
}
/* reading the BleuIO Dongle */
uint8_t buf[64];
uint16_t rcvd = 64;
uint8_t buf2[64];
uint16_t rcvd2 = 64;
uint8_t buf3[64];
uint16_t rcvd3 = 64;
uint8_t dongle_input[3*64];
uint16_t input_indx = 0;
memset(dongle_input, 0, sizeof(dongle_input));
rcode = Acm.RcvData(&rcvd, buf);
delay(1);
rcode2 = Acm.RcvData(&rcvd2, buf2);
delay(1);
rcode3 = Acm.RcvData(&rcvd3, buf3);
if (rcode && rcode != hrNAK)
{
ErrorMessage<uint8_t>(PSTR("Ret"), rcode);
}
if (rcode2 && rcode2 != hrNAK)
{
ErrorMessage<uint8_t>(PSTR("Ret"), rcode2);
}
if (rcode3 && rcode3 != hrNAK)
{
ErrorMessage<uint8_t>(PSTR("Ret"), rcode3);
}
if( rcvd ) { //more than zero bytes received
for(uint16_t i=0; i < rcvd; i++ ) {
Serial.print((char)buf[i]); //printing on the screen
dongle_input[input_indx] = buf[i];
input_indx++;
}
}
if( rcvd2 ) { //more than zero bytes received
for(uint16_t i=0; i < rcvd2; i++ ) {
Serial.print((char)buf2[i]); //printing on the screen
dongle_input[input_indx] = buf2[i];
input_indx++;
}
}
if( rcvd3 ) { //more than zero bytes received
for(uint16_t i=0; i < rcvd3; i++ ) {
Serial.print((char)buf3[i]); //printing on the screen
dongle_input[input_indx] = buf3[i];
input_indx++;
}
}
dongle_input[input_indx] = 0x00;
// Example on a way for the Arduino to react to BleuIO events
if(strlen((char *)dongle_input) != 0)
{
if(strstr((char *)dongle_input, "handle_evt_gap_connected") != NULL)
{
Serial.print("<>");
}
else if(strstr((char *)dongle_input, "handle_evt_gap_disconnected") != NULL)
{
Serial.print("<>");
}
}
}//if( Usb.getUsbTaskState() == USB_STATE_RUNNING..
}
我們還將來自加密狗的最新數(shù)據(jù)存儲(chǔ)到 dongle_input 緩沖區(qū)中,并通過一個(gè)簡(jiǎn)單的“解析器”運(yùn)行它,以展示如何對(duì)事件做出反應(yīng)并讓 Arduino 執(zhí)行某些操作的簡(jiǎn)單方法。
在這個(gè)例子中,我們明確地尋找 BLE 連接或斷開事件。找到后,我們只需將“<>”或“<>”打印到終端。
#4。如何設(shè)置項(xiàng)目
從 GitHub 下載項(xiàng)目
在這里獲取項(xiàng)目
https://github.com/smart-sensor-devices-ab/arduino_bleuio_example
克隆項(xiàng)目,或者將其下載為 zip 文件并將其解壓縮到您的 Arduino 文件夾中。
下載 USB Host Shield Library 2.0
從此處下載庫 ( https://felis.github.io/USB_Host_Shield_2.0/)并將文件夾放入 Arduino 文件夾內(nèi)的庫文件夾中。
(有關(guān)安裝庫的信息,請(qǐng)參閱:http://www.arduino.cc/en/Guide/Libraries)
或者通過 Arduino IDE 下載:
在 Arduino IDE 中選擇 Sketch>Include Library>Manage Library
?
搜索 USB Host Shield Library 2.0 并單擊“安裝”
?
#5。運(yùn)行示例
在 Arduino IDE 中單擊上傳按鈕將項(xiàng)目上傳到您的 Arduino。
?
使用 TeraTerm、Putty 或 CoolTerm 等串行終端仿真程序打開“Arduino Uno 虛擬 COM 端口”。
串口設(shè)置:波特率:115200 數(shù)據(jù)位:8 奇偶校驗(yàn):無 停止位:1 流量控制:無
或者在 Arduino IDE 中打開 Arduino Monitor 并在右下角選擇“回車”和“115200 波特”
?
您應(yīng)該看到“開始”一詞,然后看到加密狗運(yùn)行兩個(gè)命令:設(shè)置響應(yīng)數(shù)據(jù)和啟動(dòng)廣告。您現(xiàn)在可以向加密狗鍵入命令。
?
?
?
?
?
?
?
?
?
?
- 加密狗檢測(cè)工具 1次下載
- 加密狗檢測(cè)工具 1次下載
- 小型藍(lán)牙低功耗(BLE)參考設(shè)計(jì)
- 彩虹加密狗破解技巧數(shù)據(jù)代碼分析 9次下載
- 加密狗復(fù)制軟件加密狗克隆工具免費(fèi)下載 50次下載
- USB硬件加密狗檢測(cè)工具V10.0 29次下載
- BLE低功耗藍(lán)牙模塊為何如此受歡迎? 18次下載
- SEE Electrical硬件加密狗的編程 15次下載
- 免加密狗西門子CP341模塊的ModbusRTU通信實(shí)現(xiàn)熊田忠 8次下載
- C#教程之讀寫加密狗 30次下載
- 抄板軟件QuickPcb2005加密狗版 0次下載
- 抄板軟件_QuickPcb2005加密狗版 0次下載
- 基于混沌保密的USB軟件加密狗及其反解密研究
- 基于通用USB接口的軟件加密狗設(shè)計(jì)
- 開源硬件-TIDC-CC2540-BLE-USB-CC2540 藍(lán)牙低能耗 USB 軟件狗 PCB layout 設(shè)計(jì)
- 低功耗藍(lán)牙技術(shù)的特點(diǎn) 低功耗藍(lán)牙如何實(shí)現(xiàn)低功耗? 2219次閱讀
- 加密狗是什么意思 加密狗怎么解除加密 8919次閱讀
- 高性能加密狗芯片LKT4302U概述 755次閱讀
- 低功耗藍(lán)牙(BLE)技術(shù)簡(jiǎn)介和工作方式 4102次閱讀
- 低功耗藍(lán)牙版本的特性演進(jìn)簡(jiǎn)介 4888次閱讀
- 使用MAX32520的安全USB加密狗應(yīng)用示例 1066次閱讀
- 傳統(tǒng)藍(lán)牙和低功耗藍(lán)牙到底有什么區(qū)別 8272次閱讀
- 關(guān)于低功耗藍(lán)牙的8點(diǎn)關(guān)鍵知識(shí) 3891次閱讀
- 使用支持BLE 4.2規(guī)范的芯片進(jìn)行實(shí)現(xiàn)應(yīng)用系統(tǒng)設(shè)計(jì) 859次閱讀
- dfrobotDFRobot BLE4.1藍(lán)牙通信模組簡(jiǎn)介 1868次閱讀
- dfrobot低功耗藍(lán)牙控制器簡(jiǎn)介 1592次閱讀
- 低功耗藍(lán)牙(BLE)模塊——EMB1066 3184次閱讀
- 如何實(shí)現(xiàn)低功耗藍(lán)牙技術(shù)的低功耗? 3638次閱讀
- 無電池式低功耗藍(lán)牙Beacon:采用能量采集技術(shù)的BLE 2015次閱讀
- 主流藍(lán)牙BLE控制芯片詳解(1):TI CC2540 5.2w次閱讀
下載排行
本周
- 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)論
查看更多