Why is there periodic success when continuously reading SHT31?

Why is there periodic success when continuously reading SHT31?

Parents Reply Children
  • CONFIG_I2C=y
    CONFIG_I2C_SHELL=y
    
    CONFIG_LOG=y
    
    CONFIG_SENSOR=y
    CONFIG_SHT3XD=y

    prj.conf

    #include <zephyr/drivers/i2c.h>
    #include <zephyr/drivers/sensor.h>
    static const struct device *twi_dev = DEVICE_DT_GET(DT_NODELABEL(i2c0));
    const struct device *const dev = DEVICE_DT_GET_ONE(sensirion_sht3xd);
    
    
        if (!device_is_ready(twi_dev))
    	{
    		printk("error. twi_dev is not ready\n");
    	}
    	else
    	{
    		printk("twi_dev is ready\n");
    	}
    		if(!device_is_ready(dev))
    	{
    		printk("error. dev is not ready\n");
    	}
    	else
    	{
    		printk("dev is ready\n");
    	}

    sht3xd intit...

    		struct sensor_value temp, humidity;
    		rc = sensor_sample_fetch(dev);
    		if (rc)
    		{
    			printk("Failed to fetch data from SHT3X sensor: %d\n", rc);
    			// return;
    		}
    		rc = sensor_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP, &temp);
    		if (rc)
    		{
    			printk("Failed to fetch temperature data from SHT3X sensor: %d\n", rc);
    			// return;
    		}
    		rc = sensor_channel_get(dev, SENSOR_CHAN_HUMIDITY, &humidity);
    		if (rc)
    		{
    			printk("Failed to fetch humidity data from SHT3X sensor: %d\n", rc);
    			// return;
    		}
    		printk("Temperature: %d.%06d C\n", temp.val1, temp.val2);
    		printk("Humidity: %d.%06d %%RH\n", humidity.val1, humidity.val2);
    		k_msleep(delay_time);
    

    and get sht31 temperature and Humidity in the while...

    When the delay within the while loop is less than 1000ms, errors occur.

    [00:00:04.576,660] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.335845 %RH
    [00:00:04.777,374] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.335845 %RH
    [00:00:04.978,088] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.335845 %RH
    [00:00:05.178,802] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.335845 %RH
    Temperature: 27.977416 C
    Humidity: 54.316009 %RH
    [00:00:05.580,718] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.316009 %RH
    [00:00:05.781,433] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.316009 %RH
    [00:00:05.982,147] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.316009 %RH
    [00:00:06.182,861] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.316009 %RH
    Temperature: 27.977416 C
    Humidity: 54.261077 %RH
    [00:00:06.584,777] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.261077 %RH
    [00:00:06.785,491] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.261077 %RH
    [00:00:06.986,206] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.261077 %RH
    [00:00:07.186,920] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.261077 %RH
    Temperature: 27.990768 C
    Humidity: 54.201568 %RH
    [00:00:07.588,836] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.990768 C
    Humidity: 54.201568 %RH
    [00:00:07.789,550] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.990768 C
    Humidity: 54.201568 %RH
    [00:00:07.990,264] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.990768 C
    Humidity: 54.201568 %RH
    [00:00:08.190,979] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.990768 C
    Humidity: 54.201568 %RH
    Temperature: 27.961394 C
    Humidity: 54.175628 %RH
    [00:00:08.592,864] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.961394 C
    Humidity: 54.175628 %RH
    [00:00:08.793,579] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.961394 C
    Humidity: 54.175628 %RH
    [00:00:08.994,293] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.961394 C
    Humidity: 54.175628 %RH
    [00:00:09.195,007] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.961394 C
    Humidity: 54.175628 %RH
    Temperature: 27.977416 C
    Humidity: 54.123748 %RH
    [00:00:09.596,923] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.123748 %RH
    [00:00:09.797,637] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.123748 %RH
    [00:00:09.998,352] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.123748 %RH
    [00:00:10.199,066] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.977416 C
    Humidity: 54.123748 %RH
    Temperature: 28.004119 C
    Humidity: 54.119171 %RH
    [00:00:10.600,982] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 28.004119 C
    Humidity: 54.119171 %RH
    [00:00:10.801,696] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 28.004119 C
    Humidity: 54.119171 %RH
    [00:00:11.002,410] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 28.004119 C
    Humidity: 54.119171 %RH
    [00:00:11.203,125] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 28.004119 C
    Humidity: 54.119171 %RH
    Temperature: 27.961394 C
    Humidity: 54.312957 %RH
    [00:00:11.605,010] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
    Failed to read data sample!Failed to fetch data from SHT3X sensor: -5
    Temperature: 27.961394 C
    Humidity: 54.312957 %RH
    [00:00:11.805,725] <err> i2c_nrfx_twi: Error 0x0BAE0001 occurred for message 1
  • It is normal for device_is_ready(dev) to run successfully. The main issue arises when attempting to obtain temperature and humidity information at a higher frequency, leading to errors.

Related