Arduino发送多个传感器数据到Processing显示

Posted 村头陈师傅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino发送多个传感器数据到Processing显示相关的知识,希望对你有一定的参考价值。

Arduino发送多个文本字段到Processing

公众号:STCode

image.png
我们想要Arduino发送包含多个字段的消息,例如,消息可能包含来自两个或者多个传感器的值,我们想要在PC端的Processing程序中使用这些值。做到上述效果简单的方法是发送一个文本字符串,里面所有的字段都被分隔字符所分隔。


Arduino端程序如下:

void setup()
{
	Serial.begin(9600);
}
void loop()
{
	int val1 = 123;
	int val2 = 456;
	int val3 = 789;
	
	Serial.print('H');
	Serial.print(',');
	Serial.print(val1,DEC);
	Serial.print(',');
	Serial.print(val2,DEC);
	Serial.print(',');
	Serial.print(val3,DEC);
	Serial.print(',');
	Serial.println();
	delay(100);
}

Processing端代码:

import processing.serial.*;
Serial myPort;
char HEADER = 'H';
short LF = 10;
String message;
String []data;
int Serial_flag = 0;
void setup()
{
	size(500,500);
	myPort = new Serial(this,"COM10",9600);
}
void draw()
{
	background(255);
if(Serial_flag == 1)
{
    textSize(32);
    fill(0, 102, 153);
    text("val1 = " + data[1], 150, 100);
    text("val2 = " + data[2], 150, 200);
    text("val3 = " + data[3], 150, 300);
  }
  

}
void serialEvent(Serial p)
{
  Serial_flag = 1;
	message = myPort.readStringUntil(LF);
	if(message != null)
	{
		data = message.split(",");
		if(data[0].charAt(0) == HEADER && data.length > 3)
		{
			for(int i = 0;i<data.length-1;i++)
			{
				println("val"+i+"=="+data[i]);
			}
			println();
		}
	}
}
image.png

​ 控制台信息

image.png

​ Processing界面信息

将Arduino接上多种传感器,将传感器的值替换掉val1、val2、val3就能在Processing端显示传感器的数据啦!

以上是关于Arduino发送多个传感器数据到Processing显示的主要内容,如果未能解决你的问题,请参考以下文章

Arduino没有形成蓝牙连接/将传感器数据从arduino发送到android

使用javascript和socket.io从串口显示多个传感器数据

如何同时从 python 发送和接收数据到 arduino

通过 PHP 脚本将数据从 Arduino 发送到数据库的问题

arduino怎么写小数吗

如何用arduino模拟一个i2c传感器