I've deleted your other cross-post @loli_roller.Cross-posting is against the rules of the forum. The reason is that duplicate posts can waste the time of the people trying to help. Someone might spend 15 minutes (or more) writing a detailed answer on this topic, without knowing that someone else already did the same in the other topic.Repeated cross-posting will result in a suspension from the forum.In the future, please take some time to pick the forum board that best suits the topic of your question and then only post once to that forum board. This is basic forum etiquette, as explained in the sticky "How to use this forum - please read." post you will find at the top of every forum board. It contains a lot of other useful information. Please read it.Thanks in advance for your cooperation.
loli_roller, I suggest you delete this post and post your question in the projects topic area, as that area seems to have much more traffic and views.
do you want to write your own sketch for esp, or you want to use a firmware in esp and a corresponding networking library in Uno (like AT firmware and WiFiEsp(AT) library)?
The ESP-01 has four I/O pins available. You use it to feed a 74HC595 which gives you eight outputs for your relay board.An Arduino board is superfluous (and a UNO is particularly cumbersome).
How i mean mine has 2 GPIO 01 and 02 and the others are rst, rx, tx and en
Pin 1 and 3 are usable as GPIO pins if you don't use Serial - where the caveat is that those pins are also for programming, so you still have to be careful with whet gets attached to it. GPIO0 and GPIO2 are involved in the boot process; GPIO0 must have a fixed external pull-up; GPIO2 must be left floating or pulled up for proper boot (the internal pull-up will be enabled during boot). If using a latching shift register like the 595 use GPIO0, 1 and 3 (don't use Serial in the sketch), that leaves GPIO2 (Serial1 TX) available for debugging. As all three shift register pins are inputs, you will still be able to program the device over Serial.If using a non latching shift register like the 164 I'd use GPIO0 and 2 for the data and clock pins, leaving GPIO1 and 3 free - for Serial, for example.