فهرست مطالب:
- مرحله 1: مشکلات برای حل
- مرحله 2: سخت افزار
- مرحله 3: رویکرد
- مرحله 4: سیم کشی آن
- مرحله 5: کد آردوینو ، طرح اصلی
- مرحله 6: نکاتی در مورد کد
- مرحله 7: کد آردوینو ، کلاس ها
- مرحله 8: نظارت بر سیستم
- مرحله 9: اسکریپت پایتون
- مرحله 10: هنوز باید انجام شود…
- مرحله 11: به روزرسانی 3/16 ، "دائمی" Build
- مرحله 12: به روز رسانی 2018/12/1 - به اینترنت اشیا خوش آمدید
تصویری: Crawl Space Monitor (معروف به: دیگر لوله های یخ زده !!): 12 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
آب خانه من از چاه من از طریق یک محل خزنده گرم نشده می آید. تمام لوله کشی آشپزخانه و حمام نیز از این فضا عبور می کند. (لوله کشی داخل منزل در اواسط دهه 70 در این خانه یک سیلی بود!) من از لامپ های حرارتی در شاخه های ترموستاتیک "مخزن ذخیره" برای حفظ دمای بالاتر از انجماد استفاده می کنم. چندین مشکل مهم در این ترتیب وجود داشت: 1 - عدم دید. اولین نشانه از سوختن لامپ ها لوله های یخ زده است! 2 - گاهی اوقات دوشاخه ها خاموش نمی شوند. این باعث ایجاد شگفتی های ناخوشایند در قبض برق می شود. 3 - بدون جزئیات. من 3 لامپ را "آنلاین" (در مجموع 750 وات) نگه داشتم و این یک راه حل همه چیز یا هیچ بود. (2 لامپ همیشه آن را کنترل نمی کند.) پس از معرفی با آردوینو ، و دیدن برخی از کارهایی که دیگران با آن انجام می دادند ، تصمیم گرفتم به آن گرداب بزنم. من بلافاصله اعتراف می کنم که من بی شرمانه کد پروژه های دیگران را برای انجام این کار گرفتم و تغییر داده ام ، هرچند در نهایت من همه چیز را دوباره نوشتم. در ابتدا ، من این "ایستگاه هواشناسی WiFi" را که در آن پیدا کردم ، ساختم. Adafruit.com و آن را اصلاح کرد. به جای به روز رسانی وب سایت ، از خدمات وب آمازون برای به روزرسانی وضعیت SMS برایم استفاده کردم. همچنین کنترل برخی از رله های 110 ولت (https://www.adafruit.com/products/268) را اضافه کردم. سپس من "هوشمند" شدم و تصمیم گرفتم آن را "مقاوم" کنم - خوب - چیزی باعث کوتاه شدن چیزی شد و من یک دود آبی جادویی گرفتم. همه چیز سرخ شده است … بدون اینکه یک وای فای CC3000 دیگر داشته باشم ، این بار کارها را متفاوت انجام دادم. من آن را طوری طراحی کردم که به صورت تعاملی از طریق رابط سریال کنترل شود و سپس یک رابط EZ-Link Bluetooth FTDI اضافه کردم. (دیگر نیازی نیست لپ تاپ را برای به روزرسانی نرم افزار به زیر خانه بکشید!) همچنین یک رابط پایتون ایجاد کردم که از طریق بلوتوث به دستگاه متصل می شود ، به طور مرتب آن را پرس و جو می کند و اطلاعات وضعیت را در Mac من نمایش می دهد. (همچنین یک "رابط انسانی" وجود دارد که می توان با هر نرم افزار شبیه سازی پایانی به آن دسترسی داشت.) در نتیجه بازنویسی و حذف همه کد WiFi و RTC ، حجم پروژه از بیش از 29K به سختی 10K کاهش یافته است. همچنین قابلیت اطمینان را تا حدی افزایش داده است که ناظر سخت افزاری در چند هفته ای که کار می کند و من تغییراتی در آن ایجاد نکرده ام ، اصلاً فعال نشده است.
17/2/16 به روز رسانی/توجه: در تلاش برای قالب بندی مناسب برخی از کد ها (به ویژه تورفتگی کد پایتون) ، همه چیز از زشت به غیر قابل استفاده تبدیل شد. من مطمئن هستم که این مشکل در جایی به پایان رسیده است ، و من تلاش می کنم آن را پیدا کنم. تا آن زمان ، من پیوندهایی را به فایل های کد از طریق DropBox اضافه کرده بودم. آنها باید برای همه در دسترس باشند. اگر نه ، لطفاً به من اطلاع دهید تا بتوانم آنها را به روش دیگری به شما اطلاع دهم!
مرحله 1: مشکلات برای حل
سیستم باید کارهای زیر را برای من انجام دهد: 1 - نظارت بر دما در فضای خزنده. 2 - لامپهای حرارتی را در صورت نیاز برای حفظ درجه حرارت بالاتر از انجماد روشن کنید. وضعیت آنها.4 - وضعیت دما و وضعیت سیستم را به من نشان دهید ، از جمله: - آیا سیستم در حال اجرا است؟ - دما در حال حاضر چقدر است؟ - سردترین درجه حرارت چقدر است؟ - چند لامپ روشن شد؟ - چند لامپ خوب تست می شود؟ - کل زمان من در "دقیقه نور" (معروف به "زمان سوختن") چقدر است؟ 5 - همه موارد فوق را بدون نیاز به خزیدن در زیر خانه انجام دهید !!! من تصمیم گرفتم که ساده ترین راه برای آزمایش عملکرد لامپ با یک سنسور نور. برخی از مسائل دیگر که می خواستم به آنها بپردازم ، زمان چرخه روی چراغ ها بود. بسیار کند است ، و من برق غیر ضروری را می سوزانم. خیلی سریع ، و من در معرض خطر سوزاندن آنها از تمام خاموش و روشن کردن و گرم شدن و خنک شدن مربوطه هستم.
مرحله 2: سخت افزار
2 لامپ حرارتی 250 وات 1 لامپ کار 500 وات (یکی از لامپ های حرارتی من ناپدید شد ، بنابراین این یک ایستاده است) Arduino UnoDHT22 سنسور دما/رطوبت GA1A12S202 سنسور نور رله Power Switch 110V Bluefruit EZ-Link Serial Interface & Programmer کیس با تکنولوژی بالا (لوله ساندویچی Rubbermaid غده کابل 1/2 اندازه نان ورق صفحه آکریلیک برای نان و آردوینو سیم های بلوز ترکیبی. "نوار کارگاهی" Coleman 5 خروجی من همچنین از Adafruit Trinket به عنوان نگهبان سخت افزار استفاده کردم ، اما ثابت شده است که غیر ضروری است (البته!) یک دستورالعمل جداگانه در مورد آن نوشت ، بنابراین آن را در اینجا تکرار نمی کنم. پیگتل کلمن یک یافته خوب بود ، زیرا 4 خروجی برای لامپ های گرمایی به علاوه یک خروجی منبع تغذیه آردوینو به من داد بدون هیچ گونه تقسیم کننده یا نوارهای برقی اضافی. با سرعت 15 آمپر کامل با یک سوئیچ و یک قطع کننده داخلی ، می تواند همه چیز را که می توانم از طریق یک خروجی جدا کنم کنترل کند.
مرحله 3: رویکرد
در حالی که سیستم یک برنامه کاربردی است که در انتظار نشسته است و برخی از کارها را نسبتاً کند انجام می دهد ، چیزی که من نمی خواستم انجام دهم این بود که سیستمی را ایجاد کنم که کنترل کننده با تاخیر () چرخه ها (بدون پاسخ) نشسته باشد. من همچنین می خواستم بتوانم پارامترهای پیکربندی را تا آنجا که می توانم تغییر دهم-مطمئناً به گونه ای که نیاز به نوشتن مجدد کد یا انجام عملیات جستجو و جایگزینی گسترده در منبع نداشته باشد. عالی ترین مقالات بیل ارل را در مورد "چند وظیفه ای در آردوینو" پیدا کرد (از اینجا شروع کنید: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) و مشغول شد. با ایجاد کلاسهای "تایمر" و "بخاری" من قادر به انجام تمام عملکردهای زمانبندی مورد نظرم بدون استفاده از تاخیر () (به استثنای چند مورد) و پیکربندی لامپها ("بخاری") با یک خط کد برای هر کدوم یکی
مرحله 4: سیم کشی آن
نمودار Fritzing شامل Bluefruit EZ-LinkArduino 5V & Ground to the breadboard DHT22 pin 1 to 5V bus DHT22 pin 2 to Arduino pin 7DHT22 pin 4 to Ground bus10K مقاومت بین DHT22 پین 1 و 2GA1A12S202 VCC پین 5V تا GV G21A12S20 busGA1A12S202 پین OUT به Arduino A0 پین Arduino 3V به پین Arduino AREF رله Ground منجر به اتوبوس Ground رله 1 سیم برق به Arduino A1Relay 2 سیم برق به Arduino A2Relay 3 سیم برق به Arduino A3Relay 4 سیم برق Arduino A4 را می توان تعدیل کرد به تنها مورد مهم این است که سیم خروجی سنسور نور باید به پین آنالوگ برود. این پین کردن با کد من به صورت نوشته شده کار می کند. اگر از سخت افزار ناظر استفاده می کنید ، خواهید دید که کد من ضربان قلب را در پین 2 آردوینو قرار می دهد.
مرحله 5: کد آردوینو ، طرح اصلی
CrawlSpace_monitor.ino
مرحله 6: نکاتی در مورد کد
خطوط کد زیر نمونه های بخاری را ایجاد می کند و پارامترهای عملکرد را تعریف می کند: // بخاری (relayPin ، onTemp (f) ، offTemp (f) ، minMinutes ، testInterval (دقیقه) ، luxDelta) بخاری بخاری 1 = بخاری (A1 ، 38 ، 43 ، 20 ، 1440 ، 5) ؛ بخاری بخاری 2 = بخاری (A2 ، 36 ، 41 ، 20 ، 1440 ، 5) ؛ بخاری بخاری 3 = بخاری (A3 ، 34 ، 39 ، 20 ، 1440 ، 5) ؛ بخاری بخاری 4 = بخاری (A4 ، 32 ، 37 ، 20 ، 1440 ، 5) ؛ (و بله ، من هر 4 بخاری را تعریف کردم حتی اگر در حال حاضر فقط 3 دستگاه را کار می کنم. من هنوز نیاز به دریافت یک رله دیگر دارم ، اما سپس با اضافه کردن بخاری 4 به سادگی آن را وصل کنید.) من دمای ماشه آنها را متزلزل می کنم ، برای درجه اول از 38 درجه شروع می شود و برای درجه چهارم موجود در 32 درجه به پایان می رسد. یکی از چیزهایی که من برای اولین بار با همدیگر روبرو شدم این بود که باید محدوده ای از دما و همچنین حداقل "زمان سوختن" را تعیین کنم ، یا چراغ ها را دیوانه وار روشن و خاموش می کردم. در اینجا به هر یک از آنها 5 درجه گسترش و همچنین حداقل 20 دقیقه زمان سوختن می دهم. فاصله آزمایش را روی 24 ساعت تنظیم کردم و 5 لوکس را به عنوان حداقل میزان نور مورد نیاز برای تعیین اینکه لامپ هنوز کار می کند ، تنظیم کردم. تقریباً هر چیزی که نیاز به پیکربندی دارد در اینجا در این 4 خط کد قرار دارد.
مرحله 7: کد آردوینو ، کلاس ها
من 3 کلاس برای این پروژه ایجاد کردم. آنها "تایمر" ، "بخاری" و "باتری" بودند. با کمی فکر بیشتر باید بتوانم باتری را در تایمر تا کنم ، اما هنوز این کار را نکرده ام. در اینجا آنها به طور کامل هستند: heater.h
تایمر. ساعت
انباشت کننده. h
مرحله 8: نظارت بر سیستم
من یک رابط واحد برای دو مانیتور جداگانه ایجاد کردم. این یک جلسه تعاملی بر روی کنسول سریال است. در مورد من ، من از BlueFruit EZ-Link استفاده می کنم تا بتوانم بدون خزیدن در خانه یا تلاش برای کابل کشی USB در بین تیرچه های کف به سیستم دسترسی داشته باشم! مزیت اضافی EZ-Link این است که می توانم کد برنامه جدید را از طریق بلوتوث نیز در Arduino بارگذاری کنم. رابط "انسانی" با هر نرم افزار شبیه سازی ترمینال ، از جمله سریال Arduino IDE قابل دسترسی است (بلوتوث یا کابل فیزیکی). مانیتور هنگام اتصال اولیه ، هیچ پاسخی وجود ندارد ، اما با فشار دادن کلیدهای "u" (برای "به روز رسانی") و "t" (برای "آزمایش") خروجی نشان داده شده در عکس صفحه به شما می رسد. "m" ("مانیتور") و "s" ("sys check") داده های یکسانی را برای شما دریافت می کنند اما در قالبی بسیار کمتر خوانا. این برنامه ها باید توسط برنامه دیگری برای نمایش خودکار "خراشیده شوند". من یک اسکریپت پایتون را جمع آوری کردم که این کار را انجام می دهد. هر کلید دیگری پیام خطا را نشان می دهد. مقدار "زمان سوختن" را مشاهده خواهید کرد - به این مورد مانند "دقیقه لامپ" فکر کنید - 1 لامپ برای 10 دقیقه = 10 دقیقه ، 3 لامپ برای 10 دقیقه = 30 دقیقه.
مرحله 9: اسکریپت پایتون
crawlspace_gui.py
مرحله 10: هنوز باید انجام شود…
ممکن است زیبا یا کامل نباشد ، اما م effectiveثر است و خود را قابل اعتماد نشان می دهد. و ، من هنوز هیچ مشکلی در لوله های یخ زده در زمستان امسال نداشته ام! من لیستی از کارهایی را که باید انجام دهم دارم. البته ، در حال حاضر که کار می کند ، ممکن است برای انجام اکثر این موارد به هیچ وجه پیش نیایم: بلوتوث را روی یکی از رزبری پای من اجرا کنید تا بتوانم یک مانیتور اختصاصی ایجاد کنم. پایتون بیشتر بیاموزید - سپس پایتون را تمیز کنید رابط. این تفکیک عناصر عمدی نیست و من نمی دانم چرا آنجا وجود دارد. یک رابط را به چیزی مانند سرویس IO Adafruit اضافه کنید تا بتوانم آن را از هر کجا نظارت کنم. هشدار پیامک را اضافه کنید. حرکت به یک کنترلر کوچکتر (احتمالاً مترو Mini یا Trinket Pro؟) ، رله های ارزان تر و بسته بندی بهتر. آن را از یک تخته بردارید و روی یک تخته "Perma Proto" بردارید. پارامترهای پیکربندی در EEPROM. یک رابط دانه ای تر که نشان می دهد - کدام لامپ ها خوب هستند و احتمالا حتی زمان سوزاندن لامپ های فردی را نیز به پایان می رسانم. وقتی این کار را انجام می دهم ، برمی گردم و این دستورالعمل را به روز می کنم.
مرحله 11: به روزرسانی 3/16 ، "دائمی" Build
با استراحت خوب در هوای سرد ، دستگاه را بازیابی کرده و به کنترلر کوچکتر منتقل کردم (قصد داشتم از Trinket Pro استفاده کنم ، اما یک مترو Adafruit Metro Mini بدون هیچ ادعایی در اطراف نشسته بود) ، آن را لحیم کردم یک برد Perma-Proto ، و همه را در یک مورد بهتر قرار دهید. بر اساس قابلیت اطمینان آن ، من نظارت سخت افزاری را روی آن قرار ندادم. من هنوز فقط از 3 لامپ/رله استفاده می کنم که سیستم 4 را کنترل می کند. ماژول بلوتوث روی یک سرصفحه لحیم کاری شده است ، بنابراین اگر در جای دیگری به آن نیاز داشته باشم ، می توان آن را حذف کرد. هیچ تغییر کد لازم برای انتقال به کنترلر جدید وجود نداشت - یک کامپایل مجدد و بارگذاری ساده باعث شد در عرض چند دقیقه کار کنم. (Metro Mini دارای یک pinout مشابه Arduino Uno است و همچنین یک پردازنده ATMega328 است.)
مرحله 12: به روز رسانی 2018/12/1 - به اینترنت اشیا خوش آمدید
سیستم برای ما بی عیب و نقص کار کرده است. پس از دو زمستان نسبتاً شدید ، بدون لوله های یخ زده. در واقع ، این سیستم توانست لوله ها را بدون سوختن بیش از 2 لامپ حفظ کند. داشتن لامپ سوم به صورت آنلاین بیمه خوبی بود ، اما ما تا به حال به آن احتیاج نداشتیم.
در سال 3 برای سیستم ، ماژول بلوتوث خراب شد. ما همچنین یک خانه جدید ساختیم ، بنابراین سیستم نظارت به خوبی خارج از محدوده بلوتوث است. (خانه قدیمی مدتی بیدار است ، اما نه برای همیشه.) هم در قالب Adafruit Feather و هم در قالب منبع باز "NodeMCU". NodeMCU را می توان به طور کلی در آمازون با قیمتی در حدود 5 دلار یافت - بسیار کمتر در صورت خرید عمده و/یا از شخصی مانند AliExpress.
این نسخه جدید رابط سریال را حفظ می کند ، بنابراین هنوز می توان از آن با ماژول بلوتوث یا اتصال سریال مستقیم USB و اسکریپت پایتون قبلی استفاده کرد ، اما نسخه جدید دارای رابط صفحه وب است. همانطور که نوشته شده است ، شامل ویژگی های زیر است:
یک مدیر شبکه وای فای برای از بین بردن اطلاعات رمزگذاری شده وای فای.
قابلیت به روزرسانی سیستم عامل بصورت آنلاین با استفاده از Arduino IDE (تا زمانی که در یک شبکه WiFi هستید-توجه داشته باشید که پس از بارگذاری USB بر روی دستگاه ، قبل از کارکرد به روزرسانی های OTA نیاز به تنظیم مجدد است). لطفاً رمز OTA را در خط 6 تغییر دهید تا منحصر به فرد شما باشد !!
یک صفحه وب که همان داده هایی را که اسکریپت پایتون نشان می دهد ، نمایش می دهد و هر دقیقه یک بار به صورت خودکار به روز می شود. من هیچ نوع امنیتی را در صفحه قرار ندادم ، زیرا فقط برای نمایش است.
کد جدید را می توانید در اینجا پیدا کنید. توجه داشته باشید که هنگام انتقال به NodeMCU ، نام پین ها تغییر می کند.
توصیه شده:
رومیزی Wacky Waving بادی بازوی بادکنک مرد لوله لوله: 4 مرحله (همراه با تصاویر)
Desktop Wacky Waving Inflatable Tube Flailing Tube Man: من همیشه می خواستم یک مرد رومیزی با ابعاد Wacky Waving Inflatable Tube Man & quot؛ ایجاد کنم ، همچنین به عنوان مرد لوله شناخته می شود ، همچنین به عنوان Skydancer ، رقصنده هوایی نیز شناخته می شود … این پروژه به عقب شروع شد در سال 2013 ، من اولین نمونه اولیه خشن ساخته شده را ارائه کردم
AC را به DC با مرکز ضربه زده ضربه زده مرکز: 5 مرحله تبدیل کنید
AC را به DC با یک مرکز اصلاح کننده مرکز ضربه بزنید: سلام دوست عزیز ، امروز من قصد دارم یک مدار از یکسو کننده با ضربات مرکزی ایجاد کنم. این یک یکسو کننده کامل موج است که AC را به DC تبدیل می کند. این مدار DC خروجی را با موج کامل می دهد. این است نوع یکسو کننده موج کامل. بیایید شروع کنیم ،
نحوه اضافه کردن آهنگ های زنگ و فیلم های پشتیبان در Verizon Vx8500 (معروف به شکلات) به صورت رایگان: 8 مرحله
نحوه افزودن آهنگ های زنگ و فیلم های پشتیبان در Verizon Vx8500 (معروف به شکلات) به صورت رایگان: این به شما نشان می دهد که چگونه یک کابل شارژ/داده برای vx8500 (معروف به شکلات) بسازید و نحوه استفاده از کابل برای بارگذاری آهنگ های زنگ و پشتیبان گیری از خریداری شده فیلم های vcast سلب مسئولیت: من مسئولیتی در قبال اقدامات کسانی که این صفحه را می خوانند ندارم
موضوع رسانا در داخل لوله تعصب پارچه ای به نام لوله های رسانایی: 10 مرحله
موضوع رسانا در داخل لوله تعصب پارچه ای به نام لوله های رسانایی: روشی برای اتصال نخ رسانا به پارچه. هنگامی که نمی توانید نخواهید نخ های رسانا را به لباس خود بدوزید یا نخواهید ، کاربرد فوق العاده ای دارد. آیا می خواهید ویدیوها ، آموزش ها و پروژه های eTextile چگونه DIY بسازید؟ سپس از The eTextile Loun
تایمر نوشیدنی یخ زده - دیگر آبجوهای گرم یا یخ زده !: 24 مرحله
تایمر نوشیدنی یخ زده - دیگر آبجو گرم یا یخ زده !: تایمر نوشیدنی یخ زده توسط Gadget Gangster یک زمان سنج است که به شما اطلاع می دهد وقتی نوشیدنی شما سرد می شود. کیت را خریداری کنید! http://gadgetgangster.com/154 دیگر از قوطی های گرم یا بطری های منفجر شده دیگر خبری نیست ، فقط به تایمر نوشیدنی یخ زده خود بگویید که چقدر دم کرده خود را دوست دارید و