Модули Laurent и Умный дом (часть 3). Processing

Laurent () KernelChip . . MajorDoMo, Arduino Arduino Mega Server. , , … Processing.

image

?


, . .
, «» . ? , , Processing. Processing? , , . . , .
, Processing Laurent .


Processing. , . , .

image

, . :

import processing.net.*;

Laurent. . , .

String pass = "$KE,PSW,SET,Laurent";
String rele2on = "$KE,REL,2,1";
String rele2off = "$KE,REL,2,0";

, .

byte CRbyte = 13;
byte LFbyte = 10;
Client myClient;

, :

void sendCommand(String command, Client cl) {
  cl.write(pass);
  cl.write(CRbyte);
  cl.write(LFbyte);
  delay(10);
  cl.write(command);
  cl.write(CRbyte);
  cl.write(LFbyte);
} 

, pass ( , ), 10 . .

setup(). Processing .

void setup() { 
  size(300, 300); 
  background(255);
  myClient = new Client(this, "192.168.2.19", 2424); 
} 

, myClient Laurent. , «192.168.2.19» IP ( ), 2424 Laurent .

, draw(), . . , , , .

void draw() { 
  sendCommand(rele2on, myClient); 
  delay(3000);
  
  sendCommand(rele2off, myClient); 
  delay(3000);
}

rele2on "$KE,REL,2,1", rele2off — "$KE,REL,2,0".

, ? . , , , . , , , , Processing .

.

import processing.net.*;

byte CRbyte = 13; // HEX 0x0D
byte LFbyte = 10; // HEX 0x0A

// Commands
String pass = "$KE,PSW,SET,Laurent";
String rele2on = "$KE,REL,2,1";
String rele2off = "$KE,REL,2,0";

// Client
Client myClient;

void sendCommand(String command, Client cl) {
cl.write(pass);
cl.write(CRbyte);
cl.write(LFbyte);
delay(10);
cl.write(command);
cl.write(CRbyte);
cl.write(LFbyte);
}

void setup() {
size(300, 300);
background(255);
myClient = new Client(this, «192.168.2.19», 2424);
}

void draw() {
sendCommand(rele2on, myClient);
delay(3000);

sendCommand(rele2off, myClient);
delay(3000);
}


, , . , , Processing, .

. . , , . , .

. ? , .

? . , , , , , - , . , .

image

, , ( ).

int x1 = 100;
int y1 = 100;
int dx = 100;
int dy = 100;
boolean state = false;

.

sendCommand(rele2on, myClient);

«» , .

void on() {
  sendCommand(rele2on, myClient); 
}

void off() {
  sendCommand(rele2off, myClient); 
}

, on() off() , sendCommand(rele2on, myClient). . - .

draw().

void draw() { 
  background(64);
 
  if ((mouseX > x1 && mouseX < x1 + dx) && 
      (mouseY > y1 && mouseY < y1 + dy)) {
    fill(152,161,247, 100);
    background(255);   
    if (!state) {
      on();
    }
    state = true;

  } else {
      fill(204,240,152, 100); 
      if (state) {
        off();
      }
      state = false;

    }
  rect(x1, y1, dx, dy);
}

. , , ,

  if ((mouseX > x1 && mouseX < x1 + dx) && 
      (mouseY > y1 && mouseY < y1 + dy)) {



    fill(152,161,247, 100);

.

image

, . , . — — . « », .

.

import processing.net.*;

int x1 = 100;
int y1 = 100;
int dx = 100;
int dy = 100;
boolean state = false;

byte CRbyte = 13; // HEX 0x0D
byte LFbyte = 10; // HEX 0x0A

// Commands
String pass = "$KE,PSW,SET,Laurent";
String rele2on = "$KE,REL,2,1";
String rele2off = "$KE,REL,2,0";

// Client
Client myClient;

void sendCommand(String command, Client cl) {
cl.write(pass);
cl.write(CRbyte);
cl.write(LFbyte);
delay(10);
cl.write(command);
cl.write(CRbyte);
cl.write(LFbyte);
}

void on() {
sendCommand(rele2on, myClient);
}

void off() {
sendCommand(rele2off, myClient);
}

void setup() {
size(300, 300);
background(255);
myClient = new Client(this, «192.168.2.19», 2424);
}

void draw() {
background(64);

if ((mouseX > x1 && mouseX < x1 + dx) &&
(mouseY > y1 && mouseY < y1 + dy)) {
fill(152,161,247, 100);
background(255);
if (!state) {on();}
state = true;
} else {
fill(204,240,152, 100);
if (state) {off();}
state = false;
}
rect(x1, y1, dx, dy);
}


Laurent . , . , Processing. ? Laurent.

, Laurent :


, , .

Source: https://habr.com/ru/post/fr387561/


All Articles