One problem I see: FaBoUVSi1132.cpp contains the following code:
@brief Read UV
@param [out] uv rawdata (rawdata/100 -> UV INDEX)
readI2c(SI1132_AUX_DATA_REG, 2, buffer);
uv_index = (((uint16_t)buffer)<<8) | (uint16_t)buffer;
uint16_t uv = uv_index/100;
main.cpp contains the following:
int uv_rawdata = faboUV.readUV();
int uv_index = uv_rawdata / 100;
Thus, uv_rawdata is not raw since it has already been divided by 100.
I removed the /100 in FaBoUV_Si1132, but I'm still receiving zeros.