فهرست مطالب:

تلفن همراه شماره گیری روتاری سبک یکپارچهسازی با سیستمعامل: 4 مرحله (همراه با تصاویر)
تلفن همراه شماره گیری روتاری سبک یکپارچهسازی با سیستمعامل: 4 مرحله (همراه با تصاویر)

تصویری: تلفن همراه شماره گیری روتاری سبک یکپارچهسازی با سیستمعامل: 4 مرحله (همراه با تصاویر)

تصویری: تلفن همراه شماره گیری روتاری سبک یکپارچهسازی با سیستمعامل: 4 مرحله (همراه با تصاویر)
تصویری: نه کاری که نمیدونستی گوشیت انجام میده | 9 کاربرد مخفی گوشی 2024, ژوئن
Anonim
تلفن همراه شماره گیری روتاری سبک یکپارچهسازی با سیستمعامل
تلفن همراه شماره گیری روتاری سبک یکپارچهسازی با سیستمعامل

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

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

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

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

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

================

از نظر مواد ، من در ابتدا امیدوار بودم که بتوانیم تلفن روتاری قدیمی را از والدینم بگیریم و از بیشتر قطعات آن (پوسته تلفن ، صفحه گردان ، هدست و غیره) استفاده کنیم ، که هزینه کل پروژه را کاهش می دهد. این امر در نهایت به دلیل COVID-19 اتفاق نیفتاد ، که مانع سفر برنامه ریزی شده ما به اروپا (ملاقات با خانواده) شد ، و در عوض ما فقط شماره گیر شماره گیر چرخشی جدید را در آمازون پیدا کردیم و خریداری کردیم (از گزینه ها و قیمت ها در eBay راضی نبودم). این خوب بود ، زیرا برخی از ویژگی های جالب دیگر را نیز ارائه می داد ، زیرا ما تلفن شماره گیری روتاری با گزینه های شماره گیری اضافی (* و #) پیدا کردیم ، که معمولاً در تلفن های قدیمی موجود نیست.

بخش اصلی پروژه GSM/GPRS HAT بود که به راحتی در دسترس است (ما نیازی به نسخه 4G نداشتیم) و می توان آن را مستقیماً با هر Raspberry Pi یا بردهای مشابه کنترل کرد. در مورد ما ، ما برد کوچک Raspberry Pi Zero داشتیم که به طور فعال از آن استفاده نمی کردیم (از پروژه قدیمی پسرم).

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

تدارکات

  • Raspberry Pi Zero W
  • Waveshare GSM/GPRS/GNSS/Bluetooth HAT
  • ماژول صوتی قابل ضبط ، دکمه فشاری فعال شده است

  • (قدیمی) تلفن روتاری
  • کارت Micro SD (برای رزبری پای) ، کابل/پین ، هدفون قدیمی و غیره

مرحله 1: آماده سازی تلفن

آماده کردن تلفن
آماده کردن تلفن

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

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

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

همانطور که انتظار می رفت ، کابل هدست دارای 4 سیم است که هر کدام 2 عدد برای بلندگوها و میکروفون های کم مصرف دارد. از آنجا که HAT که ما از آن استفاده می کردیم دارای جک 3.5 میلیمتری صدا برای هدفون بود ، من فقط این 4 سیم را به یکی از هدفون های قدیمی 3.5 میلی متری صدا متصل می کنم.

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

مرحله 2: کنار هم قرار دادن اشیا

کنار هم گذاشتن چیزها
کنار هم گذاشتن چیزها
کنار هم گذاشتن چیزها
کنار هم گذاشتن چیزها
کنار هم گذاشتن چیزها
کنار هم گذاشتن چیزها

برای اثبات ساده مفهوم ، کافی است Raspberry Pi و GSM HAT را مستقیماً وصل کنید و هدفون های معمولی را به GSM HAT وصل کنید. من توانستم از این تنظیمات همراه با برنامه MiniCom (رانندگی پورت سریال Raspberry Pi ، که مستقیماً به GSM HAT متصل است) استفاده کنم تا به سرعت بررسی کنم که سیم کارت من کار می کند و آیا می توانم با آن تنظیمات تماس بگیرم و پیامک ارسال کنم.

از آنجا که دیگران ممکن است علاقه مند به انجام این کار باشند (آزمایش سریع تنظیمات جدید سرگرم کننده است) ، در اینجا نکاتی درباره نحوه انجام این کار آمده است (بدیهی است که بر اساس فرض تابلوهای مشابه/مشابه):

- سیستم عامل را روی رزبری پای نصب و پیکربندی کنید (من از نسخه Lite OS استفاده کردم که بدون هیچ رابط کاربری گرافیکی ارائه می شود).

- GSM HAT (با سیم کارت نصب شده) را به Raspberry Pi وصل کنید (مطمئن شوید GSM HAT دارای سوئیچ UART مناسب بر اساس نوع اتصال است ، برای راهنمای HAT به پیوند زیر مراجعه کنید). برای این مرحله ممکن است به نسخه رزبری پای نیاز داشته باشید که کانکتور هدر از قبل نصب شده است ، در مورد ما من باید آن را لحیم کنم (از آنجا که من از Pi zero استفاده می کردم ، که به طور پیش فرض بدون هدر می آید). روش دیگر ، استفاده بهتر از کابل میکرو USB برای اتصال هر دو کارت (رزبری پای و GSM HAT دارای میکرو USB هستند)

- در صورت اتصال GSM HAT از طریق پورت سریال ، استفاده از پورت سریال Raspberry Pi را فعال کنید (به طور پیش فرض ، از پورت Raspberry Pi برای کنسول استفاده می شود). برای انجام این کار ، باید دستورالعمل های raspi -config را دنبال کنید (پیوند "پیکربندی" بالا را ببینید) ، گزینه های رابط - فعال کردن SSH و گزینه های سریال. اگر از نسخه سیستم عامل Lite استفاده می کنید ، ممکن است لازم باشد "به شبکه بی سیم متصل شوید" و SSH را فعال کنید (به پیوند "پیکربندی" دستورالعمل های بالا مراجعه کنید).

- رزبری پای را به مانیتور و صفحه کلید وصل کنید (یا از طریق ssh از راه دور به آن دسترسی پیدا کنید)

- از MiniCom یا برنامه سریال مشابه برای کنترل دستی HAT از طریق پورت مناسب استفاده کنید (برای پورت راه اندازی من "/dev/ttyS0" بود ، در صورت استفاده از میکرو USB متفاوت خواهد بود). MiniCom را با "sudo apt -get install minicom" نصب کنید و پس از نصب آن را با "minicom -D /devtyS0" (یا از هر پورتی که استفاده می شود) شروع کنید.

- برای هدایت عملکردهای مختلف HAT (ارسال پیامک ، تماس تلفنی و غیره) از دفترچه راهنمای GSM HAT یا دفترچه راهنمای AT Command استفاده کنید. پس از اتصال صحیح ، GSM HAT با درخواست "AT" با "OK" پاسخ می دهد. برای بررسی اینکه آیا سیم کارت به درستی ثبت شده است ، از دستور "AT+CREG؟" استفاده کنید ، که باید "OK" را نیز نشان دهد. همچنین می توانید ارائه دهنده شبکه را با "AT+COPS؟" تأیید کنید ، یا شماره تلفن خود را با "AT+CNUM" بررسی کنید

برای ادغام بقیه قطعات مورد نیاز ، ما کابل 16 پین سفارشی برای Raspberry Pi به GSM HAT ایجاد کردیم ، زیرا برای خواندن شماره گیری چرخشی ، وضعیت هدست و راه اندازی زنگ (همچنین برای شروع خودکار به چند پین IO عمومی دیگر نیاز داشتیم) GSM HAT در حین روشن / راه اندازی). من سعی کردم برای رزبری پای از برخی از سیمهای جداکننده خارج از قفسه برای رزبری پای استفاده کنم ، و در حالی که این روش برای اتصال سریع و آزمایش خوب کار می کرد ، از کیفیت بسیار راضی نبودم و در نهایت کانکتور 16 پین خود را ساختم.

راه دیگر برای برقراری ارتباط بین Raspberry Pi و GSM HAT این است که از طریق هر دو پورت میکرو USB پورت (و دوباره ، شما باید سوئیچ UART مناسب را روی GSM HAT تنظیم کنید) ، و این ممکن است یک راه حل سریعتر و بسیار ساده تر باشد. در صورت دریافت کابل مناسب (که در وقت و تلاش شما برای ساخت کابل صرفه جویی می کند) می توانید به راحتی این کار را انجام دهید - فقط تغییر پورت مورد استفاده نرم افزار/برنامه را فراموش نکنید.

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

- پین های 35 ، 37 و 39 (مربوط به Raspberry Pi GPIO 19 ، 26 و ground) برای اتصال به شماره گیری (پین های ورودی) استفاده می شود. تلفن انتخابی ما قبلاً دارای 3 سیم اتصال بوده که سیم قرمز و مشکی با پین های NO و NC و سیم زرد رایج بوده است.

- پین 23 و 25 (Raspberry Pi GPIO 11 و ground) برای اتصال سوئیچ هدست استفاده می شود (ورودی - تشخیص هنگام بلند شدن یا قرار دادن هدست)

- پین های 22 و 20 (Raspberry Pi GPIO 25 و ground) برای اتصال به سوئیچ ماژول صدا (خروجی - عمل زنگ) استفاده می شود

- علاوه بر این ، ممکن است نیاز باشد که پین 19 (GPIO 10) به سوئیچ قدرت GSM HAT لحیم شود ، زیرا برخی از نسخه های HAT را نمی توان فقط با قدرت روشن کرد ، اما باید شخصی به صورت دستی کلید HAT را فشار دهد.

- در سمت تلفن ، ما سیم داخلی هدست 4 را جدا کردیم و از هدفون قدیمی به جک 3.5 میلی متری صدا متصل شدیم. سیمهای قرمز/سبز برای میکروفون هدست و زرد/مشکی برای بلندگوی هدست هستند. بسته به طرف جک 3.5 میلیمتری مورد استفاده ، ممکن است لازم باشد سیم مناسب را تشخیص دهید (در هر عصاره فوق برای ورودی هدفون GSM HAT) ، اما در مورد ما میکروفون به سپر و قرمز وصل شده بود ، در حالی که سیم بلندگو سبز و آبی بود. در پایان ، جک 3.5 میلی متری را به ورودی هدفون GSM HAT وصل کنید.

مرحله 3: بسته بندی نهایی و افزودن شبیه سازی "جلوه زنگ"

بسته بندی نهایی و افزودن شبیه سازی شده
بسته بندی نهایی و افزودن شبیه سازی شده

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

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

در مورد "زنگ" ، ما در نهایت ماژول صوتی قابل شارژ باتری خریدیم. به عنوان یک گزینه (هنگام اتصال بردها از طریق میکرو USB) ، یک نسخه بدون باتری وجود دارد که می تواند مستقیماً از سربرگ رزبری پای 5V تغذیه کند.

در هر دو مورد ، سوئیچ کنترل خارجی از ماژول صدا باید برداشته شود و سیمها به یکی از پین + پایه GPIO متصل شوند. و برنامه نویسی صدای زنگ به ماژول بسیار ساده است ، فقط آن را به رایانه متصل کرده و هر فایل mp3 ای را که می خواهید برای زنگ زدن استفاده کنید بارگیری کنید. در اینجا پیوند یک سایت زیبا با بسیاری از صداهای زنگ قدیمی وجود دارد.

مرحله 4: نرم افزار و ادغام نهایی

نرم افزار و ادغام نهایی
نرم افزار و ادغام نهایی
نرم افزار و ادغام نهایی
نرم افزار و ادغام نهایی

بلوک دیاگرام بالا همه اجزای اصلی و روابط آنها را نشان می دهد. در اصل ، پیاده سازی به 3 ورودی مجزا و حداقل 1 خروجی مجزا نیاز دارد (ما از نسخه 2 GO از نسخه GSM HAT استفاده کردیم که به طور خودکار بدون فشار دادن دکمه HAT شروع به کار نمی کند ، بنابراین لازم است سیم را به آن دکمه لحیم کنیم تا مجبور شود راه اندازی HAT هنگام روشن شدن تلفن).

تا آنجا که کد ، در پایتون 2.7 نوشته شده است ، بنابراین اگر نسخه 3.x و بالاتر را نصب/استفاده کنید ، ممکن است مواردی وجود داشته باشد که باید تغییر کند (یکی از آنها عبارت "چاپ" است). برای اینکه کد به درستی کار کند ، چند کتابخانه پایتون وجود دارد که باید ابتدا اضافه شوند ، مانند:

- gpiozero (مورد نیاز برای رابط Raspberry Pi GPIO)

- re (کتابخانه بیان معمولی - برای تجزیه و تحلیل پیام های SMS ورودی ، اگر بخشی از نصب پیش فرض پایتون نیست نصب کنید)

- سریال (برای اتصال به GSM HAT - حتی در صورت اتصال از طریق میکرو USB مورد نیاز است ، اگر بخشی از نصب پیش فرض پایتون نیست نصب کنید)

همچنین ، 2 مکان در کد پیوست وجود دارد که بسته به اجرای نهایی باید اصلاح شوند (یا 3 مکان ، در صورت استفاده از پین GPIO مختلف). اولین مورد مربوط به شماره ای است که می خواهید از آن برای ارسال پیام ها استفاده کنید:

# ** فوروارد شود

# ***********************************

و مورد دوم مربوط به تنظیم پورت سریال است:

# ***********************************

# SIM868 مقداردهی اولیه و rutinessim868 = سریال. سریال ("/dev/ttyS0" ، 115200)

# مطمئن شوید /dev /ttyS0 برای راه اندازی شما مناسب است

# ***********************************

کد به عنوان ماشین حالت ساخته شده است ، که در نمودار بالا توضیح داده شده است. بیشتر اوقات تلفن در حالت IDLE است و منتظر رویدادها است: 1. تماس ورودی (که تلفن را به حالت RING هدایت می کند)

2. پیام کوتاه ورودی - که بطور خودکار به تلفن دیگری ارسال می شود/می تواند ارسال شود

3. بلند کردن هدست ، در آماده سازی برای شماره گیری (تلفن را به حالت DIAL هدایت می کند)

4. شماره گیری کاراکتر ویژه بدون بلند کردن هدست (طبق کد فعلی ، شماره گیری تلفن خاموش «#»)…

نظرات زیادی در کد تعبیه شده است که باید به خواندن و درک آن کمک کند. برخی موارد را ناتمام گذاشتیم ، مانند افزودن گزینه شماره گیری سریع ، یا ارسال پیام وضعیت ، یا…

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

- فایلهای ضمیمه "rotaryPhoneStateMachine.txt" و "myphone.txt" را بارگیری کرده و نام آنها را به "rotaryPhoneStateMachine.py" و "myphone.service" تغییر دهید (به دلایل عجیب ، سرور Instructables اجازه بارگذاری برخی از انواع فایل ها را نمی دهد)

- "rotaryPhoneStateMachine.py" را در پوشه /home /pi قرار دهید

- "myphone.service" را در/etc/systemd/system قرار دهید

- فعال کردن سرویس با فرمان "sudo systemctl فعال کردن myphone.service" (پس از آزمایش همه چیز)

توصیه شده: