Sunday, July 31, 2016

ESP8266, Send and Receive HTTP Request, PART-1

The Beginning
==========
I bought two of ESP8266 from my local store. And try to play with them using Arduino UNO.
The ESP8266 needs the 3.3 powersupply. And tried to use the 3.3 of the UNO but no avail.
So i setup the LM317T in a breadboard like this.


And after wiring all the stuffs. is become



Materials:
1x LM317T
1x 10uF Polar Capacitor
1x 220ohm
1x 470ohm (i replace it with 1k resistor) (5V powersupply)
1x 470ohm with 9V powersupply
2x 47ohm ( to perform as dummy load, no need for later usage)

**Fritzing, will be updated soon**

I replaced the 470 with 1k simply because if the dummy load is attached the voltage drop badly.
After several trial&error the best fit is 1k. It is showing 3.6 with no load with 4.8V from the USB
wallplug powersupply. Then i arrange my UNO and ESP8266 as in the picture.


**Fritzing, will be updated soon**

1. AT+CWMODE=1
    1 => Connect to Station or as a client
    2 => As Router
    3 => Both, you will notice that it has router ip and static client IP by AT+CIFSR
2. AT+CIPSTA="192.168.1.95"
    Set static IP
3. AT+CWJAP="TP-LINK_BOSSD","**yourpassword**"
    To connect to your wifi
4. AT+CIPMUX=1
    Whether to use Multiple connection or Single, later in my code i use single
5. AT+CIPSTART=1,"TCP","your.server.com",80
    Open a Connection
6. AT+CIPSEND=1,+2
    Where the 1 for the Multiple ID but to simplify later i use Mux=0 (Single) so you only need to
    create the AT command with AT+CIPSEND=NByte
    Where NByet is the length of your string,
    Example: GET /minimal.php/this HTTP/1.0  <-- 30="" br="" chars="" in="" is="" length="">    Total of NLength is 30 plus 2 pairs of NL/CR \r\n.
 
    Note if your trying these steps using the arduino serial monitor dialog,
    then set the ending to "Both NL/CR", paste the "GET ..." string
    and hit an Enter key and one more Enter key.

Troubleshoot
=========
1. While the 2 Arduino UNO hooks to my Laptop,
    The esp8266 serial line keeps jumping and sending data.
    By powering one of the UNO to external power removed the `jumpy`
2. Arduino 5V must also connected to external power supply that source the LM317T
   Which i use an USB 5V wallplug.


   ** Which result not enough current **
   The specs say 5V 1A but unable to power these 2x Atmega328, 1x ESP8266, 1x RC522 Module, 
   LCD 16x2,  I2C Lcd, though. Using 9V 0.6A powersupply works great. 



   This one also fails.
3.AT+IPR=9600 to change the baudrate. DO NOT USE THIS!!!
   but to use AT+UART=9600,8,1,0,0 (The flow control has to be disabled!)
4. I set my HardwareSerial or Serial.begin(19200) twice of the SoftwareSerial
    after several trial&error it is better to configured like such to remove gibberish output.
    Using 9V also gives more stability. All gibberish are almost removed completely.
5. Zener 3.3V and a resistor of 68ohm before the zener to GND fails to provide
    stable 3.3V, it always shows 4.5V
6. All GND must be connected! I forgot to connect my Arduino GDN to common GND
    and the result is gibberish output at the serial monitor

Reference
=========
1. The full AT commands
2. I found the doc about AT+UART to change baudrate here but it says that is deprecated??
    as my AT+GMR output is this
    AT+GMR
    AT version:0.21.0.0
    SDK version:0.9.5



No comments: