ESP8266 Weather Station on the “Big Screen”

Do you like this post? Writing posts, developing libraries and programming online font creators is actually hard work. I order most of my electronics from a Chinese website called Banggood. It is save and the items usually arrive in good quality. With every order you do there by following this link you are supporting the blog. Thank you!

The 0.96″ OLED displays I usually use for the WeatherStation are gorgeous but they could be bigger, right? Recently a bigger version of the SSD1306 based display became available on my favourite channels. Thanks to great work of the community (especially Fabrice Weinberg) the OLED library on Github  as been extended to support those 1.3″ displays based on the SH1106 chip.

0.96" based on SSD1306 and 1.3" based on SH1106 running the Plane Spotter
0.96″ based on SSD1306 and 1.3″ based on SH1106 running the Plane Spotter

Adapting the code

So how do you get those displays working with the WeatherStation or the PlaneSpotter? The OLED library makes that really easy: you just have to change two lines of code. The include for the SH1106 driver has to be included and then the instantiation. Find the line

#include <SSD1306Wire.h>

and replace it with

#include <SH1106.h>

The next step is to replace the instantiation of the driver:

SSD1306Wire display(I2C_DISPLAY_ADDRESS, SDA_PIN, SDC_PIN);

and replace it with:

SH1106  display(I2C_DISPLAY_ADDRESS, SDA_PIN, SDC_PIN);

Done! Easy, wasn’t it? The OLED library supports other types of displays or communication protocols. You kind out more about them here:
https://github.com/squix78/esp8266-oled-ssd1306

Summary

With changing just a few lines you can get the WeatherStation and the PlaneSpotter working on the bigger 1.3″ screens. The cost a little bit more but depending on your casing they are worth the money. By the way: the pixel density (DPI) is actually worse with the 1.3″ displays since both types have the same resolution of 128×64 pixels. You can find the displays on AliExpress, eBay or on Banggood and support the Blog by following this link.

References

Posted by squix78

6 comments

  1. Tried converting my SSD1306 SPI example for a 1.3″ SH1106 OLED using the information in the GitHub examples. Unfortunately, though I do get some display, it is quite a jumbled mess. Looks like some work yet to be done on the SPI library components.

    • Fabrice clued me in as to the issue…it seems the CS line has not been implemented in the SH1106 SPI library routine that initializes the display. Once I removed this reference from the call, I was able to get this working correctly.

  2. Tried to get the Banggood 1.3″ I2C display to work with this library and my WeMos D1 mini unfortunately this was not successful till now. Getting really frustrated from this display, the display works great with my mega2560 but need it to work on the WeMos D1 mini…

    Help appreciated.

Leave a Reply