Reading an array of digital temperature sensors

Hey, I want to read an array of 40 temperature sensors (thinking of using DS18B20) using Arduino, and then have 40 high-current heating elements respond to those temperature readouts to keep the temperature constant.

This forum has already been very useful, but I'm wondering if someone could steer me in the direction of projects that implement multi-sensor temperature reading and control?

My thoughts so far are to use an 'NxM multiplex array' with a '595 shift register' and MOSFETS to increase the current-output the system is capable of, but I think this is just for power output. To read the grid of sensors, perhaps I could use 3 "74hc4067" or perhaps 3 "CD74HC4067". For now I could live with a 15-channel (3 x 5) array of sensors and heating elements that are addressed individually (although addressing whole columns at a time might be more efficient for the next version).

Thank you to user MarkT who has been helping refine the high-power section already!

The DS18B20 is a one-wire device - why do you need a matrix?

My idea is to regulate the temperature of up to 40 fish tanks, and each tank would have one DS18B20 sensor.

Right now I'm thinking of having a grid of 8 "North-South" lanes and 5 "East-West" lanes and connecting heating element wire where they intersect (running at 12V, 12A, 1 Ohm at a lower duty cycle than that most of the time), and then either run a second set of wires for the sensors at 5V, or perhaps run the grid in reverse polarity for some of the time at 5V to get the temperature data (but the DS18B20 sensor needs an additional line from the power anyway to provide a signal).

Basically I'm open to ideas for the simplest / most efficient way to construct this!

These Guidelines for Reliable Long Line 1-Wire Networks give good advice on how to set-up different types of 1-Wire networks IMO.

koopa, I was wondering if you made any headway? I am trying to build something similar that uses multiple and various types of sensors, but I fear that my needs may exceed the GPIOs and was trying to learn ways how to group the sensors together (maybe with shift registers?) and condense the I/O to/from the Arduino.

Essentially, I am wanting to optimize my indoor garden and need to control the PH/EC of multiple reservoirs, temp/RH of all the rooms, plus air quality in PPM of CO2. I expect to be managing as many as 5 rooms, each that needs to be controlled as a separate environment from the others. Any leads or threads you've found in your research?