فهرست مطالب:
- مرحله 1: ماژول خواب عمیق ESP-01
- مرحله 2: کد خواب عمیق ESP-01
- مرحله 3: ماژول زنگ ESP-01
- مرحله 4: کد ماژول ESP-01 Buzzer
- مرحله 5: اندیشه های نهایی
تصویری: سنسور حرکت ESP-01 با خواب عمیق: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
من روی ساخت سنسورهای حرکتی خانگی کار می کنم که در صورت فعال شدن پیام الکترونیکی ارسال می کنند. مثالهای آموزشی و مثالهای زیادی برای انجام این کار وجود دارد. من اخیراً نیاز به انجام این کار با سنسور حرکت PIR و با ESP-01 دارم. ESP-01 بسیار کاربردی است و دارای تمام قابلیت های مورد نیاز است ، بنابراین چرا از حداقل و کم هزینه ترین مورد نیاز استفاده نمی کنید؟ یک ماژول جداگانه و از راه دور ESP-01 به مخلوط اضافه شد که هنگام فعال شدن سنسور حرکت باعث ایجاد صدای زنگ شد.
کد و طرح نهایی مدار از منابع متعددی در سراسر وب جمع آوری شده است و فکر نمی کنم بتوانم آنها را به طور خاص شناسایی کنم. ایده ارسال ایمیل از طریق جیمیل از منابع قابل آموزش و سایر منابع به وجود آمد و کد نهایی آمیخته ای از آن منابع است. خوابیدن عمیق برای کار ، مرا در مسیرهای زیادی کشاند که اغلب بی نتیجه بود. نکته جالب این است که وقتی مسیری ثمربخش شد ، دیگر دنبال راه های دیگر نمی گردید. بنابراین من از همه کسانی که در موفقیت من سهیم بوده اند و هنوز ناشناخته اند تشکر می کنم.
من همین مشکل را داشتم که سنسور PIR را برای فعال کردن خواب عمیق ESP-01 کار کند. بسیاری از مسیرها تا زمانی که یکی از آنها کار می کرد وجود داشت.
نیازی به گفتن نیست ، برخی از موانع جالب یا شاید مرتبط تر ، درک بهتری از لوازم الکترونیکی مورد نیاز من وجود داشت. شما به یادگیری ادامه می دهید تا چیزی کار کند و سپس دیگر نیازی به یادگیری ندارید.
ESP-01 خواب عمیق و سایر ماژول های ESP8266 را تا زمانی که به خواب زمان بندی شده نیاز ندارید ، انجام می دهد. اگر می خواهید ماژول پس از مدت زمان معینی بیدار شود ، ESP-01 ماژولی نیست که بتوانید از آن استفاده کنید. اما این چیزی نیست که من می خواستم. زمان استفاده از PIR بی معنی است. من می خواستم ESP-01 فقط زمانی بیدار شود که با حرکت PIR حس شود. اگر ساعت ها یا روزها هیچ حرکتی احساس نشود ، ESP-01 با حداقل توان باتری در خواب می ماند.
مدارهای زیادی را مشاهده می کنید که از GPIO16 متصل به ESP8266 Reset استفاده می کنند زیرا GPIO16 سیگنال بیداری است. این درست است ، اما این سیگنال بیداری از خواب به موقع است. ما می توانیم این پین را نادیده بگیریم ، که خوب است زیرا در ESP-01 در دسترس نیست.
اساساً ، تنها چیزی که ما نیاز داریم این است که سیگنال را از PIR دریافت کنیم تا پین بازنشانی ESP-01 را فعال کند. اولین مشکلی که احتمال می دهید این است که Reset بر روی سیگنال LOW فعال می شود و PIR هنگام فعال شدن یک سیگنال HIGH ارسال می کند. تنظیم مجدد نیز باید بالا باشد یا روی بوت شناور باشد. بنابراین برای کوتاه نگه داشتن این موضوع ، پس از آزمایش مدارهای مختلف ، از ترانزیستور NPN با مقاومت کششی استفاده کردم تا پین RESET در هنگام بوت بالا نگه داشته شود. خروجی PIR حداقل است اما جریان پایه کافی را برای روشن شدن ترانزیستور فراهم می کند.
همانطور که در نمودار مدار زیر مشاهده خواهید کرد ، ESP-01 هر بار که PIR حرکت را حس می کرد از خواب عمیق بیدار می شد.
اما مشکل دیگری وجود داشت. بازنشانی ESP-01 تنها پس از این اتفاق افتاد که PIR حرکت را متوقف کرد و به سیگنال کم بازگشت و ترانزیستور را خاموش کرد و پین Reset را به دلیل مقاومت کششی به HIGH بازگرداند. این بدان معناست که ایمیل ارسال نمی شود و همچنین صدای زنگ فعال نمی شود تا زمانی که PIR حرکت را متوقف کرد. من می خواستم محرک به محض احساس حرکت اتفاق بیفتد.
آنچه من از این رفتار تشخیص دادم این است که ESP-01 در واقع در لبه بالایی سیگنال فعال می شود. نگه داشتن پین تنظیم مجدد روی زمین در واقع ESP-01 را از خواب عمیق خارج نمی کند ، اما در لحظه افزایش ولتاژ به سیگنال HIGH ، تنظیم مجدد اتفاق می افتد.
پاسخ بسیار ساده من به این رفتار اضافه کردن یک خازن به خط بین خروجی PIR و پایه ترانزیستور بود. این باعث شد که ترانزیستور فقط در حین شارژ خازن روشن شود. پس از شارژ ، جریان دیگری وجود نداشت و ترانزیستور خاموش شد. مقاومت 5k اجازه می دهد تا جریان به زمین تخلیه شود. من این را با یک LED به جای ESP-01 آزمایش کردم و می توانم فلش LED را برای کسری از ثانیه قبل از خاموش شدن ببینم. این نبض کوچک به اندازه ای کافی بود که پین Reset را لحظه ای و به اندازه کافی به زمین بکشد تا Reset از خواب عمیق خارج شود.
مرحله 1: ماژول خواب عمیق ESP-01
ماژول خواب عمیق از دو ولتاژ کار استفاده می کند. 5 ولت تصادفی+ بسته باتری برای PIR و همچنین یک برد تنظیم کننده 3.3 ولت برای ESP-01. من همچنین یک دیود را در مدار قرار می دهم تا از ولتاژ معکوس قطعات آسیب دیده جلوگیری شود. این کار کمی از نیروی اضافی استفاده می کند و ولتاژ بسته باتری را 0.7 ولت کاهش می دهد. اگر مطمئن هستید که هیچ وقت سیم های باتری را برعکس نمی کنید ، می توانید دیود را از مدار خارج کنید. یک سوئیچ نیز برای راحتی بیشتر اضافه می شود.
این ماژول یک به روز رسانی جزئی برای طرح اصلی خواب عمیق من است. در تنظیمات غیر عمیق ، PIR مستقیماً به پین RX ESP-01 متصل است. من به دلایل مختلفی از پین RX ESP-01 به عنوان پین ورودی PIR استفاده می کنم. GPIO0 کار نمی کند زیرا هنگام بوت PIN خروجی PIR پایین خواهد بود و ESP-01 وارد حالت فلش می شود. من از GPIO2 استفاده نکردم زیرا در آن صورت نمی توانم از LED داخلی برای بازخورد بصری استفاده کنم. پین RX و TX اغلب به عنوان پین IO اضافی توصیف می شوند اما تجربه من این است که RX یک پین INPUT اضافی است و TX یک پین OUTPUT اضافی است.
در پیکربندی خواب عمیق ، اتصال RX کاملاً ضروری نیست. من از آن فقط برای نظارت بر مدت زمان فعال شدن PIR با روشن کردن LED در حالی که ورودی بالا است استفاده می کنم. همانطور که قبلاً ذکر شد ، اگر عملکرد حلقه را پاک کرده و فقط از روال راه اندازی استفاده کنید ، اتصال RX غیر ضروری است.
در اینجا لیست قطعات ماژول خواب عمیق ESP-01 آمده است:
1 - 5 x 7 سانتی متر PCB Prototype Board
اتصال 1 - 2 پین
2 - 1 3 3 سرصفحه زن
1 - AMS1117 - 3.3 برد مدار تنظیم کننده ولتاژ
1 - 1 x 3 پین هدر مرد زاویه راست
پین هدر 1 - 1 x 3 سوکت زن
پین هدر 1 - 1 x 4 سوکت زن
هدر زنانه 1 - 2 * 4
خازن 1 - 1uf
1 - HC -SR501 PIR Motion Sensor
1 - ترانزیستور 2N2222
مقاومت 1 - 10k
1 - مقاومت 4.7k
مقاومت 1 - 1k
دیود 1 - 1N4148
1 - سوئیچ SS12D00G4 SPDT
1 - ESP -01
بسته باتری 1 - 4AA
لطفاً توجه داشته باشید که در ویدئو ، برد مدار به جای هدر 2 4 4 از آداپتور تخته نان ESP-01 استفاده می کند. در حالی که اتصال این آداپتور آسان تر است ، هدر 2 4 4 خوب کار می کند و در واقع بهتر مناسب است.
مرحله 2: کد خواب عمیق ESP-01
کد Deep Sleep دو عملکرد را انجام می دهد. یک پیام ایمیل (از طریق gmail به طور پیش فرض) ارسال کنید و یک درخواست وب http به ماژول زنگ ESP-01 مربوطه ارسال کنید تا زنگ را فعال کند.
هنگام فعال شدن ، این ماژول دو گزینه اعلان را ارائه می دهد و ممکن است زمانی که به پیام های ایمیل توجه نمی کنید ، بسیار مفید باشد.
برای اجرای طرح باید شش خط کد را با مقادیر خاص خود به روز کنید:
const char* ssid = "xxxxx"؛ // SSID وای فای شما char char* password = "xxxxx"؛ // ارسال رمز عبور WiFi WiFi String_Login = "xxxxx"؛ // ورود ارائه دهنده ایمیل شما String Senders_Password = "xxxxx"؛ // گذرواژه ارائه دهنده ایمیل شما
به = "xxxxxx"؛ از = "xxxxxx"؛ // Gmail به طور کلی ترجیح می دهد این همان Senders_Login باشد و ممکن است جایگزین شود
من دریافتم که ماژول خواب عمیق به طور غیرقابل پیش بینی کار می کند زمانی که سنسور PIR به مدت 10 دقیقه برای طول رویداد ماشه تنظیم شده است. من خودم را روی 20 ثانیه تنظیم کرده ام. این بسیار قابل اعتماد است اما این بدان معناست که ممکن است با آن فرکانس رویدادهای تحریک کننده رخ دهد.
من همچنین کد را به عملکرد حلقه اضافه کرده ام تا ESP-01 روشن بماند تا زمانی که PIR هنوز حرکت را حس می کند. تمام کد موجود در عملکرد حلقه را می توان حذف کرد و فراخوانی به خواب عمیق را به انتهای تابع راه اندازی منتقل کرد.
من از عملکرد چشمک زدن برای نشانگر بصری فعالیت با ماژول ESP-01 استفاده می کنم.
در حالی که من از اتصال با gmail استفاده کرده و آزمایش کرده ام ، سایر ارائه دهندگان ایمیل نیز کار می کنند. من یک زن و شوهر را امتحان کرده ام. در واقع ، من gmail را مشکل تر می دانم. Gmail نیاز دارد که حساب خود را برای دسترسی به برنامه های کمتر ایمن پیکربندی کرده باشید. این تنظیم حساب به طور پیش فرض خاموش است ، بنابراین مطمئن شوید که آن را پیدا کرده اید و آن را به امنیت کمتری تغییر داده اید. Gmail در غیر این صورت کار نخواهد کرد.
اگر می خواهید بیش از یک ماژول buzzer داشته باشید ، فقط تماس های اضافی مشتری http را اضافه کنید (سه خط کد را تکرار کنید ، اما آدرس IP استفاده شده را تغییر دهید و فقط یک بار متغیر httpCode را int تعریف کنید!
توجه داشته باشید که آدرس IP زنگ در این ماژول به سختی کدگذاری شده است. نیازی نیست از آدرس ip که من انتخاب کرده ام استفاده کنید ، اما باید آدرس IP تماس وب موجود در این ماژول را با آدرس ip راه اندازی وب سرور در ماژول بعدی مطابقت دهید.
مرحله 3: ماژول زنگ ESP-01
ماژول زنگ دارای تنظیمات بسیار ساده ای است. به جای بسته باتری از اتصال USB استفاده می کند زیرا فکر نمی کنم این ماژول برای بسته باتری مناسب باشد. باید همیشه روشن باشد و nework/wifi متصل باشد زیرا نمی داند چه زمانی درخواست وب داده می شود. این مورد نیاز به قدرت مداوم بیشتری نسبت به بسته های باتری دارد.
ماژول های وزوز را می توان به راحتی در چندین مکان قرار داد و اعلان رویداد تحریک کننده سنسور حرکت را بدون توجه به جایی که هستید اطلاع می دهید!
زنگ به 5 ولت USB متصل است و یک برد تنظیم کننده 3.3 ولت دیگر نیز وجود دارد که برق ESP-01 را تأمین می کند.
ماژول زنگ با استفاده از TX ، GPIO0 یا GPIO2 برای خروجی کار می کند. در پیکربندی من از GPIO0 استفاده می کنم. (در تصویر ماژول سیم به GPIO2 متصل است اما من آن را جابجا کرده ام.) در حالی که GPIO0 برای ماژول خواب عمیق (به عنوان INPUT) کار نمی کند ، اما با این طرح به عنوان OUTPUT خوب کار می کند. روی بوت به زمین کشیده نمی شود که باعث ایجاد مشکل می شود. من از GPIO2 استفاده کردم اما پس از آن نمی توانم از LED روی صفحه برای بازخورد استفاده کنم اما با استفاده از GPIO0 برای OUTPUT می توانم از LED روی برد استفاده کنم.
وقتی ESP-01 یک سیگنال HIGH روی پین GPIO0 گذاشت ، من از ترانزیستور NPN برای تغذیه زنگ در مدار استفاده کردم ، اما نتایج بسیار ناسازگار بود. به نظر می رسید صدای زنگ در هر زمان می خواهد ، حتی با قدرت بسیار کمی ، به صدا در آید. بنابراین در عوض من از یک کانال N MOSFET (2n7000) استفاده کردم و نتیجه فوق العاده بود. پین IO در صورت نیاز Gate را هدایت می کند.
در حالی که ما فقط به دو پین از اتصال USB Vcc (+) و Gnd (-) احتیاج داریم ، من از یک سربرگ 5 پین برای اتصال بیشتر به برد PCB و برای لحیم کاری قبل از اتصال USB به رگولاتور استفاده می کنم. صفحه تنظیم کننده 3.3 ولت من با پین های از پیش نصب شده و در ذهن من ، وارونه آمده است. بنابراین برای قرار دادن تنظیم کننده در پین های هدر می توانید ببینید که برد مدار مخفی است ، اما بدتر از آن ، vcc و gnd روی رگولاتور از vcc و gnd در اتصال USB معکوس می شوند. بنابراین سیم ها از روی هم عبور می کنند.
همچنین توجه داشته باشید که + قدرت صدای زنگ فعال از 5 ولت USB تامین می شود. همچنین ، هدر سوکت زن 4 پین به خوبی با محل قرارگیری پین زنگ صدا کار می کند.
لیست قطعات ماژول ESP-01 Buzzer:
1 - 5 x 7 برد PCB
1 - اتصال کوتاه USB با سرصفحه های پین (7 پین)
2 - 1 3 3 سرصفحه زن
1 - برد تنظیم کننده ولتاژ AMS1117-3.3 v
هدر زنانه 1 - 2 * 4
2 - 1 x 4 هدر سوکت زن
1 - ماسفت 2N7000 N -channel
مقاومت 1 - 10 اهم
زنگ فعال 1 - 5 ولت
مرحله 4: کد ماژول ESP-01 Buzzer
ماژول زنگ مانند یک وب سرور ساده ESP-01 عمل می کند. با یک پیام ساده به یک درخواست ریشه پاسخ می دهد و هنگامی که درخواست buzz دریافت می شود ، زنگ را فعال می کند. GPIO0 برای پین GPIO برای سیگنال زنگ استفاده می شود.
توجه داشته باشید که ESP-01 با یک آدرس IP سخت کدگذاری شده است. این مورد نیاز است تا ماژول خواب عمیق به آدرس زنگ پیوند داده شود.
مانند ماژول قبلی ، شما باید دو خط کد را با مقادیر خاص خود به روز کنید:
// SSID و رمز عبور WiFi routerconst char* ssid = "xxxxxxx"؛
const char* رمز عبور = "xxxxxxxx"؛
اگر چندین ماژول زنگ ایجاد کرده اید ، هر کدام باید آدرس IP منحصر به فرد خود را بارگذاری کنند.
همچنین می توانید روش های مختلف وزوز را اضافه کنید که ملودی زنگ های متفاوتی تولید می کند. به عنوان مثال ، اگر شما یک سنسور PIR در درب جلو و یک در پشت درب دارید ، هر کدام می توانند درخواست وب را برای هر یک از ماژول های وزوز خود انجام دهند ، اما یک سنسور ممکن است دارای یک طرح باشد که buzz را صدا می زند و طرح دیگر می تواند buzz2 را صدا کند. تا بتوانید از طریق صدا تشخیص دهید که کدام سنسور فعال شده است. و غیره و غیره! تابع buzz2 وجود ندارد ، فقط تابع buzz را کپی کرده و مقادیر تاخیر را تغییر دهید.
برای وب سرور فقط باید یک خط کد مانند این را اضافه کنید:
server.on ("/buzz2" ، buzz2) ؛
مرحله 5: اندیشه های نهایی
این اولین دستورالعمل من است ، بنابراین ممکن است برخی از موارد کاربردی را که باید شامل آنها می شدم ، از دست داده باشم. برد تنظیم کننده AMS1117-3.3 که من استفاده کردم شامل یک لامپ کوچک است که هنگام روشن شدن روشن می شود. برای ماژول خواب عمیق ، من نمی خواستم این باعث شود که نیروی بدون نیاز به جریان بیفتد. بنابراین من آنچه را که می توانم در یک طرف led روی تخته بفروشم ، فروختم و سپس از یک چاقوی کاربردی برای برش خط ردیابی استفاده کردم. این آسانتر از آن بود که فکر می کردم و مانع از روشن شدن LED می شود. من نتوانسته ام تعیین کنم که ESP-01 در خواب عمیق چیست ، اما ممکن است در چند هفته جواب بدهم. یکی از همکاران من سنسور را کار می کرد (نه در خواب عمیق) و باتری ها (5AA) در مدت یک هفته خالی شد. من فکر می کنم این راه اندازی باید یک ماه یا حتی بیشتر زمان بدهد. خواهیم دید.
ماژول خواب عمیق حدود 8 دلار CDN در بخش (باتری شامل نمی شود!) و ماژول زنگ 5 دلار هزینه دارد.
توصیه شده:
ایستگاه هواشناسی: ESP8266 با خواب عمیق ، SQL ، رسم نمودار توسط فلاسک و طرح کلی: 3 مرحله
ایستگاه هواشناسی: ESP8266 با خواب عمیق ، SQL ، رسم نمودار توسط Flask & Plotly: آیا دانستن دما ، رطوبت یا شدت نور در بالکن شما جالب خواهد بود؟ می دانم که می خواهم. بنابراین من یک ایستگاه هواشناسی ساده برای جمع آوری چنین داده هایی ساختم. بخشهای زیر مراحلی است که من برای ساختن آن انجام دادم. بیایید شروع کنیم
DIY: جعبه مینی سنسور سقفی با سنسور حرکت فوکوس: 4 مرحله
DIY: جعبه مینی سنسور سقفی با سنسور حرکت قابل تمرکز: سلام. مدتی پیش من با مفهوم خانه هوشمند به دوستم کمک کردم و یک جعبه سنسور کوچک با طراحی سفارشی ایجاد کردم که می تواند روی سقف به سوراخ 40x65 میلی متر نصب شود. این جعبه به موارد زیر کمک می کند: • اندازه گیری شدت نور • اندازه گیری رطوبت
سنسور حرکت DIY (ESP - 8266): 5 مرحله
سنسور حرکت DIY (ESP - 8266): این پروژه برای امنیت خانه DIY طراحی شده است. این پروژه بر اساس پروژه Konnected است. Konnected زندگی جدیدی را برای صاحبان خانه که دارای سنسورهای حرکتی از طریق ADT و سایر شرکت ها هستند ایجاد می کند. با به روز رسانی آن با فناوری جدید در حالی که
صرفه جویی در عمر باتری با خواب عمیق: 20 قدم
صرفه جویی در عمر باتری با خواب عمیق: آیا به استفاده از باتری با ESP32 علاقه دارید؟ اگر چنین است ، من امروز در مورد برخی اطلاعات فنی مهم در مورد این موضوع بحث خواهم کرد. ما می دانیم که این میکروکنترلر هنگام انتقال اطلاعات انرژی زیادی مصرف می کند. مصرف می کند
چراغ خواب شب خواب: 6 مرحله (همراه با تصاویر)
چراغ های شب تخت خواب فانتزی: این سیستم نور تختخواب آینده است! وقتی در نیمه شب از رختخواب بیرون می آیید روشن می شوند و وقتی به ماشین رویایی راحت خود می روید خاموش می شوند. بنابراین دیگر از تصادفات شبانه و شکستن انگشتان پا خودداری کنید! این را می توان بسیار آسان خرید