Monthly Archives: October 2016

Building a wifi LiquidCrystal-Display esp8266 for less than 10 EUR

As planned, I now built and esp8266 version of the display. Because the breadboard version was working quite well from the start, I decided to build a more permanent version.  The 5V of the USB Cable (or any other 5V Source) gets stepped down by a LM2596 circuit in a Fp6190 I purchased some time ago. This is a quite cheap and energy efficient solution. The complete setup requires about 70mA at 5Vs. This surely can be optimized by dimming the brightness of the display. In case you want to build your own wifi LiquidCrystal-Display esp8266 use the details provided below and check the code on Github. Happy hacking!

Parts List

  • 2,00€ ESP8266 12-Q
  • 2,00€ Fp6190 5V to 3.3V step down converter
  • 1,50€ LiquidCrystal-Display Blue
  • 1.6kOhm resistor or 10k potentiometer
  • prototyping board
  • cables
  • pins

 

Wiring

 LCD    -> ESP8266 12-Q
 following pinmap http://arduino.esp8266.com/versions/1.6.5-1160-gef26c5f/doc/esp12.png
  --------------------------
  1|VSS| -> USB GND
  2|VDD| -> USB 5V +5v
  3|VO | -> USB GND pin + 1,6k ohm Resistor
  4|RS | -> ESP2866  pin 4
  5|RW | -> ESP2866 GND
  6|E  | -> ESP2866 pin 5
 11|D4 | -> ESP2866 pin 13
 12|D5 | -> ESP2866 pin 12
 13|D6 | -> ESP2866 pin 14
 14|D7 | -> ESP2866 pin 16
 15|A  | -> GND + no or a below 10k Resistor  to dimm background light (Backlight power)
 16|K  | -> USB GND (Backlight ground)

Code

This time on GitHub.

 

Smart Electronics LCD Module Display Monitor 1602 5V Blue

LiquidCrystal-Display blue 1602 Arduino Nano

I recently bought several “Smart Electronics LCD Module Display Monitor 1602 5V Blue” for building a wifi alarm clock. It uses the very common Hitachi HD44780 driver. To verify if they are working I followed this well described tutorial on arduino.cc and used a arduino nano for that. Removing the 10k ohms resistor, because it dimmed the LED background light way to much and after adjusting the potentiometer to about 1,64k ohms the visibility of desired output was optimal.

For the sake of documentation the:

Wiring

 LCD    -> Arduino
  --------------------------
  1|VSS| -> Arduino GND
  2|VDD| -> Arduino +5v
  3|VO | -> Arduino GND pin + 1,6k ohm Resistor or Potentiometer
  4|RS | -> Arduino pin 12
  5|RW | -> Arduino GND - pin can be conected to 11. But Ground was used here.
  6|E  | -> Arduino pin 11
 11|D4 | -> Arduino pin 5
 12|D5 | -> Arduino pin 4
 13|D6 | -> Arduino pin 3
 14|D7 | -> Arduino pin 2
 15|A  | -> GND + no or a below 10k Resistor  to dimm background light (Backlight power)
 16|K  | -> Arduino GND (Backlight ground)

Code

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.display();
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);

  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1 (second row)
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

The next step is to connect it to an esp8266 and figuring out if the new 3.3V signal strength will be enough. A possible solution would be to use the esp8266 only as a communication device.