PySerial "подключается" к BlueSMiRF Silver, но индикаторы на модуле указывают на отсутствие подключения
Мой проект включает в себя сканирование QR-кода с камеры и передачу полезной нагрузки через Bluetooth на ПК.
У меня проблемы с установкой соединения Bluetooth между модулем SparkFun BlueSMiRF Silver и моим ПК. Я использую Bluetooth USB-модуль SparkFun Mini на стороне ПК, потому что у компьютера нет встроенной функции Bluetooth. Я проверил этот код на ноутбуке, который имеет встроенный Bluetooth, и он работает без проблем.
Вот мой код, который я запускаю на ПК:
## Test reading data from a Bluetooth serial port
import serial
import time
import struct
import sys
# Set up serial port to COM5 (bluetooth module) with baudrate 115200
ser = serial.Serial('COM5', 115200, timeout=1)
print("\nConnected")
while(True):
try:
# Read serial data
s = ser.readline()
s = s.decode("utf-8")
# Detect if no information is being received
if s == "":
print("Disconnected")
ser.close()
sys.exit(0)
# Detect if a code is being transmitted
elif s != "0\n":
print("QR Code Payload: " + s[:-1])
# Allow program to be manually stopped
except KeyboardInterrupt:
print("Keyboard Interrupt")
ser.close()
sys.exit(0)
Если камера не обнаруживает QR-код, я просто отправляю 0 по Bluetooth, поэтому я знаю, что если информация не получена, значит, плохое соединение (поэтому я закрываю последовательный порт в этом случае).
Проблема, с которой я столкнулся, заключается в том, что ПК напечатает "Подключено", но зеленый индикатор на модуле BlueSMiRF Silver не включится, указывая на то, что соединение на самом деле не установлено. Затем ПК напечатает "Отключено" и программа закроется.
Опять же, этот код и настройка работают отлично, если вместо использования Bluetooth USB Module Mini я использую ПК со встроенной функцией Bluetooth.
Даже если соединение не установлено, диспетчер устройств сообщает, что COM-порт, подключенный к модулю BlueSMiRF Silver, работает правильно.