Arduino 如何正确发送和接收多个传感器';通过串行通信传输数据
我正试图通过串行通信将2个传感器的数据从arduino uno发送到NodeMCU V3 当我试图同时从一个传感器发送数据时,一切正常,但当我同时使用这两个传感器时,它会给我随机值 这是arduino发送方代码:Arduino 如何正确发送和接收多个传感器';通过串行通信传输数据,arduino,nodemcu,serial-communication,Arduino,Nodemcu,Serial Communication,我正试图通过串行通信将2个传感器的数据从arduino uno发送到NodeMCU V3 当我试图同时从一个传感器发送数据时,一切正常,但当我同时使用这两个传感器时,它会给我随机值 这是arduino发送方代码: int water_sensor_pin = 8; void setup() { pinMode(water_sensor_pin, INPUT); Serial.begin(115200); } void loop() { // First sensor int soil_mo
int water_sensor_pin = 8;
void setup()
{ pinMode(water_sensor_pin, INPUT);
Serial.begin(115200);
}
void loop()
{
// First sensor
int soil_moisture=analogRead(A0);
int output_value = map(soil_moisture,430,70,0,100);
Serial.write(output_value);
// Second sensor
int value = digitalRead(water_sensor_pin);
if(value==HIGH){
Serial.write('1');}
if(value==LOW){
Serial.write('0');}
}
这是接收器的部分代码
char msg[10];
.
.
.
if(Serial.available()>0){
// First sensor
int output_value = Serial.read();
Serial.println(output_value );
// Second sensor
char value = Serial.read();
Serial.println(value);
}
我希望两个传感器的输出都是正确的值在Arduino中使用
串行
时,您必须注意发送已知的字节量,然后读取该字节量
在发送端尝试类似于串行写入(输出值,4)的操作
以发送四个字节,在接收端,串行.readBytes(输出值,4)
以读取您发送的四个字节,并且仅读取它们
当然,您可以对要发送的第二个值应用相同的技术,除了您可能只需要一个字节,因为您似乎要发送一个布尔值
希望有帮助
编辑
如果您需要发送电子邮件,上述技术将起作用。不幸的是,您有一个整数值…因此您可以尝试:
- 将值转换为已知大小的
数组char
- 使用这样一个事实,即您尝试发送的值可以放入,因此将其声明为
,而不是字节
,然后在接收方读取此单个int
字节
写入(您的数组,数组的len)发送它并在另一侧使用readBytes()读取它。