Arduino+ESP8266 XML/RSS/HTML to LCD for Weather/News/Ham Radio/Stocks etc
Here is a project that pulls data from the internet and displays it on an LCD. I use a 20×4 character display but this will work on a 16×2 as well. I’ve tried to make this program easily adaptable to many different kinds of data. The working version has examples for weather, news, amateur (ham) radio and stocks.
Data is easily pulled from the web and displayed on the LCD with a few simple parameters.
– A large custom alphanumeric font
– Correct wrapping of text on the 20×4 LCD
– Removal of IPD+ messages from the ESP8266
– Special character replacement
– Custom formatting with grid layout or specify the number columns in each row.
To make the ESP8266 play nice with the Arduino I had to flash the ESP with a firmware that sets the serial data rate to 9600. I also had to increase the Arduino’s software serial buffer to 256 (from 64). Look at the GitHub page for firmware and flashing software. I found the flashing instructions at: http://www.xess.com/blog/esp8266-reflash/
To increase your software serial buffer, first find your software serial library. On my mac I had to control-click on the arduino app and choose “show package contents”. Navigate to: /Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.h
and change the line:
#define _SS_MAX_RX_BUFF 64 // RX buffer size
#define _SS_MAX_RX_BUFF 256 // RX buffer size
Here are some examples of the display:
|Weather (big font):
|Amateur (Ham) Radio band openings:
|Stocks (big font):
Here is the schematic. You can use any 6 arduino pins for the LCD and any two pins for software serial (some boards, like mega, don’t support all pins for software serial). Just define the pins you use in the code. Note that the ESP8266 needs a 3.3V for power and RX. I used a regulator for the power and a voltage divider on the RX. The arduino’s 3.3V output did not supply enough current to the ESP8266 in my tests.
First build on protoboard:
Here’s a real simple enclosure made from a dollar store picture frame and some bolts:
The code is available on GitHub.