ESP i I2C

User avatar
shimano73
Posts: 850
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Sat Nov 26, 2016 9:06 am

Są postępy , udało mi się uruchomić trzy rolety, ale nie obyło się pewnych modyfikacji pliku supladevice.cpp bez których nie chciało działać
zmiennna addRelay mat eraz postać :

bool SuplaDeviceClass::addRelay(int relayPin1, int relayPin2, bool hiIsLo, bool bistable, _supla_int_t functions) {

int c = addChannel(relayPin1, relayPin2, hiIsLo, bistable);
if ( c == -1 ) return false;

uint8_t _HI = hiIsLo ? LOW : HIGH;
uint8_t _LO = hiIsLo ? HIGH : LOW;

Params.reg_dev.channels[c].Type = SUPLA_CHANNELTYPE_RELAY;
Params.reg_dev.channels[c].FuncList = functions;

if ( relayPin1 <= 0 ) {
;pinMode(relayPin1, OUTPUT);
suplaDigitalWrite(Params.reg_dev.channels[c].Number, relayPin1, hiIsLo ? HIGH : LOW);

if ( bistable == false )
Params.reg_dev.channels[c].value[0] = suplaDigitalRead(Params.reg_dev.channels[c].Number, relayPin1) == _HI ? 1 : 0;
}

if ( relayPin2 <= 0 )
if ( bistable ) {

; pinMode(relayPin2, INPUT);
Params.reg_dev.channels[c].value[0] = suplaDigitalRead(Params.reg_dev.channels[c].Number, relayPin2) == HIGH ? 1 : 0;

} else {
;pinMode(relayPin2, OUTPUT);
suplaDigitalWrite(Params.reg_dev.channels[c].Number, relayPin2, hiIsLo ? HIGH : LOW);

if ( Params.reg_dev.channels[c].value[0] == 0
&& suplaDigitalRead(Params.reg_dev.channels[c].Number, relayPin2) == _HI )
Params.reg_dev.channels[c].value[0] = 2;
}


return true;
}


Być może, można to zmodyfikować i wstawić to do mojego programu ale nie wiem jak.
Musze jeszcze dodać wejśća do lokalnego sterowania roletą, chyba dam radę :|
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Post Reply