راه اندازی سنسور رطوبت و دمای SHT3x محصول کمپانی Sensirion موضوع آموزش ما می باشد ، سنسور رطوبت و دمای SHT3x یک سنسور کالیبره شده توسط کارخانه برای اندازه گیری رطوبت و دما است. سری جدید سنسور رطوبت و دما SHT3x جانشین سری SHT2x است که استاندارد صنعتی بهتری ارائه می کند.
SHT3x نسبت به سنسورهای دیگر مانند LM35، DHT11، DHT22، ترمیستورها، DS18B20 دقیق تر است.
سری سنسور دما و رطوبت SHT3x شامل یک نسخه ارزان قیمت با سنسور رطوبت و دما SHT30، یک نسخه استاندارد با سنسور رطوبت و دما SHT31 و یک نسخه پیشرفته با سنسور رطوبت و دما SHT35 است.
SHT3x با یک CMOSens Chip کاملاً جدید بسته بندی شده است که باعث افزایش قابلیت اطمینان همراه با بهبود دقت در اندازه گیری می شود. SHT3x در مقایسه با SHT2x و سنسورهای دیگر طیف وسیعی از ویژگیهای جدید را ارائه میکند، مانند پردازش سیگنال پیشرفته، دو آدرس I2C متمایز و قابل انتخاب توسط کاربر (0x44 یا 0x45)، حالت هشدار(Alarm) با محدودیتهای رطوبت و دما قابل برنامهریزی، و سرعتهای ارتباطی تا 1 مگاهرتز را ارائه می دهد .
موضوعاتی که در این مقاله به آنها پرداخته خواهد شد :
ویژگی های سنسور رطوبت و دمای SHT3x
- محدوده ولتاژ تغذیه 2.4 تا 5.5 ولت است
- ±0.3 درجه سانتی گراد برای سنسورهای رطوبت و دما SHT30 , SHT31
- ±0.2 درجه سانتی گراد برای سنسور رطوبت و دما SHT35
- محدوده اندازه گیری دما: -40 ~ 125 درجه سانتیگراد
- دقت 3% در محدوده 10% تا 90% RH برای سنسور رطوبت و دما SHT30
- دقت 2% در محدوده 0 تا 100% RH برای سنسور رطوبت و دما SHT31
- دقت 1.5% در محدوده 0 تا 100% RH برای سنسور رطوبت و دما SHT35
اندازه کوچک ماژول اجازه می دهد تا تقریباً برای هر چیزی مانند ترموستات ها، رطوبت گیرها، ایستگاه های هواشناسی داخلی و دستگاه های مشابه، برای نظارت یا کنترل رطوبت و یا دما از آن استفاده شود.
سنسور SHT3x دارای یک پنجره کوچک است که فیلم حسگر پلیمری را که مسئول اندازهگیری دما و رطوبت است، در معرض دید قرار میدهد. توصیه می شود از تماس مایعات، گرد و غبار یا سایر آلاینده ها با آن جلوگیری کنید زیرا ممکن است بر دقت سنسور تأثیر بگذارد.
به دلیل ابعاد بسیار کوچک سنسور sht3x ، ساده ترین راه برای استفاده از این سنسور استفاده از هدربردها یا pcb های آماده است.هدربوردهای مختلفی با اندازه های متفاوت برای این سنسورها ساخته شده است .
این هدربردها طبق شماتیک زیر دارای مقاومت های پول آپ و پول دان و بقیه المان های مورد نیاز طبق توصیه دیتاشیت سنسور رطوبت و دما sht3x می باشند . فقط باید سیم های هدربرد SHT3x را به میکروکنترلر وصل کنیم و برنامه راه انداز را پروگرام کنیم.
توجه : بر روی بعضی از هدربردهای موجود پایه های AD , AL قرار داده نشده است .
ولتاژ کاری سنسور رطوبت و دمای SHT3x
سنسور خود از 2.4 ولت تا 5.5 ولت استفاده می کند که این ماژول را با 3 ولت یا 5 ولت سازگار می کند. بنابراین، می توانید بدون نگرانی از آن با میکروکنترلر 3.3 ولت یا 5 ولت مورد علاقه خود استفاده کنید.
SHT3x کمتر از 0.8mA در طول اندازه گیری ها و کمتر از 0.2μA در حالت بدون اندازه گیری مصرف می کند. این مصرف انرژی کم امکان پیاده سازی را در دستگاه های باتری دار مانند گوشی ها، پوشیدنی ها یا ساعت های هوشمند می دهد.
پروتکل ارتباط I2C سنسور رطوبت و دما SHT3x
SHT3x یک سنسور I2C است، به این معنی که از دو سیم داده/کلاک I2C موجود در اکثر میکروکنترلرها استفاده میکند و میتواند آن پینها را با سایر سنسورهای I2C به اشتراک بگذارد تا زمانی که تداخل آدرسی نداشته باشند.
از دو آدرس I2C جداگانه پشتیبانی می کند: 0x44Hex و 0x45Hex. این اجازه می دهد تا دو ماژول SHT3x در یک گذرگاه استفاده شود یا از تداخل آدرس با دستگاه دیگری در باس I2C جلوگیری شود.
پین AD آدرس I2C ماژول را تعیین می کند. این پین دارای یک مقاومت PullDown داخلی است. بنابراین، وقتی پین AD را بدون اتصال رها میکنید، آدرس I2C پیشفرض 0x44Hex است و وقتی آن را به سیگنال ولتاژ HIGH وصل میکنید، آدرس I2C به 0x45Hex تبدیل میشود.
حالت هشدار یا آلارم سنسور رطوبت و دما SHT3x
SHT3x دارای یک پین خروجی هشدار (AL) است که می تواند زمانی که شرایط محیطی (رطوبت و یا دما) از محدودیت های تعریف شده توسط کاربر فراتر رود، فعال شود. این امکان را فراهم می کند تا اندازه گیری ها به جای استفاده از سنجش مداوم ، به صورت وقفه شوند و به میکروکنترلر اجازه می دهد تا زمانی که داده ها توسط سنسور جمع آوری و مقایسه می شود ، وظایف دیگری را انجام دهد.
هنگامی که رطوبت و یا دما از حد بالایی عبور می کند، پین Alert HIGH می شود و تا زمانی که دما به زیر حد پایین کاهش یابد، HIGH باقی می ماند. به طور مشابه، هنگامی که رطوبت و یا دما از حد پایینتر تجاوز میکند، پین هشدار HIGH میشود و تا زمانی که دما از حد بالا، بیشتر شود ، HIGH باقی میماند.
تصویر زیر محدودیت های مختلف برای حالت هشدار را نشان می دهد.
پایه ها (pinout) سنسور رطوبت و دما sht3x
- VCC پایه تغذیه است. از آنجایی که سنسور از 2.4 تا 5.5V ولت استفاده می کند، ولتاژی برابر با سطح منطقی میکروکنترلر خود به آن بدهید – به عنوان مثال. برای میکرو 5 ولت مانند avr ، از 5 ولت و برای میکروی 3.3 ولت مانند stm32 از 3.3 ولت استفاده کنید.
- GND زمینه مشترک قدرت و منطق است.
- SCL پین ساعت I2C است، به خط ساعت I2C میکروکنترلرهای خود متصل شوید.
- SDA پین داده I2C است، به خط داده I2C میکروکنترلر خود متصل شوید.
- AD آدرس I2C ماژول را تعیین می کند. وقتی پین AD را بدون اتصال رها می کنید، آدرس I2C پیش فرض 0x44Hex است و وقتی آن را به ولتاژ تغذیه وصل می کنید، آدرس I2C 0x45Hex می شود.
- AL زمانی فعال می شود که شرایط محیطی (رطوبت و یا دما) از محدودیت های تعریف شده توسط کاربر فراتر رود.
راه اندازی سنسور دما و رطوبت SHT3x با بسکام
برای راه اندازی سنسور رطوبت و دمای sht3x با bascom ، برنامه و مثالی تهیه شده و به صورت عملی تست و اجرا شده است . در این مثال مقادیر رطوبت و دما از سنسور sht3x خوانده می شود و در محیط ترمینال سریال بسکام و همچنین lcd کاراکتری 2×16 نمایش داده می شود . اگر در انجام این کار مشکل داشتید پشتیبانی سایت میکرونیک آمادگی دارد تا شما را در انجام این کار راهنمایی کند .
راه اندازی سنسور دما و رطوبت SHT3x با کدویژن
برای علاقمندان به codevision برنامه و مثالی برای راه اندازی سنسور رطوبت و دمای sht3x با کدویژن ، تهیه شده و به صورت صد در صد عملی تست و اجرا شده است . در این مثال مقادیر رطوبت و دما از سنسور sht3x خوانده می شود و در محیط ترمینال سریال کدویژن نمایش داده می شود .
راه اندازی سنسور دما و رطوبت SHT3x با STM32
کتابخانه و مثال برای راه اندازی سنسورهای رطوبت و دما sht30,sht31,sht35 با stm32 تهیه شده است . این کتابخانه و مثال برای هر دو نرم افزار stm32cubeide و Keil موجود می باشد و توسط توابع HAL نوشته شده است .
توابع کتابخانه سنسور رطوبت و دما sht3x به شرح زیر می باشد . فقط کافی است توسط نرم افزار stm32cubemx یکی از پورت های i2c میکروکنترلر stm32 را فعال کنید و آن را به کتابخانه معرفی کنید .
#ifndef INC_SHT3x_H_ #define INC_SHT3x_H_ #include "main.h" extern I2C_HandleTypeDef hi2c1; #define sht_i2c &hi2c1 // Address #define SHT3x_I2C_DEVICE_ADDRESS_ADDR_PIN_LOW 0x44 #define SHT3x_I2C_DEVICE_ADDRESS_ADDR_PIN_HIGH 0x45 #define SHT3x_MEAS_HIGHREP_STRETCH 0x2C06 /**< Measurement High Repeatability with Clock Stretch Enabled */ #define SHT3x_MEAS_MEDREP_STRETCH 0x2C0D /**< Measurement Medium Repeatability with Clock Stretch Enabled */ #define SHT3x_MEAS_LOWREP_STRETCH 0x2C10 /**< Measurement Low Repeatability with Clock Stretch Enabled*/ #define SHT3x_MEAS_HIGHREP 0x2400 /**< Measurement High Repeatability with Clock Stretch Disabled */ #define SHT3x_MEAS_MEDREP 0x240B /**< Measurement Medium Repeatability with Clock Stretch Disabled */ #define SHT3x_MEAS_LOWREP 0x2416 /**< Measurement Low Repeatability with Clock Stretch Disabled */ #define SHT3x_READSTATUS 0xF32D /**< Read Out of Status Register */ #define SHT3x_CLEARSTATUS 0x3041 /**< Clear Status */ #define SHT3x_SOFTRESET 0x30A2 /**< Soft Reset */ #define SHT3x_HEATEREN 0x306D /**< Heater Enable */ #define SHT3x_HEATERDIS 0x3066 /**< Heater Disable */ #define SHT3x_REG_HEATER_BIT 0x0d /**< Status Register Heater Bit */ typedef enum { SHT3x_OK, SHT3x_Data_Error, SHT3x_Timeout, SHT3x_Not_Ready, SHT3x_Transmit_Error, SHT3x_Receive_Error } SHT3x_Status; SHT3x_Status SHT3x_SendCommand(uint16_t); SHT3x_Status SHT3x_GetBytes(uint8_t*, int); SHT3x_Status SHT3x_Read(float *temperature, float *humidity); uint8_t SHT3x_CRC_8(uint8_t*, int); void SHT3x_Init(void) ; uint16_t readStatus(void); void reset(void); void heater(_Bool h); uint8_t isHeaterEnabled(void); #endif /* INC_SHT3x_H_ */
همچنین بخوانید: آموزش راه اندازی سنسور رطوبت و دما SHT1x , SHT7x