ESP8266 – Oled I2C – Micropython

 

from machine import Pin, I2C
import ssd1306
from time import sleep

# 1 3 Busy

GREEN = Pin(0, Pin.OUT)    
GREEN.on()

BLUE_OLED = Pin(2, Pin.OUT)   
BLUE_OLED.on()

def do_connect():
    import network
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect('ssd', 'pass')
        while not wlan.isconnected():
            pass
    print('network config:', wlan.ifconfig())
    
do_connect()

i2c = I2C(-1, scl=Pin(4), sda=Pin(5))

print(i2c.scan())

oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)

oled.text('Hello, World 1!', 0, 0)
oled.text('Hello, World 2!', 0, 10)
oled.text('Hello, World 3!', 0, 20)
        
oled.show()


ESP8266 NodeMcu + SSD1306 I2C

Arduino programming: https://radioprog.ru/shop/merch/59

Для заметки:

SSD1306Wire display(0x3c, 5, 4); // SDA GPIO5(D1) || SCL GPIO4 (D2)

pinMode(D4,OUTPUT);
digitalWrite(D4,HIGH); // SSD1306 LED is ON

pinMode(D5,INPUT);
pinMode(D6,INPUT);
pinMode(D7,INPUT);
pinMode(D8,INPUT);

pinMode(D3,OUTPUT);
pinMode(D0,OUTPUT);
digitalWrite(D3,LOW); // LED GREEN
digitalWrite(D0,LOW); // LED RED

SPI и W25Q32 Serial Flash Memeory подключение.

Подключение W25Q32 по шине SPI

Из документации смотрим:

Конкретные имена портов интерфейса SPI могут различаться в зависимости от производителя аппаратных средств, при этом возможны следующие варианты:

  • MOSI: SIMO, SDO (на устройстве), DO, DON, SO, MRSR;
  • MISO: SOMI, SDI (на устройстве), DI, DIN, SI, MTST;
  • SCLK: SCK, CLK, SPC (SPI serial port clock);
  • SS: nCS, CS, CSB, CSN, nSS, STE, SYNC.

Но в итоге получается что нужно подключать вот так: