بلوک دیاگرام
این نمودار مولفه های اساسی مورد نیاز برای جمع آوری خوانش های دما از آب دریا و انتقال داده ها به یک ایستگاه پایه را نشان می دهد که در آنجا می توان آن ها را در یک پایگاه داده برای تجزیه و تحلیل جمع کرد. در سمت چپ شماتیکی از 10 سنسور دما وجود دارد که با فاصله 1 متری از هم و در آب دریا تا عمق 10 متری غوطه ور شده اند. این به یک ریزپردازنده Ardiuno Uno متصل است که برای جمع آوری خوانش ها و ارسال آنها به یک فرستنده رادیویی برنامه ریزی شده است. برد آردوینو به یک منبع تغذیه 5 ولتی نیاز دارد که توسط مبدل DC-DC ارائه می شود. این توسط یک باتری سرب اسید 12 ولت مهر و موم شده و پنل خورشیدی با رگولاتور تامین می شود. برد آردوینو Uno از طریق کابل usb متصل به لپ تاپ برنامه ریزی می شود و البته زمانی که برنامه در ریزپردازنده آپلود می شود، قطع می شود. برد Arduino Uno داده های دما را به یک فرستنده رادیویی کوچک ارسال می کند که توسط گیرنده ای در فاصله 700 متری دریافت می شود. این داده ها را از طریق دانگل سریال/USB به لپ تاپ منتقل می کند. نرم افزار داده های دریافتی را می خواند و به روش های مختلف ماساژ می دهد و در پایگاه داده می ریزد. برخی از تجزیه و تحلیل های اولیه انجام شده و نتایج به یک صفحه وب ارسال می شود.
"انتهای مرطوب" سیستم در دریا خودکار است تا 10 سنسور دما را 10 بار پشت سر هم بخواند، این داده ها را ارسال کند و سپس برای صرفه جویی در مصرف برق به مدت 20 دقیقه بخوابد تا پنل خورشیدی بتواند با تخلیه فعلی سازگار باشد. از باتری پشتیبان ولتاژ باتری و تعداد ساعات کار مداوم در پایان هر انتقال رادیویی منتقل می شود. نوسانات در قدرت باتری با نرم افزار در "پایان خشک"، ایستگاه گیرنده در خشکی کنترل می شود. این به عنوان یک هشدار اولیه عمل می کند که پنل خورشیدی ممکن است با مصرف برق سازگار نباشد، بنابراین می توان برای جلوگیری از وقفه در جریان داده اقدام کرد.
در طول هر دوره 24 ساعته حدود 7200 اندازه گیری دما از 10 عمق جمع آوری می شود. کل جریان داده بسیار کم است: هر انتقال 13.6 کیلوبایت یا 0.98 مگابایت در روز است. این دو رادیو در کارخانه با 1200 باود برنامه ریزی شده اند تا مطمئن ترین انتقال داده ها به گیرنده را تسهیل کنند. با این حال، گاه به گاه خطاهای انتقال رخ می دهد. در چنین مواردی، بررسی کاراکترهای دریافتی نشان می دهد که گیرنده توسط RF از منبع دیگری غرق شده است. تشخیص خودکار چنین مشکلاتی نسبتا ساده است و در ادامه بیشتر مورد بحث قرار می گیرد.
سنسور دما
قلب سیستم یک سنسور دما دیجیتال است که توسط Maxim Integrated Products ساخته شده است. این دستگاه دارای برچسب DS18B20 است زیرا در اصل توسط Dallas Semicondutors ساخته شده است. ماکسیم در سال 2001 شرکت را تصاحب کرد و نام دستگاه را ادامه داد.
این دستگاه دماهایی را در محدوده 55- تا 125 درجه سانتیگراد گزارش می کند و به دقت در محدوده ± 0.5 درجه سانتیگراد مشهور است، اگرچه دقیقاً چگونگی انجام این کالیبراسیون در مقیاس مطلق مشخص نیست. من دو بار اطلاعات فنی را از ماکسیم در این مورد درخواست کردم و به سادگی بیانیه دقت در دفترچه راهنما بدون توضیح بیشتر دوباره نقل شد. آزمایش این ادعا برای دانشجویان سال اول فیزیک دانشگاه یک آزمایش جالب خواهد بود. کالیبراسیون حرارتی معمولاً شامل استفاده از برخی نقاط ثابت مانند ذوب یخ و آب جوش است، اما کنترل همه متغیرهای محیطی در دمای ± 0.5 درجه سانتیگراد و سپس اندازه گیری آن کار آسانی نیست. چه چیزی می تواند استفاده کند - شاید یک DS18B20؟ یک مسئله مهم تر امکان دریفت انواع مختلف یا گزارش هایی از دستگاه است که در طول مدت زمان بازجویی، شارژ کردن خازن، گرم کردن جریان حامل سیم و غیره متفاوت است. وقتی در نظر بگیرید که دمای آب دریا در عمق 10 متری بسته به ویژگی دقیق جریانهای جزر و مدی در یک مکان خاص، احتمالاً به سرعت تغییر نمیکند، این یک موضوع بیاهمیت نیست. تصمیم گیری در مورد اینکه آیا تغییر گزارش شده 0.5 درجه سانتیگراد واقعی است یا نه چندان ساده نیست.
یک پیام واضح در اینجا وجود دارد، "هر آنچه در روزنامه می خوانید را باور نکنید". بازخوانی دیجیتال 17.31 درجه سانتیگراد قابل توجه است، به خصوص اگر فقط یک بار اندازه گیری شود. به همین دلیل است که در بلوک دیاگرام شرح داده شده در بالا، هر سنسور 10 بار اندازه گیری می شود و این 10 گزارش برای بررسی دقیق به "پایان خشک" ارسال می شود. بیشتر از این بعد.
هر سنسور دارای یک کد سریال 64 بیتی منحصر به فرد است که در یک ROM آنبورد ذخیره شده است. اینها باید شناسایی شوند تا بعداً در طول بازجویی برای خواندن دما مورد استفاده قرار گیرند. Paul Stoffregen یک کتابخانه نرم افزاری نوشته است که می تواند توسط برد Arduino Uno برای ارتباط با سنسور DS18B20 استفاده شود. ده حسگر موجود در آرایه ای که در اینجا استفاده می شود این آدرس ها را دارند:
0x28, 0xD3, 0x0F, 0xE5, 0x03, 0x00, 0x00, 0xC0 0x28, 0x14, 0x07, 0xE5, 0x03, 0x00, 0x00, 0xE4 0x28, 0xCE, 0xF8, 0xE4, 0x03, 0x00, 0x00, 0xA9 0x28, 0x24, 0x10, 0xE5, 0x03, 0x00, 0x00, 0x24 0x28, 0x24, 0x03, 0xE5, 0x03, 0x00, 0x00, 0x16 0x28, 0x30, 0x10, 0xE5, 0x03, 0x00, 0x00, 0xA3 0x28, 0x78, 0xFC, 0xE4, 0x03, 0x00, 0x00, 0x03 0x28, 0xA8, 0x0D, 0xE5, 0x03, 0x00, 0x00, 0x23 0x28, 0x99, 0xDA, 0xE4, 0x03, 0x00, 0x00, 0x79 0x28, 0xA2, 0xE8, 0xE4, 0x03, 0x00, 0x00, 0x6B
هنگام نوشتن کد برای برد Arduino Uno برای ارتباط با سنسورهای DS18B20 به دو کتابخانه نرم افزاری نیاز است: OneWire و Dallas Temperature. Jim Studt کتابخانه اصلی OneWire را در سال 2007 ایجاد کرد و اکنون توسط Paul Stoffregen نگهداری می شود. آخرین نسخه 2.1 را می توانید از اینجا دانلود کنید . کتابخانه دوم، کتابخانه مایلز برتون Dallas Temperature Control را میتوانید از اینجا دانلود کنید . این کتابخانه ها نرم افزار متن باز هستند.
سه ترمینال در سنسور DS18B20 وجود دارد: GND، DQ و VDD. این دستگاه میتواند مستقیماً توسط DQ Data Line تغذیه شود که به ولتاژ 3.0 تا 5.5 ولت نیاز دارد. اگر این کار انجام شود، ترمینال VDD را می توان به GND متصل کرد، همانطور که در این نمودار در سمت چپ نشان داده شده است. وضوح دماسنج از 9 تا 12 بیت توسط کاربر قابل انتخاب است و دما را در عرض 750 میلی ثانیه به یک کلمه دیجیتال 12 بیتی تبدیل می کند. هنگامی که چندین سنسور استفاده می شود، ممکن است همانطور که نشان داده شده است روی یک ریل نصب شوند. درخواستی از برد Arduino Uno به این ریل برای خواندن دما با استفاده از یکی از کدهای سریال بالا، مقدار را از حسگر فردی مناسب برمیگرداند. این به عنوان پیکربندی یک سیم شناخته می شود . به طور دقیق، دو سیم مورد نیاز است، سیم های DQ و GND. این پیکربندی به راحتی روی دو سیم مونتاژ می شود، اما اگر عایق رطوبتی لازم باشد، اصلا ساده نیست. پوشش دو سیم با سنسورهای متعدد متصل به انقباض ممکن است ضد پاشش باشد ، اما مطمئناً ضد آب نخواهد بود، به خصوص اگر در 10 متر آب دریا با فشار سیال اطراف 1000 میلی بار غوطه ور شود. این تفاوت بین یک ساعت ضد آب که ضد پاشش است و یک ساعت غواصی که واقعاً تحت فشار ضد آب با رتبه ISO-6425 است، است.
ساخت یک کابل ضد آب با چندین سنسور بر روی آن ممکن است، اما بسیار پیچیده است. یک طراحی بسیار ساده تر، به اصطلاح پیکربندی ستاره است که در سمت چپ نیز نشان داده شده است. این شامل اجرای کابل های جداگانه به هر سنسور و اتصال آنها به یک ریل سیمی در انتهای طولانی ترین کابل است. این بسیار آسانتر است که ضد آب شود، اگرچه مشکل دیگری پیش میآید، اگرچه حل آن نسبت به پیکربندی یک سیم نسبتاً سادهتر است. خوشبختانه، شرکتهای تولیدی متعددی وجود دارند که نسخههای ضدآب سنسور DS18B20 را تولید میکنند. سنسور به یک کابل کواکسن با سه سیم لحیم شده به پایانههای سنسور متصل میشود و حسگر و سیمهای لخت در یک سطل لوله فولادی ضد زنگ قرار میگیرند و با رزین رسانای حرارتی پر میشوند، بنابراین قسمتهای فلزی سنسور و سیمها ضد آب میشوند. رزین مخصوص به انتقال انرژی حرارتی از محیط اطراف از طریق فولاد ضد زنگ به خود سنسور کمک می کند. متأسفانه فولاد ضد زنگ درجه #316 دریایی توسط این شرکت ها استفاده نمی شود، اما از نوع #304 مقاومت کمتری در برابر خوردگی دارد. علاوه بر این، همانطور که میدانیم، فولاد ضد زنگ رسانای بسیار ضعیفی برای گرما است، بنابراین میتوانیم انتظار تاخیر زمانی کوچکی را در سنسور داشته باشیم که به تغییرات دما در آب دریای اطراف واکنش نشان میدهد. فولاد ضد زنگ درجه #304A دارای نفوذ حرارتی (معیار اینرسی حرارتی) 4.2 میلیمتر بر ثانیه در مقایسه با مس 110.8 میلیمتر بر ثانیه است. تأخیر زمانی اضافی در نتیجه استفاده از رزین رسانای حرارتی مشخص نیست.
اکثر شرکتهای تولید کننده سنسورهای ضدآب DS18B20 آنها را با طولهای مختلف کواکسی متصل میسازند، اما یک شرکت به نام Shenzhen VIIV Technology Co. Ltd. در چین پیشنهاد داد که یک کابل یکبار مصرف برای من با 10 کابل کواکسی بریده شده در طولهای مختلف بسازد. 10 متر، 9 متر، 8 متر و غیره و همه کابل ها را به هم بچسبانید و بیرون سطل های فولادی ضد زنگ را با رزین اضافی برای افزایش مقاومت در برابر خوردگی بپوشانید (تصویر سمت راست را ببینید). طول نهایی نهایی 14 متر بود و 190 دلار آمریکا با احتساب حمل و نقل هزینه داشت. شخص تماس برای این سفارش averil@szviivtech.com بود .
همانطور که در بالا ذکر شد، این پیکربندی ستاره با سیم های متعددی که از یک نقطه شروع می شوند و هر کدام به یک حسگر منتهی می شوند، مشکل کوچکی را ایجاد می کند. بسته به طول کل سیم در سیستم، گاهی اوقات خوانش های کاذب تماشایی -127.00 درجه سانتیگراد یا به سادگی 0.00 درجه سانتیگراد ایجاد می شود. در مواردی مانند این، مقاومت 4.7kΩ باید کاهش یابد تا جریان بیشتری به سیم جریان یابد که خازن درون سنسور DS18B20 را شارژ می کند. Paul Stoffregen پیشنهاد کرد که مقدار را به 1kΩ کاهش دهید، و اگر باز هم موفق نشد، 470Ω را امتحان کنید. من می خواستم 10 متر کابل سه سیم اضافی را به انتهای 10 کابل کواکسی همراه اضافه کنم تا به جعبه الکترونیکی دوردست متصل شود، بنابراین آزمایش های قابل توجهی برای یافتن بالاترین مقاومتی که گزارش های دمایی به طور مداوم قابل اطمینان تولید می کرد مورد نیاز بود. مقاومت نهایی یک مقاومت 480Ω با تحمل 1٪ بود.
در مجموع 30 سیم از بسته 10 کابل کواکسی وجود دارد که نیاز به پایان دارند. هر یک از این ها برای تداوم با نتایج تا حدودی شگفت انگیز مورد بررسی قرار گرفت. مقاومت DC از محافظ هر کواکس جداگانه به هر سیم منتهی به سه پایانه هر DS18B20 به شرح زیر است. نکته: نماد ">" زمانی استفاده می شود که یک مقاومت در محدوده 2000 MΩ در مقیاس خارج باشد. این نتایج نشان می دهد که در مورد کابل 3 متری بین سیم GND و محافظ وجود دارد. این محافظ همچنین مقاومت کمتری نسبت به سیم های VDD و DQ برای همین کابل دارد. اینکه آیا این یک مشکل است یا نه، باید دید. در نهایت، کابل های کواکسی برای هر دو طول 8 و 9 متر مقاومت کمتر از حد انتظار نشان می دهند، اگرچه هنوز بسیار بالا هستند.
تمام سیم های GND به یک ترمینال در جعبه پایانه لحیم می شوند و این کار با سیم های VDD و DQ انجام شد. سپس یک کابل سه سیمه به طول 10 متر به همان پایانه ها لحیم شده و به جعبه اصلی حامل وسایل الکترونیکی هدایت شد. اگرچه در تصویر زیر نشان داده نشده است، این جعبه پایانه با درزگیر سیلیکونی ISP-919 Sika Marine پر شده است . اگرچه این جعبه در آب دریا غوطه ور نیست، اما برای مدت طولانی در معرض عناصر قرار می گیرد و این درمان جعبه و محتویات آن را کاملا ضد آب می کند.
حفاظت کابل ضد رسوب
از آنجا که قرار بود کابل نظارت تا دو سال در آب دریا غوطه ور شود، لازم بود کابل را با رنگ ضد رسوب دریایی پوشانده شود تا از رشد موجودات زنده روی آن جلوگیری شود. خطوط صبحگاهی در خلیج نگاکوتا صدفهای لب سبز و آبی (Perna canaliculius و Mytilus galloprovincialis) و همچنین گونههای کوچکتر دیگر را جذب میکنند. کابل به طناب دو بافته پلی استر به طول 15 متر و قطر 1 سانتی متر متصل شد که با استفاده از بست های نایلونی خود قفل شونده حداقل کشش را دارد. یک آند روی به انتهای طناب به وزن 2.6 کیلوگرم متصل شد. این برای نگه داشتن کابل به صورت عمودی در آب طراحی شده است.
دیوید پوک از Westshore Marine Ltd با مهربانی چهار لیتر Altex Coating Industrial & Marine antifoul روی کابل اهدا کرد. کابل را پیچ میکردند و هر روز صبح در یک قوطی بزرگ ضد عفونی غوطهور میشد و برای خشک شدن آویزان میشد. این درمان در چهار روز متوالی تکرار شد تا از پوشش ضخیم روی کابل اطمینان حاصل شود. پس از پوشش نهایی، به مدت پنج روز آویزان شد تا از سفت شدن کامل اطمینان حاصل شود.
منبع تغذیه خورشیدی و باتری
کار کردن تجهیزات الکترونیکی 24 ساعته و 365 روز از سال از باتری با شارژ مجدد توسط پنل خورشیدی نیازمند توجه دقیق به استفاده فعلی و تخمین محافظه کارانه تحویل از نور خورشید است.
راهنمای مفیدی برای آنچه که می توان از پنل های خورشیدی با اندازه های مختلف در لندن و ادینبورگ انتظار داشت را می توان در اینجا یافت. اینها مقادیر متوسطی هستند که پنل خورشیدی در زاویه بهینه نسبت به خورشید نصب شده است. متوسط آفتاب در لندن حدود 1500 ساعت در سال و برای ادینبورگ حدود 1350 ساعت در سال است. ارزش های نیوزیلند نسبت به این موارد مطلوب است. هیچ تخمینی برای خلیج Ngakuta وجود ندارد، اما مقادیر برای مکانهای نزدیک عبارتند از: اوکلند و ولینگتون هر دو حدود 2050 ساعت در سال، نلسون 2400 ساعت در سال و Blenheim 2500 ساعت در سال هستند. یک تخمین محافظه کارانه برای خلیج نگاکوتا تقریباً مشابه ولینگتون خواهد بود.
گزارش های قبلی از مصرف برق اجزای مختلف در سیستم های ضبط مشابه به طور گسترده ای متفاوت است. برخی گزارشها از حدود 25 میلی آمپر برای برد Arduino Uno وجود دارد، اما ویندوز 7 ویژگی هاب ریشه USB را گزارش میکند که به 100 میلی آمپر نیاز دارد. سنسورهای DS18B20 دارای حداکثر 1.5 میلی آمپر در هنگام کار و 1 میلی آمپر در حالت آماده به کار هستند. فرستنده رادیویی مورد استفاده در هنگام دریافت 32 میلی آمپر، هنگام ارسال 42 میلی آمپر و در حالت خواب 5 میکروآمپر است.
مصرف کل انرژی هنگام استفاده از باتری 12.2 ولت اندازه گیری شد و مشخص شد که 64.8 میلی آمپر در بخش انتقال چرخه، 41.4 میلی آمپر در دوره آماده به کار و 28.0 میلی آمپر در حالت خواب. یک چرخه متشکل از عناصر زیر است که با ساعت توقف زمان بندی شده اند:
مرحله 1: جمع آوری و انتقال دما از هر یک از 10 سنسور، 1.99 ثانیه طول می کشد.
مرحله 2: آماده به کار، 4.69 ثانیه طول می کشد.
مراحل 1 و 2 را ده بار تکرار کنید، سپس
مرحله 3: 20 دقیقه بخوابید.