Нужна помощь с кодом для моего проекта с использованием Arduino Uno и Processing
Я использую Arduino Uno для своего проекта. Я использую 4 цифровых входа, и они будут запускаться 4 разными реле. Я хотел бы сохранить данные в файле *.csv в формате ниже.
Например, если какой-либо из входов становится высоким, он сохранит идентификатор станции, дату, время, когда он включается (запускается). Но как только вход становится низким, он сохранит время, когда он выключается (останавливается) на той же линии.
Пожалуйста, помогите советом, правильный ли у меня код, потому что при его запуске возникает слишком много ошибок.
Пример таблицы в файле .csv:
Date Oven Station Time Start Time Stop
3/7/2017 Oven_P1_1 11:58 16:00
3/7/2017 Oven_P1_2 7:30 11:00
3/7/2017 Oven_P5_1 14:10 20:00
4/7/2017 Oven_P5_2 01:20 7:30
4/7/2017 Oven_P5_1 2:40 8:45
4/7/2017 Oven_P1_2 08:05 12:00
4/7/2017 Oven_P1_1 09:12 13:10
import processing.serial.*;
int Oven_P1_1 = 8;
int Oven_P1_2 = 9;
int Oven_P5_1 = 10;
int Oven_P5_2 = 11;
float Ovenvals [] = {0,0,0,0};
Serial myPort;
String val;
Table table;
String filename;
void setup() {
String portName = Serial.list()[5];
myPort = new Serial(this, portName, 9600);
table = new Table();
table.addColumn("id");
table.addColumn("year");
table.addColumn("month");
table.addColumn("day");
table.addColumn("hour");
table.addColumn("minute");
table.addColumn("second");
table.addColumn("Oven_P1_1");
table.addColumn("Oven_P1_2");
table.addColumn("Oven_P5_1");
table.addColumn("Oven_P5_2");
}
void serialEvent(Serial myPort) {
val = myPort.readStringUntil('\n');
if (val != null) {
val = trim(val);
println(val);
float Ovenvals[] =float(split(val, ','));
TableRow newRow = table.addRow();
newRow.setInt("id", table.lastRowIndex());
newRow.setInt("year", year());
newRow.setInt("month", month());
newRow.setInt("day", day());
newRow.setInt("hour", hour());
newRow.setInt("minute", minute());
newRow.setInt("second", second());
newRow.setInt("Oven_P1_1", ovenVals[0]);
newRow.setInt("Oven_P1_2", ovenVals[1]);
newRow.setInt("Oven_P5_1", ovenVals[2]);
newRow.setInt("Oven_P5_2", ovenVals[3]);
{
saveTable(table, "data/OvenStatus.csv");
}
}
}
void draw() {
OvenVal[0] = digitalRead(Oven_P1_1);
OvenVal[1] = digitalRead(Oven_P1_2);
OvenVal[3] = digitalRead(Oven_P5_1);
OvenVal[4] = digitalRead(Oven_P5_2);
Serial.print(OvenVal[0]);
Serial.print(",");
Serial.print(OvenVal[1]);
Serial.print(",");
Serial.print(OvenVal[2]);
Serial.print(",");
Serial.print(OvenVal[3]);
Serial.print(",");
delay(100);
}
@Bong, 👍1
0
Смотрите также:
- Отправка информации (например, строки) через цифровые контакты
- Отправка mouseX и mouseY из обработки в Arduino
- Графические данные датчика усилия направляются через HX711?
- Как отправить 2 данных на обработку с Arduino
- Справка по последовательному входу
- Обработка, отправленная Arduino, не считывает целые массивы, если шнур не отключен и не подключен снова?
- Почему номера COM-портов между Arduino и Processing не совпадают?
- Плоттер с ЧПУ НА базе ардуино, необходимо устранить ошибку (invalid conversion from 'char' to 'char*' [-fpermissive]indexY = '\0';