gpt4 book ai didi

python - 仅当树莓派要求时才在 Arduino 上运行 C++

转载 作者:行者123 更新时间:2023-11-28 04:01:43 25 4
gpt4 key购买 nike

我想从 raspberry pi 向我的 arduino 发送数据以向我发送一次传感器值,然后继续不执行任何操作并通过。目前我发送了一个值,然后我收到了一个我不想要的无限循环。这是代码:

void loop() {
if (Serial.available() > 0) {
unsigned long startTime=millis();
int phValue = analogRead(sensorPin);
float voltage = phValue * (5/1023.0);
float ph = (-5.6548 * voltage) + 15.509;
int dis=SharpIR.distance();
float humidity = dht.readHumidity();
float outside_temp = dht.readTemperature();
float h = dht.readHumidity();
float f = dht.readTemperature(true);
float hif = dht.computeHeatIndex(f,h);
Serial.print(ph); //ph
Serial.print(' ');
Serial.print(dis);
Serial.print(' ');
Serial.print(h); //humidity
Serial.print(' ');
Serial.print(f); //outside temp in farenheit
Serial.print(' ');
Serial.println(hif);
} else {
;
}

}

最佳答案

您的 Arduino 板和 Raspberry Pi 板应该通过 UART 相互通信。您应该只在您的设备上设置波特率。

例如,在 Arduino 端,您可以设置串行连接:

void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}

void loop() {
if (Serial.available() > 0) {
// read the incoming string:
incomingString = Serial.readString();
Serial.write("Hello Raspberrry");
}
}

在 Raspberry 端,您应该使用 this 配置您的开发板先教程。然后你需要使用 pip3 install pyserial 在你的树莓派上安装 PySerial 包。然后您的开发板可以使用以下方式与 Arduino 对话:

import serial
import time

port = serial.Serial("/dev/ttyAMA0", baudrate=9600, timeout=2.0)

while True:
port.write("Hello Arduino")
string = port.readline()
print(string)

time.sleep(10)

关于python - 仅当树莓派要求时才在 Arduino 上运行 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59418134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com