Tag Archives: ham radio

Web-To-LCD

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.

Features include:
– 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
to
#define _SS_MAX_RX_BUFF 256 // RX buffer size

Here are some examples of the display:

Weather:
weather
Weather (big font):
weather_big
Amateur (Ham) Radio band openings:
ham_band_conditions
Solar-Terrestrial data:
ham_solar_conditions
Stocks:
stock
Stocks (big font):
stock_big
News:
news

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.
Web-to-LCD_schem

First build on protoboard:
proto-1

Second build:
proto2 proto3

Here’s a real simple enclosure made from a dollar store picture frame and some bolts:
proto4-640

 

The code is available on GitHub.