فهرست مطالب:
- تدارکات
- مرحله 1: مدارها
- مرحله 2: روش
- مرحله 3: TMP36 - آزمایش اولیه
- مرحله 4: نتایج جایگزینی پتانسیومتر
- مرحله 5: میانگین خواندن و یک نتیجه
- مرحله 6: DS18B20 - آزمایش اولیه
- مرحله 7: DS18B20 خوب کار می کند
- مرحله 8: DHT22 و DHT11
- مرحله 9: نتایج DHT22
- مرحله 10: آزمایش DTH11
- مرحله 11: BME680
- مرحله 12: از کدامیک استفاده کنم؟
- مرحله 13: اندیشه ها و آزمایش های بیشتر
- مرحله 14: نمودار کامل
- مرحله 15: نتیجه گیری
تصویری: آزمایش سنسورهای دما - کدام برای من؟: 15 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
یکی از اولین حسگرهایی که تازه واردان به محاسبات فیزیکی می خواهند آن را امتحان کنند ، چیزی برای اندازه گیری دما است. چهار مورد از محبوب ترین سنسورها TMP36 است که دارای خروجی آنالوگ است و نیاز به مبدل آنالوگ به دیجیتال دارد ، DS18B20 ، که از اتصال یک سیم ، DHT22 یا DHT11 کمی ارزان تر استفاده می کند ، که فقط به پین دیجیتال نیاز دارد ، اما همچنین رطوبت را نشان می دهد ، و در آخر BME680 که از I2C (با SPI و همچنین بر روی برخی از صفحات شکست) استفاده می کند و دما ، رطوبت ، گاز (VOC) و فشار اتمسفر را ارائه می دهد ، اما کمی بیشتر هزینه دارد.
من می خواهم ببینم که چقدر دقیق هستند ، و مزایا یا معایب آن را کشف کنم. من در حال حاضر دارای یک دماسنج جیوه ای دقیق هستم که از چاپ عکاسی رنگی در روزهای پردازش شیمیایی باقی مانده است تا آنها را با آنها مقایسه کنم. (هرگز چیزی را بیرون نیندازید - بعداً به آن احتیاج خواهید داشت!)
من برای این آزمایشها از CircuitPython و Adafruit Itsybitsy M4 استفاده می کنم. درایورهای مناسب برای همه دستگاه ها موجود است.
تدارکات
لیست اولیه من:
- میکروکنترلر Itsybitsy M4 Express
- کابل میکرو USB - برای برنامه نویسی
- TMP36
- DS18B20
- مقاومت 4.7 کیلو اهم
- DHT22
- BME680
- چند متری
- تخته نان یا تخته نواری
- سیم اتصال
مرحله 1: مدارها
سیمهای نارنجی 3.3 ولت است
سیم های مشکی GND هستند
در پایین برد نقاط آزمایش اندازه گیری ولتاژ وجود دارد. (خروجی آنالوگ 3.3v ، GND و TMP36)
پریزهای مرکزی از چپ به راست عبارتند از:
- TMP36: 3.3v ، خروجی سیگنال آنالوگ ، GND
- DS18B20: GND ، خروجی سیگنال دیجیتال ، 3.3 ولت
- DHT22: 3.3v ، خروجی سیگنال ، خالی ، GND
- BME680: 3.3v ، SDA ، SCL ، خالی ، GND
کانکتور عقب ، برای اتصال به برد IB M4E ، از چپ به راست
- 3.3 ولت
- TMP36 - خروجی آنالوگ به پین A2
- GND
- DS18B20 دیجیتال به پین D3 - سبز
- DHT22 دیجیتال به پین D2 - زرد
- SDA - سفید
- SCL - صورتی
مقاومت 4.7K اهم از سیگنال تا 3.3 ولت برای اتصال 0 سیم در DS18B20 است.
2 تکه برش در پشت تخته وجود دارد:
زیر انتهای سمت چپ سیمهای صورتی و سفید. (زیر سیم زرد.)
مرحله 2: روش
برای هر سنسور من یک اسکریپت کوتاه می نویسم تا دما (و موارد دیگر در صورت موجود بودن) را چندین بار بخوانم و دما را با دماسنج جیوه (Hg) اندازه گیری کنم. من به دنبال این هستم که ببینم دما چقدر با قرائت جیوه مقایسه می شود و آیا قرائت ها ثابت یا سازگار هستند یا خیر.
من همچنین به اسناد و مدارک نگاه می کنم تا ببینم آیا قرائت ها با دقت مورد انتظار مطابقت دارند و آیا می توان کاری را برای بهبود انجام داد.
مرحله 3: TMP36 - آزمایش اولیه
پای چپ 3.3 ولت ، پای راست GND و پای مرکزی ولتاژ آنالوگ است که دما را با استفاده از فرمول زیر نشان می دهد. TempC = (میلی ولت - 500) / 10
بنابراین ، 750 میلی ولت دمای 25 درجه سانتیگراد می دهد
به نظر می رسد در اینجا چند مشکل وجود دارد. دما از دماسنج جیوه "معمولی" بسیار پایین تر از TMP36 است و قرائت ها چندان سازگار نیستند - "تکان" یا سر و صدا وجود دارد.
سنسور TMP36 ولتاژی متناسب با دما ارسال می کند. قبل از محاسبه دما ، این باید توسط مبدل A/D خوانده شود. بیایید ولتاژ را مستقیماً از پای وسط سنسور با چند متر بخوانیم و آن را با نتیجه A/D مقایسه کنیم. خوانش از پایه مرکزی با چند متر من 722 میلی ولت است ، بسیار پایین تر و یک خوانش بسیار ثابت است.
ما دو چیز را می توانیم امتحان کنیم. پتانسیومتر را برای TMP36 جایگزین کنید و ولتاژ را در محاسبه با ولتاژ واقعی میکروکنترلر تنظیم کنید. سپس خواهیم دید که آیا ولتاژ محاسبه شده نزدیکتر است و آیا سر و صدا/تکان خوردن کاهش می یابد یا خیر.
بیایید ولتاژ واقعی مورد استفاده در میکروکنترلر و A/D را اندازه گیری کنیم. ولتاژ 3.3 ولت فرض شد اما در واقع فقط 3.275 ولت است.
مرحله 4: نتایج جایگزینی پتانسیومتر
این خیلی بهتر است. اندازه گیری ها در چند میلی ولت با سر و صدای بسیار کمتر است. این نشان می دهد که سر و صدا از TMP36 است نه A/D. خواندن بر روی متر همیشه ثابت است - بدون لرزش. (ممکن است متر خروجی تکان دهنده را "هموار" کند.)
یکی از راه های بهبود وضعیت ممکن است مطالعه متوسط باشد. ده قرائت را سریع انجام دهید و از میانگین استفاده کنید. همچنین هنگام تغییر برنامه ، انحراف معیار را محاسبه می کنم تا نشانه ای از گستردگی نتایج را ارائه دهم. من همچنین تعداد خوانش ها را در 1 انحراف استاندارد از میانگین محاسبه می کنم - هرچه بیشتر بهتر.
مرحله 5: میانگین خواندن و یک نتیجه
هنوز سر و صدای زیادی وجود دارد و میزان خوانش TMP36 هنوز از دماسنج جیوه بیشتر است. برای کاهش نویز ، من یک خازن 100NF بین سیگنال و GND قرار داده ام
سپس راه حل های دیگر را در اینترنت جستجو کردم و اینها را پیدا کردم: https://www.doctormonk.com/2015/02/accurate-and-re… دکتر مونک پیشنهاد می کند که شامل یک مقاومت 47 کیلو اهم بین سیگنال و GND باشد.
www.desert-home.com/2015/03/battery-operate… در حالی که این پسر پیشنهاد می کند 15 قرائت را به ترتیب مرتب کرده و میانگین مرکز 5 را مشخص کنید.
من اسکریپت و مدار را تغییر دادم تا این پیشنهادات را شامل شود و شامل خواندن دماسنج جیوه بود.
در آخر! در حال حاضر ما در محدوده دقت توصیف دستگاه قرائت ثابتی داریم.
این تلاش بسیار زیادی برای به کار انداختن سنسور بود که فقط دارای دقت تولید کننده است:
دقت - بیشترین (کمترین): ± 3 درجه سانتی گراد (° 4 درجه سانتی گراد) هزینه آنها فقط حدود 1.50 دلار (2 پوند) است
مرحله 6: DS18B20 - آزمایش اولیه
خیلی مراقب باش. این بسته بسیار شبیه TMP36 است ، اما پاها برعکس با 3.3 ولت در سمت راست و GND در سمت چپ است. سیگنال خروجی در مرکز است. برای کارکردن این دستگاه به مقاومت 4.7 کیلو اهم بین سیگنال و 3.3 ولت نیاز داریم. این دستگاه از پروتکل یک سیم استفاده می کند و ما باید چند درایور را در پوشه lib Itsybitsy M4 Express بارگیری کنیم.
این حدود 4 دلار / 4 پوند هزینه دارد مشخصات فنی:
- محدوده دمای قابل استفاده: -55 تا 125 درجه سانتی گراد (-67 درجه فارنهایت تا +257 درجه فارنهایت)
- وضوح انتخابی 9 تا 12 بیت
- از رابط 1 -Wire استفاده می کند - برای ارتباط فقط به یک پین دیجیتالی نیاز دارد
- شناسه 64 بیتی منحصر به فرد در تراشه سوخته است
- چندین سنسور می توانند یک پین را به اشتراک بگذارند
- ± 0.5 ° C دقت از -10 ° C تا +85 ° C
- سیستم اعلام خطر محدودیت دما
- زمان پرس و جو کمتر از 750 میلی ثانیه است
- قابل استفاده با توان 3.0 تا 5.5 ولت
مشکل اصلی این سنسور این است که از رابط Dallas 1-Wire استفاده می کند و همه میکروکنترلرها درایور مناسبی ندارند. ما خوش شانس هستیم ، راننده ای برای Itsybitsy M4 Express وجود دارد.
مرحله 7: DS18B20 خوب کار می کند
این یک نتیجه عالی را نشان می دهد.
مجموعه ای مداوم از قرائت ها بدون هیچ گونه کار اضافی و سربار محاسبه. قرائت ها در مقایسه با دماسنج جیوه ای من در محدوده دقت مورد انتظار 0.5 درجه سانتی گراد است.
همچنین یک نسخه ضد آب با قیمت حدود 10 دلار وجود دارد که من در گذشته با موفقیت یکسان از آن استفاده می کردم.
مرحله 8: DHT22 و DHT11
DHT22 برای به دست آوردن دما از ترمیستور استفاده می کند و هزینه آن حدود 10 دلار / 10 پوند است و برادر دقیق تر و گران قیمت DHT11 کوچکتر است. همچنین از رابط تک سیم استفاده می کند اما با پروتکل دالاس استفاده شده با DS18B20 سازگار نیست. رطوبت و همچنین دما را حس می کند. این دستگاه ها گاهی اوقات به مقاومت کششی بین 3.3 ولت و پین سیگنال نیاز دارند. این بسته قبلاً یکی را نصب کرده است.
- کم هزینه
- قدرت 3 تا 5 ولت و ورودی/خروجی
- حداکثر 2.5 میلی آمپر جریان فعلی در هنگام تبدیل (هنگام درخواست داده)
- برای خواندن رطوبت 0-100 with با دقت 2-5 Good خوب است
- برای خواندن دمای 40- تا 80 درجه سانتی گراد با دقت 0.5 درجه سانتی گراد مناسب است
- نرخ نمونه برداری بیش از 0.5 هرتز (هر 2 ثانیه یک بار)
- اندازه بدنه 27mm x 59mm x 13.5mm (1.05 "x 2.32" x 0.53 ")
- 4 پین ، فاصله 0.1 اینچ
- وزن (فقط DHT22): 2.4 گرم
در مقایسه با DHT11 ، این سنسور دقیق تر ، دقیق تر است و در محدوده دما و رطوبت بیشتری کار می کند ، اما بزرگتر و گران تر است.
مرحله 9: نتایج DHT22
این نتایج بسیار عالی با تلاش بسیار اندک است. قرائتها کاملاً ثابت و در حد تحمل مورد انتظار است. رطوبت خوانی یک امتیاز است.
فقط می توانید هر ثانیه قرائت کنید.
مرحله 10: آزمایش DTH11
دماسنج جیوه ای من 21.9 درجه سانتیگراد نشان داد. این DHT11 بسیار قدیمی است که من از یک پروژه قدیمی بازیابی کرده ام و مقدار رطوبت با خواندن DHT22 چند دقیقه قبل بسیار متفاوت است. هزینه آن حدود 5 دلار / 5 پوند است.
شرح آن شامل موارد زیر است:
- برای خواندن رطوبت 20-80 with با دقت 5 Good خوب است
- برای خواندن دمای 0-50 درجه سانتی گراد accuracy دقت 2 درجه سانتی گراد - کمتر از DTH22
به نظر می رسد دما هنوز در محدوده دقت است ، اما من به رطوبت خوانده شده در این دستگاه قدیمی اعتماد ندارم.
مرحله 11: BME680
این سنسور شامل قابلیت های دما ، رطوبت ، فشار سنجی و گاز VOC در یک بسته است ، اما گرانترین سنسورهای آزمایش شده در اینجا است. هزینه آن حدود 18.50 پوند / 22 دلار است. یک محصول مشابه بدون سنسور گاز وجود دارد که کمی ارزان تر است.
این یک سنسور استاندارد طلا از پنج است. سنسور دما دقیق است و با درایورهای مناسب ، استفاده از آن بسیار آسان است. این نسخه از I2C استفاده می کند اما برد بریک آدافروت نیز می تواند از SPI استفاده کند.
مانند BME280 و BMP280 ، این سنسور دقیق Bosch می تواند رطوبت را با دقت ± 3، ، فشار بارومتریک با absolute 1 hPa دقت مطلق و دما را با دقت ± 1.0 C اندازه گیری کند. از آنجا که فشار با ارتفاع تغییر می کند و اندازه گیری فشار بسیار خوب است ، می توانید از آن به عنوان ارتفاع سنج با 1 متر یا دقت بهتر استفاده کنید!
اسناد و مدارک می گوید برای سنسور گاز به زمان احتراق نیاز دارد.
مرحله 12: از کدامیک استفاده کنم؟
- TMP36 بسیار ارزان ، کوچک و محبوب است اما استفاده از آن بسیار مشکل است و ممکن است نادرست باشد.
- DS18B20 کوچک ، دقیق ، ارزان ، بسیار آسان برای استفاده است و دارای نسخه ضد آب است.
- DTH22 همچنین نشان دهنده رطوبت ، قیمت متوسط و استفاده آسان است اما ممکن است بسیار کند باشد.
- BME680 بسیار بیشتر از بقیه عمل می کند اما گران است.
اگر من فقط درجه حرارت می خواهم از DS18B20 با دقت 0.5 درجه سانتی گراد استفاده می کنم ، اما مورد علاقه من BME680 است زیرا بسیار بیشتر کار می کند و می تواند در تعداد زیادی از پروژه های مختلف مورد استفاده قرار گیرد.
یک فکر آخر. اطمینان حاصل کنید که سنسور دما را به خوبی از ریزپردازنده دور نگه دارید. برخی از HAT های رزبری پای به گرمای صفحه اصلی اجازه می دهند تا سنسور را گرم کند و یک خوانش اشتباه ایجاد کند.
مرحله 13: اندیشه ها و آزمایش های بیشتر
از gulliverrr ، ChristianC231 و pgagen برای نظرات شما در مورد کارهایی که تا کنون انجام داده ام تشکر می کنم. متأسفم برای تأخیر ، اما من در تعطیلات در ایرلند بودم ، بدون دسترسی به کیت لوازم الکترونیکی خود برای چند هفته.
در اینجا اولین تلاش برای نشان دادن همکاری سنسورها است.
من یک اسکریپت نوشتم تا سنسورها را به نوبت بخوانم و مقادیر دما را هر 20 ثانیه یا بیشتر چاپ کنم.
کیت را به مدت یک ساعت در یخچال گذاشتم تا همه چیز خنک شود. آن را به رایانه وصل کردم و مو را مجبور کردم تا نتایج را چاپ کند. سپس خروجی کپی شده ، تبدیل به یک فایل.csv (متغیرهای جدا شده با کاما) می شود و نمودارها از نتایج در Excel استخراج می کنند.
از زمان بیرون آوردن کیت از یخچال حدود سه دقیقه طول کشید تا نتایج ثبت شود ، بنابراین مقداری افزایش دما در این فاصله رخ داده است. من گمان می کنم که چهار سنسور دارای ظرفیت های حرارتی متفاوتی هستند و بنابراین با سرعت های مختلف گرم می شوند. انتظار می رود با نزدیک شدن سنسورها به دمای اتاق ، میزان گرمایش کاهش یابد. من این دما را با دماسنج جیوه 24.4 درجه سانتی گراد ثبت کردم.
تفاوت های گسترده دما در ابتدای منحنی ها می تواند به دلیل ظرفیت های مختلف حرارتی سنسورها باشد. خوشحالم که می بینم خطوط با نزدیک شدن به دمای اتاق تا انتها همگرا می شوند. من نگران هستم که TMP36 همیشه بسیار بالاتر از سنسورهای دیگر باشد.
من برگه ها را جستجو کردم تا دوباره دقت توصیف شده این دستگاه ها را بررسی کنم
TMP36
- accuracy دقت 2 درجه سانتی گراد نسبت به دما (نوع)
- line 0.5 درجه سانتی گراد خطی (نوع)
DS18B20
± 0.5 ° C دقت از -10 ° C تا +85 ° C
DHT22
دما ± 0.5 درجه سانتی گراد
BME680
دما با دقت ± 1.0 درجه سانتی گراد
مرحله 14: نمودار کامل
اکنون می بینید که سنسورها در نهایت هم سطح شده و بر اساس درجه حرارت با دقت توصیف شده خود توافق کردند. اگر 1.7 درجه از مقادیر TMP36 خارج شود (° 2 درجه سانتی گراد انتظار می رود) بین همه سنسورها توافق خوبی وجود دارد.
اولین باری که این آزمایش را انجام دادم سنسور DHT22 مشکلی ایجاد کرد:
خروجی main.py:
14.9, 13.5, 10.3, 13.7
15.7, 14.6, 10.5, 14.0
16.6, 15.6, 12.0, 14.4
18.2, 16.7, 13.0, 15.0
18.8, 17.6, 14.0, 15.6
19.8, 18.4, 14.8, 16.2
21.1, 18.7, 15.5, 16.9
21.7, 19.6, 16.0, 17.5
22.4, 20.2, 16.5, 18.1
23.0, 20.7, 17.1, 18.7
خطای خواندن DHT: ('سنسور DHT پیدا نشد ، سیم کشی را بررسی کنید')
ردیابی (آخرین تماس اخیر):
فایل "main.py" ، خط 64 ، در
فایل "main.py" ، خط 59 ، در get_dht22
NameError: متغیر محلی قبل از تخصیص به آن اشاره شده است
بنابراین من اسکریپت را برای مقابله با این مشکل تغییر دادم و ضبط را دوباره شروع کردم:
خطای خواندن DHT: ('سنسور DHT پیدا نشد ، سیم کشی را بررسی کنید')
25.9, 22.6, -999.0, 22.6
خطای خواندن DHT: ("سنسور DHT یافت نشد ، سیم کشی را بررسی کنید" ،)
25.9, 22.8, -999.0, 22.7
25.9, 22.9, 22.1, 22.8
25.9, 22.9, 22.2, 22.9
خطای خواندن DHT: ('سنسور DHT پیدا نشد ، سیم کشی را بررسی کنید')
27.1, 23.0, -999.0, 23.0
خطای خواندن DHT: ("سنسور DHT یافت نشد ، سیم کشی را بررسی کنید" ،)
27.2, 23.0, -999.0, 23.1
25.9, 23.3, 22.6, 23.2
خطای خواندن DHT: ('سنسور DHT پیدا نشد ، سیم کشی را بررسی کنید')
28.4, 23.2, -999.0, 23.3
خطای خواندن DHT: ('سنسور DHT پیدا نشد ، سیم کشی را بررسی کنید')
26.8, 23.1, -999.0, 23.3
26.5, 23.2, 23.0, 23.4
26.4, 23.3, 23.0, 23.5
26.4, 23.4, 23.1, 23.5
26.2, 23.3, 23.1, 23.6
با اجرای دوم مشکلی نداشتم. مستندات Adafruit هشدار می دهد که گاهی اوقات سنسورهای DHT قرائت را از دست می دهند.
مرحله 15: نتیجه گیری
این منحنی به وضوح نشان می دهد که ظرفیت حرارتی بالاتر برخی از سنسورها زمان واکنش آنها را افزایش می دهد.
همه سنسورها افزایش و کاهش دما را ثبت می کنند.
آنها خیلی سریع نمی توانند به دمای جدید برسند.
آنها خیلی دقیق نیستند. (آیا آنها برای ایستگاه هواشناسی به اندازه کافی خوب هستند؟)
ممکن است لازم باشد سنسور خود را در برابر دماسنج مورد اعتماد کالیبره کنید.
توصیه شده:
OpenLH: سیستم باز کردن مایعات باز برای آزمایش خلاق با زیست شناسی: 9 مرحله (همراه با تصاویر)
OpenLH: سیستم باز کردن مایعات باز برای آزمایش خلاق با زیست شناسی: مفتخریم که این اثر را در کنفرانس بین المللی تعامل ملموس ، جاسازی شده و تجسم یافته (TEI 2019) ارائه می دهیم. تمپه ، آریزونا ، ایالات متحده | 17 تا 20 مارس. همه فایلهای مونتاژ و راهنماها در اینجا موجود است. آخرین نسخه کد در دسترس است
سنسورهای فرمت Nodemcu ESP8266 برای Weewx: 8 مرحله (همراه با تصاویر)
سنسورهای افزونه Nodemcu ESP8266 for Weewx: این یک دستورالعمل برای افزودن حسگرها به نرم افزار ایستگاه هواشناسی weewx است. اگر weewx را ندارید ، می توانید در این آموزش مواردی را بیاموزید. شما نیاز به دانش اولیه از کد Arduino و نحوه بارگذاری در دستگاه شما اطلاعات weewx را در اینجا پیدا می کنید
سنسورهای مجاورت IR ارزان برای روبات های آردوینو: 6 مرحله (همراه با تصاویر)
سنسورهای مجاورت IR ارزان برای روبات های آردوینو: این سنسورهای مجاورت مادون قرمز کوچک ، آسان برای ساخت و فوق العاده ارزان هستند! آنها روی ربات ها ، برای دنبال کردن خط ، تشخیص لبه و حداقل فاصله سنجی ، عالی عمل می کنند. آنها همچنین بسیار بسیار ارزان هستند
سنسورهای دست انداز ارزان برای روبات های آردوینو: 4 مرحله (همراه با تصاویر)
سنسورهای دست انداز ارزان برای روبات های آردوینو: برای تصاحب ربات خود به سنسورهای ضربه ای ارزان و با منبع آسان نیاز دارید- منظور من پروژه آردوینو است؟ این سنسورهای کوچک به راحتی قابل استفاده هستند ، ساخت آنها آسان است و در کیف پول آسان هستند (هر قسمت 17 سنت!) ، و برای تشخیص ساده موانع در میکروکنترلر-ba عالی کار می کند
آماده سازی برخی از سنسورهای PIR مازاد برای روباتیک: 3 مرحله (همراه با تصاویر)
تعدادی سنسور PIR مازاد برای روباتیک آماده کنید: من تعدادی سنسور PIR را در eBay پیدا کردم. آنها بر روی pcb نصب شده اند که برای مجموعه ای بدون دست برای تلفن های همراه تولید شده است. من دوست دارم در اینجا نحوه آماده سازی سنسور برای استفاده در پروژه های رباتیک را توضیح دهم. اگر نمی دانید سنسور PIR چیست ،