# DIY esp8266 小盒子
Date: 2021-02-28


前些天看到用esp8266开发的小盒子，按照教程https://www.instructables.com/3D-Printer-Monitor-Wemos-D1-Mini-ESP8266/操作了一下。

#### 3D打印的外壳

作者提供了3D模型 https://www.thingiverse.com/thing:2884823， 我是使用速加网打印的， 质量和价格还不错，大概20元左右不含运费。

可能芯片规格不一样， 如果有打印机的话可以根据芯片尺寸，把盒子厚度加大一些。

![](https://garlicspace.com/wp-content/uploads/2021/02/3Dbox.png)

#### 相关芯片联接

主要是两个芯片：

1. ESP8266 D1 Mini：这个普通就可以， 10元左右。
2. 0.96 OLED : 这个建议买老款的， 新款的屏幕有些小。10元左右。

芯片链接及焊接：

![](https://garlicspace.com/wp-content/uploads/2021/02/join.png)

焊接完成后

![](https://garlicspace.com/wp-content/uploads/2021/02/board2.png)

![](https://garlicspace.com/wp-content/uploads/2021/02/board1.png)

这里需要注意的是看好**GND和5V接口**，8266与OLED对接时线不要接错了， 将5V接到GND上， 烧坏了一块OLED的板子。

焊接：由于是第一次弄，大概来回焊接了3，4次，温度太高容易烧到板子， 太低焊锡又化不了。最好能固定一下， 我是拿透明胶固定了一下。

#### 应用刷新

1  开发环境

- 使用Arduino IDE，配置附加的电路板的配置链接http://arduino.esp8266.com/stable/package\_esp8266com\_index.json ，
- 开发版选择“WeMos D1 R2 & mini”

2  相关库选择

- WiFiManager
- Json：arduinojson
- OLED：esp8266-oled-ssd1306

3  源码应用下载

https://github.com/Qrome/printer-monitor

源码及配置调整地方：

- **Settings.h,注释掉以下几行**。

```
//#include <WiFi.h>
//#include <WiFiClient.h>
//#include <WiFiServer.h>
//#include <WiFiUdp.h>
```

- 配置选择了， “WeMos D1 R2 & mini”， 工具菜单中关于flash的选项。**选择“Flash Size->3M (1M SPIFFS)”，** 如果选择，(NO SPIFFS)， 应用无法启动，会提示文件打开失败。

> SPIFFS 是一个嵌入式文件系统， 由于应用中会生成配置文件， 保存相关配置信息， 配置文件生成所以该文件系统支持。
> 
> 关于应用启动时提示打开文件失败相关帖子https://github.com/esp8266/Arduino/issues/5699

1. 编译以及安装。

使用一头USB-A 接口，另一头是 Micro-USB 接口，连接8266编译下载了。

USB转串口的驱动可以到这个网站下载https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

原来版本有一个简单天气的DEMO，新版本IDE没找到。

这个程序是可以监控3D打印机的， 所以可以链接到3D打印上获取信息及时间。天气信息是到http://openweathermap.org/网站获取。

 

#### 网络配置

- 联网配置，启动后会在屏幕上显示wifi热点信息， 使用电脑，链接盒子的wifi，可以对盒子进行网络配置， 也就是它联网使用的wifi名/密码
- 应用配置，盒子接入wifi后网络后， 回显示一个IP， 可以登录这个IP，进行应用配置， 配置完毕后通过保存到本地文件conf.txt，进行持久化。

 

#### 其他问题

1. 日志， 可以通过putty链接串口，读取日志，开始应用 使用**Flash Size No SPIFFS时，无法显示，** 链接串口就看到“无法打开文件”的提示。
2. 验证OLED是否有问题，还安装了 [Microtpyhon](https://micropython.org/download/esp8266/), 参考了 [Simple MicroPython Alarm Clock](https://www.hackster.io/alankrantas/simple-micropython-alarm-clock-0e1a2f) 快速验证了一下。

![](https://garlicspace.com/wp-content/uploads/2021/02/16144994341.png)

相比较Arduino， Micropython开发上手快。

下面是介绍整个过程的完整视频

https://www.youtube.com/watch?v=Rm-l1FSuJpI

#### **参考及引用**

图片来源 twitter Ice Angel @addyiceangel

