You can use an application layer protocol that handles various types of data, with the sensor id/type at header, and use any kind of sensor and just normalize the data based on definitions on header. You only need a table with all available sensors, its IDs and the type of data they work with. It is actually very simple.