Open gmx168 opened 2 months ago
Na rynku jest kilka urządzeń mających sterowanie przez UART dla 2 i 4 przekaźników.
W rozwiazaniu autora Elmaya: Sekwencje wysyłane na konsolę UART 19200 dla 4 przekaźników. byte relay_1_on[] = {0xA0, 0x01, 0x01, 0xA2}; byte relay_1_off[] = {0xA0, 0x01, 0x00, 0xA1}; byte relay_2_on[] = {0xA0, 0x02, 0x01, 0xA3}; byte relay_2_off[] = {0xA0, 0x02, 0x00, 0xA2}; byte relay_3_on[] = {0xA0, 0x03, 0x01, 0xA4}; byte relay_3_off[] = {0xA0, 0x03, 0x00, 0xA3}; byte relay_4_on[] = {0xA0, 0x04, 0x01, 0xA5}; byte relay_4_off[] = {0xA0, 0x04, 0x00, 0xA4};
Sterowanie wirtualnymi PINami (za Elmaya): const uint8_t RELAY_1_PIN = 100; const uint8_t RELAY_2_PIN = 101; const uint8_t RELAY_3_PIN = 102; const uint8_t RELAY_4_PIN = 103; Elmaya zdefiniowal klasę dziedziczącą za Supla::IO
class LC_4x : public Supla::Io { public: void customDigitalWrite(int channelNumber, uint8_t pin, uint8_t val) { if ((pin == 100)) { if (val == 1) { Serial.write(relay_1_on, sizeof(relay_1_on)); delay(20); state_rele_1 = true; } else { Serial.write(relay_1_off, sizeof(relay_1_off)); delay(20); state_rele_1 = false; } return; } if ((pin == 101)) { if (val == 1) { Serial.write(relay_2_on, sizeof(relay_2_on)); delay(20); state_rele_2 = true; } else { Serial.write(relay_2_off, sizeof(relay_2_off)); delay(20); state_rele_2 = false; } return; } if ((pin == 102)) { if (val == 1) { Serial.write(relay_3_on, sizeof(relay_3_on)); delay(20); state_rele_3 = true; } else { Serial.write(relay_3_off, sizeof(relay_3_off)); delay(20); state_rele_3 = false; } return; } if ((pin == 103)) { if (val == 1) { Serial.write(relay_4_on, sizeof(relay_4_on)); delay(20); state_rele_4 = true; } else { Serial.write(relay_4_off, sizeof(relay_4_off)); delay(20); state_rele_4 = false; } return; } if (pin <= 99) { return ::digitalWrite(pin, val); } }
int customDigitalRead(int channelNumber, uint8_t pin) { switch (pin) { case 100: return state_rele_1; case 101: return state_rele_2; case 102: return state_rele_3; case 103: return state_rele_4; default: return ::digitalRead(pin); } }
} LC_4x;
Wg mnie zgodność wsteczna (LC już nie są popularne jak kiedyś w SONOFF Basic ale tez w rozwiązaniach 4 przekaźników nadal są tanie na Aliexpress.
Na rynku jest kilka urządzeń mających sterowanie przez UART dla 2 i 4 przekaźników.
W rozwiazaniu autora Elmaya: Sekwencje wysyłane na konsolę UART 19200 dla 4 przekaźników. byte relay_1_on[] = {0xA0, 0x01, 0x01, 0xA2}; byte relay_1_off[] = {0xA0, 0x01, 0x00, 0xA1}; byte relay_2_on[] = {0xA0, 0x02, 0x01, 0xA3}; byte relay_2_off[] = {0xA0, 0x02, 0x00, 0xA2}; byte relay_3_on[] = {0xA0, 0x03, 0x01, 0xA4}; byte relay_3_off[] = {0xA0, 0x03, 0x00, 0xA3}; byte relay_4_on[] = {0xA0, 0x04, 0x01, 0xA5}; byte relay_4_off[] = {0xA0, 0x04, 0x00, 0xA4};
Sterowanie wirtualnymi PINami (za Elmaya): const uint8_t RELAY_1_PIN = 100; const uint8_t RELAY_2_PIN = 101; const uint8_t RELAY_3_PIN = 102; const uint8_t RELAY_4_PIN = 103; Elmaya zdefiniowal klasę dziedziczącą za Supla::IO
class LC_4x : public Supla::Io { public: void customDigitalWrite(int channelNumber, uint8_t pin, uint8_t val) { if ((pin == 100)) { if (val == 1) { Serial.write(relay_1_on, sizeof(relay_1_on)); delay(20); state_rele_1 = true; } else { Serial.write(relay_1_off, sizeof(relay_1_off)); delay(20); state_rele_1 = false; } return; } if ((pin == 101)) { if (val == 1) { Serial.write(relay_2_on, sizeof(relay_2_on)); delay(20); state_rele_2 = true; } else { Serial.write(relay_2_off, sizeof(relay_2_off)); delay(20); state_rele_2 = false; } return; } if ((pin == 102)) { if (val == 1) { Serial.write(relay_3_on, sizeof(relay_3_on)); delay(20); state_rele_3 = true; } else { Serial.write(relay_3_off, sizeof(relay_3_off)); delay(20); state_rele_3 = false; } return; } if ((pin == 103)) { if (val == 1) { Serial.write(relay_4_on, sizeof(relay_4_on)); delay(20); state_rele_4 = true; } else { Serial.write(relay_4_off, sizeof(relay_4_off)); delay(20); state_rele_4 = false; } return; } if (pin <= 99) { return ::digitalWrite(pin, val); } }
} LC_4x;
Wg mnie zgodność wsteczna (LC już nie są popularne jak kiedyś w SONOFF Basic ale tez w rozwiązaniach 4 przekaźników nadal są tanie na Aliexpress.