I'm currently developing an Arduino library for the module. It's based in a previous and tested one for a SIM900 GPRS module developed about a year ago (currently not public), that use AT commands too.
The main goal for the library was to minimize RAM usage and use non blocking methods (no delay, no while(),...) to receive AT responses, so while the module is procesing the request and preparing a response, we can do other stuff in the loop().
It works with mainly 3 set of commands:
- - Some commands to indicate what to do (i called it tasks): reset(), getLocaIP(), getConnectionStatus(), connect(), sendData(), ...
- The doWork(int ms) function, to start doing the selected task during the amount of ms in the parameter, or less. This is tipically called each loop() iteration.
- The getWorkingStatus(), to get if the task is starting, running, finished with errors, timedout, etc...
There are not a lot of AT commands now, but I'm sure the number is going to increase, giving access to GPIO, more control over RX data and more stuff.
https://github.com/aabella/ESP8266-Arduino-library
I'm sharing this here because everithing is better in community, so i'm glad to accept any idea you can share!!