【发布时间】:2019-12-19 23:25:43
【问题描述】:
我想从树莓派向我的 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 {
;
}
}
【问题讨论】:
-
要接收来自 Pi 的 Arduino 请求,您必须始终在 Arduino 上运行代码,并且必须始终检查是否有新信息。如果你每 10 秒运行一次,那么它可能会错过一些请求,Pi 将不会获取数据,而是空结果。
-
是的,这就是为什么我想从树莓派发送一个“1”到 arduino。如果 arduino 确实得到了一个,则发送一次数据,然后继续监听 1
标签: python c++ arduino raspberry-pi