If you need only the outputs (control transistor, relay, led) that is cheaper to use the shift register (the first nakupenda article: robocraft.ru/blog/arduino/519.html
). Management - SPI.
If you later need a full port, which can work as input or output, here's an article ( we.easyelectronics.ru/part/i2c-rasshiritel-portov-...
) about the i2c expander ports.
For 1wire something similar happened, but immediately couldn't find.