How does thermoelectric cooling work? Here's a helpful answer from Wikipedia:
Thermoelectric cooling uses the Peltier effect to create a heat flux between the junction of two different types of materials. A Peltier cooler... is a solid-state active heat pump which transfers heat from one side of the device to the other, with consumption of electrical energy, depending on the direction of the current.
The device has two sides, and when a DC electric current flows through the device, it brings heat from one side to the other, so that one side gets cooler while the other gets hotter. The "hot" side is attached to a heat sink so that it remains at ambient temperature, while the cool side goes below room temperature.
You can find Peltier devices being used in devices such as portable camping coolers and computer CPU coolers.
The key considerations for our drink chiller are being able to power the cooler and fan assembly for a pre-determined timing interval, and then doing the same with the pump.
I chose to use a Trinket M0 microcontroller so that we can use a button to initiate the cooling and pumping cycles, easily tune the timings, and so on. Since the Trinket M0 can't power such beefy 12V devices on its own, we'll use a pair of power MOSFET transistor circuits instead. You can think of them as solid state switches that can take a tiny signal from the microcontroller to unleash much higher power from a secondary source, in our case a regulated 12V 5A power supply!
Following the circuit diagram, solder all of your parts to the board as shown. You will need to solder the Trinket M0 to header pins as well to connect them.
Depending on how you plan to mount/enclose the parts, you may need to either use removable interconnects between some parts, or wait to solder wires to the board until the parts are mounted.
These include the Peltier and fan wiring, the pump wiring, and the button wiring.
Or, you may wire them all up for testing now, just know that you'll need to desolder/resolder later if your enclosure requires it.
With everything wired, we can now program the Trinket M0 using CircuitPython!