https://github.com/eadf/esp_mqtt_lcd
ESP8266 displaying mqtt messages on a Nokia 5110 LCD
https://github.com/eadf/esp_mqtt_lcd
Last synced: over 1 year ago
JSON representation
ESP8266 displaying mqtt messages on a Nokia 5110 LCD
- Host: GitHub
- URL: https://github.com/eadf/esp_mqtt_lcd
- Owner: eadf
- License: gpl-3.0
- Created: 2015-01-18T12:33:43.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2016-03-03T16:49:50.000Z (over 10 years ago)
- Last Synced: 2025-03-17T23:13:33.684Z (over 1 year ago)
- Language: C
- Homepage:
- Size: 586 KB
- Stars: 70
- Watchers: 14
- Forks: 22
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# esp_mqtt_lcd
ESP8266 displaying mqtt messages on a Nokia 5110 LCD
I'm pulling in several git subtree modules :
* [tuanpmt's exellent mqtt project: esp_mqtt](https://github.com/tuanpmt/esp_mqtt)
* [esp8266_pcd8544](https://github.com/eadf/esp8266_pcd8544) the lcd driver
* [esp8266_easygpio](https://github.com/eadf/esp8266_easygpio) makes it easy to change GPIO pins
* [esp8266_stdout](https://github.com/eadf/esp8266_stdout) alternative UART implementation (required if you want to connect the lcd with only 3 pins)
Good news, the interface no longer requires 5 available GPIO outputs so an ESP-01 will indeed work. (But only if the RX pin of the esp is used.)
##Usage
To use this mqtt enabled LCD you can send text messages to these topics:
* /lcd0
* /lcd1
* /lcd2
* /lcd3
* /lcd4
* /lcd5
Representing each row of the display.
The LCD is also listening to these topics:
* /lcd/clearscreen
* /lcd/contrast
You can also send messages to topics that are unique to each *esp*, look at the debug console for more info.
### Pin configuraton
This is how the code is hooked up by default:
PCD8544| ESP8266
-------|------------------
RST Pin 1 | GPIO4
CE Pin 2 | GPIO5
DC Pin 3 | GPIO12
Din Pin 4 | GPIO13
Clk Pin 5 | GPIO14
Some ESP-12 have GPIO4 & GPIO5 reversed.
The RST pin is optional, set it to a negative value and tie PCD8544 reset to ESP reset via a resistor.
The CE pin is optional, set it to a negative value and tie PCD8544 CE pin to GND via a resistor.
All of the pins are configurable, you just set the pins you want to use in the setting struct.
The makefile is copied from [esp_mqtt.](https://github.com/tuanpmt/esp_mqtt)
###Building and installing:
First you need to install the sdk and the easy way of doing that is to use [esp_open_sdk.](https://github.com/pfalcon/esp-open-sdk)
You can put that anywhere you like (/opt/local/esp-open-sdk, /esptools etc etc)
Then you could create a small ```setenv.sh``` file, containing the location of your newly compiled sdk and other platform specific info;
```
export SDK_BASE=/opt/local/esp-open-sdk/sdk
export PATH=${SDK_BASE}/../xtensa-lx106-elf/bin:${PATH}
export ESPPORT=/dev/ttyO0
```
(or setup your IDE to do the same)
You will have to edit the ```include/user_config.h``` file to suit your WiFi and mqtt settings. Alternatively you can copy ```include/user_config.h``` into ```localinclude/user_config.h``` and git will not bother you about modified files.
To make a clean build, flash and connect to the esp console you just do this in a shell:
```
source setenv.sh # This is only needed once per session
make clean && make test
```
You won't be needing esptool, the makefile only uses esptool.py (provided by esp-open-sdk)
I have tested this with sdk 1.5.2, v0.9.5 and v0.9.4 (linux & mac)