AirLog-E - A Home Assistant Multi Sensor
Hardware- 9 Devlogs
- 12 Total hours
A battery powered device that shows you temp, humidity and the VOC index via sensors like the SHT41 and SGP40 + shows it on an E-Ink Display
A battery powered device that shows you temp, humidity and the VOC index via sensors like the SHT41 and SGP40 + shows it on an E-Ink Display
The parts have slowly arrived over the last week and the only thing I was missing was the 2000mah LiPo battery, but I couldn’t wait, so I started building AirLog-E today!
I’ll go in order of how I built it!
First, I 3D printed my enclosure which was super easy using the 3 included .3mf files!
I next used M2.5 Screws to screw the e-ink display into the main section along with the front plate. The cables from the display were super long so I cut those to a shorter length in preparation for the next steps.
Then I screwed the 2 environment sensors into the enclosure.
Next were the 4 M3 heatset inserts which go into the main section (these were super satisfying to install)
I now had to solder all 8 pins from the display to the ESP32-c6 which was very fiddly! I was also going along with a multimeter to check every connection after every new joint.
I wired up the TP4056 module to the ESP32’s BAT + and BAT - pads and attached the 2 wires to it for where the battery (which still hasn’t arrived) will go. (I’m using a slightly smaller 1600mah lipo I already had for testing!)
I actually had to wire up the sensors to the ESP32 now which was also very fiddly but I managed to get there in the end.
I took the code right from the github repo and compiled it in ESPhome and.. it worked!!
I wanted to change some things, like:
I’m gonna change more stuff with the firmware tomorrow, like adding the time (as I promised) and making the e-ink look cooler!
(I’ll also need to add in the battery when it arrives and glue in the TP4056)
My project was reviewed again, and I needed to fix a few things!
I hadn’t included the .step files into the github repo, so now they’re there so the enclosure can be easily edited in any editor!
I made a ‘How did I make this?’ subheading which explains how I created the enclosure in fusion360. I also added a few bits to ‘How can I replicate this?’ like:
That’s it! Reshipping now!!
After shipping and my project getting reviewed, there were a few issues!
Glyphs tell the display what each character should look like. I added the degrees symbol (°) to the glyphs part in the code but I hadn’t realised you had to put every character you used in there otherwise the only thing the e-Ink would display would be the degrees symbol! I fixed this and updated the repo.
As my font was quite big (20px) and extrabold, it would of taken up a lot of space on the display. In the new version, I made the font size smaller (to 18px) and gave humidity its own line on the screen. This hopefully will fit with space to spare! This was pushed to the GitHub repo too.
I’m going to ship again now, and hopefully in the next devlog, I have my hands on the parts!!
I pride myself on my READMEs and find them really fun to write! It’s fully fledged with a detailed feature list, pictures, E-ink explanations, information about all of the components and more!
I thought I’d hate writing the code but with some YouTube videos and a LOT of help from the ESPhome docs, I managed to fully flesh out the firmware!
I did have a couple of issues along the way but i figured them out! (eg. I found out the hard way that ESPhome id’s can’t have hyphens..)
There’s no way to test this code yet, but after running it through the github copilot to check for any errors and triple checking it myself, it should work. Should anything go wrong when the parts arrive, I can iron them out but for now everything’s good.
(I also added M2.5 screws to the BOM as 4 are needed for the front plate)
I needed the 3d models of all the different components as something to base myself off. I managed to find files for the 1.54” E-ink display, the SEEED XIAO ESP32-C6, the TP4056, and the 2 environment sensors - the SHT40 and the SGP40 on GrabCAD.
This was the time intensive part! I made it (hopefully) super easy to put together, with 3 main parts. There’s the front plate, back plate, and the main enclosure sandwiched in the middle of the two.
The front plate is secured to the e-ink and the main enclosure via 4 screws in the corners.
The back plate is secured to the main enclosure via 4 screws in the corners that go into heatset inserts inserted in the main enclosure.
The components aren’t randomly placed! The E-Ink display has to go at the front followed by the battery. Then there’s the 2 sensors either side of the enclosure. They are placed there next to grills to allow airflow and increase the accuracy of the readings. Then there’s the TP4056 charging module right at the back which will be glued down. It also has a big cutout in the backplate for the USB-C port. (the cutout is a lot bigger than the USB-C port itself as the TP4056 module might not be flush with the bottom of the enclosure so more space gives it more wiggle room.
The microcontroller (the SEEED XIAO ESP32-C6) doesn’t have any mounting holes and I can’t glue it down as I need to access the BAT+ and BAT- pads on the bottom. This means it will be freefloating within the enclosure which will help the ease of assembly and any debugging via its USB-C port.
So I’ve made the wiring diagram using PIXLR E as it makes it super easy to add the wires and import pictures of components. It made it look quite cool I think! You can also see we’ve still got 2 GPIO pins so if I ever wanted another sensor in the future I could add one (or unlimited if its I2c!😂)
I thought I had finished the diagram but then I realised when writing this devlog that I never added the voltage divider so I spent an extra 5mins getting that into it and everything is finally all good! (I also had to update the BOM in the github repo to include the extra resistors (which i’ve already got)
I made the bill of materials in excel. It includes both USD$ and my local GBP£ but haven’t included the USD$ conversion yet as exchange rates could change so I’ll do that nearer the time of shipping.
Made the repo on github, and uploaded the bill of materials as a .csv.
Made a mockup of the device + a feature list! So the idea of this device is to be able to see my environment (temp, humidity, VOCs)at a glance along with useful info like battery % and the time. (See the WIP feature list in the photo!!) I think i’m going to get the BOM fully figured out next and then get onto the enclosure design in fusion360, before making the ESPhome code and shipping! 🤞