title: How to make AT commands work programatically in arduino for ESP8266 wifi module
body: <p>I am doing a simple tcp communication from an arduino to raspberry-pi wirelessly with an ESP8266 wifi module on arduino uno.The tcp server is running on the raspberry-pi.I am able to do TCP communication with the following AT commands in arduino serial monitor at a baudrate of 9600.</p>
  
  <pre><code>AT+CIPMUX=1
  AT+CIPSTART=4,"TCP","192.168.43.150",7777
  AT+CIPSEND=4,5
  &gt;hai
  </code></pre>
  
  <p>How to do this programatically in an arduino sketch.I used the following code on my arduino uno,but still without any success.The baudrate is 9600 only since it is working directly in serial monitor.</p>
  
  <pre><code>#include &lt;SoftwareSerial.h&gt;
  SoftwareSerial esp8266(2,3);
  
  void setup()
  {
    Serial.begin(9600);
    esp8266.begin(9600); // your esp's baud rate might be different
  }
  
  void loop()
  {
   esp8266.println("AT");
   if(esp8266.available()) // check if the esp is sending a message 
   {
   while(esp8266.available())
    {
      // The esp has data so display its output to the serial window 
      char c = esp8266.read(); // read the next character.
      Serial.write(c);
    }  
   }
  }
  </code></pre>
  
  <p>The connections are as follows</p>
  
  <pre><code>  ESP8266  Arduino Uno
  
    Vcc       3.3V
    CH_PD     3.3V
    RX        RX(PIN 2) 
    TX        TX(PIN 3)
    GND       GND 
  </code></pre>