 }
 
 static void handle_analog(TemperatureSensor* sensor) {
-  unsigned int raw_voltage = analogRead(sensor->pin_addr);
+  uint32_t raw_voltage = analogRead(sensor->pin_addr);
   float volts = raw_voltage / 205.0f;
   float celsius = 100.0 * volts - 50;
   sensor->curr_temp = celsius;

} OneWireData;

typedef struct temperature_sensor {
  unsigned int id;
  float prev_temp;
  float curr_temp;
  unsigned int type;
  unsigned int pin_addr;
  unsigned int sample_rate;
  unsigned int sample_count;
  unsigned long publisher_timer;
  OneWireData* one_wire_data;
} TemperatureSensor;

// ROS variables
static ros::NodeHandle  nh;
static std_msgs::String temp_msg;
static std_msgs::UInt8 count_msg;
static ros::Publisher pub_temp("temperature", &temp_msg);
static ros::Publisher pub_count("temp_sensor_count", &count_msg);

static void temperature_callback(const std_msgs::UInt8& id) {
  if(id.data > SENSOR_COUNT) {
    return;
  }
