فهرست مطالب:

نحوه کنترل خروجی ها با استفاده از Raspberry Pi: 6 مرحله
نحوه کنترل خروجی ها با استفاده از Raspberry Pi: 6 مرحله

تصویری: نحوه کنترل خروجی ها با استفاده از Raspberry Pi: 6 مرحله

تصویری: نحوه کنترل خروجی ها با استفاده از Raspberry Pi: 6 مرحله
تصویری: نحوه ساخت Raspberry Pi Pico PLC || ویرایشگر OpenPLC 2024, جولای
Anonim
نحوه کنترل خروجی ها با استفاده از Raspberry Pi
نحوه کنترل خروجی ها با استفاده از Raspberry Pi
نحوه کنترل خروجی ها با استفاده از Raspberry Pi
نحوه کنترل خروجی ها با استفاده از Raspberry Pi
نحوه کنترل خروجی ها با استفاده از Raspberry Pi
نحوه کنترل خروجی ها با استفاده از Raspberry Pi

در این دستورالعمل ، من نحوه ایجاد یک رابط وب برای کنترل خروجی ها در خانه خود با استفاده از رزبری پای را به شما نشان خواهم داد. وقتی مسابقه سنسورها را دیدم ، نوشتن این پروژه را انتخاب کردم ، و از آنجا که این پروژه شامل استفاده از سنسور برای خواندن کدهای ریموت ارائه شده با پریزهایی است که خریداری کرده اید ، فکر کردم این پروژه کاملاً مناسب خواهد بود.

من تلاش می کنم تا حد ممکن این سطح را بالا نگه دارم و کد ارائه کنم تا همه اینها کار کند. برای همه شما میمون های کد نویسی ، در صورت تمایل می توانید کد را بررسی کنید و در نظرات به من دقت کنید! من همیشه به دنبال بهبود هستم. کارهای زیادی در این زمینه انجام می شود ، بنابراین اگر سوالی در مورد هر مرحله ای دارید ، لطفاً نظر دهید تا بتوانم دستورالعمل آموزشی را با جزئیات مورد نیاز به روز کنم.

این پروژه از خروجی های کنترل فرکانس رادیویی با فرکانس 433 مگاهرتز همراه با فرستنده RF متصل به تمشک pi شما استفاده می کند. پریزها دارای ریموت هایی هستند که می توانند پریزها را روشن یا خاموش کنند ، اما این سرگرم کننده نیست! ما در عوض از یک وب سرور که روی raspberry pi کار می کند استفاده می کنیم که به هرکسی که به شبکه متصل است اجازه می دهد پریزهای خاصی را روشن یا خاموش کند. یک وب جلوی این پروژه ایده آل است زیرا هر دستگاه متصل به وب در شبکه شما می تواند به عنوان کنترل از راه دور شما استفاده شود.

این پروژه ای است که من سالها آرزوی انجام آن را داشتم ، و اگرچه هنوز جایی برای اضافه شدن وجود دارد ، پروژه ای که به شرح زیر توضیح داده می شود یک سیستم کاربردی است.

تدارکات

  • Raspberry Pi (من از RPi 3 مدل B+استفاده کردم)
  • فرستنده و گیرنده 433 مگاهرتز (من از این دستگاه استفاده کردم)
  • خروجی های 433 مگاهرتز (من از این استفاده کردم)
  • پرش کننده زن به زن (من این دسته را خریدم)
  • رایانه یا دستگاه دستی قابل دسترسی به اینترنت

مرحله 1: رزبری پای خود را تنظیم کنید

Raspberry Pi خود را تنظیم کنید
Raspberry Pi خود را تنظیم کنید

با نصب آخرین نسخه Raspbian بر روی Raspberry Pi جدید خود شروع کنید. اگر قصد دارید از Pi موجود استفاده کنید (که می توانید به طور کامل انجام دهید) ، تنها کاری که باید انجام دهید این است که مطمئن شوید Python 3 در Pi شما وجود دارد ، زیرا این همان چیزی است که همه کد منبع ارائه شده در آن نوشته شده است. برای انجام این کار ، نوع

پایتون 3

به خط فرمان اگر پایتون 3 دارید ، باید ترمینال پایتون را باز ببینید. با بستن یا تایپ کردن از ترمینال خارج شوید

خروج ()

پس از تأیید این امر ، باید فلاسک را روی Pi خود نصب کنید. Flask به ما امکان می دهد سرور وب خود را ایجاد کنیم. از خط فرمان Pi تایپ کنید

فلاسک نصب sudo pip3

در صورت عدم نصب pip روی Pi خود ، باید تایپ کنید

sudo apt-get python3-pip را نصب کنید

من ترجیح می دهم روی Raspberry Pi خود از راحتی رایانه رومیزی خود استفاده کنم. اگر شما نیز این گزینه را ترجیح می دهید ، باید نوعی محیط را برای SSH در Pi نصب کنید. PuTTY کار می کند ، اما من ترجیح می دهم یک رابط کاربری گرافیکی (رابط کاربری گرافیکی) داشته باشم ، که به نظر می رسد شما مستقیماً روی Pi کار می کنید. برای گزینه GUI ، می خواهید VNC Viewer را بر روی رایانه ای که قصد دارید روی آن کار کنید نصب کنید. همچنین تنظیماتی وجود دارد که باید آنها را روی Pi خود تنظیم کنید. دستورالعمل های تغییر تنظیمات را می توانید در اینجا پیدا کنید.

مرحله 2: اتصال سخت افزار خود

اتصال سخت افزار خود
اتصال سخت افزار خود

در این مرحله ، زمان آن رسیده است که تمام اتصالات فیزیکی را که باید برای آماده سازی راه اندازی کد منبع برای این پروژه انجام دهید ، ایجاد کنید. شما پین های فرستنده و گیرنده را به پین های GPIO Pi خود متصل می کنید. شما می خواهید از نظر مذهبی نمودار pinout پین GPIO را ارجاع دهید. برای انجام این کار ، پایانه را روی Pi خود باز کرده و تایپ کنید

پین کردن

موارد زیر اتصالات من است. اگر سخت افزار فرستنده/گیرنده متفاوتی را نسبت به آنچه در مقدمه نشان دادم خریداری کنید ، ممکن است پیکربندی متفاوتی داشته باشید. اگر تصمیم دارید شماره های پین متفاوتی را نسبت به شماره هایی که در زیر نشان می دهم انتخاب کنید ، نترسید! هنگام بارگیری کد منبع ، به سادگی اعداد پین را در صورت نیاز در فایل RxTx.py تغییر دهید.

گیرنده (تراشه بزرگ):

  • GND - هر پین زمینی تعیین شده
  • DATA - پین 11
  • DER - متصل نیست
  • +5V - هر پین تعیین شده +5V
  • ------
  • +5V - هر پین تعیین شده +5V
  • GND - هر پین زمینی تعیین شده
  • GND - متصل نیست
  • ANT - متصل نیست

توجه: ممکن است آنتن را در صورت نیاز متصل کنید ، اما متوجه شدم نیازی به آن ندارم. این تراشه کوچک به طرز شگفت انگیزی حساس بود و با وفاداری سیگنال ها را تا فاصله 50 فوتی از محل نشسته و حداقل دو دیوار تشخیص می دهد.

فرستنده:

  • P - پین 3.3V
  • DA - پین 7
  • G - هر پین زمینی تعیین شده
  • AN - متصل نیست

توجه: مجدداً ، ممکن است آنتن را در صورت نیاز به فرستنده وصل کنید ، اما متوجه شدم که نیازی به آن ندارم. برد بیش از حد کافی (50+ فوت) است.

مرحله 3: اضافه کردن کد

این بخشی است که من بیشترین زمان خود را هنگام توسعه این پروژه صرف کردم. من سعی می کنم تا آنجا که ممکن است نظر بدهم ، اما احتمالاً من شکاف هایی را ترک کرده ام که اگر هرکدام از شما برای درک آن وقت بگذارید ممکن است نیاز به توضیح داشته باشد. اگر چنین اتفاقی برای شما افتاد ، لطفاً نظر دهید!

زبانهایی که در اینجا درگیر هستند عبارتند از:

  • پایتون
  • CSS
  • جاوا اسکریپت
  • HTML
  • JQuery/Ajax

پایتون در سرور فلاسک و در

RxTx.py

فایل ، که انتقال و دریافت کد را مدیریت می کند. CSS در ایجاد سبک صفحه وب استفاده می شود. چه کسی یک وب سایت خسته کننده می خواهد !؟ جاوا اسکریپت در هر یک از رویدادها (فشار دادن دکمه و غیره) استفاده می شود. HTML هسته اصلی صفحه وب است. در نهایت ، JQuery/Ajax برای ارتباط بین صفحه وب و پشتیبان پایتون استفاده می شود.

اگر همه این زبانها ترسناک به نظر می رسند ، نگران نباشید! من فقط می دانستم که پایتون وارد این پروژه می شود ، که تصور می شد زبانی است که کمترین میزان کد نویسی را شامل می شود. اگر نمی خواهید ، مجبور نیستید!

در زیر ساختار دایرکتوری است که من برای استفاده از این صفحه وب انتخاب کردم. پوشه فشرده متصل به این مرحله شامل تمام کد منبع در ساختار زیر است.

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> صفحه وب-استاتیک ----- favicon.ico ----- style.css-- قالب ----- index.html ----- schedule.html-- app.py-- data.file

می توانید پوشه Outlet Switch را در هر نقطه از Pi خود قرار دهید. هنگامی که آماده اجرای سرور وب خود هستید ، ترمینال Pi خود را باز کنید و

سی دی

(تغییر فهرست) به فهرست صفحات وب. سپس تایپ کنید

python3 app.py

به ترمینال اگر هیچ خطایی وجود نداشت ، باید خوب بروید!

P. S. لطفاً در صورت بروز اشکال ، صبور باشید. من سعی کردم قبل از بارگذاری همه آنها را خرد کنم.

مرحله 4: به آن ضربه بزنید

امتحان کن!
امتحان کن!

اکنون که کد را اجرا می کنید ، می توانید رابط کاربری وب را در نوک انگشتان خود احساس کنید. کنترل سیستم بسیار ساده است:

  • با استفاده از رابط وب می توانید هر تعداد خروجی که می خواهید اضافه کنید.
  • حذف به این سادگی است که روی ویرایش کلیک کنید ، خروجی هایی را که می خواهید حذف کنید و روی حذف کلیک کنید.

ویدیوی YouTube فوق نشان می دهد که چگونه می توانید در واقع یک خروجی جدید به لیست خود اضافه کنید. به طور خلاصه آنچه نشان می دهد:

  • ابتدا عنوان خروجی را در قسمت Title وارد کنید
  • خارج از قسمت عنوان کلیک کنید یا آن را لمس کنید تا برنامه بررسی کند که عنوان در حال حاضر وجود ندارد. شما نمی توانید عناوینی با یک نام داشته باشید
  • پس از تأیید اعتبار ، دکمه های ON Code و OFF Code فعال می شوند.
  • دکمه ON را در ریموت ارائه شده خود فشار داده و نگه دارید و سریع روی دکمه ON Code در رابط کاربری کلیک کنید. دکمه را از راه دور نگه دارید تا کد باینری شما فیلد مجاور را پر کند.
  • مرحله قبل را برای کد OFF تکرار کنید.
  • روی تأیید کلیک کنید ، و اکنون آماده تغییر این خروجی هستید!

همانطور که در مقدمه ذکر شد ، پروژه 100٪ برای مصارف شخصی من کامل نیست. بزرگترین م componentلفه ای که هنوز باید تکمیل و اجرا کنم قابلیت زمان بندی است. من قصد دارم به کاربر اجازه دهم برنامه ای بسازد که بتواند پریزها را در زمان های تعیین شده به طور خودکار روشن و خاموش کند.

مرحله 5: اشکال زدایی و فایل RxTx.py

اشکال زدایی و فایل RxTx.py
اشکال زدایی و فایل RxTx.py
اشکال زدایی و فایل RxTx.py
اشکال زدایی و فایل RxTx.py
اشکال زدایی و فایل RxTx.py
اشکال زدایی و فایل RxTx.py
اشکال زدایی و فایل RxTx.py
اشکال زدایی و فایل RxTx.py

تنها محدودیت شناخته شده سیستم این است که احتمال وجود ناسازگاری در رسانه های مختلف فروشندگان وجود دارد. پیام های کد خاموش و روشن برای سیستم من 25 بیت است و اگر سیستمی طول پیام متفاوتی داشته باشد ، بلافاصله با این پروژه سازگار نیست. اگر دقیقاً دستورالعمل ها را دنبال کرده اید و هنوز مشکلاتی برای به کار انداختن آن دارید ، موارد زیر بهترین راه برای رفع اشکال خواهد بود.

  • مطمئن شوید matplotlib را روی Pi خود نصب کرده اید. می توانید این کار را با تایپ موارد زیر در پایانه Pi انجام دهید:

    • پایتون 3

    • واردات matplotlib

    • اگر خطایی دریافت کردید ، باید matplotlib را نصب کنید.
    • با استفاده از پوسته پایتون خارج شوید

      خروج ()

  • برای نصب matplotlib ، تایپ کنید

    sudo pip3 matplotlib را نصب کنید

  • به ترمینال
  • فایل پیوست test.py را بارگیری کرده و در کنار فایل RxTx.py روی Pi خود قرار دهید
  • ترمینال پایتون را باز کرده و فهرست را به پوشه comm تغییر دهید.
  • تایپ کنید

    python3 test.py

  • وقتی می گوید "** شروع به ضبط **" ، دکمه ON یا OFF خود را روی ریموت فشار دهید و نگه دارید تا ضبط به پایان برسد.
  • برنامه یک شکل matplotlib را بارگیری می کند که شبیه موارد فوق است. بزرگنمایی کنید تا سیگنال تکراری را که در عکسهای بالا نشان داده شده مشاهده کنید.
  • مجموع 1 و 0 منطقی را برای هر پیام بشمارید ، جایی که یک پیام یک تکرار سیگنال تکراری است که در بالا مشاهده شده است. اگر مجموع 25 باشد ، فایل RxTx.py احتمالاً ایرادی ندارد. اگر با چیزی غیر از 25 روبرو شدید ، حتماً در زیر نظر دهید ، و من فایل RxTx.py را بازآرایی می کنم تا بازتر باشد (یا با خیال راحت دست خود را در آن امتحان کنید).

اگر من یک سیگنال تکراری را نبینم چطور؟

اگر سیگنال تکراری نمی بینید ، یکی از دو مورد اشتباه است. ابتدا بررسی کنید که همه اتصالات سیم جامپر شما به درستی انجام شده باشد. اگر همه چیز خوب به نظر برسد ، ممکن است گیرنده بدی داشته باشید. آیا چیزی را که من پیشنهاد کرده بودم خریداری کردید؟ وقتی اولین تراشه گیرنده خود را خریدم ، بسیار پر سر و صدا بود. آنقدر پر سر و صدا که نتوانستم سیگنال واضحی دریافت کنم. سپس آن تراشه را پس گرفتم و آن را که پیوند داشتم برداشتم ، و نمی تواند بهتر کار کند.

مرحله ششم: لذت ببرید

شما می دانید که می توانید پریزها را از تلفن ، رایانه لوحی ، رایانه یا سایر دستگاه های دارای وب فعال کنید. نظرات خود را در نظرات به من اطلاع دهید!

توصیه شده: