LOCAL void ICACHE_FLASH_ATTR dht22_cb(void *arg)
{
	static uint8_t i;
	DHT_Sensor_Data data;
	uint8_t pin;
	os_timer_disarm(&dht22_timer);
#if 0
	// One DHT22 sensor
	pin = pin_num[sensor.pin];
	if (DHTRead(&sensor, &data))
	{
	    char buff[20];
	    console_printf("GPIO%d\r\n", pin);
	    console_printf("Temperature: %s *C\r\n", DHTFloat2String(buff, data.temperature));
	    console_printf("Humidity: %s %%\r\n", DHTFloat2String(buff, data.humidity));
	} else {
		console_printf("Failed to read temperature and humidity sensor on GPIO%d\n", pin);
	}
#else
	// Two DHT22 sensors
	for (i = 0; i < DHT_NUMBER_OF_SENSORS; i++)
	{
	    pin = pin_num[sensors[i].pin];
		if (DHTRead(&sensors[i], &data))
		{
		    char buff[20];
		    console_printf("GPIO%d\r\n", pin);
		    console_printf("Temperature: %s *C\r\n", DHTFloat2String(buff, data.temperature));
		    console_printf("Humidity: %s %%\r\n", DHTFloat2String(buff, data.humidity));
		    console_printf("--------------------\r\n");
		} else {
			console_printf("Failed to read temperature and humidity sensor on GPIO%d\n", pin);
		}
	}
#endif
	os_timer_arm(&dht22_timer, DELAY, 1);
}
void ICACHE_FLASH_ATTR get_dht11(uint8_t *bufftemperature,
		uint8_t *buffhumidity) {
	DHT_Sensor_Data data;
	uint8_t pin;
	pin = pin_num[sensor.pin];
	if (DHTRead(&sensor, &data)) {
#ifdef MENJINDEBUG
		os_printf("GPIO%d\r\n", pin);
		os_printf("Temperature: %s *C\r\n",
				DHTFloat2String(bufftemperature, data.temperature));
#endif
		DHTFloat2String(bufftemperature, data.temperature);
#ifdef MENJINDEBUG
		os_printf("Humidity: %s %%\r\n",
				DHTFloat2String(buffhumidity, data.humidity));
#endif
		DHTFloat2String(buffhumidity, data.humidity);
#ifdef ESP8266OLED
		OLED_Print(2, 7, combine_env_strings(bufftemperature, buffhumidity), 1);
#endif
		if (lasthumidity != data.humidity
				|| lasttemperature != data.temperature)
			isNeedSendENV = true;
		else
			isNeedSendENV = false;
		lasttemperature = data.temperature;
		lasthumidity = data.humidity;
	} else {
#ifdef MENJINDEBUG
		os_printf("Failed to read temperature and humidity sensor on GPIO%d\n",
				pin);
#endif
	}
	os_free(data);
	os_free(pin);
}