Hi everyone,
I’m working on a project to re-design the electronics of a school ventilation system. Here’s the background: the school purchased a high-quality ventilation system four years ago, but unfortunately, the manufacturer went bankrupt. Now the electronics are failing, and the ventilation is intermittently stopping. The mechanical components of the system are in excellent condition, but the electronics are beyond repair and replacement is no longer an option.
I’ve successfully designed new electronics for the main ventilation system, and it’s working great. The next step is to design a control panel for each classroom, and this is where I could use some advice.
I’m considering using the AirGradient open-source system as the basis for the classroom control panel. It already has a four-pin screw terminal and breakout cable, which I can use for communication via a LIN bus (one-wire). I’ve worked with LIN communication before and can handle adding the necessary code to the AirGradient firmware (it’s available online), so integration with my ESP32-WROOM-based ECU shouldn’t be an issue.
Each classroom control panel needs two manual buttons for teacher control:
- Button LOW: Reduces ventilation by 15% for the next 2 hours.
- Button HIGH: Increases ventilation by 15% for the next 2 hours.
The issue is that the AirGradient system doesn’t have built-in buttons, and I only have one free IO pin left. Here are the options I’ve considered so far:
- Use an I²C IO expander to add more pins for the buttons.
- If the AirGradient has remaining analog pins, I could potentially multiplex two buttons onto one IO.
- Physically modify the AirGradient case to add the buttons. However, I don’t have an AirGradient unit yet, so I can’t check how feasible it would be to drill or CNC-mount two buttons onto the front of the case.
- Has anyone modified an AirGradient case to add external buttons? Is there enough space for this, and are there tips for drilling or mounting buttons cleanly?
- What’s the simplest way to add two buttons with only one IO left? Would an analog multiplexing approach be practical, or is an IO expander the better choice?
- Are there other systems or ideas I should consider for this kind of classroom control panel?