فهرست مطالب:

تماشا و زنگ هشدارهای اسلامی RaspberryPi: 15 مرحله (همراه با تصاویر)
تماشا و زنگ هشدارهای اسلامی RaspberryPi: 15 مرحله (همراه با تصاویر)

تصویری: تماشا و زنگ هشدارهای اسلامی RaspberryPi: 15 مرحله (همراه با تصاویر)

تصویری: تماشا و زنگ هشدارهای اسلامی RaspberryPi: 15 مرحله (همراه با تصاویر)
تصویری: Part 3 - The Secret Garden Audiobook by Frances Hodgson Burnett (Chs 20-27) 2024, نوامبر
Anonim
دیده بان و زنگ هشدار نمازهای اسلامی RaspberryPi
دیده بان و زنگ هشدار نمازهای اسلامی RaspberryPi
دیده بان و زنگ هشدار نمازهای اسلامی RaspberryPi
دیده بان و زنگ هشدار نمازهای اسلامی RaspberryPi

مسلمانان در سراسر جهان هر روز پنج نماز دارند و هر نماز باید در زمان خاصی از روز باشد. به دلیل نحوه حرکت بیضوی سیاره ما در اطراف خورشید ، که باعث می شود زمان طلوع و فرود خورشید در طول سال متفاوت باشد ، و همچنین زمان نماز را ناپایدار می کند ، به همین دلیل ما به یک ساعت اسلامی نیاز داریم تا هر یک از ساعات نماز خود را به ما مسلمانان یادآوری کند. روز

هر مسلمانی راهی برای دسترسی به آب و هوای روزهای نماز از طریق اینترنت از طریق وب سایت های اینترنتی اسلامی ، تقویم های محلی اسلامی و یا حتی از طریق تلویزیون دارد و اکثر ما دارای دستگاه های تماشای اسلامی هستیم که دارای ویژگی هایی برای ارائه وقت نماز و همچنین زنگ ساعت نماز است. به اما اگر ما دستگاه دعای ساعت و زنگ هشدار خودمان را بسازیم چه؟

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

در پروژه ما! این پروژه به مراحل اصلی X تقسیم می شود ، که تا پایان مرحله Xth ما پروژه خود را زیبا و آماده خواهیم کرد! مراحل به شرح زیر خواهد بود:

1-پیکربندی و آماده سازی RaspberryPi

2- نصب ماژول RTC

3-ساخت برنامه زنگ هشدار اذان

4-اجرای صفحات ساعت

5- ایجاد رابط کاربری و

مانند هر پروژه ، ابتدا باید قطعات مورد نیاز خود را آماده کنیم. قطعات مورد نیاز برای این پروژه عبارتند از:

کیت کامپیوتر 1-RaspberryPi Amazon US || آمازون KSA

می توانید از هر نسخه Rpi استفاده کنید ، فقط مطمئن شوید Wifi دارد. من از Rpi3B+ استفاده کردم

2-RTC ماژول ساعت در زمان واقعی Amazon US || آمازون KSA

می توانید از هر مدل ماژول RTC استفاده کنید ، فقط مطمئن شوید I2C دارد

3-مانیتور LCD

هر LCD کار می کند

4-ماوس و صفحه کلید

و این….. IT !! این تنها چیزی است که شما نیاز دارید تا ساعت و زنگ ساعت اذان خود را بسازید

مرحله 1: فصل 1: راه اندازی و پیکربندی RaspberryPI

فصل 1: راه اندازی و پیکربندی RaspberryPI
فصل 1: راه اندازی و پیکربندی RaspberryPI

اول کار های مهم! برای کار با Raspberry pi باید آن را آماده کنیم.

Raspberry pi چیزی جز یک کامپیوتر نیست ، RAM و ROM دارد ، دارای CPU ، GPU ، ورودی/خروجی …….یک کامپیوتر است! درست مانند بازی ای که ما در آن بازی می کنیم و وب را مرور می کنیم ، تنها چیزی که بسیار کوچک است! که تمشک را به انتخاب بسیار خوبی برای ساخت و اجرای پروژه ها تبدیل می کند. از آنجا که رزبری pi کوچک است ، مشخصات بسیار محدودی دارد که نمی تواند از سیستم عامل بزرگ مانند Windows یا macOS استفاده کند ، در عوض ، ما برای استفاده از دستگاه از لینوکس به عنوان یک سیستم عامل استفاده می کنیم. هزاران یا نه دهها هزار توزیع لینوکس وجود دارد که ما می توانیم از آنها استفاده کنیم ، اما یک توزیع کامل کاملاً به طور خاص برای رزبریپی که ما قصد استفاده از آن را داریم ، به نام Raspbian ، بهینه شده است.

مرحله 2: 1-1: فایلهای مورد نیاز را بارگیری کنید

1-1: فایلهای مورد نیاز را بارگیری کنید
1-1: فایلهای مورد نیاز را بارگیری کنید
1-1: فایلهای مورد نیاز را بارگیری کنید
1-1: فایلهای مورد نیاز را بارگیری کنید
1-1: فایلهای مورد نیاز را بارگیری کنید
1-1: فایلهای مورد نیاز را بارگیری کنید

-به صفحه رسمی Rasbian Download در https://www.raspberrypi.org/software/operating-sy… بروید و Raspberry Pi OS را با فایل دسکتاپ بارگیری کنید

-در حالی که در حال بارگیری است ، به https://win32diskimager.org/ بروید و win32DiskImager را بارگیری و نصب کنید ، می توانید از هر نرم افزار رایت تصویر که دوست دارید استفاده کنید

پس از اتمام بارگیری ، یک فایل.img حاوی سیستم عامل RaspberryPi خواهید داشت. در مرحله بعد ، کارت حافظه SD خود را به رایانه وصل کنید (معمولاً با کارت خوان USB) و نرم افزار win32diskimager را راه اندازی کنید. مراحل رایت تصویر در حافظه SD بسیار ساده است ، فقط کافی است 1- حرف حافظه خود را انتخاب کنید 2- فایلهای سیستم عامل خود را که بارگیری کرده اید انتخاب کرده و 3-روی نوشتن کلیک کنید! اطمینان حاصل کنید که حرف دستگاه مناسب را از لیست انتخاب کرده اید و حافظه شما خالی است ، زیرا با فشار دادن نوشتن با یک هشدار ارتقاء خواهید یافت که به شما می گوید هر چیزی روی دستگاه پاک می شود! برای تأیید نوشتن ، بله را فشار دهید و منتظر بمانید تا به پایان برسد. این ممکن است تا 20 دقیقه طول بکشد

پس از اتمام کار ، سیستم عامل Rapbian کامل را روی حافظه دارید ، می توانید آن را در Rapberry Pi قرار دهید ، Raspberry Pi را از طریق HDMI به مانیتور وصل کنید ، ماوس و صفحه کلید را از طریق USB و در نهایت ، قدرت.

مرحله 3: 1-2: پیکربندی سیستم Raspbian

پس از اتصال کابل ها و برق ، خواهید دید که سیستم عامل روشن شده است ، به طور خودکار راه اندازی مجدد می شود و سپس رابط کاربری Raspbian (که شبیه پنجره ها است) نمایش داده می شود. اولین چیزی که مشاهده می کنید یک پنجره خوش آمدید است که مراحل پیکربندی RaspberryPi خود را برای اولین بار طی می کند. پنجره ها و مراحل به شرح زیر خواهد بود:

1-بعدی را در اولین پنجره "Welcome" فشار دهید

2- پنجره بعدی پیکربندی مکان شما خواهد بود. کشور ، زبان و منطقه زمانی خود را انتخاب کنید. پس از آن ، توصیه می شود "استفاده از زبان انگلیسی" را بررسی کنید زیرا این زبان رابط سیستم عامل است. شما باید "صندوق صفحه کلید انگلیسی ایالات متحده LAYOUT BOX" را بررسی کنید که ما برای کار به صفحه کلید انگلیسی نیاز داریم!

3-بعد ، از شما خواسته می شود که برای تمشک خود رمز عبور وارد کنید ، این برای امنیت مهم است ، اما ما آن را در این پروژه بدون تغییر رها می کنیم. توجه داشته باشید که نام کاربری و رمز عبور پیش فرض عبارتند از:

نام کاربری: pi

رمز عبور: تمشک

4-پنجره بعدی اتصال raspberryPi به شبکه WiFi شما خواهد بود. نام وای فای خود را انتخاب کرده و رمز وای فای خود را وارد کنید

5-بعد ، از شما خواسته می شود تا کتابخانه ها و فایل های سیستم raspberry pi را به روز کنید. این مرحله زمان زیادی طول می کشد (شاید در عرض چند ساعت) اما این یک گام بسیار مهم برای هر زمان راه اندازی پی تمشک جدید است.

6- پس از اتمام به روزرسانی ، از شما خواسته می شود که سیستم را مجدداً راه اندازی کنید. حالا این کار را بکن

کار عالی! در حال حاضر ما یک سیستم به روز شده داریم ، ما هنوز باید کارهای بیشتری را برای پیکربندی سیستم انجام دهیم ، اما در حال حاضر ، استفاده از خط فرمان LinuxCommand آغاز می شود.

مرحله 4: 1-3: استفاده از خط فرمان برای تنظیم تنظیمات Rpi

1-3: استفاده از خط فرمان برای تنظیم تنظیمات Rpi
1-3: استفاده از خط فرمان برای تنظیم تنظیمات Rpi
1-3: استفاده از خط فرمان برای تنظیم تنظیمات Rpi
1-3: استفاده از خط فرمان برای تنظیم تنظیمات Rpi
1-3: استفاده از خط فرمان برای تنظیم تنظیمات Rpi
1-3: استفاده از خط فرمان برای تنظیم تنظیمات Rpi

پس از اتمام راه اندازی مجدد از به روز رسانی سیستم ، سیستم پس از اتمام بوت شدن دسکتاپ کاربر را نشان می دهد. حالا اگر به بالا سمت چپ صفحه نگاه کنید ، تعدادی دکمه پیدا خواهید کرد ، دکمه ای با raspberryPi Logo که دکمه منوی Rpi است ، به شکل کره ای که مرورگر اینترنت است ، دکمه پوشه هایی که ….. پوشه ها و در نهایت ، یک دکمه با پنجره صفحه سیاه ، که مهمترین دکمه در هر سیستم لینوکس است ، خط فرمان. جلو بروید و آن دکمه را فشار دهید ، خواهید دید که یک پنجره سیاه ظاهر می شود.

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

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

sudo raspi-config

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

اکنون ، برای حرکت در این منو ، باید از کلیدهای جهت دار صفحه کلید خود استفاده کنید.

1-به گزینه های رابط >> I2C >> YES >> بروید و enter را بزنید. این پروتکل ارتباطی I2c را فعال می کند تا بتوانیم از RTC استفاده کنیم

2-به گزینه های پیشرفته >> گسترش سیستم فایل بروید.

و این همه پیکربندی است که از این پنجره نیاز دارید. در صفحه اصلی ، پایین بروید و Enter را روی "finish" و "YES" فشار دهید تا سیستم راه اندازی مجدد شود.

پس از اتمام راه اندازی مجدد سیستم ، همه ما پیکربندی را تمام کردیم! دستگاه برای مراحل بزرگ آماده است! مرحله بعدی نصب ماژول RTC و استفاده از آن در سیستم است.

مرحله 5: فصل 2: نصب ، پیکربندی و استفاده از ماژول RTC

فصل 2: نصب ، پیکربندی و استفاده از ماژول RTC
فصل 2: نصب ، پیکربندی و استفاده از ماژول RTC
فصل 2: نصب ، پیکربندی و استفاده از ماژول RTC
فصل 2: نصب ، پیکربندی و استفاده از ماژول RTC
فصل 2: نصب ، پیکربندی و استفاده از ماژول RTC
فصل 2: نصب ، پیکربندی و استفاده از ماژول RTC
فصل 2: نصب ، پیکربندی و استفاده از ماژول RTC
فصل 2: نصب ، پیکربندی و استفاده از ماژول RTC

ماژول RTC (یا ساعت در زمان واقعی) یک دستگاه کوچک است که دارای باتری کمی روی آن است ، همانطور که از نامش مشخص است ، انجام می دهد ، Clocking! بنابراین وقتی آن را به برق وصل می کنید ساعت کار می کند و متوقف نمی شود. چرا ما به این نیاز داریم؟ خوب ، رزبری pi واقعاً راهی برای ذخیره داده های ساعت پس از خاموش شدن ندارد ، بلکه برای به روز رسانی تاریخ و زمان آن متصل به اتصال به اینترنت هنگام راه اندازی است ، اما مشکل این است که ما همیشه به اینترنت دسترسی نداریم ، و این به همین دلیل ما به ماژول RTC نیاز داریم. RTC به عنوان یک ساعت برای تمشک pi عمل می کند ، بنابراین هنگامی که Rpi بوت می شود ، تاریخ و زمان را از RTC می گیرد ، که زمان RaspberryPi را همیشه به روز نگه می دارد.

چندین مدل وجود دارد و به دنبال RTC است ، DS1307 و DS3231 وجود دارد. شما می توانید از هر ماژول RTC که پیدا کرده اید استفاده کنید تا زمانی که دارای پروتکل I2C باشد (می توانید نشان دهید که می توانید پین های SDA و SCL را در پین های ماژول پیدا کنید.

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

هنگامی که ماژول RTC خود را آماده کردید (پین های هدر را لحیم کرده و باتری را روی آن قرار دهید) ، می توانید آن را به پین های RapberryPi به صورت زیر متصل کنید:

پین RTC ---------------- پین Rpi

GND ===========> پین 6 (GND)

Vcc ============> PIN 1 (3.3V)

SDA ===========> پین 3 (SDA)

SCL ===========> پین 5 (SCL)

یا بسته به نوع ماژول RTC ، می توانید آن را مستقیماً روی RaspberryPi نصب کنید (مطمئن شوید که پین ها درست هستند !!! زیرا در غیر این صورت ممکن است به Rpi/RTC آسیب برسانید)

پس از اتصال RTC ، اجازه دهید پیکربندی رزبری را انجام دهیم.

مرحله 6: 2-1: راه اندازی ماژول

2-1: راه اندازی ماژول
2-1: راه اندازی ماژول
2-1: راه اندازی ماژول
2-1: راه اندازی ماژول

قبل از شروع ، به خط فرمان بروید و تایپ کنید:

تاریخ

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

حالا ، بیایید راه اندازی را شروع کنیم ، موارد زیر را برای به روز رسانی کتابخانه های Rpi ، یک خط در یک زمان تایپ کنید:

sudo apt-get update

sudo apt -get -y ارتقا دهید

پس از اتمام کار ، ما باید فایلهای سیستم را تغییر دهیم تا ماژول i2c فعال شود و RTC اضافه شود ، برای اصلاح سیستم فایل ما از نرم افزاری به نام Nano استفاده می کنیم. nano یک نرم افزار سبک است که اساساً یک ویرایشگر متن است ، درست مانند نرم افزار بیوه ها. بنابراین هر دستوری که با نانو شروع می شود و نام فایل را شروع می کند ، آن فایل را در ویرایشگر متن نانو باز می کند. متوجه شده اید که ما از چیزی به نام سودو نیز استفاده می کنیم ، به طور خلاصه ، sudo مانند تضمینی برای سیستم لینوکس عمل می کند که به سیستم می گوید کاربری که این فرمان را انجام داده مالک دستگاه است ، نه شخص دیگری ، و امتیازاتی مانند ویرایش را در اختیار کاربر قرار می دهد/ حذف برای کاربر به عنوان مثال ، اگر یک فایل نانو را بدون sudo باز کنیم ، می توانیم آن فایل را مشاهده کنیم ، اما نمی توانیم آن را ویرایش یا حذف کنیم.

در حال حاضر ، ما باید فایل ماژول ها را تغییر دهیم ، می توانیم این کار را با تایپ کردن انجام دهیم:

sudo nano /etc /modules

پس از انجام این کار ، محتویات آن فایل را خواهید یافت (به عکس مراجعه کنید). با استفاده از کلیدهای جهت نما ، مکان نما را در انتهای متن قرار دهید و موارد زیر را اضافه کنید:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

برای ذخیره CTRL+S و برای خروج CTRL+X را فشار دهید

مرحله 7: 2-2: رابط I2C

2-2: رابط I2C
2-2: رابط I2C

اکنون RTC را متصل کرده و i2c را فعال کرده ایم ، بیایید همه چیز را به هم متصل کنیم.

موارد زیر را در خط فرمان وارد کنید:

i2cdetect -y 1

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

در حال حاضر ، ما باید فایل rc.local را تغییر دهیم تا بتوانیم ماژول RTC را در بوت فعال کنیم و اجازه دهیم تاریخ و زمان را در سیستم ذخیره کند. ابتدا فایل rc.local را باز کنید:

sudo nano /etc/rc.local

قبل از خط exit0 موارد زیر را اضافه کنید:

echo ds1307 0x68>/sys/class/i2c-adapter/i2c-1/new_device

ساعت مچی -s

جایی که 0x68 آدرس i2c دستگاه شما است. پس از اتمام کار CTRL+S CTRL+X را فشار دهید ، سپس سیستم خود را راه اندازی مجدد کنید:

راه اندازی مجدد sudo

مرحله 8: 2-3: آزمایش RTC

2-3: آزمایش RTC
2-3: آزمایش RTC

پس از راه اندازی مجدد سیستم ، می توانیم وضعیت آب RTC را بررسی کنیم یا خیر. ابتدا اجرا کنید:

sudo hwclock -r

تاریخ و زمان در ماژول RTC به شما بازگردانده می شود. اگر چیز دیگری به شما داده شد ، مطمئن شوید که مراحل را به درستی انجام داده اید.

در حال حاضر ، برای تغییر زمان و تاریخ در RTC ، ابتدا باید تاریخ و زمان سیستم را تغییر دهیم ، سپس تغییرات را در RTC اعمال کنیم. برای انجام این کار ، اجرا کنید:

sudo date -s "29 آگوست 1997 13:00:00"

و البته ، قبل از ضربه زدن به Enter ، تاریخ و زمان را مطابق با زمان و تاریخ محلی خود تغییر دهید. هنگامی که زمان را در سمت راست Rpi دریافت کردید ، موارد زیر را برای ذخیره تاریخ و زمان در RTC اجرا کنید:

sudo hwclock -w

آاااان و همین! می توانید بررسی کنید که آیا با hwclock -r کار می کند یا خیر و ببینید آیا تاریخ روی RTC درست است یا خیر ، سپس rpi را از اینترنت قطع کرده و سپس مدتی آن را خاموش کنید و سپس دوباره آن را روشن کنید و ببینید آیا درست است زمان و تاریخ. تمام شدی!

راهنمای کامل نحوه راه اندازی ماژول RTC را می توانید در اینجا پیدا کنید

www.raspberrypi-spy.co.uk/2015/05/adding-a-ds3231-real-time-clock-to-the-raspberry-pi/

مرحله 9: فصل 3: ساخت برنامه زنگ هشدار اذان

فصل 3: ساخت برنامه زنگ هشدار اذان
فصل 3: ساخت برنامه زنگ هشدار اذان

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

برای برنامه نویسی ما ، ما قصد داریم از پایتون به عنوان زبان برنامه نویسی دلخواه خود استفاده کنیم زیرا پایتون با RaspberryPi عالی می شود. برای ایجاد یک فایل کد در پایتون ، ما مانند باز کردن یک فایل متنی عمل می کنیم ، اما اکنون آن را به عنوان.py ذخیره می کنیم. برای اجرای برنامه ، ما نیاز به محیط python نصب شده از raspbery داریم ، خوشبختانه Raspbian همراه python و python3 از پیش نصب شده است! بنابراین تنها کاری که باید انجام دهیم برنامه نویسی است. در این راهنما ، ما در مورد زبان صحبت نمی کنیم و نحوه عملکرد و عملکرد آن را آموزش نمی دهیم ، اما من کدهای لازم را به شما می دهم تا بتوانید پروژه را بسازید.

برای شروع ، ما به یک فایل صوتی از اذان مورد علاقه خود (در. WAV) به دو فایل نیاز داریم ، یکی برای اذان فجر و دیگری برای اذان معمولی. هنگامی که دریافت کردید آن را روی یک درایو استیک قرار دهید و آن را روی دسک تاپ رزبریپی کپی کنید.

در حال حاضر ما فایل ها را داریم ، من به دنبال راهی برای پخش صوت های صوتی در raspberryPi بودم و در کمال تعجب ، راه های زیادی برای انجام این کار وجود نداشت ، اما این پاسخ را در stackoverflow یافتم که به من آنچه را که نیاز داشتم داد.

stackoverflow.com/questions/20021457/playi…

من آن روش را آزمایش کردم و کار کرد! بنابراین اجازه دهید ببینیم چگونه می توانیم این روش را در پروژه خود پیاده سازی کنیم…

مرحله 10: 3-1: بیایید یک صدا پخش کنیم

3-1: بیایید یک صدا پخش کنیم!
3-1: بیایید یک صدا پخش کنیم!

ابتدا به آدرس زیر بروید:

cd رومیزی

سپس یک فایل کد پایتون جدید ایجاد کنید توسط:

sudo nano AzanPlay.py

این یک فایل جدید به نام AzanPlay با پسوند فایل python ایجاد می کند. py ، ما یک صفحه سیاه خالی داریم که به ما اجازه می دهد کد خود را بنویسیم. به سادگی این خطوط را بنویسید (مراقب باشید که هیچ فرورفتگی یا فاصله ای را تغییر ندهید ، زیرا این امر در پایتون بسیار مهم است):

از مخلوط کن واردات pygame

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () در حالی که mixer.music.get_busy () == درست: ادامه

کجا / دسکتاپ / جایی است که فایل های صوتی خود را در آن قرار می دهید ، و "Adhan-Makkah.wav" فایل صوتی من است ، که ضبط صدای اذان در مکه است.

اکنون برای آزمایش کد خود ، آن را با python با تایپ کردن اجرا می کنیم:

پایتون AzanPlay.py

و صدای پخش شده از LCD HDMI یا پورت AUX شما که روی رزبریپی پخش می شود ، پخش می شود. اگر آن را از بلندگوهای LCD نمی شنوید ، یک هدفون را به AUX وصل کرده و بررسی کنید.

مرحله 11: 3-2: اوقات نماز را دریافت کنید

3-2: دریافت وقت نماز
3-2: دریافت وقت نماز

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

praytimes.org/

بنابراین ، ما قصد داریم از این فایل های عالی برای دریافت وقت نماز و پیاده سازی آن در سیستم استفاده کنیم. ابتدا کدها را از وب سایت بارگیری کرده و داخل پوشه / adhan / قرار دهید (ما به کد JS و Python نیاز داریم).

اکنون ، اجازه دهید به آن پوشه برویم و کتابخانه را آزمایش کنیم ، و آنچه می تواند انجام دهد:

سی دی اذان

در آنجا ، ما باید یک فایل آزمایشی جدید در پایتون بسازیم تا بتوانیم عملکرد را آزمایش کنیم:

sudo nano testAd.py

داخل ، این کد را بنویسید:

وارد کردن زمانهای اقدامی

از تاریخ وارد کردن تاریخ tmm = praytimes. PrayTimes (). getTimes (date.today () ، [LONGTITUDE ، LATITUDE] ، GMT) چاپ (tmm)

قبل از ذخیره فایل ، باید LATITUDE را با موقعیت مکانی Latitude ، همان LONGTITUDE تغییر دهید و GMT را به منطقه زمانی خود تغییر دهید. در مورد من ، این خواهد بود:

tmm = praytimes. PrayTimes (). getTimes (date.today () ، [21.3236 ، 39.1022] ، 3)

چاپ (میلی متر)

در نهایت ، CTRL-S و CTRL-X و سپس کد را اجرا کنید:

python testAd.py

سرانجام ، زمان نماز امروز برای مکان شما بازگردانده می شود.

{'isha': '18: 58 '،' asr ': '15: 22' ، 'غروب': '17: 43 '،' ظهر ': '12: 17' ، 'مغرب': '17: 43 ' ، 'imsak': '05: 23 '،' نیمه شب ': '00: 17' ، 'طلوع خورشید': '06: 52 '،' فجر ': '05: 33'}

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

مرحله 12: 3-3: ساخت کد زنگ نهایی اذان

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

من کل کد را نوشتم ، شما می توانید آن را کپی و جایگذاری کنید و تغییرات دلخواه خود را انجام دهید. کد این است:

زمان واردات

از pygame import mixer import string واردات praytimes از تاریخ وارد کردن تاریخ در حالی که (1): tmm = praytimes. PrayTimes (). getTimes (date.today ()، [21.3236، 39.1022]، 3) FAJR = tmm ['فجر'] DHUHR = tmm ['dhuhr'] ASR = tmm ['asr'] MAGHRIB = tmm ['maghrib'] ISHA = tmm ['isha'] tempT = time.strftime (str ('٪ H')) currTime = tempT tempT = time.strftime (str ('٪ M')) currTime = currTime + ':' + tempT if currTime == FAJR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr wav ') mixer.music.play () در حالی که mixer.music.get_busy () == True: ادامه دهید اگر currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () در حالی که mixer.music.get_busy () == True: ادامه دهید اگر currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () در حالی که mixer.music.get_busy () == True: ادامه دهید اگر currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play () در حالی که mixer.music.get_busy () == درست است: ادامه دهید اگر currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () در حالی که mixer.music.get_busy () == درست: ادامه

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

مرحله 13: فصل 4: پیاده سازی صفحه های ساعت

فصل 4: پیاده سازی Watch Watch
فصل 4: پیاده سازی Watch Watch
فصل 4: پیاده سازی Watch Watch
فصل 4: پیاده سازی Watch Watch
فصل 4: پیاده سازی Watch Watch
فصل 4: پیاده سازی Watch Watch
فصل 4: پیاده سازی Watch Watch
فصل 4: پیاده سازی Watch Watch

برای اینکه پروژه بهتر به نظر برسد ، ایده اضافه کردن صفحه ساعت به LCD را داشتم ، بنابراین به نظر کاربر زیبا می آید (خوب ، حداقل بهتر از خط فرمان) بنابراین ، من طراح را برای طراحی چندین چهره برای ساعت باید خالی باشد و هیچ داده ای نداشته باشد ، زیرا داده ها باید از طریق HTML اضافه شوند و طرح های ساعت را به عنوان پس زمینه جلوه دهند و سایر داده ها مانند زمان نماز را می توان به عنوان عناصر HTML در بالای پس زمینه اضافه کرد.

متأسفانه ، تا زمان نگارش این دستورالعمل ، دانش و تجربه من در HTML بسیار محدود است ، بنابراین من در مورد جزئیات زیادی بحث نخواهم کرد زیرا می دانم که کارها را به اشتباه انجام می دهم ، و نمی دانم می خواهد مردم را گیج کند اما اگر حتی یک تجربه کوچک در JS و HTML دارید ، باید بدانید که چگونه از این مرحله ادامه دهید. تا کنون من یک چهره واحد (چهره آبی) ایجاد کرده ام. برنامه برای ساخت 14 صفحه ساعت است! 7 چهره برای روزهای هفته و 7 چهره دیگر به عنوان موضوعی دیگر. به عنوان اولین موضوع قرار است با نورد آزکار باشد ، و تم دیگر به جای آزکار دارای GIFS اسلامی است. صرف نظر از این ، من تمام طرح ها را در این دستورالعمل قرار می دهم تا بتوانید آن را بارگیری کنید.

مرحله 14: فصل 5: پیاده سازی رابط کاربری

فصل 5: پیاده سازی رابط کاربری
فصل 5: پیاده سازی رابط کاربری

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

برای انجام این کار ، ما از یک کتابخانه GUI پایتون به نام "TKinter" استفاده می کنیم.

این کدی است که من برای انتخاب بین پنج شهر عربستان از جمله مکه انتخاب کرده ام:

tkinter را به عنوان tk وارد کنید

از tkinter import * از tkinter import ttk import codecs import os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("زمان اذان") خود. button1 = دکمه (خود ، متن = "جده" ، ارتفاع = 5 ، عرض = 80 ، فرمان = self.open_jeddah1) self.button2 = دکمه (خود ، متن = "مکه" ، ارتفاع = 5 ، عرض = 80 ، فرمان = self.open_makkah1) self.button3 = دکمه (خود ، متن = "ریاض" ، ارتفاع = 5 ، عرض = 80 ، command = self.open_riyadh1) self.button4 = دکمه (خود ، متن = "مدینه" ، ارتفاع = 5 ، width = 80، command = self.open_madina1) self.button5 = دکمه (self، text = "Qasim"، height = 5، width = 80، command = self.open_qasaim1) self.button1.grid (row = 0، column = 1 ، ستون = 2 ، چسبنده = W+E+N+S) self.button2.grid (سطر = 1 ، ستون = 1 ، ستون = 2 ، چسبنده = W+E+N+S) self.button3.grid (row = 2، column = 1، columnspan = 2، sticky = W+E+N+S) self.button4.grid (سطر = 3 ، ستون = 1 ، ستون = 2 ، چسبنده = W+E+N+S) self.button5.grid (سطر = 4 ، ستون = 1 ، ستون = 2 ، sticky = W+E+N+S) def open_jeddah1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html-شروع به تمام صفحه-no-sandbox" os سیستم (سفارش) def open_riyadh1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html-شروع-تمام صفحه-no-sandbox -test-type" os.system (سفارش) def open_madina1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html-شروع-تمام صفحه-no-sandbox -test-type" os.system (سفارش) def open_qasaim1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html-شروع تمام صفحه-no-sandbox -test-type" os.system (order) def main (): karl (). mainloop () if _name_ == '_main_': main ()

کد ممکن است بزرگ به نظر برسد ، اما ویرایش آن بسیار آسان است. ما اساساً یک پنجره جدید ایجاد کردیم ، پنج دکمه نام گذاشتیم و پنج عملکرد را برای تماس با هر دکمه تعریف کردیم. هنگامی که دکمه را فشار می دهید ، برنامه فایل HTML مربوطه را در پوشه Cities باز می کند ، که HTML هر شهر هنگام هماهنگی با زمان () وقت ، مختصات شهر را دارد. هنگامی که دکمه را فشار می دهید ، کد پایتون یک کد لینوکس را حذف می کند که در آن فایل HTML را با استفاده از مرورگر chromium باز می کند و صفحه ساعت را آماده نمایش می کنید ، با گزینه تمام صفحه روشن.

مرحله 15: (اختیاری): افزودن سوئیچ بلندگو

(اختیاری): افزودن سوئیچ بلندگو
(اختیاری): افزودن سوئیچ بلندگو
(اختیاری): افزودن سوئیچ بلندگو
(اختیاری): افزودن سوئیچ بلندگو

همانطور که دیدیم ، هنگام پخش نماز هنگام پخش صدای اذان ، صدا از خروجی صدای پیش فرض (خروجی HDMI یا AV) خارج می شود و از آنجا که آن را روی خروجی HDMI قرار می دهیم ، صدا از LCD می آید. اما اگر صدای LCD ما کافی نباشد چه؟ به عنوان مثال ، اگر بخواهیم این را در داخل یک مسجد واقعی پیاده سازی کنیم ، چه؟ با بلندگوهای خارجی گسترده؟ سپس ما می توانیم یک مرحله بسیار آسان دیگر برای انجام این کار اضافه کنیم. برای ایجاد سیستم صوتی بلندگو ، ما فقط باید آن را روشن و خاموش کرده و میکروفون موجود را برداشته و در کنار بلندگوهای LCD قرار دهیم.

انجام این کار آسان است. ما از میکروفون مسجد موجود که به بلندگوی بلند متصل است استفاده خواهیم کرد ، ما فقط به raspberryPi برای کنترل قدرت روشن و خاموش کردن کل سیستم صوتی نیاز داریم. برای انجام این کار ، ما نیاز به استفاده از SSR: SOLID STATE RELAY داریم. این نوع رله ها می توانند به عنوان یک سوئیچ عمل کنند ، درست مانند رله آبی متوسط ، تفاوت این است که SSR ها می توانند مقدار زیادی از AC AC را از طریق آن تحمل کنند ، که در آبی ها (معمولاً حداکثر 10A) قابل استفاده نیست و SSR ها نیاز دارند فقط دو سیم به جای 3: DC+ و DC- و تمام! در طرف دیگر SSR ما می توانیم کابل برق سیستم بلندگو را متصل کنیم ، به این ترتیب ، وقتی به SSR ولتاژ می دهیم ، مدار AC سیستم بلندگو بسته می شود ، یا ولتاژ را برای ایجاد یک مدار باز می بندیم ، خاموش کردن بلندگوها

یک نکته وجود دارد ، پین های RaspberryPi 3.3v خروجی می دهند ، نه 5 ولت که برای کنترل SSR به آن نیاز داریم. بنابراین ما به یک ترانزیستور برای دریافت سیگنال از پین RPi و 5V از پین RPi 5v نیاز داریم. برای انجام این کار ما نیاز داریم:

رله 1 حالت جامد (هر چیزی بالاتر از 25A خوب است)

ترانزیستور 2-2n2222 npn

مقاومت 3-220 اهم

برای اتصال ، مدار سرما را دنبال کنید.

در حال حاضر در کد ، ما برخی از مواردی را که باعث کار می شود اضافه می کنیم. ابتدا ، قبل از حلقه while ، چند خط برای راه اندازی اولیه پین های GPIO اضافه می کنیم:

در بخش وارد کردن ، موارد زیر را اضافه کنید:

RPi. GPIO را به عنوان GPIO وارد کنید

قبل از حلقه while اضافه کنید:

رله GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) = 40 GPIO.setup (ledPin، GPIO. OUT)

در حال حاضر ، در حلقه while ، برای هر فرمان بازی آذان ، باید رله را روشن کرده ، 10 ثانیه منتظر بمانیم ، پخش اذان را به پایان برسانیم و سپس رله را خاموش کنیم. ما فقط باید دو خط اضافه کنیم ، اولین خط عبارت است از:

GPIO.output (ledPin ، GPIO. HIGH)

زمان خواب (10)

این یکی باید بعد از هر عبارت if (شناسایی مهم است!) اضافه شود ، خط دیگر این است:

GPIO.output (ledPin ، GPIO. LOW)

این یکی باید بعد از خط "ادامه" اضافه شود. برای هر زمان اذان باید به این شکل باشد:

if currTime == FAJR:

GPIO.output (ledPin، GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play () در حالی که mixer.music.get_busy () == درست: ادامه GPIO.output (ledPin، GPIO. LOW)

توصیه شده: