Arduino + ESP-01 1602 LED

    This page is to Setup and Config ESP-01 + 1602 LED
 

Hardware and Software

Hardware 
    Arduino + ESP 01

Software 
    Arduino IDE

  // ESP8266 with 16x2 i2c LCD
  // Compatible with the Arduino IDE 1.6.6
  // Library https://github.com/agnunez/ESP8266-I2C-LCD1602
  // Original Library https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
  // Modified for ESP8266 with GPIO0-SDA GPIO2-SCL and LCD1206 display
  // edit library and change Wire.begin() by Wire.begin(sda,scl) or other GPIO's used for I2C
  // and access from lcd.begin(sda,scl)

Example : http://ruten-proteus.blogspot.hk/2015/05/esp8266-esp-01-at023-sdk101.html

Sanki Notes



Examples

          This example is Display on 1602 LED by ESP-01
  1.   // ESP8266 with 16x2 i2c LCD
      // Compatible with the Arduino IDE 1.6.6
      // Library https://github.com/agnunez/ESP8266-I2C-LCD1602
      // Original Library https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
      // Modified for ESP8266 with GPIO0-SDA GPIO2-SCL and LCD1206 display
      // edit library and change Wire.begin() by Wire.begin(sda,scl) or other GPIO's used for I2C
      // and access from lcd.begin(sda,scl)
      
    /**
     * Displays text sent over the serial port (e.g. from the Serial Monitor) on
     * an attached LCD.
     */
    #include <Wire.h> 
    #include <LiquidCrystal_I2C.h>

    // Set the LCD address to 0x27 for a 16 chars and 2 line display
    LiquidCrystal_I2C lcd(0x27, 16, 2);

    void setup()
    {
    lcd.begin(0,2);
    lcd.backlight();
      
    // Initialize the serial port at a speed of 9600 baud
    Serial.begin(9600);
    }

    void loop()
    {
    // If characters arrived over the serial port...
    if (Serial.available()) {
    // Wait a bit for the entire message to arrive
    delay(100);
    // Clear the screen
    lcd.clear();

    // Write all characters received with the serial port to the LCD.
    while (Serial.available() > 0) {
    lcd.write(Serial.read());
    }
    }
    }

Examples

          Character Example -- Very Good
  1.    // ESP8266 with 16x2 i2c LCD
      // Compatible with the Arduino IDE 1.6.6
      // Library https://github.com/agnunez/ESP8266-I2C-LCD1602
      // Original Library https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
      // Modified for ESP8266 with GPIO0-SDA GPIO2-SCL and LCD1206 display
      // edit library and change Wire.begin() by Wire.begin(sda,scl) or other GPIO's used for I2C
      // and access from lcd.begin(sda,scl)
      
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>

    uint8_t bell[8]  = {0x4, 0xe, 0xe, 0xe, 0x1f, 0x0, 0x4};
    uint8_t note[8]  = {0x2, 0x3, 0x2, 0xe, 0x1e, 0xc, 0x0};
    uint8_t clock[8] = {0x0, 0xe, 0x15, 0x17, 0x11, 0xe, 0x0};
    uint8_t heart[8] = {0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0};
    uint8_t duck[8]  = {0x0, 0xc, 0x1d, 0xf, 0xf, 0x6, 0x0};
    uint8_t check[8] = {0x0, 0x1 ,0x3, 0x16, 0x1c, 0x8, 0x0};
    uint8_t cross[8] = {0x0, 0x1b, 0xe, 0x4, 0xe, 0x1b, 0x0};
    uint8_t retarrow[8] = { 0x1, 0x1, 0x5, 0x9, 0x1f, 0x8, 0x4};

    // Set the LCD address to 0x27 for a 16 chars and 2 line display
    LiquidCrystal_I2C lcd(0x27, 16, 2);

    void setup()
    {
    lcd.begin(0,2);
    lcd.backlight();

    lcd.createChar(0, bell);
    lcd.createChar(1, note);
    lcd.createChar(2, clock);
    lcd.createChar(3, heart);
    lcd.createChar(4, duck);
    lcd.createChar(5, check);
    lcd.createChar(6, cross);
    lcd.createChar(7, retarrow);
    lcd.home();

    lcd.print("Hello world...");
    lcd.setCursor(0, 1);
    lcd.print(" i ");
    lcd.write(3);
    lcd.print(" arduinos!");
    delay(5000);
    displayKeyCodes();
    }

    // display all keycodes
    void displayKeyCodes(void) {
    uint8_t i = 0;

    while (1) {
    lcd.clear();
    lcd.print("Codes 0x");
    lcd.print(i, HEX);
    lcd.print("-0x");
    lcd.print(i + 16, HEX);
    lcd.setCursor(0, 1);

    for (int j = 0; j < 16; j++) {
    lcd.write(i + j);
    }
    i += 16;

    delay(4000);
    }
    }

    void loop()
    {
    // Do nothing here...
    }

Examples - Position 

          Character Example -- Very Good
  1.    // ESP8266 with 16x2 i2c LCD
      // Compatible with the Arduino IDE 1.6.6
      // Library https://github.com/agnunez/ESP8266-I2C-LCD1602
      // Original Library https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
      // Modified for ESP8266 with GPIO0-SDA GPIO2-SCL and LCD1206 display
      // edit library and change Wire.begin() by Wire.begin(sda,scl) or other GPIO's used for I2C
      // and access from lcd.begin(sda,scl)
      
    #include <LiquidCrystal_I2C.h>
    #include <Wire.h> 
      
      LiquidCrystal_I2C lcd(0x27,16,2); // Check I2C address of LCD, normally 0x27 or 0x3F
      
      uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0};  // example sprite bitmap
      
      void setup()  {
        lcd.begin(0,2);      // In ESP8266-01, SDA=0, SCL=2               
        lcd.backlight();
        lcd.createChar(1, heart);
      }
      
      void loop()  {
        lcd.home();                // At column=0, row=0
        lcd.print("ESP8266");   
        lcd.setCursor(0, 1);
        lcd.print("LiquidCrystalI2C");
        delay(500);
        lcd.setCursor(10, 0);      // At column=10, row=0
        lcd.write(byte(1));
        delay(500);
        lcd.setCursor(10, 0);      // At column=10, row=0
        lcd.print(" ");            // Wipe sprite
      }