Дабы не шерстить каждый раз интернет публикую сие..
Очень хороший информативный дисплей GM009605 стоимостью около 1.5$ подключается по шине i2c. Библиотека здесь. Скетч далее в статье.
Также с OLED библиотекой с успехом может работать и малогабаритный дисплей как на рисунке ниже..
//https://github.com/ThingPulse/esp8266-oled-ssd1306 #include <Wire.h> #include "SSD1306.h" SSD1306 display(0x3C, 0, 2); // ,GEOMETRY_128_32 void setup() { display.init(); display.flipScreenVertically(); display.clear(); display.drawString(0, 0, "Hello world"); display.display(); }
Также ещё популярны довольно древние LCD дисплеи с переходниками I2C. Библиотека для работы с ними и ESP8266 здесь.
#include <Wire.h> #include <LiquidCrystal_I2C.h> // +--------gnd (общая земля) // | +------sda // | | +----scl // 5_6_7_8--rx // 1_2_3_4--vcc(3.3v) // | | +----rst // | +------ch_pd // +--------tx LiquidCrystal_I2C lcd(0x3F, 16, 2); // 0x27 or 0x3F (use i2cScan) void setup() { lcd.begin(2, 0); lcd.backlight(); lcd.print("Hello!"); } void loop(){ lcd.clear(); lcd.setCursor(0,1); lcd.print("World"); delay(1000); }
Иногда переходники i2c запрограммированы под непонятными адресами. Поэтому чтобы определить его использую простой сканер на основе их поочерёдного перебора:
#include <Wire.h> #include <LiquidCrystal_I2C.h> void setup(){ Wire.begin(); Serial.begin(9600); while (!Serial); Serial.println("\nI2C Scanner"); for(address = 8; address < 127; address++ ){ LiquidCrystal_I2C lcd(address, 16, 2); lcd.begin(2, 0); Serial.print("address 0x"); if (address<16)Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); lcd.clear(); lcd.print(address); delay(1000); } }