فهرست مطالب:

Tweet-A-Temp: 8 مرحله
Tweet-A-Temp: 8 مرحله

تصویری: Tweet-A-Temp: 8 مرحله

تصویری: Tweet-A-Temp: 8 مرحله
تصویری: The Marvel Symphonic Universe 2024, جولای
Anonim

توسط Z0tZot's Homebrew Experiments بیشتر توسط نویسنده دنبال کنید:

قالب جادویی 8 آبجو 8 طرفه
قالب جادویی 8 آبجو 8 طرفه
قالب جادویی 8 آبجو 8 طرفه
قالب جادویی 8 آبجو 8 طرفه

من و پسر بزرگم (مینیون شماره 1) شروع به ساخت Tweet-A-Watt کردیم و نتوانستیم دستورالعمل ها را به درستی دنبال کنیم ، یعنی ما هر دو گیرنده را به عنوان یک گیرنده استاندارد به جای یک و سپس نیمی از گیرنده دوم XBee قرار دادیم. خوب ما دو انتخاب داشتیم ، یا قطعات اضافی را قطع کنیم یا چیز دیگری. با توجه به اینکه هنوز یک Kill-A-Watt به صورت محلی پیدا نکرده ام و این دماسنج خارجی/داخلی را که 10 سال می خواستم کامپیوتر کنم ، داشتم ، می دانستم باید چه کار کنم: برای اندازه گیری باید از دماسنج استفاده کنم. دمای وان حمام من ، و سپس آن را توییت کنید! من اخیراً به مینیون شماره 1 مأموریت داده بودم که یک کنترل کننده وان آب گرم را بدون هیچ محدودیتی توصیف کند. او اشاره کرد ، خوب ما می توانیم آن را بی سیم کنیم ، اما نه ، این احمقانه است … من دوست دارم وقتی یک برنامه 10 ساله به ثمر می رسد. آن را در توییتر ببینید

مرحله 1: گیرنده های Xbee را بسازید

گیرندگان Xbee را بسازید
گیرندگان Xbee را بسازید

دو گیرنده XBEE بسازید. من از گیرنده های Lady Ada استفاده کردم ، هر گیرنده ای این کار را خواهد کرد. شما به پین VREF و AD0 XBee نیاز دارید. ترفند Tweet-A-Watt پیکربندی است. در واقع شما یکی از دستگاه ها را تنظیم کرده اید تا مقادیر Kill-A-Watt را با: ATMY = 1 ، SM = 4 ، ST = 3 ، SP = C8 ، D4 = 2 ، D0 = 2 ، IT = 13 ، تکرار کند. IR = 1 این آدرس (1) را تنظیم می کند ، حالت خواب ، زمان سنج و دوره را تنظیم می کند و سپس پین 4 و 2 را به حالت ورودی آنالوگ (2) تنظیم می کند ، که بسته های 0x13 (19 اعشاری) ، 1 ms بین نمونه ها را ارسال می کند. ترفند اینجا ورودی آنالوگ است. شما می توانید ولتاژهای کوچک (0-5V) را مستقیماً توسط XBee بخوانید. در Tweet-A-Watt پین های 4 و 0 را برای ارسال آمپر و ولت اندازه گیری شده توسط Kill-A-Watt تنظیم می کنید. در واقع این را نمی فرستد ، بلکه ولتاژ کوچکی را که توسط تراشه های موجود در Kill-A-Watt اندازه گیری می شود ، به گیرنده XBee که به کامپیوتر متصل است می فرستد. نرم افزار موجود در رایانه بسته های دریافتی را دائماً می خواند و ولتاژ و آمپر واقعی را دوباره محاسبه می کند و سپس Wattage را محاسبه می کند.

مرحله 2: دماسنج

دماسنج
دماسنج
دماسنج
دماسنج
دماسنج
دماسنج

من حدود 10 سال پیش دو عدد از این دماسنجهای داخلی و خارجی را از انبار خانه خریدم. من همیشه مجذوب این بودم که "دماسنج" بیرونی با ظاهری شبیه یک دوشاخه صوتی استاندارد به واحد اصلی متصل شود. من همیشه می پرسیدم که آیا می توانم دما را با اتصال به جک میکروفون در کامپیوتر اندازه گیری کنم؟

به نظر می رسد من احتمالاً می توانم آن را کار کنم ، اما مشکل است. این دوشاخه در واقع یک جک 3/32 اینچی است ، به جای یک پلاگین صوتی 1/8. این پلاگین استاندارد برای تلفن های همراه برای میکروفون های خارجی است. این یک مشکل ایجاد کرد زیرا من در شمع های ناخواسته خود هیچ دوشاخه میکروفون پیدا نکردم که من مجبور به خرید مجموعه ای از رادیو کلبه (2 دلار) شدم ، که تأخیر زیادی را به پروژه اضافه کرد (رسیدن به یک کلبه کار ساده ای نبود). من یک واحد را قبل از اینکه بطور ناگهانی متوجه شوم چگونه کار می کند ، جدا کردم. ، این یک تقسیم کننده ولتاژ بود! یک بار که به آن فکر کردم واضح بود. این زندگی را بسیار آسان کرد.

مرحله 3: تقسیم کننده ولتاژ چیست؟

تقسیم کننده ولتاژ چیست؟
تقسیم کننده ولتاژ چیست؟

یکی از بهترین مکان ها برای یادگیری الکترونیک تقسیم بندی های Wisconsin Online است که در آن صفحه (پایین سمت راست) توضیح داده شده است ، یا می توانید از صفحه ویکی پدیا ولتاژ دیدن کنید. به طور خلاصه ، اگر دو مقاومت به صورت سری داشته باشید ، افت ولتاژ در هر مقاومت برابر است متناسب با اندازه مقاومت اگر ولتاژ V در مدار R (1) + R (2) دارید ، V = V (1) + V (2). بنابراین اگر V = 3V و V (2) = 2V ، شما می دانید که V (1) = 1V. در حال حاضر اساس قانون اهم این است که جریان (I) V/R است در مدار سری ، جریان در سراسر یکسان است ، بنابراین جریان A و B برای کل مدار یکسان است. بنابراین I = V1/R1 = V2/R2. ما V2 = V - V1 را می شناسیم ، اتصال ، ما V1/R1 = (V -V1)/R2 را می بینیم. با حل R2 = R1*(V-V1)/V1 بدست می آوریم بنابراین اگر بدانیم اگر V (1) ، V و R (2) را می شناسیم ، می توانیم برای R2 حل کنیم. اگر R2 داشته باشیم ، مقدار آن را می دانیم ترمیستور!

مرحله 4: ترمیستور چیست؟

ترمیستور چیست؟
ترمیستور چیست؟

ترمیستور مقاومتی است که با تغییر دما مقاومت آن را تغییر می دهد. با استفاده از تکنیک های تقسیم ولتاژ برای تعیین مقاومت ، می توانیم بگوییم دما چقدر است. مشکل این است که من مقداری ترمیستور ارزان در یک محفظه از محصول 10 ساله دارم. چگونه تصور می کردم که یک تابع ایجاد می کنم تا از مقاومت به دما تغییر کند؟ خوب ، من یک دماسنج دارم که به آن متصل می شود! بنابراین اندازه گیری زیادی کردم. دما را کپی کردم و سپس مقاومت ترمیستور را اندازه گیری کردم. آن را در یخچال گذاشتم ، سپس آن را در آب گرم قرار دادم. بعداً از آنجا که وقت داشتم دمای اتاق را می گرفتم. تصور می کردم که می توانم مطالب ویکی پدیا را بخوانم و عوامل a و b را حدس بزنم ، اما فرض می کردم از یک جزء غیر خطی و احتمالی خراب استفاده می کنم که دیگر با تولید آن مطابقت ندارد. مشخصات فنی. اوه و من تنبل هستم. بنابراین همه مقادیر را در Excel ریختم و سپس آن را نشان دادم. من در اصل نگران بودم که وقتی متوجه شدم Excell این کار را برای من! واضح است که من در نمودار گم شده ام ، اما اطلاعات زیادی در مورد دمای وان آب گرم (100-105F) دریافت کردم. در حین بررسی محدوده دمای اتاق ، متوجه چیزی شدم که تقریباً کار من را بی ارزش می کند. دماسنج "دمای دقیق" هنگامی که ترمیستور در اینچ اینچ فاصله داشت ، خطای 3-7 درجه بین "داخلی" و "بیرونی" را گزارش کرد! در حال حاضر این ممکن است به این دلیل باشد که من ترمیستور را بین واحدها مخلوط و مطابقت دادم ، اما من شرط می بندم که بیشتر به دلیل کیفیت یک کالای 10 ساله ، 10 دلار است و صرف نظر از "دقت" دما ، من نیاز به دقت و آزمایشهای چندگانه دارم محدوده نتایج بسیار نزدیکی را طی روزها نشان داد. در دراز مدت ، به احتمال زیاد ترمیستور را به لوله ای که به وان آب گرم منتقل می شود وصل می کنم ، بنابراین به هر حال به یک افست نیاز خواهم داشت. بنابراین با به دست آوردن اکسل برای نمایش معادله ، سپس آن را در کد قرار می دهم ، و تا کنون چنین است " بستن."

مرحله 5: مدار فرستنده

مدار فرستنده
مدار فرستنده

مدار فرستنده ساده است. من یک مقاومت 100 کیلو اهم برای R2 انتخاب کردم ، زیرا به نظر می رسید که با محدوده نمودار مطابقت داشته باشد ، و من یک قطعه اضافی برای لحیم کاری موارد مختلف با Minions داشتم. من این را به صورت سری با Thermistor از طریق یک کانکتور وصل می کنم. سپس یک بسته باتری اضافه کردم. من 3 V را به VREF و بالای تقسیم کننده ولتاژ و به ورودی Xbee +3V دویدم. من GND (Battery Negative) را در ورودی GND و در قسمت پایین تقسیم قرار می دهم. سپس AD0 (ولت) را به وسط مدار تقسیم ولتاژ وصل کردم.

AD0 یک ولتاژ نسبی از VREF تا V (1) را می خواند. بنابراین با کاهش باتری ، ولتاژ نسبی نیز باید به همان میزان کاهش یابد. در نهایت من واحد را با منبع تغذیه محلی تغذیه می کنم. واحد تمام شده خوب کار کرد ، ما همه چیز را با گیره تمساح متصل می کنیم ، که باعث شکنندگی آن شد. پس از اتصال 3/32 اینچی زن ، فرستنده را در یک وان پلاستیکی تصادفی قرار دادیم (یک ظرف ساب هوموس). این باید آن را در برابر آب و هوا محافظت کند. از آنجا که من اتصالات "mount mount" خریدم ، به همین سادگی بود. به عنوان حفر سوراخ در پلاستیک برای افزودن اتصال دهنده به خارج با یک اتصال نسبتاً آب محکم.

مرحله 6: خانه ، خانه ، محدوده ای ندارد

خانه ، خانه ، محدوده ای ندارد
خانه ، خانه ، محدوده ای ندارد
خانه ، خانه ، محدوده ای ندارد
خانه ، خانه ، محدوده ای ندارد
خانه ، خانه ، محدوده ای ندارد
خانه ، خانه ، محدوده ای ندارد

یکی از اولین چیزهایی که ما متوجه شدیم این بود که محدوده به محض خروج از دفتر با فرستنده به طرز وحشتناکی کشته شد. ما از اتاق دیگری تلاش کردیم ، و نتایج وحشتناک بود. 1 فوت دورتر ترک خورد. وقت آن است که راه حل ها را بررسی کنیم. به نظر من رسید که در حال آزمایش ما 4 منبع Wi Fi در 5 فوت داشتیم ، همه در محدوده 2.5 گیگاهرتز مانند Xbee. همچنین ما اصلاً "Xbee را هدف قرار ندادیم. پس از تحقیق متوجه شدم که می توانم یک رادیو Xbee قوی تر (حدود 23 دلار) بخرم یا آنتن اضافه کنم. یکی از مواردی که نیاز داشتم یک تست Range خوب بود. نرم افزار X-CTU از دیجی دارای "محدوده آزمایش" است ، اما هیچ نتیجه ای نداشت. من مدتی را صرف کردم تا بفهمم چگونه این کار را انجام دهم. در واقع این کار به همان راحتی ساده تر از آنچه گفته شد انجام شد. من واقعاً نیازی به آزمایش X-CTU نداشتم ، فقط مقدار "نشانگر قدرت سیگنال RX" (RSSI). من در xbee.pyTweet-A-Watt استفاده کردم و درست آنجا ، خط 39: [code] self.rssi = p [3] [/code] به این معنی که بخشی است از مقدار بازگشت Xbee! (xb.rssi در wattcher) ، بنابراین من خط اشکال زدایی را برای هک خود تغییر دادم: print str (counter) + ": RSSI:" + str (xb.rssi) + "| " + time.strftime ("٪ Y٪ m٪ d،٪ H:٪ M ") +"، " +": ولتاژ: " + str (CalcualtedVolts) +" avgv " + str (avgv) +" Thermistor: " + str (x) + "دما:" + str (دما) که خطی به این شکل تولید می کند: 373: RSSI: 82 | 2009 04 26 26 ، 11:18 ،: ولتاژ: 1.80100585938 avgv 593 ترمیستور: 71.2276559865 دما: 78.6813444881 شما می توانید همچنین RSSI را با پردازش ، از صفحه Tom's Igoe مشاهده کنید. اگرچه شما می خواهید طول بسته (در بالا) را تغییر دهید ، زیرا پردازش از نوشتن در پایان اندازه بافر بسته شکایت کرد. من معتقدم که شما باید بیش از 2 * انتظار داشته باشید طول بسته. کد تام برای بسته قبلی به عقب نگاه می کند ، به این معنی که اگر شاخص بسته Ox7E را از دست بدهد ، می تواند برای مدتی اجرا شود. با توجه به اینکه من در نزدیکی لبه بیرونی محدوده اندازه گیری هستم ، ممکن است برای مدتی اتفاق بیفتد. من کد خود را روی 600 و پیام "خطا ، غیرفعال کردن serialEvent ()" را به من نمی دهد. کد Tom فقط آخرین تنظیمات را چاپ می کند ، که برای من مفید نیست. خطای اشکال زدایی من اجازه دهید من پیگیری کنم تغییر می کند زیرا مینیون شماره 1 شگفت زده می شود. در حال حاضر ما روش خوبی برای اندازه گیری داشتیم ، بیشتر از آنکه "سلام پدر ما یک بسته داریم" وقت آن رسیده بود که ایده های آنتن دهی خانگی را امتحان کنیم! با استفاده از ایده های https://www.usbwifi.orconhosting.net.nz/ من دریافتم که مکعب گوشه کاهش dB را اندازه گیری می کند ، اگرچه در عمل به نظر نمی رسد که به اتصال یک جفت قطع شده کمک کند. Steamer Vegatible در واقع بهترین هدف و اتصال مجدد بود. تنظیمات USB Wifi با سایر افراد بسیار متفاوت است. بخارپزها دارای یک ساقه در وسط هستند که باعث قرارگیری آسان XBee می شود. یک کاسه فو با فویل قلع نیز امیدوار کننده است (اگرچه بعداً فویل قلع را برداشته و در جای خود نگه داشته ایم). ما همچنین سعی کردیم با یک قطعه خم کننده چرخ داغ "مسیر" یک Parabola بسازیم ، اما به نظر نمی رسد که کمکی کند. یکی از مشکلات این است که ما در لبه بیرونی محدوده آزمایش می کردیم. بیشتر رادیوهای 2.5 گیگاهرتزی ، به ویژه XBee ، از Spectrum پخش می کنند ، به این معنی که آنها می توانند "همگام سازی" را انجام دهند و سپس نرم افزار XBee به دنبال شروع بسته XBee قبل از ماشه است. این به این معنی است که اگر همه یا هیچ اثر را دریافت کنید. یا رادیوها روی هم قفل می شوند ، یا نه. گاهی اوقات به نظر می رسد شانس است ، اما در واقع شما یک آنتن در این محدوده هستید و می توانید نتایج را تحت تأثیر قرار دهید. من برای خرید دو دستگاه بخارشو رفتم اما بعداً متوجه شدم که هزینه یک دستگاه بخارپز از سوپرمارکت محلی 10 دلار است و با قیمت 2 دستگاه بخار ، می توانم XBee قوی تری تهیه کنم. بنابراین من به چند مکان دیگر نگاه کردم و یک صافی بسیار عمیق پیدا کردم که حتی بهتر هم شده است. 7 دلار بود. من معتقدم عمق مهم است ، زیرا من در انتهای انتقال چیزها هستم ، سیگنال بیشتری را منعکس می کند (بر اساس یادداشت ها در https://www.usbwifi.orconhosting.net.nz/number13.jpg). پایان نتایج ، این است که با یک دستگاه بخار سبزیجات در یک طرف (که باید تعویض شود) و یک صافی در طرف دیگر ، من سیگنالی در حدود 20-30 متر ، از یک دفتر داخلی ، از طریق 3-4 دیوار ، به وان آب گرم دارم! نکته حرفه ای: به یاد داشته باشید اگر می خواهید صافی را وارد کنید 1) همسرتان بماند و/یا 2) سبزیجات بخارپز بخواهید بعداً. من شخصاً ظاهر گلبرگی بخارپز سبزی را دوست دارم.

مرحله 7: نرم افزار

نرم افزار
نرم افزار

با شروع کار با Tweet-A-Wattsoftware ، شروع به هک کردن کد پایتون کردم. بیشتر من نیاز به حذف تبدیل Watts ، توابع سابقه و سپس تعدادی حفاظت تقسیم بر 0 (فرض کنید بسته های Tweet-A-Watt داده خواهند داشت) اضافه کردم. سپس فرمول را از Excel به برنامه اضافه کردم و تست کردم. آن را برای چاپ هر بسته تنظیم کردم و اشکال زیادی در کد دارم تا مشکلات را پیدا کنم. من سعی کردم بخش نمودار را کار کنم ، اما منصرف شدم که به من می رساند: Python Rant: این دومین بار است که دارم سعی کرد پروژه بزرگی را در پایتون انجام دهد. من نتوانستم همه وابستگی کتابخانه ها و بسته های اصلی را در کمتر از 20 ساعت در Windows ، Windows 64 ، Ubuntu و Fedora کار کنم. من در نهایت مجبور شدم تقریباً همه چیز را از ابتدا بسازم و حتی در آن زمان برخی از عملکردها کار نمی کردند. من نسخه های 2.4 ، 2.5 ، 2.6 و 3. X مختلف و سپس نسخه های هر کتابخانه را امتحان کردم ، که به نوبه خود وابستگی به بسته های دیگر داشت. در حالی که دیگران ممکن است علیه زبان اعتراض کنند ، من فقط نصب ، حتی با استفاده از بسیاری از "نصب کننده های آسان" را در بهترین حالت دلهره آور می دانم! بعد از محاسبه دما ، یک درجه تنظیم کردم ، زیرا نمی توانم وان حمام را باور کنم در 106F بود من واقعاً اعتقاد ندارم که در 105 است. من سپس منطق گزارش و توییتر را تغییر دادم. از آنجا که مطمئن نیستم بسته ها یا بسته های خوبی دریافت کنم ، ترجیح دادم دما را هر ساعت یکبار گزارش کنم. فرض می کنم که مدتی دیگر آن را قطع می کنم. در حال حاضر اسکریپت به عنوان یک کاربر معمولی در حال اجرا است. من می خواهم در نهایت آن را به یک سرویس منتقل کنم.

مرحله 8: مراحل بعدی

برخی مراحل آشکار بعدی وجود دارد:

1) صافی سبزیجات را جایگزین کنید a. مینیون ها به سبزیجات خود نیاز دارند! ب اون یکی به هر حال قدیمی بود 2) آنتن Hot Tub را زیر عرشه a قرار دهید. ممکن است عرشه آن را حتی "بیشتر" کند ، اما امکان راه اندازی بدتر را فراهم می کند. ب سپس می توانم ترمیستور را به قسمت زیر بچرخانم و مکان بهتری پیدا کنم. 3) سنسورهای بیشتر را اضافه کنید a. آسان یکی سنسور دمای بیرون است. ب اما هیچ دلیلی وجود ندارد که ما نتوانیم وضعیت صفحه های کنترل را تشخیص دهیم ، به ویژه سنسور حرارتی که وقتی بچه ها تمام می شوند به طرز جادویی لمس می شود. ج سایر حسگرهای آب و هوا (باد ، رطوبت و غیره) د. خوب است که وان آب گرم را کنترل کنم و من می توانم بیشتر شب و روز گرمایش را خاموش کنم. 4) من می توانم نرم افزار را تنظیم کنم a. مینیون ها در حال حاضر پیام های بهتری در هر دما می خواهند. ب ما باید بتوانیم به پاسخ ها و DM ها پاسخ دهیم. ج باید هوشمندتر توییت کنم (کمتر از یک بار در ساعت). د من کارهای جالب دیگری برنامه ریزی کرده ام.

توصیه شده: