تحلیل پروژه‌های الکترونیک

تحلیل Weather Shield؛ از مدار حسگرها تا دادهٔ قابل اعتماد هواشناسی

در Weather Shield، حسگرهای دما، رطوبت، فشار و نور روی یک برد جمع شده‌اند. مسیر تغذیه، تبدیل سطح، خواندن داده و اثر چیدمان را دنبال می‌کنیم تا ببینیم کدام عدد واقعاً قابل اعتماد است.

تحلیل Weather Shield؛ از مدار حسگرها تا دادهٔ قابل اعتماد هواشناسی
فهرست مطالب

برای ساخت یک ایستگاه هواشناسی، کنار هم گذاشتن چند حسگر کافی نیست. باید بدانیم هر عدد از کجا آمده، برق مدار چطور تأمین می‌شود و گرمای خود دستگاه چه اثری بر اندازه‌گیری دارد. پروژهٔ متن‌باز Weather Shield اسپارک‌فان نمونهٔ خوبی برای دیدن این تصمیم‌هاست: رطوبت و دما، فشار و نور را می‌خواند و برای ابزارهای باران و باد هم ورودی دارد. مهم‌ترین درس این طراحی، تفاوت میان «خواندن یک عدد» و «اندازه‌گیری قابل اعتماد» است.

شیلد یعنی یک برد افزونه که روی برد اصلی سوار می‌شود. برد اصلی اینجا Arduino Uno R3 است؛ برنامه را اجرا می‌کند، دادهٔ حسگرها را می‌خواند و آن را به کامپیوتر می‌فرستد. خود شیلد پردازندهٔ مستقلی برای اجرای این برنامه ندارد. این بررسی مربوط به نسخهٔ مشخصی از پروژهٔ SparkFun Electronics با شناسهٔ 77a360d0d9738a20ad49a2e2dd14cfd86bb9a7ed، ثبت‌شده در ۴ ژوئیهٔ ۲۰۲۳ است؛ تاریخ بررسی ۲۵ اکتبر ۲۰۲۶ است.

خرید برد و انتخاب نسخهٔ درست

مدل بررسی‌شده DEV-13956، Weather Shield V1.2 است؛ برد کاملِ سازگار با فرم Uno، با حسگر رطوبت Si7021. مدل قدیمی DEV-12081 از HTU21D استفاده می‌کند و همین پروژه نیست. در بررسی ۲۵ اکتبر ۲۰۲۶، صفحهٔ مستقیم سازنده برد را بازنشسته و ناموجود نشان می‌داد و صفحهٔ همان برد در DigiKey وضعیت Obsolete داشت. بنابراین این لینک‌ها را محل خریدِ موجود معرفی نمی‌کنیم.

در ایران، صفحهٔ مستقیم و قابل تأییدی برای همین برد و همین نسخه پیدا نشد؛ موجودی داخلی آن تأیید نشده است. ماژول‌های جداگانهٔ Si7021، BMP280 یا یک «کیت هواشناسی» نامشخص، جایگزین یکسان این برد نیستند. مطالعهٔ تحلیل به خرید برد وابسته نیست؛ فایل‌های طراحی و مثال‌های عددی برای دنبال کردن تصمیم‌ها کافی‌اند.

مسئله چیست و هر بخش چه کاری انجام می‌دهد؟

فرض کنید می‌خواهیم تغییرات هوای یک اتاقک را ثبت کنیم: آیا دما بالا رفته؟ هوا مرطوب‌تر شده؟ فشار کم شده یا فقط نور روی حسگر تغییر کرده است؟ حسگر، کمیتی از محیط را به خروجی الکتریکی تبدیل می‌کند؛ برنامهٔ میزبان این خروجی را می‌خواند و با واحد مناسب نمایش می‌دهد. برای آشنایی با تفاوت این دو مرحله، تفاوت حسگر آنالوگ و دیجیتال کمک می‌کند.

مسیر داده از محیط و حسگرهای شیلد به برد Uno و ثبت‌کننده
ابزار اندازه‌گیری، پردازش و ثبت سه بخش جدا هستند؛ معتبر بودن داده باید همراه مقدار آن ثبت شود. نمودار اقتباسی از طراحی SparkFun؛ CC BY-SA 4.0.
بخش در فایل V1.2نقش و اتصالبرداشت درست از خروجی
حسگر U5، مدل Si7021؛ پکیج DFN شش‌پایهدما و رطوبت نسبی؛ تغذیهٔ ۳٫۳ ولت و ارتباط I²Cرطوبت نسبی با دما تغییر می‌کند؛ ۵۰٪ یعنی نصف ظرفیت اشباع در همان دما، نه نصف حجم هوا از آب.
حسگر U4، مدل MPL3115A2؛ فوت‌پرینت LGA8فشار مطلق هوا و دما؛ ارتباط I²Cفشار محلی، فشار تصحیح‌شده به سطح دریا نیست. دمای این تراشه الزاماً دمای آزاد هوا نیست.
حسگر نور U3، مدل ALS-PT19 و مقاومت R10 برابر ۱۰ کیلو‌اهمجریان وابسته به نور را به ولتاژ روی A1 تبدیل می‌کند.کد ولتاژ را گزارش می‌کند؛ بدون مدل تبدیل و کالیبراسیون، عدد لوکس نداریم.
اتصال‌های اختیاری باد و بارانجهت باد روی A0، سرعت باد روی D3 و باران روی D2دقت و ضریب تبدیل به ابزار مکانیکیِ متصل، سیم‌کشی و حذف جهش کنتاکت وابسته است.
رگولاتور U6 و مبدل‌های سطح Q1 و Q2تولید خط ۳٫۳ ولت و ارتباط حسگرها با میزبان ۵ ولتیوجود مبدل سطح I²C به معنی سازگاری همهٔ ورودی‌های برد با هر میزبان ۳٫۳ ولتی نیست.

مرجع این جدول شماتیک همان commit است. نام U5 در فایل فقط SI7021 است؛ پسوند سفارش، گرید و A10 یا A20 بودن قطعهٔ مونتاژشده مشخص نشده است. دیتاشیت همراه راهنمای پروژه مربوط به Si7021-A10، ویرایش ۱٫۰ است؛ مشخصات یک A20 یا هر ماژول مشابه را نباید بی‌بررسی به نمونهٔ واقعی نسبت داد.

تغذیه را از نام پایه‌ها دنبال کنیم

ولتاژ، اختلاف پتانسیل بین دو نقطه است؛ اینجا همهٔ ولتاژها نسبت به GND یا زمین مشترک خوانده می‌شوند. در شماتیک، ورودی VIN به پایه‌های IN و EN رگولاتور U6 می‌رود. خروجی آن خط ۳٫۳ ولت حسگرها، تغذیهٔ GPS اختیاری و ورودی مرجع A3 را تأمین می‌کند. خازن‌های C13 و C14 هرکدام ۱۰ میکروفاراد هستند؛ C13 در ورودی و C14 در خروجی قرار دارد. قطعات کوچک‌تر نزدیک حسگرها به تأمین جریان لحظه‌ای کمک می‌کنند.

تفکیک مسیر VIN و رگولاتور سه ممیز سه ولت از خط پنج ولت میزبان
خط ۵ ولت میزبان و VIN در این طراحی دو اتصال متفاوت‌اند. شکل، مسیرهای اصلی را خلاصه می‌کند و شماتیک کامل نیست؛ اقتباس از SparkFun، CC BY-SA 4.0.

خط جداگانهٔ ۵ ولت از میزبان به بالاکش‌های سمت میزبانِ I²C، بالاکش جهت باد و دیودهای محدودکنندهٔ ورودی می‌رسد. پایهٔ ۳٫۳ ولتِ هدر Uno در این فایل به شبکهٔ تغذیهٔ شیلد وصل نشده است. در نتیجه روشن بودن Uno یا باز شدن پورت USB به‌تنهایی ثابت نمی‌کند که VIN شیلد و سپس خط ۳٫۳ ولت حاضرند. پیش از تغییر کد، همین سه نقطه را نسبت به زمین اندازه بگیرید؛ مسیر تغذیهٔ برد میزبان و نسخه‌های کپی ممکن است فرق کند. VIN را به ۵ ولت پل نزنید و منابع تغذیه را بدون بررسی مسیر برگشت جریان به هم وصل نکنید.

در کتابخانهٔ قطعات، U6 از خانوادهٔ MIC5205 و با خروجی ثابت ۳٫۳ ولت، پکیج SOT-23-5 معرفی شده؛ پسوند کامل خرید در فایل نیست. پایهٔ ۱ ورودی، ۲ زمین، ۳ فعال‌سازی، ۴ بای‌پس و ۵ خروجی است. در دیتاشیت MIC5205 جریان نامی ۱۵۰ میلی‌آمپر آمده، اما این عدد مجوز مصرف ۱۵۰ میلی‌آمپر در هر ولتاژ و دمایی نیست. نوع خازن خروجی و شرط پایداری رگولاتور هم باید هنگام جایگزینی قطعه حفظ شود؛ جایگزینی تانتالیوم با سرامیک فقط بر اساس ظرفیت درست نیست.

مثال حرارتی: گرما کجا می‌رود؟

رگولاتور خطی اختلاف ولتاژ را عمدتاً به گرما تبدیل می‌کند. اگر فرض کنیم VIN برابر ۹ ولت و مصرف کل خروجی ۵۰ میلی‌آمپر باشد، با صرف‌نظر از جریان داخلی رگولاتور:

P ≈ (VIN − VOUT) × I
P ≈ (9 − 3.3) V × 0.050 A = 0.285 W
ΔTJ ≈ 0.285 W × 220 °C/W = 62.7 °C

عدد ۲۲۰ درجهٔ سلسیوس بر وات، مقاومت حرارتی اتصال داخلی به محیط در شرایط ذکرشدهٔ دیتاشیت است. افزایش ۶۲٫۷ درجه فقط تخمین دمای داخلی رگولاتور با همان فرض‌هاست؛ نه اندازه‌گیری این برد، نه دمای حسگر و نه تضمین کارکرد آن. مس، جریان واقعی، جریان داخلی و محفظه نتیجه را عوض می‌کنند. با این حال علت یک تصمیم طراحی روشن می‌شود: حسگر دما و رطوبت را نباید کنار منبع گرما محبوس کرد. محاسبهٔ اتلاف رگولاتور خطی همین رابطه را با جزئیات بیشتری توضیح می‌دهد.

چرا دو خط I²C به مبدل سطح نیاز دارند؟

I²C راه ارتباط چند قطعه با دو سیم است: SDA داده را حمل می‌کند و SCL زمان جابه‌جایی آن را مشخص می‌کند. روی هر سیم، قطعات معمولاً خط را پایین می‌کشند و مقاومت بالاکش آن را به سطح بالا برمی‌گرداند. حسگرهای این شیلد روی ۳٫۳ ولت کار می‌کنند؛ وصل کردن مستقیم بالاکش ۵ ولتی به آن‌ها انتخاب درستی نیست.

در فایل مدار، Q1 و Q2 از نوع BSS138 در SOT-23 هستند. گیت هر دو به ۳٫۳ ولت، سورس به سمت حسگر و درین به سمت میزبان وصل شده است. برای SDA، مقاومت‌های R3 و R4 و برای SCL، مقاومت‌های R2 و R5 هرکدام ۴٫۷ کیلو‌اهم‌اند؛ یک بالاکش در هر طرف. سمت میزبان به A4/SDA و A5/SCL می‌رود. حسگر رطوبت آدرس هفت‌بیتی 0x40 و حسگر فشار 0x60 دارد. اسکن آدرس فقط پاسخ ارتباطی را نشان می‌دهد، نه دقت اندازه‌گیری.

برای یک تخمین اولیه، اگر ظرفیت هر سمتِ باس را فرضاً ۱۰۰ پیکوفاراد بگیریم، رابطهٔ tᵣ ≈ 0.8473RC با مقاومت ۴٫۷ کیلو‌اهم حدود ۳۹۸ نانوثانیه می‌دهد. این تخمین از حد ۱۰۰۰ نانوثانیهٔ Standard-mode کمتر و از حد ۳۰۰ نانوثانیهٔ Fast-mode بیشتر است. بنابراین «چون دو حسگر داریم، سرعت را ۴۰۰ کیلوهرتز کنیم» نتیجهٔ موجهی نیست. ترانزیستور، کابل، بالاکش‌های موازی و ظرفیت واقعی باید در اندازه‌گیری لبه‌ها لحاظ شوند؛ این حساب ساده، آزمون باس دوطرفه نیست. مرجع حدود، مشخصات I²C، سند UM10204 است. برای ادامه، انتخاب تبدیل سطح ۳٫۳ و ۵ ولت را ببینید.

از دادهٔ خام تا واحد قابل فهم

فشار و رطوبت، دو مسیر دیجیتال

در حسگر دیجیتال، بخشی از تبدیل و جبران‌سازی داخل خود قطعه انجام می‌شود. برنامهٔ نمونه، MPL3115A2 را در حالت فشارسنج قرار می‌دهد و oversampling را روی ۱۲۸ تنظیم می‌کند؛ یعنی قطعه برای یک نتیجه از نمونه‌برداری بیشتری استفاده می‌کند. این کار زمان تبدیل را هم زیاد می‌کند؛ در جدول دیتاشیت حدود ۵۱۲ میلی‌ثانیه برای این تنظیم آمده است. گزارش اسمی یک‌ثانیه‌ای به معنی خواندن همهٔ حسگرها دقیقاً در یک لحظه نیست.

اگر خروجی فشار فرضاً ۹۹۸۵۰ پاسکال باشد، با تقسیم بر ۱۰۰ به ۹۹۸٫۵ هکتوپاسکال می‌رسیم. این فقط تبدیل واحد است؛ تصحیح فشار برای ارتفاع محل انجام نشده. مقایسه با عدد یک برنامهٔ هواشناسی که فشار سطح دریا را نشان می‌دهد، بدون دانستن مبنای هر دو عدد می‌تواند گمراه‌کننده باشد. دیتاشیت MPL3115A2 بین فشار مطلق، خروجی ارتفاع و تنظیمات تبدیل فرق می‌گذارد.

Si7021 رطوبت نسبی و دما را می‌دهد. فایل نمونهٔ پایه دما را به فارنهایت چاپ می‌کند؛ برای سلسیوس باید °C = (°F − 32) / 1.8 را اعمال کرد یا تابع مناسب کتابخانه را به کار برد. اختلاف دمای Si7021 و حسگر فشار الزاماً خرابی یکی نیست؛ محل حسگر، گرمای برد و زمان پاسخ متفاوت است. اگر هدف دمای هوای محیط است، ابتدا همین عوامل را بررسی کنید، سپس سراغ تصحیح عددی بروید.

نور و ولتاژ ورودی، دو مسیر آنالوگ

در مسیر آنالوگ، Uno ولتاژ را به یک عدد تبدیل می‌کند؛ این بخش ADC نام دارد. در Uno R3 این عدد در حالت معمول بین صفر و ۱۰۲۳ است. حسگر نور ALS-PT19 با زیاد شدن نور جریان بیشتری عبور می‌دهد؛ مقاومت R10 این جریان را به ولتاژ روی A1 تبدیل می‌کند. نسبت نور به جریان، دامنهٔ خطی و طیف منبع نور در دیتاشیت ALS-PT19-315C/L177/TR8 شرط دارند. چون فایل فقط ALS-PT19 نوشته، پسوند دقیق قطعهٔ مونتاژشده باید جدا بررسی شود.

تقسیم‌کنندهٔ ورودی با مقاومت R8 سه ممیز نه کیلو‌اهم و R7 یک کیلو‌اهم، اتصال میانی به A2 و مرجع A3
خوانش A2 با مرجع A3 به VIN برگردانده می‌شود؛ فقط بخش اندازه‌گیری ورودی از شماتیک بازترسیم شده است. اقتباس از SparkFun، CC BY-SA 4.0.

کد برای کاهش اثر تغییر مرجع ADC، خط ۳٫۳ ولت را روی A3 می‌خواند و نسبت می‌گیرد. برای VIN نیز R8 برابر ۳٫۹ کیلو‌اهم در بالا و R7 برابر ۱ کیلو‌اهم در پایین قرار گرفته‌اند؛ ولتاژ A2 برابر VIN تقسیم بر ۴٫۹ است. فرض کنیم سه خوانش پشت سر هم چنین باشند:

N(A3) = 675     N(A1) = 205     N(A2) = 376
Vlight ≈ 3.3 V × 205 / 675 = 1.002 V
VIN ≈ 3.3 V × 376 / 675 × 4.9 = 9.007 V

نتیجهٔ اول حدود یک ولت است، نه یک لوکس. برای روشنایی برحسب لوکس، باید تبدیل معتبر و کالیبراسیون متناسب با کاربرد داشته باشیم؛ آموزش BH1750 و مفهوم لوکس تفاوت انتخاب یک نورسنج دیجیتال را نشان می‌دهد. BH1750 جایگزین پایه‌به‌پایهٔ ALS-PT19 نیست؛ جایگزینی آن یعنی تغییر مدار و برنامه.

نسبت‌گیری خطاهای همه‌چیز را حذف نمی‌کند. اگر خط «۳٫۳ ولت» واقعاً ۳٫۲۵ ولت باشد اما برنامه همچنان ۳٫۳ فرض کند، خطای مقیاس حدود ۱٫۵۴٪ خواهد بود. مقاومت‌های R8 و R7 در مشخصات قطعهٔ همین فایل ۱٪ هستند؛ توضیح داخل کد آن‌ها را ۵٪ نامیده است. با همین مقاومت‌های ۱٪، اثر بدترین ترکیب تلرانس تقسیم‌کننده به‌تنهایی نزدیک منفی ۱٫۵۸٪ تا مثبت ۱٫۶۰٪ است؛ خطای ADC و مرجع هنوز جداست. برای این تفاوت، دقت، تفکیک‌پذیری و کالیبراسیون را بخوانید.

باد و باران؛ اتصال کابل به معنی آماده بودن اندازه‌گیری نیست

در این نسخه جای دو کانکتور RJ11 پیش‌بینی شده و نام آن‌ها پسوند DNP دارد؛ یعنی در طرح مونتاژ، نصب‌شدنشان مفروض نیست. ابزار باران و باد بیرون برد است. در ورودی‌های RAIN، WSPEED و WDIR مقاومت‌های سری یک کیلو‌اهم و جفت دیود به زمین و خط ۵ ولت دیده می‌شود. این‌ها مسیر محدودکردن جریان و کلمپ‌کردن ولتاژ را فراهم می‌کنند؛ نام BAS16 در کتابخانه به‌تنهایی مدرک تحمل صاعقه، گذرای صنعتی یا کابل نامحدود نیست. فوت‌پرینت درج‌شده برای این دیودها SOD-323 است؛ هنگام ساخت، تطابق قطعهٔ خریداری‌شده با نماد و فوت‌پرینت باید بررسی شود.

جهت‌نمای باد مجموعه‌ای از مقاومت‌ها و کلیدهای مکانیکی دارد؛ کد از ولتاژ، جهت را تشخیص می‌دهد. در نمونهٔ Weather Station، کتابخانهٔ Weather Meter روی ADC ده‌بیتی تنظیم شده است. این تنظیم را برای Uno R3 نگه دارید؛ انتقال ساده به میزبان ۱۲‌بیتی یا ۳٫۳ ولتی می‌تواند مرزهای تشخیص جهت را عوض کند. راهنمای سازنده استفاده از همین ابزارهای باد را با میزبان ۵ ولتی توصیه می‌کند؛ وجود مبدل سطح I²C این محدودیت آنالوگ را برطرف نمی‌کند.

چیدمان برد چه چیزی به ما می‌گوید؟

نمای مختصاتی برد V1.2 با محل U5 رطوبت، U4 فشار، U3 نور، U6 رگولاتور، کانکتورها و مسیرهای مسی دو لایه
بازنمایی فایل برد SparkFun V1.2: مسیرهای روی برد قرمز و زیر برد آبی‌اند؛ سطح‌های پرشدهٔ زمین نمایش داده نشده‌اند. برچسب‌ها افزوده شده‌اند. این تصویر عکس برد یا خروجی کنترل ساخت نیست؛ CC BY-SA 4.0.

در فایل PCB، U5 رطوبت در مختصات (19.05, 30.48) mm، U4 فشار در (26.67, 30.48) mm و U6 رگولاتور در (19.05, 19.05) mm قرار دارند. شیارهایی در لایهٔ لبهٔ برد، اطراف ناحیهٔ حسگرها طراحی شده‌اند؛ این جداسازی حرارتی در پروژه موجود است و نباید آن را پیشنهاد تازه معرفی کرد. با این حال شیار، انتقال گرما از هوا و محفظه را صفر نمی‌کند.

برای GND در هر دو لایهٔ بالا و پایین، چندضلعی مس تعریف شده است. وجود چندضلعی به‌تنهایی پیوستگی همهٔ مسیرهای برگشت را ثابت نمی‌کند؛ باید خروجی پرشده و مسیر جریان بررسی شود. خازن‌های محلی نزدیک حسگرها و شبکهٔ تبدیل سطح در کنار رابط دیجیتال قرار دارند؛ کانکتورهای اختیاری باد و باران نزدیک لبهٔ بالای برد هستند. کابل بیرونی باید مهار مکانیکی و مسیر بازگشت مناسب داشته باشد؛ کشش کابل را به لحیم کانکتور نسپارید.

اگر این طرح را به ایستگاه بیرونی تبدیل کنیم، محفظه باید هم جلوی آب را بگیرد و هم اجازهٔ تبادل هوا بدهد. بستن حسگر رطوبت در جعبهٔ کاملاً آب‌بندی‌شده، اندازه‌گیری هوای بیرون را تضمین نمی‌کند. تابش خورشید و گرمای میزبان زیر شیلد هم می‌توانند خوانش را جابه‌جا کنند. پوشش محافظ، تهویه و محل نصب باید با حسگر و شرایط واقعی انتخاب و سپس با مرجع مقایسه شوند؛ از روی فایل PCB نمی‌توان خطای نهایی هواشناسی را تعیین کرد.

کد را با چه نسخه‌ای می‌توان بررسی کرد؟

دو نمونهٔ اصلی بدون تغییر در کد پروژه برای arduino:avr:uno با هستهٔ Arduino AVR 1.8.8 کامپایل شدند. وابستگی‌ها: کتابخانهٔ Si7021 نسخهٔ ۱٫۰٫۵، MPL3115A2 نسخهٔ ۱٫۲٫۴ و Weather Meter Kit نسخهٔ ۱٫۱٫۲. برنامهٔ Basic از ۸۱۳۸ بایت فلش و ۶۷۳ بایت متغیر سراسری استفاده کرد؛ Weather Station از ۹۱۳۶ و ۷۵۲ بایت. هشدارهای کامپایل باقی بود. این اعداد مربوط به همین ترکیب‌اند؛ ساخت باینری تاریخی سازنده بازتولید نشده است.

راهنمای V1.2 سازنده نیز دربارهٔ ناسازگاری نسخه‌های جدیدتر Si7021 با مثال‌ها و مشکل کتابخانه‌های این راهنما روی Uno R4 هشدار می‌دهد. نصب آخرین نسخهٔ همه‌چیز لزوماً راه‌اندازی مطمئن این پروژهٔ قدیمی نیست. برای شروع، فایل Basic V12 را دنبال کنید؛ نمونهٔ Weather Station V12 ورودی‌های مکانیکی را اضافه می‌کند. نمونهٔ GPS جزو کامپایل و بررسی رفتاری این مقاله نیست.

چه بهبودهایی ارزش امتحان کردن دارند؟

این پیشنهادها نتیجهٔ مرور فایل‌ها هستند؛ اصلاح آزمایش‌شده روی نمونهٔ فیزیکی نیستند. هر تغییر باید جداگانه سنجیده شود تا معلوم باشد کدام عامل نتیجه را بهتر یا بدتر کرده است.

شاهد و مسئلهتغییر پیشنهادی و هزینهچطور بررسی کنیم؟
در توابع get_light_level و get_battery_level، بر خوانش A3 تقسیم می‌شود؛ شرط صفر یا دامنهٔ نامعتبر ندارند.برای مرجع صفر/غیرمعتبر، مقدار را نامعتبر ثبت کنید؛ آستانهٔ دامنه را با میزبان واقعی تعیین کنید. هزینه: چند شرط و یک وضعیت خطا.ورودی‌های عددی صفر و مقادیر مرزی را در آزمون نرم‌افزاری بدهید؛ در دستگاه، افت خط ۳٫۳ ولت را با ابزار کنترل‌شده بررسی کنید، نه با اتصال کوتاه.
نمونهٔ Basic مقدار رطوبت 998 را خطا فرض می‌کند، ولی getRH در کتابخانهٔ آزموده‌شدهٔ ۱٫۰٫۵ خروجی تبدیل‌شده می‌دهد و این sentinel را برنمی‌گرداند.وضعیت ارتباط، طول پاسخ و اعتبار داده را در لایهٔ کتابخانه قابل تشخیص کنید؛ بررسی دامنه تنها کافی نیست. هزینه: تغییر محدود کتابخانه و نگهداری نسخهٔ آن.حسگر غایب، پاسخ ناقص و بازیابی پس از وصل مجدد را جدا ثبت کنید؛ دادهٔ قبلی را به‌عنوان نمونهٔ تازه چاپ نکنید.
کد، ۳٫۳ ولت و نسبت ۴٫۹ را ثابت می‌گیرد و نور را با V چاپ می‌کند.مرجع و تقسیم‌کننده را اندازه بگیرید و کالیبراسیون ذخیره کنید؛ برای نور برچسب ولتاژ حفظ شود یا نورسنج مناسب اضافه شود. هزینه: مرجع، زمان آزمون یا قطعهٔ جدید.دو یا چند ولتاژ ورودی معلوم و یک نقطهٔ مستقل را مقایسه کنید؛ برای نور، شرایط و طیف منبع را ثابت نگه دارید.
در تنظیم ۱۲۸، تبدیل فشار زمان‌بر است؛ حلقه از millis و delay(100) استفاده می‌کند.برای ثبت طولانی، زمان و وضعیت هر نمونه را ثبت کنید؛ زمان‌بندی با unsigned long و تفاضل بدون علامت روشن‌تر شود. هزینه: پیچیدگی بیشتر نسبت به مثال آموزشی.مدت واقعی خواندن، فاصلهٔ گزارش‌ها و رفتار نزدیک سرریز شمارنده را بررسی کنید. سریع‌تر چاپ کردن، حسگر را سریع‌تر نمی‌کند.
شیار حرارتی از قبل وجود دارد؛ کابل‌های بیرونی فقط حفاظت محدود روی برد دارند.با توجه به محیط، جداسازی حسگر از منبع گرما و حفاظت ورودی/مسیر تخلیه نزدیک کانکتور را بازطراحی کنید. هزینه: کابل یا برد بزرگ‌تر، ظرفیت و نشتی قطعات حفاظتی.خطای دما در چند وضعیت تغذیه و محفظه، و کیفیت سیگنال و خطای شمارش روی کابل واقعی را اندازه بگیرید؛ ادعای مصونیت بدون آزمون نکنید.

در پیشنهاد دوم، شاهد کتابخانهٔ آزموده‌شده تابع getRH در commit مشخص است؛ این فایل وابستگی جداگانه است و با commit خود برد اشتباه گرفته نشده. دامنهٔ این یافته، همان ترکیب کامپایل‌شده است؛ نگفته‌ایم تمام نسخه‌های کتابخانه همین رفتار را دارند.

راه‌اندازی و سنجش نتیجه، به ترتیب

  1. نسخهٔ برد و میزبان را مشخص کنید؛ Si7021 را با HTU21D و Uno R3 را با R4 یکی نگیرید. ابتدا بدون ابزار باد، باران و GPS شروع کنید.
  2. در حالت بی‌برق، جهت نصب هدر و اتصال زمین را بررسی کنید. پس از تغذیهٔ مطابق مشخصات میزبان، VIN، ۵ ولت و ۳٫۳ ولت را جدا اندازه بگیرید.
  3. با نسخه‌های ثبت‌شده، Basic را کامپایل و در صورت داشتن برد مناسب بارگذاری کنید. پورت سریال نمونه روی ۱۱۵۲۰۰ بیت‌برثانیه تنظیم شده است؛ مقدارهای نمونهٔ این مقاله خروجی دستگاه نیستند.
  4. پاسخ I²C و سپس اعتبار خوانش‌ها را بررسی کنید. برای قطع ارتباط، منطق مرحله‌ای عیب‌یابی I²C مفید است؛ شماره‌پایه‌های ESP32 آن آموزش را به Uno منتقل نکنید.
  5. حسگرها را در شرایط ثابت با مرجع مقایسه کنید؛ شمارهٔ نمونه، زمان، وضعیت تغذیه و اعتبار داده را نگه دارید. برای نور، با سایه کردن انتظار کاهش ولتاژ داریم؛ این بررسی عملکرد است، نه کالیبراسیون لوکس.
  6. ابزارهای اختیاری را تک‌تک اضافه و ضریب تبدیل و حالت خطای آن‌ها را بررسی کنید. سپس محفظه و تغذیهٔ نهایی را آزمایش کنید؛ نتایج روی میز را به هوای آزاد تعمیم ندهید.

ارزش Weather Shield در این است که زنجیرهٔ کامل «محیط ← حسگر ← مدار واسط ← برنامه ← دادهٔ قابل استفاده» را می‌توان در فایل‌هایش دنبال کرد. برای ساخت تازه، قطعات فعلی و جایگزین‌ها باید دوباره انتخاب شوند؛ برد بازنشسته، مرجع خوبِ تحلیل است اما فهرست خرید آمادهٔ یک محصول جدید نیست.

فایل همراه، منابع و حدود بررسی

محاسبات قابل اجرای مثال‌ها فقط حساب عددی را کنترل می‌کند. دو برنامهٔ ذکرشده کامپایل شدند؛ ساخت برد، شبیه‌سازی مدار، بارگذاری روی دستگاه یا آزمایش فیزیکی انجام نشده است. بررسی فایل PCB جای کنترل ساخت و اندازه‌گیری نویز، دقت و ایمنی را نمی‌گیرد.

طراحی متعلق به SparkFun Electronics است؛ سرآیند مثال‌ها از Nathan Seidle، Joel Bartlett و Wes Furuya نام می‌برد. مجوز مخزن سخت‌افزار را CC BY-SA 4.0 و نرم‌افزار را MIT معرفی می‌کند؛ سرآیند مثال‌ها عبارت public-domain/Beerware را نیز حفظ کرده است. برای بازاستفاده، اعلان همان فایل و وابستگی‌ها را نگه دارید. تصاویر این مقاله بازترسیم‌های توضیحی از طرح‌اند؛ مجوز و تغییراتشان در کپشن و فایل حقوق دارایی‌ها آمده است.

پرسش و پاسخ مقاله

سوال فنی خود را مطرح کنید

پرسش‌ها و پاسخ‌ها پس از بررسی مدیر منتشر می‌شوند. نویسنده، پیش‌نویس در انتظار بررسی را می‌بیند.

هنوز پرسش تاییدشده‌ای برای این مقاله ثبت نشده است.