gitee倉庫地址:https://gitee.com/lalhan/PC_BLE_UART
一、需求提出
模塊功能:
應用場景:
二、市場調研
(1)現有市場
- 基本沒有
- 有的上位機也只是支持調試AT
(2)勉強使用的
1、WCH公司BleUart
2、硬件提供的PC端
特點:
- 不直觀不直接
- 過于通用,且串口界面復雜難操作
- 沒有調整波特率選項
三、方案設計
(1)硬件選擇
選用低成本BLE藍牙方案
淘寶:https://eciot.taobao.com/?spm=2013.1.0.0.18972c6abNXolr
注意:需要購買帶OC版本,即可二次編程版本,這個需要提前問下客服
特點:
- 成本低(甚至1.8元)
- 體積小
- 外圍簡單
- 可二次開發
(2)電腦端上位機(PYQT5)
優點:
- 界面清楚簡潔
- 波特率可調整
缺點:
- 綁定了MAC(但是開源,可自行修改)
(3)電源部分
參考我上個視頻,電動螺絲刀
四、制作流程
(1)設備側程序編寫
這里選擇提供HEX文件、程序主文件(main)以及資料的下載文檔
- MDK5的開發環境
- APP可燒錄(參考我之前的十元藍牙遙控車的視頻)
資料地址:
百度網盤:https://pan.baidu.com/s/1_y1TtyzgXGL5tlVsYmggig 提取碼:8888
360云盤:https://yunpan.360.cn/surl_yWr6A5bSpV9 (提取碼:5689)
(2)PC端程序編寫
- 提供源代碼
- 使用PyCharm編程
- 使用PYQT5庫實現
五、整體演示
因為硬件部分很簡單,我這里就不實際使用IP5306供電了,主要測試串口透傳和波特率修改功能
節選部分程序:
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("聯系方式.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)上位機"))
self.label.setText(_translate("MainWindow", "當前設備狀態:"))
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", "發送"))
self.pushButton_4.setText(_translate("MainWindow", "清屏"))
self.checkBox.setText(_translate("MainWindow", "十六進制接收"))
self.checkBox_2.setText(_translate("MainWindow", "十六進制發送"))
self.checkBox_3.setText(_translate("MainWindow", "后置換行符"))
self.label_4.setText(_translate("MainWindow", "作者信息"))
MainWindow.setWindowIcon(QIcon("./ico.ico"))
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
藍牙
+關注
關注
114文章
5867瀏覽量
171222 -
電腦
+關注
關注
15文章
1742瀏覽量
69165 -
上位機
+關注
關注
27文章
945瀏覽量
55006 -
BLE
+關注
關注
12文章
670瀏覽量
59598
發布評論請先 登錄
相關推薦
CANNON試用體驗】BLE調試助手調試
本帖最后由 逸興遄飛 于 2016-4-17 15:04 編輯
看到很多前輩都通過官方提供的藍牙調試軟件分享藍牙調試心得,我再也按捺不住了,找來找去,終於找到BLE調試助手下載地方了。1、安裝
發表于 04-17 14:40
匯承HC-02藍牙雙模2.0+4.0BLE與iPhone連接教程
`1、工具/原料:模塊端:HC-02模塊1個 手機端:蘋果手機1臺(蘋果4S及以上)HC-USB-P參數架1個電腦 測試軟件:電腦端下載參數架專用的“HID轉串口小
發表于 01-23 15:11
請問手機藍牙串口助手不可以和電腦的串口助手一樣使用嗎?
用電腦和單片機通過數據線在串口調試助手輸入指令實現了功能,現在希望通過藍牙模塊使手機與單片機通信,用手機的藍牙串口助手發送指令實現同樣的功能
發表于 04-03 05:47
【FireBeetle低功耗藍牙控制器試用連載】firebeetle BLE藍牙測試
,我就不啰嗦咯。手機與藍牙配對的話,我用的軟件是“BLE調試助手”,可以測量接收到的信號強度、接發消息等。http://wiki.dfrobot.com.cn/index.php?title=(SKU
發表于 05-04 21:26
【FireBeetle低功耗藍牙控制器試用連載】firebeetle BLE藍牙測試報告(下)
,我就不啰嗦咯。手機與藍牙配對的話,我用的軟件是“BLE調試助手”,可以測量接收到的信號強度、接發消息等。http://wiki.dfrobot.com.cn/index.php?title=(SKU
發表于 05-06 14:23
請問ESP作為BLE客戶端可以掃描到筆記本電腦和蘋果手機的藍牙嗎?
我用ESP32模塊作為BLE的客戶端,運行BLE掃描AT指令,但是在掃描返回結果里面好像找不到筆記本電腦和蘋果手機的藍牙MAC地址(筆記本和
發表于 03-08 07:02
藍牙調試助手掃描BLE設備名稱沒變是什么原因造成的?
ESP32 的 BLE 設備,能正常搜索到改 BLE Name 之后的名稱;但在 IOS 手機上,使用“藍牙調試助手” 和 “Light Blue”APP , 發現
發表于 04-24 09:07
經驗分享:如何選擇適合的BLE藍牙模塊
物聯網應用中,成功連接設備的過程,連接性的角色至關重要,選擇范圍也很廣:如Wi-Fi、低功耗藍牙(BLE)、RFID、NFC等等。根據市占率估計,在2021年前,將有60%的無線裝置使用藍牙,同時
BLE藍牙的具體優勢以及BLE藍牙智能門鎖的應用
一、BLE藍牙的具體優勢: 1、BLE藍牙的待機時間超長, 市面上的藍牙智能鎖基本都是使用干電池供電,而
發表于 08-17 14:03
?3137次閱讀
ESP32 BLE藍牙 使用AT指令與其他BLE藍牙模塊透傳 配置教程
二、億佰特藍牙E104-BT5011A配置(服務端)三、ESP32藍牙配置(客戶端)前言因項目需求,需要使用ESP32 BLE
發表于 12-03 17:36
?44次下載
評論