Temperature Box Mk. 2

Device

The Temperature Box Mk. 2 is a PCB that is run off of an ESP32 C3 microcontroller, constantly reading the air temperature and humidity from a DHT22 sensor onboard. The temperature or humidity is then displayed to a small OLED display, and the user can toggle between displaying temperature or humidity on that screen using a push button on the left side of the board. This project is a Mk. 2 and much-improved version of my original Temperature Box project.

⚠️ WARNING: This Project is Currently Being Worked On And Is Not Done

This project is sponsored by PCBWay, a wonderful and easy to use PCB manufacturer.

Skills Used

Altium

Fusion 360

Final Schematic Design & PCB Layout

Below are photos showcasing the final schematic sections and printed circuit board design for the project.

Entire Schematic

PCB 2D View

PCB 3D View - Front

PCB 3D View - Back

Bill of Materials (BOM)

Below is a table containing all of the parts as well as a link to the Digikey parts list.

Part Name Count Cost Per Part Link (If Not on Digikey)
SSD1306 OLED Display 1 $6.99 Link (Amazon)
DHT22 1 $2.49 Link (Amazon)
0.1µF 1206 Capacitor 3 $0.09
10µF 1206 Capacitor 1 $0.15
1µF 1206 Capacitor 4 $0.12
Red 1206 LED 1 $0.20
Green 1206 LED 2 $0.20
USB-C Female Connector (16 + 8 Dummy) 1 $0.78
1x4 Male 2.54 Pin Header 1 $0.10
1x12 Male 2.54 Pin Header 1 $0.16
5.1kΩ 1206 Resistor 2 $0.10
10kΩ 1206 Resistor 2 $0.10
4.7kΩ 1206 Resistor 1 $0.10
220Ω 1206 Resistor 2 $0.10
330Ω 1206 Resistor 1 $0.10
ESP32-C3 PCB Antenna 1 $3.28
5V to 3V3 LDO 1 $0.22

Using the Device

Using the Device such as Pinouts or Setup is detailed below.

Device Pinouts

Below is information and necessary tables of pinouts for the device.

Pin Technical Name Pin Name Pin Info
J1 USB-C Power Port & Programming Port
P1 - 1 3V3 3.3V for UART
P1 - 2 TXD TXD of ESP32 C3 for UART
P1 - 3 RXD RXD of ESP32 C3 for UART
P1 - 4 GND GND for UART
P2 - 1 5V0 5V Testpoint
P2 - 2 3V3 3.3V Testpoint
P2 - 3 GND GND Testpoint 1
P2 - 4 GND GND Testpoint 2

Setting Up & Using the Device

The device just needs to be programmed via the USB-C port using the code found in the Github repository and then can simply be plugged in via USB-C normally for the device to run.

Development Documentation

Challenges, What I Learned, and More.

Challenges

One of the biggest challenges for me in this project was finding an accurate schematic symbol and footprint for both the OLED and the DHT22 sensor, as these are rarer parts that aren't manufactured in mass like a typical passive component. This meant I wasn't able to find any footprints or schematics for these online. Luckily, the SSD1306 OLED had been previously used by the Electric Vehicle Team at RIT that I am a part of, so I was able to grab the footprint, schematic, adn even 3D model from our shared Altium Vault and implement it into my own project. As for the DHT22, this was more challenging, as I had to manually create the schematic symbol and footprint myself, which I hadn't done before. I also designed the DHT22's model myself in Fusion 360 based on the datasheet provided for the sensor, that way in my 3D PCB view it would be visible and would make layout of the board easier. While both challenges, ultimately I found solutions and got schematic symbols and footprints for both rare components.

What I Learned

In this project, I learned quite a bit. The biggest thing I'd say I learned was how to create a schematic symbol, footprint, and implement a 3D model for a footprint in Altium. I essentially had to create an entire Integrated Library for the DHT22 for my project to have it available in Altium. This was something I had never done before so for this project I learned how to create an accurate schematic symbol, an integrated library, and an accurate component footprint modeled off the datasheet.

Inspiration

This project was inspired by and a massive improvement from my previous Temperature Box project, which was a much more primitive and simple implementation of this "Temperature Box" idea I had. That prior version had no custom PCB, but rather a pre-made ESP32 Dev Board that I had bought off of Amazon, and a nest of jumper wires. This previous version I'd say leaned much more on the 3D modeling / CAD side, with a much smaller focus on electronics. This new Temperature Box Mk. 2 project is a much improved version of this idea, using my own custom ESP32 Dev Board design and implementing all of the electronics onto a single PCB. This means this version will not only be much smaller than the original, but will also be much more professional and electronics focused.

    Socials