Temperature Box Mk2

Device

A box that displays the surrounding air's current temperature on a small OLED display. Managed by an ESP32-WROOM microcontroller, it reads data from a DHT22 sensor and updates the display on a regular interval with the current temperature data at an accuracy of ±0.5°C or ±1.8°F. It is the second iteration of the original Temperature Box.

The first prototype of the Mk2 Temperature Box, done on a simple breadboard.

The second prototype, this time soldered onto a protoboard but proving a much more compact size is possible.

Skills Used

Advanced Circuitry

C++

Altium

Current Progress

Currently, the device has two working prototypes (the breadboard design, and the soldered protoboard design). Additionally, a PCB has been designed and I am currently in the layout phase, after which I plan to order manufactured PCBs and solder a final board design. Hopefully then I will get to doing the housing for the board and mounting at which point the project will be complete!.

Development Documentation

Start to finish of how I developed the device.

Phase 1 - Research

I really liked my original Temperature Box. My big issue with the original project is the extreme inaccuracy of the DHT11 to the air temperature. It was reading upwards of 80F in my dorm room which by just being in the room I could tell was off. According to the data sheet too, the DHT11 has an accuracy of ±1°C or ±3.6°F, so not great. Additionally, on top of hopes of improving accuracy, I really wanted to polish the project up and make it more professional, like by utilizing my own PCB instead of jumper wires. As my sensor, I chose to replace the previous DHT11 with a more precise DHT22, which has an accuracy of ±0.5°C or ±1.8°F. After picking my sensor, I also opted for yet again another ESP32, this time in particular however a WROOM-32D DevKit C, which I was also able to find an Altium library for.

Phase 2 - Prototyping on a Breadboard

Now that I had my parts picked out, I began some basic prototyping on a breadboard. I threw together an initial design pretty quickly as I already had used the OLED I am incorporating here in a previous project, and also the DHT22 is rather similar to the DHT11. I got a simple working breadboard prototype complete, using my old Temperature Box code for the OLED and finding some code online and modifying it for the DHT22. I did some UI work with the OLED in terms of splash screen and temperature display until I was happy.

Phase 3 - Prototyping on a Protoboard

Now that I had a working breadboard design, I opted to make an as-compact-as-possible soldered version on a protoboard that was more permanent. I laid out my components first before soldering as to make sure I could do so in such a small space, then I soldered. It all fit on the smallest size Electro Cookie protoboard that I had which I was very happy about. I uploaded my code and everything worked! Now I had a more compact but just as functional permanent (Because soldered) prototype.

Phase 4 - Moving to a PCB Design

With two working prototypes, I hopped into Altium. I laid out all of my components on schematic, and I even created a custom parts library to accommodate my unusual parts (DHT22 and my particular OLED), as I wanted all the parts to be mounted onto the board without wires. I finished my schematic design and then hopped into PCB layout. I laid out my components how I wanted them before routing.

Overall schematic for the project.

A shot of the 2D layout for the PCB.

A shot of the 3D layout for the PCB.

Now I need to route the traces to connect all of the components accordingly.