Search models, users, collections, and posts

Wemos D1 Mini OLED Wedge

Print Profile(2)

All
A1
P1S
P1P
X1 Carbon
X1E
X1
A1 mini
H2D
H2D Pro
H2S
P2S
H2C
X2D
A2L

0.2mm layer, 2 walls, 15% gyroid (with and without holes)
0.2mm layer, 2 walls, 15% gyroid (with and without holes)
Designer
1.5 h
2 plates
4.9(15)

for oled 1.3 inch, 0.2mm layer, 2 walls, 15% infill
for oled 1.3 inch, 0.2mm layer, 2 walls, 15% infill
1.8 h
2 plates

Open in Bambu Studio
Boost
64
189
19
11
265
146
Released 

Bill of Materials

List other parts
  • Wemos D1 Mini (esp8266) x 1:
  • DHT22 temperature sensor x 1:
  • SSD1306 OLED 0.96" i2c display x 1:

Description

I printed one of the original models made by jurassic73 and LOVED it! Total credit for the main unit goes to him. (Unfortunately, his account and the associated model on Thingiverse no longer exist…)

 

But, I found that it looks like there have been some minor revisions, or maybe just different manufactures, to the Wemos Mini D1 boards since he created his...

 

I made the following modifications to his original design:

  • I've widened the groove where the wemos board slides in. It was too tight of clearance and not quite in the proper spot for my boards.
  • I've also widened the slot where the USB port is on the wemos. My guess is that they just switched to a slightly wider usb port or mounted it slighlty different or something.
  • I made the USB port hole just slightly wider as well since I wasn't making a good connection with the cable I was plugging in.
  • I removed the screw hole. I found that just a dab of hot glue on the inside was more than enough to hold it together really nicely while making it still really easy to pull apart if needed.
  • The final revision was a choice I made so that I could add an additional DHT22 or other sensor out the back and that was to include two small holes out the backside of the case. That way I can run a little bundle of wires out the back to a sensor I place some space away from it. I originally tried mounting the DHT right inside the back of the case, but the esp8266 created just enough heat that it would affect it upwards of 10 degrees. Even putting the sensor 1 inch away was enough to get rid of that issue. Since I know not everyone would want that, I've included a version without the two holes as well.

Thanks to jurassic73 for the inspiration! (My original upload on Thingiverse: https://www.thingiverse.com/thing:4848322)

 

--------------------

 

Parts List

  • Wemos D1 Mini (esp8266)
  • DHT22 temperature sensor
  • SSD1306 OLED 0.96" i2c display

--------------------

How I Designed This

This was my first ever remix! It was a fun process.

 

I first printed it as-is. It turned out nice but when I went to slide in the Wemos D1 it just wouldn't fit. :-( So out came the dremel tool. I slowly chewed away at it until I was able to make it fit. Then I had the idea to include the DHT22 to the back so I cut into it with the dremel.

 

I took the original and put it into Tinkercad. From there I drew boxes in the places I wanted to "delete". Then I "grouped" the boxes and the main unit together and it came out nicely.

 

--------------------

 

ESPHome Usage

 

I'm using this with ESPHome and integrating it into Home Assistant. I wanted to have it sit at my desk and have a little clock and also show me the temperature in the room as well as feeding that data into Home Assistant.

 

The font I chose to use is JetBrains Mono available here: https://www.jetbrains.com/lp/mono/

 

My ESPHome configuration for both the DHT22 and the SSD1306 oled screen (attached as well since MakerWorld ruins code formatting):

esphome:
name: office-node
platform: ESP8266
board: d1_mini

wifi:
ssid: !secret wifi_iot_ssid
password: !secret wifi_iot_password

# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Office-Node Fallback Hotspot"
password: "asdfasdfasdf"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
- platform: esphome

sensor:
- platform: dht
pin: D2
temperature:
id: "temp"
name: "Office Room Temperature"
filters:
- calibrate_linear:
- 0.0 -> 0.0
- 23.5 -> 20.0
humidity:
id: "hum"
name: "Office Room Humidity"
model: DHT22
update_interval: 60s

time:
- platform: homeassistant
id: esptime

font:
- file: "/config/esphome/fonts/ttf/JetBrainsMono-Regular.ttf"
id: font1
size: 8

- file: "/config/esphome/fonts/ttf/JetBrainsMono-Regular.ttf"
id: font2
size: 21

- file: "/config/esphome/fonts/ttf/JetBrainsMono-Regular.ttf"
id: font3
size: 14

i2c:
sda: D3
scl: D5
frequency: 400kHz

display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
reset_pin: D0
rotation: 180°
# lambda: |-
# it.print(0, 0, id(font1), "Hello World!");
# lambda: |-
# it.strftime("%H:%M le %d.%m.%Y", id(esptime).now());
# it.printf(0, 1,"Temp : %.1fc", id(temp).state);
# it.printf(0, 2,"Hum : %.1f ", id(hum).state);
lambda: |-
it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "Zeustopher");
if (id(temp).has_state()) {
it.printf(27, 15, id(font3), TextAlign::TOP_CENTER , "T:%.1f°", id(temp).state*(9.0/5.0)+32.0);
}
if (id(hum).has_state()) {
it.printf(100, 15, id(font3), TextAlign::TOP_CENTER , "H:%.0f%%", id(hum).state);
}
it.strftime(0, 60, id(font2), TextAlign::BASELINE_LEFT, "%I:%M:%S%p", id(esptime).now());



Documentation (1)

Other Files (1)
wemos_d1_oled_wedge_esphome.txt

Comment & Rating (19)

(0/1000)