فهرست مطالب:
- تدارکات
- مرحله 1: شماتیک و کد منبع
- مرحله 2: کارکردن مدار
- مرحله 3: بررسی سلامت
- مرحله 4: اندازه گیری قدرت و عمر باتری
- مرحله 5: پیشرفت های آینده
تصویری: سنسور درب بی سیم - قدرت فوق العاده کم: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
یک سنسور درب دیگر !! بنابراین انگیزه من برای ایجاد این سنسور این بود که بسیاری از مواردی که در اینترنت مشاهده کردم دارای یک محدودیت یا دیگری بودند. برخی از اهداف سنسور برای من عبارتند از:
1. سنسور باید بسیار سریع باشد - ترجیحاً کمتر از 5 ثانیه
2. سنسور باید باتری لیتیوم یون 3.7 ولت کار کند زیرا ده ها عدد از آنها در اطراف قرار گرفته است
3. سنسور باید برای چندین ماه با یک بار شارژ باتری کار کند. در حالت خواب باید <10uA مصرف کند
4. سنسور باید بتواند برای انتقال داده های مهم مانند وضعیت باتری حتی وقتی که درب به مدت طولانی کار نمی کند بیدار شود.
5. هنگامی که درب باز می شود و هنگامی که در بسته است ، سنسور باید داده ها را به یک موضوع MQTT منتقل کند
6. حسگر باید صرف نظر از وضعیت درب ، همان مقدار برق مصرف کند
عملکرد سنسور:
این سنسور دارای 2 کنترل کننده اصلی است. اولین دستگاه میکروکنترلر کوچک ATiny 13A است. مورد دوم ESP است که معمولاً در حالت خواب است و تنها زمانی بیدار می شود که ATiny آن را فعال کند. کل مدار را می توان تنها با استفاده از ESP با استفاده از آن در حالت خواب ایجاد کرد ، اما جریان مصرفی آن بسیار بیشتر از مقدار مورد نیاز است تا باتری ماه ها دوام بیاورد تا ATTiny به نجات برسد. این فقط با هدف بیدار شدن از خواب در هر N ثانیه انجام می شود ، به دنبال یک رویداد درب خانه یا یک رویداد بررسی سلامت هستید ، در صورت وجود ، پین CH_PD ESP را روی HIGH نگه می دارد و سیگنال مناسب از نوع رویداد را به ESP ارسال می کند. به نقش آن به همین جا ختم می شود.
سپس ESP کار می کند ، نوع سیگنال را می خواند ، به WiFi/MQTT متصل می شود ، پیام های مورد نیاز از جمله میزان باتری را منتشر می کند و سپس با بازگرداندن پین EN به LOW ، خود را خاموش می کند.
با استفاده از این تراشه ها به این ترتیب ، من از جریان خواب کم ATtiny و صفر جریان بیکار ESP هنگام خاموش شدن تراشه از طریق پین CH_PD استفاده می کنم.
تدارکات
پیش نیاز:
- دانش برنامه نویسی ATTiny & ESP 01
- آشنایی با قطعات لحیم کاری روی PCB
ESP-01 (یا هر ESP)
ATTiny 13A - AVR
LDO 7333 -A - تنظیم کننده ولتاژ خروج پایین
مقاومت - 1K ، 10K ، 3K3
خازن ها: 100uF ، 0.1 uF
کلید دکمه ای ، سوئیچ میکرو ON/OFF - (هر دو اختیاری است)
دیود - IN4148 (یا هر معادل آن)
باتری لیتیوم یونی
سوئیچ Reed
موردی برای قرار دادن همه چیز
لحیم ، PCB و غیره
مرحله 1: شماتیک و کد منبع
نمودارها همانطور است که در نمودار پیوست نشان داده شده است.
من یک POS MOSFET برای محافظت از قطبیت معکوس قرار داده ام. اگر به این نیاز ندارید ، ممکن است آن را حذف کنید. هر POS MOSFET کانال با RDS کم روشن این کار را می کند.
در حال حاضر ESP قابلیت OTA را ندارد اما این برای بهبود آینده است.
کد منبع-سنسور درب هوشمند
مرحله 2: کارکردن مدار
جریان کاری ATTiny
جادو در اینجا در نحوه نظارت ATTiny بر روی موقعیت سوئیچ در اتفاق می افتد.
گزینه معمولی این است که یک مقاومت کششی را به سوئیچ وصل کرده و وضعیت آن را زیر نظر داشته باشید. این جنبه منفی جریان ثابت را دارد که توسط مقاومت کششی مصرف می شود. راهی که در اینجا از آن اجتناب شده است این است که من از دو پین برای نظارت بر سوئیچ استفاده کرده ام تا یکی. من از PB3 و PB4 در اینجا استفاده کرده ام. PB3 به عنوان ورودی و PB4 به عنوان خروجی با INPUT_PULLUP داخلی در PB3 تعریف می شود. به طور معمول PB4 هنگامی که ATtiny در حالت خواب است ، بالا نگه داشته می شود. این امر باعث می شود بدون در نظر گرفتن موقعیت سوئیچ نی ، جریان فعلی از طریق مقاومت کششی ورودی وجود نداشته باشد. یعنی اگر سوئیچ بسته باشد ، هر دو PB3 و PB4 بالا هستند و بنابراین جریانی بین آنها جریان نمی یابد. اگر سوئیچ باز است ، هیچ راهی بین آنها وجود ندارد و بنابراین جریان صفر است. وقتی ATtiny از خواب بیدار می شود روی PB4 LOW می نویسد و سپس وضعیت PB3 را بررسی می کند. اگر PB3 بالا است ، کلید نیش باز است در غیر این صورت بسته است. سپس یک عدد HIGH را در PB4 می نویسد.
ارتباط بین ATtiny & ESP از طریق دو پین PB1 / PB2 متصل به Tx / RX ESP اتفاق می افتد. من سیگنال را به عنوان تعریف کرده ام
PB1 PB2 ====== Tx Rx
0 0 ====== WAKE_UP (بررسی سلامت)
0 1 ====== SENSOR_OPEN
1 0 ====== SENSOR_CLOSED
1 1 ====== استفاده نشده
علاوه بر ارسال سیگنال به ESP ، یک پالس HIGH در PB0 ارسال می کند که به پین ESP CH_PD متصل است. این ESP را بیدار می کند. اولین کاری که ESP انجام می دهد نگه داشتن GPIO0 HIGH است که به CH_PD متصل است و در نتیجه قدرت خود را تضمین می کند حتی اگر ATTiny PB0 HIGH را از بین ببرد. کنترل در حال حاضر با ESP است تا تعیین کند که چه زمانی می خواهد خاموش شود.
سپس به WiFi ، MQTT متصل می شود ، پیام را ارسال می کند و با نوشتن LOW در GPIO0 خود را خاموش می کند.
ESP 01 جریان کار:
جریان ESP مستقیماً رو به جلو است. بیدار می شود و مقادیر پین های Tx/Rx را می خواند تا مشخص شود چه نوع پیامی قرار است ارسال شود. به WiFi و MQTT متصل می شود ، پیام را ارسال می کند و خود را خاموش می کند.
قبل از خاموش شدن ، دوباره مقادیر پین های ورودی را بررسی می کند تا ببیند آیا از آخرین خوانده شدن تغییر کرده اند یا خیر. این برای مراقبت از باز و بسته شدن سریع درب است. اگر این چک را ندارید ، در برخی موارد ممکن است بسته شدن درب را در صورت بسته شدن 5-6 ثانیه باز شدن از دست بدهید. یک سناریوی عملی از باز و بسته شدن درب ظرف 2 ثانیه یا بیشتر به خوبی توسط حلقه while ثبت می شود که تا زمانی که وضعیت فعلی درب با حالت قبلی متفاوت است ، پیام ها را ارسال می کند. تنها سناریویی که ممکن است ثبت همه رویدادهای باز/بسته را از دست بدهد این است که درب مکرراً در پنجره 4-5 ثانیه باز و بسته شود ، که بسیار محتمل است - احتمالاً موردی از بازی کودکان با در.
مرحله 3: بررسی سلامت
من همچنین به روشی نیاز داشتم که از ESP پیام سلامت را دریافت کنم تا سطح باتری ESP را نیز ارسال کند تا اطمینان حاصل شود که سنسور بدون بازرسی دستی خوب کار می کند. برای این کار ATTiny هر 12 ساعت یک سیگنال WAKE_UP ارسال می کند. می توان آن را از طریق متغیر WAKEUP_COUNT در کد ATtiny پیکربندی کرد. این برای درها یا پنجره هایی که به ندرت باز می شوند بسیار مفید است و بنابراین ممکن است متوجه نشوید که مشکلی در سنسور یا باتری آن وجود دارد.
در صورت عدم نیاز به عملکرد بررسی سلامت ، کل مفهوم استفاده از ATTiny مورد نیاز نیست. در این صورت می توانید طرح های دیگری را پیدا کنید که افراد در جایی که منبع ESP از طریق MOSFET تغذیه می شود ایجاد کرده اند ، بنابراین می توانید در صورت عدم کارکرد درب به جریان صفر برسید. موارد دیگری نیز باید رعایت شود مانند قرعه کشی کنونی که در درب باز و بسته درب یکسان است - برای آن من در جایی طرحی را دیدم که از یک سوئیچ نی 3 حالته به جای 2 حالت معمول استفاده می کرد.
مرحله 4: اندازه گیری قدرت و عمر باتری
من مصرف فعلی مدار را اندازه گیری کرده ام و هنگام خواب و اطراف 30 A AU طول می کشد. با استفاده از برگه های داده ATTiny ، باید برای کل مدار 1-4 uA برای کل مدار شامل جریان آرام LDO باشد ، اما اندازه گیری های من 30 را نشان می دهد. MOSFET و LDO جریان ناچیزی را مصرف می کنند.
بنابراین یک باتری 800 میلی آمپر ساعتی باید مدت زمان زیادی کار کند. من آمار دقیقی ندارم اما بیش از یک سال است که از آن در 2 دربم استفاده می کنم و هر 18650 سلول با حدود 800mAH در آنها حدود 5-6 ماه بر روی در اصلی من باز و بسته می شود. حداقل 30 بار در روز درب پشت بام که فقط چند بار در هفته باز می شود ، 7-8 ماه طول می کشد.
مرحله 5: پیشرفت های آینده
1. ESP ارسال پیام MQTT را تایید نمی کند. برنامه را می توان با عضویت در مبحثی که پیام را برای تأیید تحویل منتشر می کند ، بهبود بخشید یا می توان از کتابخانه Async MQTT برای ارسال پیام با QoS 1 استفاده کرد.
2. به روز رسانی OTA: می توان کد ESP را برای خواندن یک موضوع MQTT برای به روزرسانی تغییر داد و بنابراین برای دریافت فایل وارد حالت OTA شوید.
3. ESP01 را می توان با ESP-12 جایگزین کرد تا به پین های ورودی بیشتری دسترسی پیدا کرد و بنابراین می توان سنسورهای بیشتری را به آن متصل کرد. در این صورت ارتباط از طریق روش 2 بیتی امکان پذیر نیست. سپس می توان برای اجرای ارتباط I2C بین ATtiny & ESP بهبود بخشید. این کمی پیچیده است اما قابل اجرا است. من آن را در مجموعه دیگری کار می کنم که ATTiny مقادیر رمزگذار دوار را به خط E2C به ESP ارسال می کند.
4. مدار فعلی Vcc داخلی ESP را کنترل می کند ، اگر از ESP12 استفاده کنیم ، می توان آن را تغییر داد تا سطح باتری واقعی را از طریق پین ADC بخواند.
5. در آینده من همچنین یک تغییر در این مورد ارسال خواهم کرد که می تواند به عنوان یک سنسور مستقل بدون نیاز به MQTT یا هر سیستم اتوماسیون خانگی مورد استفاده قرار گیرد. سنسور به صورت مستقل کار می کند و می تواند در صورت فعال شدن تماس تلفنی برقرار کند - البته برای این کار به اتصال به اینترنت نیاز دارد.
6. و لیست همچنان ادامه دارد…
7. حفاظت از باتری معکوس - انجام شد (تصاویر واقعی دستگاه قدیمی هستند و بنابراین MOSFET را نشان نمی دهند)
توصیه شده:
نحوه ایجاد نور فلش فوق العاده روشن با LED - DIY: نور فوق العاده روشن: 11 مرحله
نحوه ایجاد نور فلش فوق العاده روشن با LED - DIY: Super Bright Light: ابتدا فیلم را تماشا کنید
زنگ درب فوق العاده ساده: 5 مرحله
زنگ درب فوق العاده ساده: پسر هفت ساله من می خواست یک زنگ خطر درب بسازد. بدیهی است که باید بسیار ساده بود. اما مطمئناً او می خواست که "حرفه ای" به نظر برسد نه شبیه یک DIY یا اسباب بازی. من یک طرح ساده و چند مرحله آسان که او می تواند دنبال کند ، ارائه کردم. شاید این کار را نکنید
فوق العاده ساده & quot؛ فوق العاده & quot؛ نور شب: 5 مرحله
فوق العاده ساده & quot؛ فوق العاده & quot؛ Night Light: این یک نسخه بسیار ساده از Eggcellent Light Night است !. اگر این دستورالعمل را ندیده اید ، پیشنهاد می کنم حتماً آن را ببینید. من واقعاً می خواستم آن را درست کنم ، اما حوصله نداشتم. بنابراین من راه ساده تری برای ساختن آن پیدا کردم. این را بررسی کنید
فوق العاده قابل حمل ، فوق العاده بلند ، بادوام ، بلندگوهای باتری: 9 مرحله (همراه با تصاویر)
فوق العاده قابل حمل ، فوق العاده بلند ، با دوام ، بلندگوهای باتری: همیشه می خواستم یک سیستم بلندگوی قدرتمند برای کسانی که در مهمانی های باغی و مهمانی های محلی پیش می روند ، داشته باشم. بسیاری خواهند گفت که این یک دستورالعمل اضافی است ، زیرا بسیاری از رادیوهای سبک بوم باکس از روزهای گذشته که ارزان در دسترس بوده اند ، یا این سبک ارزان iPod mp3 d
فوق العاده آسان و فوق العاده ارزان Magneto Scratcher !: 3 مرحله
فوق العاده آسان و فوق العاده ارزان Magneto Scratcher !: & quot؛ Magnero scratcher & quot؛ دستگاهی است که می تواند صداهای خنده دار را فقط با & quot؛ خاراندن & quot؛ مواد مغناطیسی مانند نوارهای صوتی ، نوارهای ویدئویی ، کارت های اعتباری ، دیسک های مغناطیسی و غیره … در اینجا یک راه فوق العاده آسان برای ساخت آن است. بدون نیاز به لحیم کاری