aht10_sample.c 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * Copyright (c) 2006-2024, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2024-07-23 Wangyuqiang the first version
  9. */
  10. #include <rtthread.h>
  11. #include <rtdevice.h>
  12. #include "aht10.h"
  13. #define DBG_TAG "aht10"
  14. #define DBG_LVL DBG_LOG
  15. #include <rtdbg.h>
  16. #if defined(PKG_AHT10_USING_SENSOR_V2)
  17. #include "sensor_asair_aht10.h"
  18. #endif
  19. static void aht10_entry(void *parameter)
  20. {
  21. #if defined(PKG_AHT10_USING_SENSOR_V2) && (RTTHREAD_VERSION >= RT_VERSION_CHECK(5, 0, 1))
  22. struct rt_sensor_config cfg;
  23. rt_sensor_t aht10_sensor;
  24. rt_sensor_data_t aht10_data;
  25. cfg.intf.dev_name = PKG_AHT10_I2C_BUS_NAME;
  26. cfg.intf.arg = (void *)AHT10_I2C_ADDR;
  27. rt_hw_aht10_init("aht10", &cfg);
  28. LOG_I("AHT10(sensor_v2) has been initialized!");
  29. LOG_I("Temperature/Humidity mount cmd: [sensor probe tm-aht10/hm-aht10]");
  30. LOG_I("Temperature/Humidity read 5 times cmd: [sensor read 5]");
  31. #else
  32. float humidity, temperature;
  33. aht10_device_t dev;
  34. const char *i2c_bus_name = PKG_AHT10_I2C_BUS_NAME;
  35. int count = 0;
  36. rt_thread_mdelay(2000);
  37. dev = aht10_init(i2c_bus_name);
  38. if (dev == RT_NULL)
  39. {
  40. LOG_E("The sensor initializes failure");
  41. }
  42. LOG_I("AHT10 has been initialized!");
  43. while (1)
  44. {
  45. humidity = aht10_read_humidity(dev);
  46. LOG_D("Humidity : %d.%d %%", (int)humidity, (int)(humidity * 10) % 10);
  47. temperature = aht10_read_temperature(dev);
  48. LOG_D("Temperature: %d.%d", (int)temperature, (int)(temperature * 10) % 10);
  49. rt_thread_mdelay(1000);
  50. }
  51. #endif
  52. }
  53. int aht10_thread_port(void)
  54. {
  55. rt_thread_t res = rt_thread_create("aht10", aht10_entry, RT_NULL, 1024, 20, 50);
  56. if(res == RT_NULL)
  57. {
  58. LOG_E("aht10 thread create failed!");
  59. return -RT_ERROR;
  60. }
  61. rt_thread_startup(res);
  62. return RT_EOK;
  63. }
  64. INIT_DEVICE_EXPORT(aht10_thread_port);