Saturday, February 28, 2015

Arduino Library for ESP8266

There are many ESP8266 libraries, but I cannot find the one that for me, so I made it from scratch. It is simple library that the object is small sensor client, so many function is omitting. The following is the function list.

  • Scan
  • MAC address API
  • AP connection (of course)
  • only TCP client socket read / write

The memory footprint is a pro of this library. My sensor node with this library has the following memory foot print.


Sketch uses 19,934 bytes (64%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,030 bytes (50%) of dynamic memory, leaving 1,018 bytes for local variables. Maximum is 2,048 bytes.


Adafruit CC3000 version of the sensor node has the following foot print. :

Sketch uses 29,406 bytes (95%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,311 bytes (64%) of dynamic memory, leaving 737 bytes for local variables. Maximum is 2,048 bytes.

Still there are many problems due to firmware version and timing issue of the response. However, I hope this may be used.

The firmware version and HW that I used is :
Firmware version : AT version:0.21.0.0 SDK version:0.9.5
Aduino pro mini
ESP8266MOD from Ai-thinker

This library is designed to used with AltSoftSerial with some patch included.

The source code : https://github.com/chiknhed/esp8266_client

Happy Arduino Life ~

The following is public member function list. :
ESP8266ClientClass();
wl_status_t begin(char * ssid = NULL, char * password = NULL, byte * mac = NULL);
wl_status_t status(void);
bool connect(char * host, unsigned int port);
bool isConnected(void);
void disconnect(void);
void print(char * buffer);
void print(const __FlashStringHelper *ifsh);
void readLoop(void);
void setTimeout(long timeout);
byte readBytes(char* buffer, byte buffer_size);
bool startScan(void);
bool scanEntry(char * ssid, char * rssi, byte *security);
void getMac(byte mac[6]);

No comments:

Post a Comment