As I understand the ESP8266 must use 3.3V to power it but you can't just use the 3.3V output on the arduino because it wont supply enough current. So that means I must use the 5V output on the arduino meaning that I will have to lower the voltage before it gets to the esp.
I found this on amazon and was wondering if that would work?
And to make things more complicated I also found out that the tx pin on the arduino is 5V and the esp rx pin is 3.3V.
So could I just use the step down thing on amazon for both the main power from the 5V pin and the tx pin from the arduino?
For your first steps with ESP8266 and Arduino, you can use a setup like this:
ESP8266 will need up to about 250mA for short times, the capacitor will help to "jump over"
The two resistors will bring down Arduino's 5 Volt TX to acceptable voltage for the ESP RX pin (voltage divider).
Sooner or later you should get an appropriate power supply for the ESP. The one in your link may work if you have 5 Volt around.
But the ESP is often used as "standalone" (without any Arduino) because it is a powerful chip (fast, much flash much RAM, compared to most Arduino boards) and it can be programmed directly with the Arduino IDE (for core see: GitHub - esp8266/Arduino: ESP8266 core for Arduino).
So you need a power supply anyway.
uxomm:
The two resistors will bring down Arduino's 5 Volt TX to acceptable voltage for the ESP RX pin (voltage divider).
@uxomm: I have read on some article said that the way of voltage dividing above is dirty, not good and should be used a dedicated level shift IC. Is it stable for a commercial product if using your way? Thanks
The voltage divider works OK for the baud rates that software serial is capable of communicating reliably (max 38400 in my experience). If you are using hardware serial, then yes. a level shifter will work better.