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文章
5812浏览量
170202 -
电脑
+关注
关注
15文章
1695浏览量
68796 -
上位机
+关注
关注
27文章
941浏览量
54791 -
BLE
+关注
关注
12文章
660浏览量
59392
发布评论请先 登录
相关推荐
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
•3097次阅读
ESP32 BLE蓝牙 使用AT指令与其他BLE蓝牙模块透传 配置教程
二、亿佰特蓝牙E104-BT5011A配置(服务端)三、ESP32蓝牙配置(客户端)前言因项目需求,需要使用ESP32 BLE
发表于 12-03 17:36
•44次下载
评论