Following up as promised, below are some photos of my completed build, pre-installation. I plan to install it later this evening, but because of the layout of my laundry room there won’t be a viable way to take pictures of the setup once installed.
I’ll do my best to walk through what I did in the photos as I go, for those who are more visual, but sadly I only took photos at the end of the build rather than during.
FULL VIEW OF COMPLETED BUILD
Let’s start with a holistic view of the full build. Don’t worry, we’re going to walk through each element step-by-step .
Now that we’ve seen the completed build, let’s dive in step-by-step.
STEP 1: ASSEMBLING THE CORE WIRE HARNESS
The first thing I assemble on pretty much any build I do with wired components is what I call the “core wire harness.”
The job of the core wire harness is to facilitate the connections between all of the different components of the build. The wire harness isn’t permanently affixed (read: “soldered”) to any components of the build, but rather exposes connectors to attach to them by cables. By building the core wire harness first, I’m able to keep the circuit lean and focused on the core functionality, as opposed to becoming dependent on any element of the build (for the software guys out there, this practice is basically a hardware application of the Dependency Inversion principle, building an abstraction to wire the rest of the build up to, also helping to support following hardware applications of the Single Responsibility Principle and the Open/Closed Principle).
With that said, best practices should be followed generally and broken tactically. In my case, as you’ll see in later photos, to save a little time I decided to configure the wire connector for the controller to fit the pinout of my NodeMCU ESP8266 directly. While this does create a soft dependency on my controller type, because one can easily add jumper cables from the 10-pin and 2-pin dupont connectors used to connect the core wire harness and use the jumpers to reconfigure the connections for another controller, I felt that it wasn’t worth the time or materials to add a separate connector for the cable to the controller component. Poetically, this decision turned out to be a big mistake in this case, as I’ll explain later .
Anyway, once my core wire harness was finished, I used jumper wires to wire it into my breadboard-based prototype and checked that everything was working normally. I didn’t photos of the testing, but it was a good thing I did it, because I’d accidentally swapped my I2C cables and was able to figure out the problem pretty quickly by tracing the relatively few wires that I’d assembled.
STEP 2: ASSEMBLING COMPONENT CABLES
The second thing I built was the component cables, and I think it’s important to discuss how I built them and why I decided to build them this way, since I definitely made them a little more involved than I would typically make them on the average project.
When planning my build, I was considering the physical conditions in my laundry room, and I decided that it would be a good idea to sleeve all of my component cables with PET cable mesh to protect them.
Door Sensor Cables
The space in which my washer and dryer sit in my laundry room is pretty tight, and there’s a pretty small gap between the washer and dryer - small enough that they occasionally touch each other while running. Because I plan to run the wires for the door sensors through that gap, I chose to sleeve the door sensor cables to protect them from any excessive wear that might occur.
Additionally, because my controller requires a 10KΩ resistor to be used as a voltage divider before the reed switch wire comes into the data pin, I added the resistor into the component cable. This was a mistake. What I should’ve done is add that resistor to a separate component cable used to connect my controller (Remember the best practice that I tactically broke? Yeah, I shouldn’t have done that. Oh well - nobody’s perfect ). If ever I have to update the controller or the door sensor cables, I’ll be sure to fix that mistake - otherwise, I can live with it.
With that mistake in mind, however, note that my door sensor cables go from 2 wires for the sensor to 3 wires (and the spliced in resistor) just before the cable connects to the core wire harness.
Accelerometer Sensor Cables
The accelerometer cables also posed some concerns about strength and resilience to the physical conditions of the installation location. There isn’t quite as much storage space in the laundry room as would be ideal, so my wife and I tend to organize things like detergent, softeners, stain removers and other things on top of the washer and dryer units. Occasionally, these items fall behind the units and, because some of the items are quite heavy, I decided to sleeve the accelerometer cables as well to add some extra strength and protect them from damage that might otherwise occur from falling items
A Note on Component Cable Length
As a final note on the cables, it’s worth commenting on the length of the cable runs, as they’re pretty long. The outlet I plan to use to power the circuit isn’t directly behind the machines, which is why I decided to make the runs a little longer.
More Testing
Once the cables had been assembled, there was no further need for my breadboard prototype. I hooked the build up to power and tested to make sure that everything was still working. Aside from a cabe with a loose pin that I was able to quickly isolate and resolve, there were no issues.
STEP 3: CREATING HOUSINGS FOR MOUNTING AND PROTECTING THE COMPONENTS
In order to protect the different components of the circuit and make it easier to mount them to their installation locations, I decided to cut up a project box to make a housing for the controller and each of the accelerometers.
These project boxes were just cheap, plastic boxes I got for a few cents each from Alibaba a few years ago. I was able to make all three housings with a single box that I cut up and hot glued together as needed.
STEP 4: ANNOTATING WITH LABELS AND DIAGRAMS
The next and final step before installation was to create and affix labels for each of the cables and components.
Please note that although it’s not shown here, I include a circuit diagram in the labels for all of my projects near or attached to the controller board. A friend of mine graciously offered to laminate copy for me, and so I will be adding attaching the diagram to the controller box via a cable tie, once I get the laminated copy.
If you’re wondering how I made the labels, a couple of years back, I picked up a D10 label maker from Amazon on Black Friday for something like $20, and it was one of the best purchases I’ve ever made (though I’m now looking to upgrade to something a little bigger that can print larger labels).