Create rs485_rele_esplan.ino
parent
b58ad1e954
commit
1fbd84ea65
|
|
@ -0,0 +1,59 @@
|
||||||
|
// ESPLan + https://www.laskakit.cz/8-kanalu-12v-rele-modul-250vac-10a--rs485--din/
|
||||||
|
|
||||||
|
byte open1ch[] = {0x01, 0x06, 0x00, 0x01, 0x01, 0x00};
|
||||||
|
byte close1ch[] = {0x01, 0x06, 0x00, 0x01, 0x02, 0x00};
|
||||||
|
|
||||||
|
byte openAll[] = {0x01, 0x06, 0x00, 0x00, 0x07, 0x00};
|
||||||
|
byte closeAll[] = {0x01, 0x06, 0x00, 0x00, 0x08, 0x00};
|
||||||
|
|
||||||
|
|
||||||
|
void setup(){
|
||||||
|
Serial.begin(115200);
|
||||||
|
|
||||||
|
Serial1.begin(9600, SERIAL_8N1, 36, 4); //ESP32 RX1 IO36, TX1 IO4
|
||||||
|
|
||||||
|
// sendData(openAll, sizeof(openAll)); // Sepne vsechny rele
|
||||||
|
// delay(1000);
|
||||||
|
// sendData(closeAll, sizeof(closeAll)); // Rozepne vsechny rele
|
||||||
|
// delay(1000);
|
||||||
|
sendData(open1ch, sizeof(open1ch)); // Sepne rele 1
|
||||||
|
delay(1000);
|
||||||
|
sendData(close1ch, sizeof(close1ch)); // Rozepne rele 1
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void sendData(byte d[], int i){
|
||||||
|
byte crc[2];
|
||||||
|
|
||||||
|
uint16_t crcc = calcCRC(d, i);
|
||||||
|
uint8_t crc_l = (uint8_t)(crcc >> 8);
|
||||||
|
uint8_t crc_h = (uint8_t)crcc;
|
||||||
|
d[6] = crc_h;
|
||||||
|
d[7] = crc_l;
|
||||||
|
|
||||||
|
Serial1.write(d, i+2);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned short calcCRC(const unsigned char *indata, int len){
|
||||||
|
unsigned short crc=0xffff;
|
||||||
|
unsigned char temp;
|
||||||
|
int n;
|
||||||
|
while(len--){
|
||||||
|
crc=*indata^crc;
|
||||||
|
for(n=0;n<8;n++){
|
||||||
|
char TT;
|
||||||
|
TT=crc&1;
|
||||||
|
crc=crc>>1;
|
||||||
|
crc=crc&0x7fff;
|
||||||
|
if (TT==1){
|
||||||
|
crc=crc^0xa001;
|
||||||
|
crc=crc&0xffff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
indata++;
|
||||||
|
}
|
||||||
|
return crc;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue