A basic OctoPrint-Monitor with ESP8266 (I use an NodeMCU v2, use $random_hardware
that has WiFi and supports I2C) and an SSD1306 OLED
Code for a (very) basic OctoPrint monitor with a SSD1306 OLED display. It displays job information when printing, is dimmed when OctoPrint is offline.
The code has basic support for NTP and time handling included, but is unused in the code. Feel free to adopt to your needs.
- Copyright (c) 2020 noppingen: https://github.com/noppingen/ESP8266-OctoPrint-Monitor/
- Create a new PlatformIO project, paste
main.cpp
- Add required libraries:
ArduinoJson
version 6: https://github.com/bblanchon/ArduinoJsonThingPulse esp8266-oled-ssd1306
: https://github.com/ThingPulse/esp8266-oled-ssd1306NTPclient
: https://github.com/arduino-libraries/NTPClientTime
: https://playground.arduino.cc/Code/Time/
- Set
YOUR_OCTOPRINT_HOST
YOUR_OCTOPRINT_API_KEY
YOUR_WIFI_SSID
YOUR_WIFI_PASS
YOUR_NTP_HOST
SCL
pinSDA
pin
- Wire 4 pins,
- When using an Node MCU, do not use GPIO9/10 for I2C as I did in the pictures below: https://www.letscontrolit.com/forum/viewtopic.php?t=1462
- Print a case