loading

This instructable will cover the basic steps that you need to follow to get started with the ESP8266 ESP-12.

A lot of this content is already out there, but I had a hard time getting everything in place, and the different tutorials can cause a great deal of confusion, which is why I have tried to make the simplest setup possible.

Specifically, this instructable will cover how to make the ESP-12 behave as a WiFi client by connecting to your home wireless network and how to send sensor data ( we will send random numbers to test, and will not really be covering sensors in this instructable) to a Thingspeak channel.

The following are the materials we will be using :

1. ESP8266 ESP-12 module

2. CP2102 USB to UART Serial module

3. LM1117 3.3V Voltage Regulator

4. Jumper Wires

5. 5V Power adapter

Step 1: Breakout the ESP8266 ESP-12 onto a perforated board

The ESP-12 has a 2mm pitch, which means you cannot access all the pins on a breadboard or a perforated / dot matrix directly, which have a 2.54mm pitch (distance between adjacent pins).

You could use a Xbee adapter board, but there's an easier way out. Take a small length of single strand cable or multi strand cable, and get a spider web breakout like this. I added two rows of pinouts, to make sure the pins were handy. Here's what it looks like.

<p>Interesting, but perhaps I can make a contribution for people who dont get any response to the AT commands: I bought an ESP8266-12E module and separate BOB, soldered it all together, followed the instructions here....no reaction on AT at all. briefly connected reset, no response, change Baudrate, 9600, 115200 back and forth, double checked my connections, tried again... no result.<br>Kinda curious and eager to know if maybe i had a faulty module I thought 'heck with it' connected GPIO0 to ground and flashed a program. I admitt to my surprise that worked immediately, module works fine.<br><br>So maybe some modules just don't come with the Expressif AT commands flashed into them. Now having said that, i didnt try the baudrates between 9600 and 115200 but i guess I should have seen at least some gibberish in the serial monitor if being off with the baudrate was the only problem</p>
<p>Hola, un ejemplo mas de uso facil de ESP8266. Saludos mam@tinet.org</p><p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/bAA2Hnxggm8" width="500"></iframe></p>
<p>Thank you, but i didnt have a problem with i2c, nevertheless, tnx</p>
<p>were you seeing the led flash when it powered up? My led isn't lighting up. I'll try flashing a program next.</p>
<p>I dont think I saw it flash on powerup (when there is no program in it)</p>
<p>hello!<br><br>I'm having the same problem here, and I think the lack of a firmware might be my problem too!</p><p>But at this moment I do not have the USB/Serial converter, so I'm using Arduino to communicate with ESP. Is there a way to flash the ESP through Arduino?</p>
<p>yes, You'll be using the USB-TTL part of the arduino.<br>However just a correction.. you do not need/want a USB to serial converter but a USB to TTL and the Arduinoboard has one. Make sure though that connect via a levelshifter and that you remove the Atmegachip. Which I presume you already did for your current communication with the ESP</p>
<p>hummmm... this may be another reason. I was using the 3.3v from Arduino to feed the ESP (there are a lot of examples on web that worked with it). <br><br>I'm going to try first a separate power source. If it doesn't work, I'll try to flash it using UNO.<br><br>Thank you!<br><br>PS - I'm using the Logic Level shifter... so the connections should be TX &rarr; TX, or TX &rarr; RX?</p>
<p>well hence my advice/ the 3.3 Volt of the arduino is insuffucient.</p><p>when you use the arduino's usbt to ttl interface you need to connect tx to tx-pin and rx to rx-pin via the levelshufter. that might seem illogical but the Tx of the converter goes to the Rx of the atmega, if you connect that subsequently to the Rx of the ESP then in fact the Tx of the converter goes to rx of the esp</p>
<p>Got it!<br><br>I thought it was unnecessary once the maximum DC current that the ESP drains is 170mA (below the limit of 200mA, of Arduino).</p><p>I'll try it.<br><br>Thank you very much!</p>
<p>but first you may want to make sure you feed the ESP through a decent PSU (3.3V) as it can be a bit hungry and if it doesnt get enough juice then it may do a continous reset</p>
<p>Hi,</p><p>I am not able to type any AT commands in Arduino Serial Monitor or in Putty. I am using 9600 baudrate.</p><p>When I connect REST to GND, I see the messages [System Ready, Vendor:www.ai-thinker.com]. But I am not able sent any commands.</p><p>This is my configuration. </p><p>Tx of ESP8266 -&gt; Rx of CP2102</p><p>Rx of ESP8266 -&gt; Tx of CP2102</p><p>GND of ESP8266 &amp; GND of CP2102 -&gt; GND of LD33V</p><p>VCC of ESP8266 -&gt; VOut of LD33V</p><p>GPIO15 -&gt; GND</p><p>CH_PD -&gt; VCC</p><p>GPIO2 and GPIO0 -&gt; VCC</p><p>Any inputs on this will be much appreciated :)</p>
<p>first u have to check the baud-rate of your esp , probably it's working on 115200</p><p>after connecting don't forget after typing AT to press CTRL M then J</p>
<p>You should check if your ESP board supports 9600 baud rate. Most of them only support 115200 baud rate, unless you upgrade the firmware.</p>
<p>Thank you so so much. I didn't know what was I doing wrong. I had everything properly installed and it wasn't working. Changing the baud rate from 9600 ---&gt; to 115200 immediately fixed the problem. </p>
<p>Try to connect RX of ESP to RX of serial, and TX of ESP to TX of serial. all other as you are connecting now. </p>
<p>This might be an issue with the Reset pin, did you try pulling it up ?</p>
Yes I tried connecting RST-&gt; VCC. But it was still giving repeated System ready messages.
<p>I had to set baud rate to 115200 for esp-12f.</p><p>Before AT+CWJAP command I had to use AT+CIPMUX=1</p>
<p>Note that I find that AT+CIPMUX=1 needs to be done on each reset</p>
I want to control 6 relay for home automation.which ESP should i use?
<p>Thankyou <a href="http://www.instructables.com/member/ankitdaf/" rel="nofollow">ankitdaf</a>,<br>I was messing around with this ESP-12 and was not able to make it respond.</p><p>This instructable has helped working my ESP.</p><p>Regards.</p>
I hooked TX to TX &amp; rx to rx and got mine going.
<p>yeah, some USB to serial converters work like this, I have a PL2303 which works like this.</p>
<p>Hi Dawer,</p><p>I have a PL2303 module. my connections are following</p><p>tx of TTL converter to rxd of esp, similarly rx of ttl to TXD of esp.</p><p>GPIO0 is grounded. I am not getting any out on the serial monitor (not for any speed).</p><p>You are saying i should exchange the wires right. </p><p>Can you please help. </p>
<p>Got to work successfully.</p><p>I forgot to reset the device after connecting to ttl. Needed to adjust the speed to 115200 baud, and then hurray...</p><p>Ai-Thinker Technology Co.,Ltd.<br><br>ready<br>AT<br><br><br>OK<br>AT+GMR<br><br>AT version:0.40.0.0(Aug 8 2015 14:45:58)<br>SDK version:1.3.0<br>Ai-Thinker Technology Co.,Ltd.<br>Build:1.3.0.2 Sep 11 2015 11:48:04<br>OK</p>
<p>hi dawer_saeed, i have PL2303 too. But i cannot upload the sketch. Can you share the connection? Thanks</p>
<p>can you please post your connections what you are doing?<br>it would be good if you could post a fritzing circuit diagram.</p>
Still struggling with it, making some progress. Using the common connections. Only confusion is GPIO2 which SOME say it needs connected to +3.3. NO decent docs ANYWHERE n the web. :) I'm doing Arduino only with it.
<p>Actually you dont need to hookup the GPIO2 at all to make it working.</p><p>can you share your current circuit you have made?</p>
<p>Progress here! See my post elsewhere on the 12-e post. No one has mentioned that FOUR files need to be flashed to it - but I did and it works. How are you doing with yours?</p>
@BoB6, can you please post the link here to your post?
<p>BTW, how did you figured it out, that some other GPIOS also needs to be connected to Vcc or GND?<br>Did you get any official document on ESP-12?</p>
<p>Great! i made it. it was a little confusing the pinout but reading some comments i can see <a href="http://www.instructables.com/member/kaushikw" rel="nofollow">kaushikw</a> comment about different diagrams shown. Also mi esp come with an adapter module that you have take care and desolder the &quot;0 ohm&quot; resistor in red.</p><p>and it has two resistors included for piup and pindown.</p><p>Finally i can improve mi first design and now it has no wires! you can call them mark1 and mark2 and making the second listen to the song has no price!</p>
<p>Thank you for your setup, it help me.</p>
<p>ESP8266 E12</p><p><br>ERROR WHILE UPLOADING .......<br><br>warning: espcomm_sync failed<br>error: espcomm_open failed</p>
<p>If that can help.</p>
<p>I'm still confused what GPIOs 15 &amp; 2 need to be set to for normal boot mode (not flash mode). Can someone please clarify?</p>
<p>I think the connection diagram you've posted is for FLASHING the ESP8266 and the whole article is about RUNNING it. As it has GPIO 0 connected to GND and GPIO2 connected to High.<br>Hence a lot of confusion. <br><br>Correct me if i am wrong.</p>
<p>Thank you for helping me get a bare ESP8266 12e working. I did have two problems though. 1. I printed out the entire PDF with the instructions and it differs from the current instructions in that it says to connect GPIO 0 to ground. It has been corrected in the online instructable, but not the PDF. 2. The LED on the ESP8266 model never lit up, but at least the connection to the internet works!</p>
<p>Hi</p><p> In you instructable you say GPIO2 must be high, connected to 3.3v yet in other users designs theyhave said GPIO2 can be used as a normal GPIO port , </p><p>which way is correct ?</p>
<p>It has to be high to program and can be anything to use it. How you program it and its function afterwards are different things</p>
Thanks for explaining<br><br>So if I tie GPIO2 high through a 10k resistor it will be held high while I <br>program it but I can still use it as a normal I/O afterwards<br><br>One other question . Can I use GPIO16 as a normal I/O ? Some one said they thought it can be used but as an output only <br><br>Cheers<br>Don
<p>Doesn't quite answer your question but:<br><br>GPIO16 is often connected to RST to allow you to use deep sleep modes.<br><br>(GPIO16 goes low after the required time which resets the chip)<br><br>It appears that some manufacturers of 12's actually link them internally while others leave it to you as an option.</p>
I'm not 100% sure but think of it in terms of a circuit you build to program and another to run whatever you want to build. I think you wouldn't call it a gpio without it being both
<p>I am trying to flash nodemcu firmware to ESP-12M. The flasher stops after flashing half the firmware. Am I missing on any settings?</p><p>Any help is appreciated.</p>
<p>hi, </p><p>i have an error when i try</p><p><strong>AT+CIPSTART=&quot;TCP&quot;,&quot;api.thingspeak.com&quot;, 80</strong></p><p>and you?</p>
<p>I had the same problem, you probably copied this line from instructions above and there is unwanted spacing between &quot;,&quot; and &quot;80&quot;.</p><p>Try this and it should work:</p><p><strong>AT+CIPSTART=&quot;TCP&quot;,&quot;api.thingspeak.com&quot;,80</strong></p>
<p>thanks , i think it's ok now , i will try this week end</p>

About This Instructable

613,069views

411favorites

License:

More by ankitdaf:Turn your CC2541 based HM-10 Bluetooth Smart Module into an iBeacon Getting Started with the Daflabs ESP8266 ESP-12 Breakout Board Getting Started with the ESP8266 ESP-12 
Add instructable to: