ESP8266 Support WIKI

User Tools

Site Tools


arduino-docs

**This is an old revision of the document!**

Table of Contents


Arduiono IDE for ESP8266

Basic Arduino functions and classes

Standard Libs

Wire

+

EEPROM

EEPROM functionality is similar to the standard Arduino library with the exception of having to declare memory size and committing writes.

example

#include <EEPROM.h>
 
void setup()
{
     //Init EEPROM, note the size requirement. I believe 4096B is the maximum available.
     //You could use a smaller amount/size.
     EEPROM.begin(4096);
     for( int i = 0; i < 4096; i++ )
     {
          EEPROM.write(i,i);
     }
     EEPROM.commit(); //note here the commit!
}

NOTE: EEPROMAnything can be used with one simple modification. Find the EEPROMAnything.h and add EEPROM.commit(); after the EEPROM.write(ee++, *p++);

EEPROMAnything provides nice functionality to save any type of variables including structers.

#include <EEPROMAnything.h>
struct eepromInfoType
{
     uint8_t My8In;
     char MyCharArray[25]
} myStructOriginal, myStructCopy;
 
void setup()
{
     myStruct.My8Int = 0; //assign some value
     strcpy( MyCharArray, "Less than 25 chars" ); //assign some value
     EEPROM_writeAnything( 0, myStructOriginal ); //remember to modify EEPROM_writeAnything by adding   .commit().
     //Lets read it back
     EEPROM_readAnything( 0, myStructCopy );        
}
 
void loop() {//nothing here}

EEPROM

content

ESP Specific Libs

SDK-API (1.0.0)

If you want to use some the the SDK-API functions have a look at this link http://bbs.espressif.com/viewtopic.php?f=5&t=286

The Documentation can be found here http://bbs.espressif.com/download/file.php?id=253

To use the API you have to include some header-files in your sketch. Below is a quick example of using the RTC-Memory-Write API to make a counter persistent even after using sleep + the following reset.

#include <Streaming.h>
 
// Include API-Headers
extern "C" {
#include "ets_sys.h"
#include "os_type.h"
#include "osapi.h"
#include "mem.h"
#include "user_interface.h"
#include "cont.h"
}
 
// Counter
uint32_t i = 0;
// Temporary buffer
uint32_t b = 0;
 
void setup() {
  Serial.begin(115200);
  // Call API-Function
  system_deep_sleep_set_option(4);
  // Call API-Function
  system_rtc_mem_read(64,&b,4) << endl;
  // Check if the value is within expected range
  if(b < 100000)
    i = b;
}
 
int lap = 0;
void loop() {
  for(int c = 0; c < 50; c++)
  {
    Serial << i++ << " " << lap << endl;
    delay(10);
  }
  // Call API-Function
  system_rtc_mem_write(64,&i,4) << endl;
  delay(1000);
  // Call API-Function
  system_deep_sleep(10000000);
  lap++;
}

ESP8266WiFi

Connect with static IP

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <IPAddress.h>
 
const char* ssid = ".....";
const char* password = ".....";
 
void setup(void)
{
  Serial.begin(115200);
 
 
  // Connect to WiFi network
  WiFi.begin(ssid, password);
  //set static ip part
  WiFi.config(IPAddress(192,168,1,118), IPAddress(192,168,1,1), IPAddress(255,255,255,0));
 
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(200);
  }
 
 
  Serial.println(WiFi.localIP());
 
}
 

ESP8266mDNS

content

ESP8266WebServer

content

arduino-docs.1430852931.txt.gz · Last modified: 2015/05/05 19:08 by russmathis

Page Tools