Arduino + ESP8266 + OLED 这三样在一起,基本组成了一个简单的计算机。
把上面视频里的 Arduino 程序玩顺溜了, 顺便加上一些传感器就是一个小制作。
前置步骤 1:(ESP环境)
1. 安装 Arduino IDE
2. 安装 ESP8266 for Arduino 环境
3. 例程里面找到 ESP8266 的 一些例子,上传一次,看看是否成功。
前置步骤 2:(OLED能够在UNO显示)
1. Arduino IDE 里选 UNO
2. 连接 IIC OLED 显示模块,通常驱动芯片是 SSD1306 0.96‘ 或 SH1106 1.3’(
UNO通常是有IIC接口的,运气好和OLED一致的话就可以直接插上
3. 在线安装库 Adafruit SSD1306 或 Adafruit SH110x (还有很多库都能点亮OLED,比如U8G2偏绘图,各有各的使用方法)
4. 例程里面找到 Adafruit_OLED_FeatherWing,上传一次,应该可以看到一些画面 (FeatherWing是一款带有OLED的电路板,死贵死贵的,也没啥新技术,这里用其库就好了,自己连接模块。)
前置步骤 3:(OLED能够在ESP8266上显示)
1. Arduino IDE 里选 ESP8266
2. 连接 IIC OLED 显示模块,ESP8266默认IIC是 D1 D2 但没有专门做个4线接口,所以需要连线
3. 例程里面找到 Adafruit_OLED_FeatherWing,上传一次,也应该可以看到一些画面
至此,Arduino + ESP8266 + OLED 的软硬件基本测试为好的。
----------------------------------------------------------------------------------------------
接下来尝试视频里的自定义玩法。如果上面的测试没成功,那就搜一搜,直到通过才能继续,不然如果遇到后面的坑更不知道怎么应对。
以 NodeMCU 为例,购买时买那种没有焊排针的,自己焊上排母 (模仿UNO的风格),这样方便直插其他模块,就不用连线了。
选择 D0-D3 这4个口为 IIC,分别对应 Vcc Gnd SCL SDA , 例程里面如下增加几行即可。
void setup() {
pinMode(D0, OUTPUT); // IIC 供电 Vcc
digitalWrite(D0, HIGH);
pinMode(D1, OUTPUT); // IIC 供电 Gnd
digitalWrite(D1, LOW);
Wire.begin(/*SDA*/D3,/*SCL*/D2);
注意,例程里是适配128x32OLED的,需要看看程序里分辨率那行,改为如下即可:
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);