我的电路中有一个力敏电阻(FSR),我希望我的Arduino能够通过蓝牙将这些数据传递给我的PC,运行python脚本。
以下是我为此项目使用的蓝牙防护罩:Bluetooth Shield
我试图在这里模仿这些示例,但这两种情况都不涉及Arduino蓝牙与PC的蓝牙交互的情况,并且当我使用他们的草图时代码甚至无法上传。
操作系统:Windows 10
以下是我的FSR的代码:
const int fsrAnalogPin = A0;
int fsrReading;
void setup(void) {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop(void) {
// put your main code here, to run repeatedly:
fsrReading = analogRead(fsrAnalogPin);
int num = fsrReading/3;
Serial.print("Analog reading = ");
Serial.println(num);
delay(50);
}
这是我的Python脚本代码(蓝牙尚未实现):
import serial
serialArduino = serial.Serial('COM4', 9600)
while True:
while (serialArduino.inWaiting() == 0):
pass
valueRead =(serialArduino.readline())
print(valueRead)
我的FSR代码和Python代码可以通过蓝牙发送和接收数据?
答案 0 :(得分:0)
在您的代码中,您没有初始化与盾牌的串行连接。
根据所使用的Arduino板,您应该选择eshiled使用的串口。
如果您使用Uno,则必须使用SoftwareSerial Library与您的代码进行通信,如本示例所示
#include <SoftwareSerial.h>
#define RxD 7
#define TxD 6
SoftwareSerial BlueToothSerial(RxD,TxD);
void setup()
{
Serial.begin(38400);
BlueToothSerial.begin(38400);
delay(500);
}
void loop()
{
if(BlueToothSerial.available())
{
Serial.print(char(BlueToothSerial.read()));
}
if(Serial.available())
{
BlueToothSerial.print(char(Serial.read()));
}
}
如果你使用Mega - 检查盾牌使用的序列并修改上面的代码。
您没有说您的PC上运行的操作系统根据操作系统,您必须选择通信方式。对于Windows,如果您想使用COM端口,则必须先与arduino配对。然后为屏蔽提供的服务添加COM端口(它是SPP一次)。
获得COM编号后,您可以在PC端的脚本中使用它,并从Arduino读取数据。
更好的方法是在没有COM端口的情况下与蓝牙设备通信。如果您使用Windows,则可以使用Bluetooth Framework
完成