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