亚洲av中文无码乱人伦在线视色,网曝黑料国产吃瓜,无码国产精品久久一区免费,亚洲av在在线观看,亚洲av国产午夜精品一区二区

三行代碼實(shí)現(xiàn)藍(lán)牙設(shè)備和手機(jī)App的通信(android藍(lán)牙配對(duì)代碼)

本教程來(lái)源于 FlexLua 官網(wǎng),降低 IoT 硬件開(kāi)發(fā)難度,零門(mén)檻 Lua 低代碼編程技術(shù)開(kāi)發(fā) IoT 硬件。

前言

基于 ShineBlink C1 實(shí)現(xiàn)藍(lán)牙Ble通信功能。注意:只能用C1不能用C2,因?yàn)镃2 不支持藍(lán)牙。

三行代碼實(shí)現(xiàn)藍(lán)牙設(shè)備和手機(jī)App的通信(android藍(lán)牙配對(duì)代碼)

一、實(shí)現(xiàn)功能

C1M(Core)芯片自帶BLE藍(lán)牙功能,所以只用Core就可以很輕松的實(shí)現(xiàn)和手機(jī)的相互通信。本篇章所實(shí)現(xiàn)的功能是和手機(jī)建立藍(lán)牙連接后:(1)Core每隔0.2秒向手機(jī)發(fā)送一包數(shù)據(jù),(2)我們?cè)谑謾C(jī)調(diào)試App上自定義任意數(shù)據(jù)包發(fā)送給Core,Core收到后通過(guò) Print() 函數(shù)打印出來(lái)。

注意:由于Core內(nèi)部自帶2.4G無(wú)線功能,所以無(wú)需外部器件或模塊即可實(shí)現(xiàn)本章節(jié)的藍(lán)牙通訊功能。但如果用了Ble藍(lán)牙功能,Core的2.4G單點(diǎn)或多點(diǎn)通信功能就無(wú)法使用了,這一點(diǎn)開(kāi)發(fā)者需要注意。

手機(jī)調(diào)試App這里我們選擇使用蘋(píng)果IOS上知名的LightBlue,安卓手機(jī)下載安裝BleTool或安卓版LightBlue也可以。

二、實(shí)現(xiàn)機(jī)制

Core的ble低功耗藍(lán)牙提供兩個(gè)特性,一個(gè)是Write特性,一個(gè)是Notify特性。其中:

  • Write特性:可以看成是手機(jī)發(fā)送數(shù)據(jù)給Core的通道,手機(jī)通過(guò)藍(lán)牙連接發(fā)送給Core的數(shù)據(jù)就是存放在Write特性中。
  • Notify特性:可以看成是Core發(fā)送數(shù)據(jù)給手機(jī)的通道,Core通過(guò)藍(lán)牙發(fā)送給手機(jī)的數(shù)據(jù)就是存放在Notify上。但是需要注意,手機(jī)要想收到來(lái)自Core的數(shù)據(jù),需要手機(jī)端主動(dòng)使能這個(gè)Notify(在下面的演示中會(huì)提及)。

下面是對(duì)Core的Ble所提供的service描述,如果您看不懂這段也沒(méi)關(guān)系,只需按上面講的理解即可

service(UUID: 0x0001)描述:
service包含兩個(gè)特性(Characteristic): 一個(gè)用來(lái)發(fā)送數(shù)據(jù),一個(gè)用來(lái)接收數(shù)據(jù)

  • Rx Characteristic (UUID: 0x0002)用來(lái)接收手機(jī)的數(shù)據(jù)
    手機(jī)藍(lán)牙可以通過(guò)ATT Write方式向Rx Characteristic發(fā)送數(shù)據(jù)
  • Tx Characteristic (UUID: 0x0003)用來(lái)向手機(jī)發(fā)送數(shù)據(jù)
    如果手機(jī)藍(lán)牙為T(mén)x Characteristic使能了notification,那么設(shè)備就可以通過(guò)發(fā)送notification的方式向手機(jī)藍(lán)牙發(fā)送數(shù)據(jù)

三、完整代碼

–配置低功耗藍(lán)牙以默認(rèn)參數(shù)工作,設(shè)備名稱(chēng)為"MyBle002"
–該設(shè)備名稱(chēng)就是手機(jī)掃描藍(lán)牙設(shè)備時(shí)列表中所呈現(xiàn)的名稱(chēng)。
LIB_NrfBleDefaultConfig("MyBle002")
–開(kāi)始大循環(huán)
while(GC(1) == true)
do
LIB_DelayMs(200)
send_tab = {0,1,2,3,4,5,6,7,8,9}
–將send_tab數(shù)組內(nèi)的10個(gè)元素發(fā)給手機(jī)
LIB_NrfBleSend(send_tab)
–查詢是否收到手機(jī)發(fā)來(lái)藍(lán)牙數(shù)據(jù),如果收到就print打印出來(lái)
recv_flag, recv_tab = LIB_NrfBleRecv()
if recv_flag == 1 then
–打印接收到的數(shù)據(jù)
for k,v in ipairs(recv_tab) do
print(k,v)
end
end
end

如果感興趣,上面代碼中出現(xiàn)的LIB開(kāi)頭的庫(kù)函數(shù)可以在 API文檔 中通過(guò)Ctrl F查詢。另外LIBNrfBleDefaultConfig()是一種適合大部分應(yīng)用場(chǎng)景配置函數(shù),**如果你的Ble應(yīng)用對(duì)功耗以及不同手機(jī)廠家的適配性比較關(guān)注,有更靈活的LIBNrfBleAdvanceConfig()函數(shù)可用**。

四、演示

1. 在蘋(píng)果手機(jī)上打開(kāi)LightBlue軟件,并開(kāi)始搜索附近的藍(lán)牙設(shè)備,找到"MyBle002"后點(diǎn)擊進(jìn)入

2. 找到properties notify特性,點(diǎn)擊進(jìn)入

3. 點(diǎn)擊Listen for notification,這樣就可以收到到Core發(fā)來(lái)的數(shù)據(jù)了

4.可以看到每隔0.2秒就會(huì)收到一包數(shù)據(jù)

5.再退回到步驟2的界面,點(diǎn)擊properties write,然后點(diǎn)擊write new value

6.設(shè)置要發(fā)送給Core的數(shù)據(jù)為AA BB CC DD EE FF

三行代碼實(shí)現(xiàn)藍(lán)牙設(shè)備和手機(jī)App的通信(android藍(lán)牙配對(duì)代碼)

7.最后在Core的TF卡里L(fēng)OG.TXT文件可以看到剛剛我們通過(guò)手機(jī)手動(dòng)發(fā)給Core的AA BB CC DD EE FF數(shù)據(jù)

三行代碼實(shí)現(xiàn)藍(lán)牙設(shè)備和手機(jī)App的通信(android藍(lán)牙配對(duì)代碼)

五、免開(kāi)發(fā)藍(lán)牙App

shineblink 已推出免開(kāi)發(fā)安卓藍(lán)牙App,開(kāi)發(fā)者無(wú)需做任何App開(kāi)發(fā),即可以讓自己的手機(jī)上擁有一款能夠和C開(kāi)發(fā)板通信的專(zhuān)業(yè)App。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
返回頂部