The emonGLCD is an open-source general purpose wireless graphical LCD display unit. It has been designed with displaying energy monitoring data in mind. The unit comes with it's own table stand or it can be mounted on a wall. Powered by an Atmega328 which is Arduino compatible. The emonGLCD can receive data from any sensing node in its surroundings such as an EmonTx or EmonTH and can be configured to receive the time from the basestation.
- ATmega 328 with Arduino Uno bootloader
- 128x64 ST7565 LCD display
- White PWM LED backlight
- On-board HopeRF RFM12B wireless transceiver module
- Power supply: 5V mini-USB
- DS18B20 on-board temperature sensor
- On-board LDR light sensor
- Based on JeeLabs.org designs and uses Adafruit/JeeLabs GLCD library
- Software RTC updated from the internet via emonbase.
The emonGLCD is open hardware with the designs released under the Creative Commons Attribution-ShareAlike 3.0 Unported License. The schematics and board files can be viewed and downloaded from the openenergymonitor github hardware repository here:
- emonGLCD Fascia CAD design is up on Thingiverse
Design is based on jeelabs GLCD design.
EmonGLCD Arduino example code can be found on github here, see readme for details on the different examples:
|Function||emonGLCD V1.2 (old)||emonGLCD V1.3+|
|Push button(s)||Dig15 / ADC||Dig 15 (enter), dig 16 (up) and dig 19 (down) - requires software pull-up, active low (V1.3 only). Blog post|
|Temperature sensor||Dig 5||Dig 5|
|LDR light sensor||ADC0 – see V1.2 bugs page||ADC4|
|Tri-color LED Red||Dig 9 – PWM||Dig 9 – PWM|
|Tri-colour LCD Green||Dig 8||Dig 6 – PWM|
Hardware revision track
- First release
- LDR moved to ADC4,
- LED from Dig 8 to Dig 6 to be on PWM output
- Added two extra push buttons for menu navigation (Dig 16 and Dig19) - don't work. Update: they do work!
- Connected backlight directly to IRQ PWM
- Added two additional menu selection buttons to make three in total
- Fixed switches connections
- Connected LCD to 3.3V instead of 5V
- External power connection now routed through voltage reg - accepts input from 5-12V
- Corrected orientation of C13 and C14, this fixed issue of LCD contrast fading
- 12/03/13 - Fix Dig 8 and Dig 6 short and silkscreen error on JeePort3: http://openenergymonitor.org/emon/node/2063
- Built lithium in battery pack + usb charging circuit?
- Female headers to attach LCD
- Change LCD module to a more mainstream and lower cost unit
- RGB PWM backlight
- SMT components pre assembled
Realtime Clock: A Raspberry Pi-based emonhub can be configured to send the current time information to an emonGLCD.
On the Pi, edit the emonhub.conf (usually /boot/emonhub.conf) using a text editor. Find the section labelled [[RFM2Pi]] [[[runtimesettings]]], add the following line, and save. (No need to restart)
interval = 300
This will send the current time using its RFM12b, every 5 minutes (5 x 60 secs)
Create display graphics See forum thread for python tool to create glcd graphics from a bitmap: http://openenergymonitor.org/emon/node/3957
RF Signal Strength Meter Scanner by Martin Roberts:
see forum thread http://openenergymonitor.org/emon/node/2395
Touchscreen: Nathan Chantrell has been been doing some awesome experimenting with a DS resistive touchscreen layer and RGB PWM backlight. The work is still in development.
Good tutorial on interfacing a DS touch screen with an Arduino: http://tronixstuff.wordpress.com/2010/12/29/tutorial-arduino-and-the-ds-touch-screen/
A workaround for temperature measurement higher than it should: http://blog.pcunha.org/2013/01/emonglcd-temperature-hack-correcao-para.html.
The v1.4 PCB contains a track error, rendering the spare Digital IO pin on the JeePort unusable. It can be fixed with a scalpel, see http://openenergymonitor.org/emon/node/2063