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

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

3天內(nèi)不再提示

電腦端BLE藍(lán)牙助手

Harmony&嵌入式學(xué)習(xí) ? 來源:Harmony&嵌入式學(xué)習(xí) ? 作者:Harmony&嵌入式學(xué) ? 2023-06-14 10:34 ? 次閱讀

gitee倉庫地址:https://gitee.com/lalhan/PC_BLE_UART

一、需求提出

電腦端BLE藍(lán)牙助手-開源基礎(chǔ)軟件社區(qū)

模塊功能:

  • 通過PC電腦藍(lán)牙實(shí)現(xiàn)串口透?jìng)?/li>
  • 制作電腦端上位機(jī)(APP端很常見)
  • 波特率可調(diào)
  • 對(duì)外提供RXD/TXD/GND/5V/3.3V

應(yīng)用場(chǎng)景:

  • PC端無可用USB口調(diào)試遠(yuǎn)程設(shè)備
  • 任何無線串口透?jìng)魇褂脠?chǎng)景
  • 私人預(yù)留(MAC綁定)串口設(shè)備調(diào)試接口
  • 需要對(duì)板子供電(5V/3.3V)測(cè)試場(chǎng)景

二、市場(chǎng)調(diào)研

(1)現(xiàn)有市場(chǎng)

pYYBAGSJJxiAdhdQAAJohOOeN64833.png
  • 基本沒有
  • 有的上位機(jī)也只是支持調(diào)試AT

(2)勉強(qiáng)使用的

1、WCH公司BleUart

電腦端BLE藍(lán)牙助手-開源基礎(chǔ)軟件社區(qū)

2、硬件提供的PC端

電腦端BLE藍(lán)牙助手-開源基礎(chǔ)軟件社區(qū)

特點(diǎn):

  • 不直觀不直接
  • 過于通用,且串口界面復(fù)雜難操作
  • 沒有調(diào)整波特率選項(xiàng)

三、方案設(shè)計(jì)

(1)硬件選擇

選用低成本BLE藍(lán)牙方案

電腦端BLE藍(lán)牙助手-開源基礎(chǔ)軟件社區(qū)

淘寶:https://eciot.taobao.com/?spm=2013.1.0.0.18972c6abNXolr

注意:需要購買帶OC版本,即可二次編程版本,這個(gè)需要提前問下客服

特點(diǎn):

  • 成本低(甚至1.8元)
  • 體積小
  • 外圍簡(jiǎn)單
  • 可二次開發(fā)

(2)電腦端上位機(jī)(PYQT5)

電腦端BLE藍(lán)牙助手-開源基礎(chǔ)軟件社區(qū)

優(yōu)點(diǎn):

  • 界面清楚簡(jiǎn)潔
  • 波特率可調(diào)整

缺點(diǎn):

  • 綁定了MAC(但是開源,可自行修改)

(3)電源部分

參考我上個(gè)視頻,電動(dòng)螺絲刀

電腦端BLE藍(lán)牙助手-開源基礎(chǔ)軟件社區(qū)
  • 自帶鋰電池充放電功能
  • 可對(duì)外提供5V
  • 使用AMS1117-33后可對(duì)外提供3.3V
  • 體積小外圍少使用簡(jiǎn)單

四、制作流程

(1)設(shè)備側(cè)程序編寫

這里選擇提供HEX文件、程序主文件(main)以及資料下載文檔

電腦端BLE藍(lán)牙助手-開源基礎(chǔ)軟件社區(qū)
  • MDK5的開發(fā)環(huán)境
  • APP可燒錄(參考我之前的十元藍(lán)牙遙控車的視頻)

資料地址:
百度網(wǎng)盤:https://pan.baidu.com/s/1_y1TtyzgXGL5tlVsYmggig 提取碼:8888
360云盤:https://yunpan.#/surl_yWr6A5bSpV9 (提取碼:5689)

(2)PC端程序編寫

電腦端BLE藍(lán)牙助手-開源基礎(chǔ)軟件社區(qū)
  • 提供源代碼
  • 使用PyCharm編程
  • 使用PYQT5庫實(shí)現(xiàn)

五、整體演示

因?yàn)橛布糠趾芎?jiǎn)單,我這里就不實(shí)際使用IP5306供電了,主要測(cè)試串口透?jìng)骱筒ㄌ芈市薷墓δ?/p> 電腦端BLE藍(lán)牙助手-開源基礎(chǔ)軟件社區(qū)

節(jié)選部分程序:

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(510, 430)
        MainWindow.setFixedSize(510, 430)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(10, 10, 111, 31))
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")


        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(175, 10, 50, 31))
        self.pushButton.setObjectName("pushButton")

        self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_5.setGeometry(QtCore.QRect(230, 10, 50, 31))
        self.pushButton_5.setObjectName("pushButton_5")

        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(100, 10, 60, 30))
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")

        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(400, 10, 101, 31))
        self.pushButton_2.setObjectName("pushButton_2")

        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(370, 370, 101, 31))
        self.pushButton_3.setObjectName("pushButton_3")
        self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_4.setGeometry(QtCore.QRect(370, 50, 101, 31))
        self.pushButton_4.setObjectName("pushButton_4")
        self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox.setGeometry(QtCore.QRect(370, 90, 91, 31))
        self.checkBox.setObjectName("checkBox")

        self.checkBox_2 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_2.setGeometry(QtCore.QRect(370, 330, 91, 31))
        self.checkBox_2.setObjectName("checkBox_2")

        self.checkBox_3 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_3.setGeometry(QtCore.QRect(370, 300, 91, 31))
        self.checkBox_3.setObjectName("checkBox_3")

        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(390, 150, 101, 101))
        self.label_3.setText("")
        self.label_3.setTextFormat(QtCore.Qt.AutoText)
        #self.label_3.setPixmap(QtGui.QPixmap("聯(lián)系方式.png"))



        self.label_3.setScaledContents(True)
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(400, 260, 71, 31))
        self.label_4.setAlignment(QtCore.Qt.AlignCenter)
        self.label_4.setObjectName("label_4")

        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(290, 12, 100, 25))
        self.textEdit.setObjectName("textEdit")
        self.textEdit.setAlignment((QtCore.Qt.AlignLeft))


        self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit_2.setGeometry(QtCore.QRect(20, 230, 341, 171))
        self.textEdit_2.setObjectName("textEdit_2")

        self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit_3.setGeometry(QtCore.QRect(20, 50, 341, 161))
        self.textEdit_3.setObjectName("textEdit_3")
        self.textEdit_3.setReadOnly(True)
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "無線串口(BLE)上位機(jī)"))
        self.label.setText(_translate("MainWindow", "當(dāng)前設(shè)備狀態(tài):"))
        self.pushButton.setText(_translate("MainWindow", "掃描"))
        self.pushButton_5.setText(_translate("MainWindow", "連接"))
        self.label_2.setText(_translate("MainWindow", "未連接"))
        self.pushButton_2.setText(_translate("MainWindow", "更改波特率"))
        self.pushButton_3.setText(_translate("MainWindow", "發(fā)送"))
        self.pushButton_4.setText(_translate("MainWindow", "清屏"))
        self.checkBox.setText(_translate("MainWindow", "十六進(jìn)制接收"))
        self.checkBox_2.setText(_translate("MainWindow", "十六進(jìn)制發(fā)送"))
        self.checkBox_3.setText(_translate("MainWindow", "后置換行符"))
        self.label_4.setText(_translate("MainWindow", "作者信息"))
        MainWindow.setWindowIcon(QIcon("./ico.ico"))

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 藍(lán)牙
    +關(guān)注

    關(guān)注

    114

    文章

    5823

    瀏覽量

    170342
  • 電腦
    +關(guān)注

    關(guān)注

    15

    文章

    1706

    瀏覽量

    68844
  • 上位機(jī)
    +關(guān)注

    關(guān)注

    27

    文章

    942

    瀏覽量

    54815
  • BLE
    BLE
    +關(guān)注

    關(guān)注

    12

    文章

    660

    瀏覽量

    59412
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CANNON試用體驗(yàn)】BLE調(diào)試助手調(diào)試

    本帖最后由 逸興遄飛 于 2016-4-17 15:04 編輯 看到很多前輩都通過官方提供的藍(lán)牙調(diào)試軟件分享藍(lán)牙調(diào)試心得,我再也按捺不住了,找來找去,終於找到BLE調(diào)試助手下載地方了。1、安裝
    發(fā)表于 04-17 14:40

    匯承HC-02藍(lán)牙雙模2.0+4.0BLE與iPhone連接教程

    `1、工具/原料:模塊:HC-02模塊1個(gè) 手機(jī):蘋果手機(jī)1臺(tái)(蘋果4S及以上)HC-USB-P參數(shù)架1個(gè)電腦 測(cè)試軟件:電腦端下載參數(shù)架專用的“HID轉(zhuǎn)串口小
    發(fā)表于 01-23 15:11

    ESP8266模塊手機(jī)電腦網(wǎng)絡(luò)調(diào)試助手

    ESP8266模塊手機(jī)電腦網(wǎng)絡(luò)調(diào)試助手使用方法比較簡(jiǎn)單,如下界面所示:電腦:確定“協(xié)議類
    發(fā)表于 04-07 18:29

    請(qǐng)問手機(jī)藍(lán)牙串口助手不可以和電腦的串口助手一樣使用嗎?

    電腦和單片機(jī)通過數(shù)據(jù)線在串口調(diào)試助手輸入指令實(shí)現(xiàn)了功能,現(xiàn)在希望通過藍(lán)牙模塊使手機(jī)與單片機(jī)通信,用手機(jī)的藍(lán)牙串口助手發(fā)送指令實(shí)現(xiàn)同樣的功能
    發(fā)表于 04-03 05:47

    【FireBeetle低功耗藍(lán)牙控制器試用連載】firebeetle BLE藍(lán)牙測(cè)試

    ,我就不啰嗦咯。手機(jī)與藍(lán)牙配對(duì)的話,我用的軟件是“BLE調(diào)試助手”,可以測(cè)量接收到的信號(hào)強(qiáng)度、接發(fā)消息等。http://wiki.dfrobot.com.cn/index.php?title=(SKU
    發(fā)表于 05-04 21:26

    【FireBeetle低功耗藍(lán)牙控制器試用連載】firebeetle BLE藍(lán)牙測(cè)試報(bào)告(下)

    ,我就不啰嗦咯。手機(jī)與藍(lán)牙配對(duì)的話,我用的軟件是“BLE調(diào)試助手”,可以測(cè)量接收到的信號(hào)強(qiáng)度、接發(fā)消息等。http://wiki.dfrobot.com.cn/index.php?title=(SKU
    發(fā)表于 05-06 14:23

    ESP8266調(diào)試助手-手機(jī)電腦

    ESP8266調(diào)試助手-手機(jī)電腦
    發(fā)表于 05-27 10:28

    請(qǐng)問ESP作為BLE客戶可以掃描到筆記本電腦和蘋果手機(jī)的藍(lán)牙嗎?

    我用ESP32模塊作為BLE的客戶,運(yùn)行BLE掃描AT指令,但是在掃描返回結(jié)果里面好像找不到筆記本電腦和蘋果手機(jī)的藍(lán)牙MAC地址(筆記本和
    發(fā)表于 03-08 07:02

    藍(lán)牙調(diào)試助手掃描BLE設(shè)備名稱沒變是什么原因造成的?

    ESP32 的 BLE 設(shè)備,能正常搜索到改 BLE Name 之后的名稱;但在 IOS 手機(jī)上,使用“藍(lán)牙調(diào)試助手” 和 “Light Blue”APP , 發(fā)現(xiàn)
    發(fā)表于 04-24 09:07

    有無藍(lán)牙4.0BLE簡(jiǎn)單有效的調(diào)試辦法?

    這幾天做“AT-09藍(lán)牙4.0BLE模塊(CC2541芯片)”的實(shí)驗(yàn),在網(wǎng)上一直搜索藍(lán)牙4.0BLE電腦
    發(fā)表于 10-19 07:55

    電腦維修助手9.02

    電腦維修助手其功能要點(diǎn)如下:     隨著電腦的普及,電腦維修人員日益缺乏,為此特把《電腦維修
    發(fā)表于 02-27 14:02 ?2205次下載

    經(jīng)驗(yàn)分享:如何選擇適合的BLE藍(lán)牙模塊

    物聯(lián)網(wǎng)應(yīng)用中,成功連接設(shè)備的過程,連接性的角色至關(guān)重要,選擇范圍也很廣:如Wi-Fi、低功耗藍(lán)牙BLE)、RFID、NFC等等。根據(jù)市占率估計(jì),在2021年前,將有60%的無線裝置使用藍(lán)牙,同時(shí)
    的頭像 發(fā)表于 06-11 15:26 ?1.1w次閱讀

    BLE藍(lán)牙的具體優(yōu)勢(shì)以及BLE藍(lán)牙智能門鎖的應(yīng)用

    一、BLE藍(lán)牙的具體優(yōu)勢(shì): 1、BLE藍(lán)牙的待機(jī)時(shí)間超長(zhǎng), 市面上的藍(lán)牙智能鎖基本都是使用干電池供電,而
    發(fā)表于 08-17 14:03 ?3101次閱讀
    <b class='flag-5'>BLE</b><b class='flag-5'>藍(lán)牙</b>的具體優(yōu)勢(shì)以及<b class='flag-5'>BLE</b><b class='flag-5'>藍(lán)牙</b>智能門鎖的應(yīng)用

    ESP32 BLE藍(lán)牙 使用AT指令與其他BLE藍(lán)牙模塊透?jìng)?配置教程

    二、億佰特藍(lán)牙E104-BT5011A配置(服務(wù))三、ESP32藍(lán)牙配置(客戶)前言因項(xiàng)目需求,需要使用ESP32 BLE
    發(fā)表于 12-03 17:36 ?44次下載
    ESP32 <b class='flag-5'>BLE</b><b class='flag-5'>藍(lán)牙</b> 使用AT指令與其他<b class='flag-5'>BLE</b><b class='flag-5'>藍(lán)牙</b>模塊透?jìng)?配置教程

    OpenHarmony BLE藍(lán)牙連接教程

    OpenHarmony 藍(lán)牙模塊提供了基礎(chǔ)的傳統(tǒng)藍(lán)牙能力以及 BLE 的掃描、廣播等功能。
    的頭像 發(fā)表于 04-17 10:11 ?2326次閱讀