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); }