Я студент, живущий в студенческом доме вместе с 15 другими. Я пытаюсь сделать систему посещаемости, которая будет отображать на экране, кто дома, а кто нет. Я подумал, что это отличный план - дать каждому ярлык RFID, поэтому, когда они вернутся домой или уйдут, они могут зарегистрироваться и проверить. Это будет показано на экране с зелеными или красными кружками (с использованием обработки).
Я использовал часть кода из https://www.youtube.com/channel/UC6LO26f_9qwysjvSHdVmfrQ и https://github.com/InfinityWorldHI/RFID_Excel для кода Arduino.
Я запрограммировал обработку только для первых двух соседей. Однако при регистрации заезда или отъезда оба круга меняют цвет. Мне бы хотелось иметь 2 ряда по 8 кругов, которые могут изменить цвет с красного на зеленый, и наоборот, чтобы увидеть, дома ли кто-то.
Моя программа arduino выводит номер комнаты "," 1 или 0 (как зарегистрировано или выписано), например, = 11,1.
Программа обработки нарисует зеленый или красный круг в зависимости от регистрации или отъезда.
Вот мой код обработки:
Код Arduino (где он выводится на последовательный порт):
if(NumbCard[j] == 1 && statu[s] == 0 && Number == 11) {
statu[s]=1;
NumbCard[j]=0;
Serial.print(Number);
Serial.print(",");
Serial.println(1);
//Serial.println("is uitgecheckt");
//write led uit
}
else if(NumbCard[j] == 1 && statu[s] == 0 && Number == 22) {
statu[s]=1;
NumbCard[j]=0;
Serial.print(Number);
Serial.print(",");
Serial.println(1);
//Serial.println("is uitgecheckt");
//write led uit
}
Обработка кода для создания кругов:
import processing.serial.*;
// ControlP5 Example 1 : Basic UI elements
import controlP5.*; // import controlP5 library
ControlP5 controlP5; // controlP5 object
Serial myPort; // Create object from Serial class
int val; // Data received from the serial port
int end = 10; // Linefeed in ASCII
String myString = null;
int i =0;
PShape led_on, led_off;
String persoon_status;
color [] colors = new color[2];
void setup() {
colors[0] = color(0,255,0);
colors[1] = color(255,0,0);
//change the 0 to a 1 or 2 etc. to match your port
myPort = new Serial (this, Serial.list()[0], 9600);
//led_on = createShape(RECT,10,70,40,40,40);
size(800,800);
}
void draw() {
background(255);
do{
myString = myPort.readStringUntil(end);
if (myString != null) {
println(myString);
}
}
while (myPort.available() > 0); {
if(myString != null && myString.trim().equals("11,1") == true) {
fill(colors[1]);
} else {
if (myString != null && myString.trim().equals("11,0") == true)
fill(colors[0]);
else{
rect(10,70,40,40,40);
}
}
if(myString != null && myString.trim().equals("22,1") == true){
fill(colors[1]);
} else {
if(myString != null && myString.trim().equals("22,0") == true)
fill(colors[0]);
else {
rect(10,130,40,40,40);
}
}
}
}
Я думаю, что я близок к тому, чтобы дойти до конца, однако я не мог понять эту проблему.
Может ли кто-нибудь указать мне правильное направление?
Пожалуйста, не стесняйтесь спрашивать меня о дополнительной информации.
Ваша помощь будет очень признательна!