Sometimes all we need is just a lot of GPIO pins that connect to things like relays, so that we can turn heating valves on or off. This was the reason behind this module. The nodes that were being installed on the ceiling had not just an I2C bus being used for the environmental sensors, but also the UART for CO2 measurements and four pins for PWM output.
As more GPIO was needed to turn the relays that controlled the valves on the water lines to the air-conditioning units on or off, a dedicated GPIO expander chip was added to the I2C bus to provide eight more GPIO pins.
This module allows for an external service like the air-conditioning service to directly set these new GPIO pins as high or low:
#include "base_module.h" #include <Libraries/MCP23008/MCP23008.h> ...