// after
float convert_adc_to_voltage(uint16_t raw_value)
{
    const float reference_voltage =
        3.3f; // 基準電圧 (V)
    const float adc_max_value =
        4095.0f; // ADCの最大値
    return (raw_value * reference_voltage) /
           adc_max_value;
}

float convert_voltage_to_temperature(float voltage)
{
    const float voltage_offset =
        0.5f; // センサのオフセット電圧 (V)
    const float temp_coefficient =
        100.0f; // 温度換算係数 (℃/V)
    return (voltage - voltage_offset) *
           temp_coefficient;
}

void log_sensor_data_json(float voltage,
                          float temperature)
{
    printf(
        "{\"voltage\":%.2f,\"temperature\":%.2f}\n",
        voltage, temperature);
}

void process_sensor_data(uint16_t raw_value)
{
    float voltage =
        convert_adc_to_voltage(raw_value);
    float temperature =
        convert_voltage_to_temperature(voltage);
    log_sensor_data_json(voltage, temperature);
}
