خانه / مطالب علمی / Mini PC - مینی PC / رزبری پای - Raspberry PI / زبان برنامه نویسی PHP و رزبری پای

زبان برنامه نویسی PHP و رزبری پای

نوشتن برنامه PHP برای رزبری پای آسان است. در این نوشته به شما نشان میدهیم که یک برنامه ساده PHP برای کنترل یک LED  بسازید.

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

قبل از شروع به کار و نوشتن برنامه PHP روی رزبری پای اول باید PHP را روی رزبری پای نصب کنیم در بیشتر مواقع باید PHP را همراه وب سروری مثل نصب کرد. برای نصب این آپاچی و PHP از دستورات زیر استفاده کنید.

به جای استفاده از آپاچی می توانید از وب سرور های سبک تر مثل lighttpd استفاده کنید. که از طریق دستور زیر نصب می شود.

ایجاد راتباط مابین رزبری پای وPHP

ساده ترین راه برای برای ارتباط بین PHP و رزبری پای استفاده از تابع shell_exec() است. این تابع به شما اجازه می دهد تا دستورات شل یا همان خط فرمان لینوکس را اجرا کنید. بنابر این مثل یک پل بین رزبری پای و PHP عمل می کند. در حالت ساده می توانید توسط shell_exec اسکریپت پایتون را برای کنترل GPIO رزبری پای فراخوانی کنید.

راه حل دیگر استفاده از کتابخانه Wiring Pi برای کار با GPIO رزبری پای و استفاده از این کنابخانه توسط PHP و تابع shell_exec است. به این منظور شما نیاز دارید تا Wiring Pi را اول روی رزبری پای نصب کنید. این کتابخانه به صورت بسته باینری در دسترس نیست پس شما باید آن را از منبع کامپایل و نصب کنید. خوشبختانه این کار نسبتا ساده است. با نصب برنامه Git کار را شروع می کینم:

در ادامه Wiring Pi را با اجرای Git روی رزبری پای کپی می کنیم.

به پوشه wiringPi می رویم و با دستور ./build آن را کامپایل می کنیم.

برای این که مطمئن شویم Wiring Pi درست نصب و اجرا می شود از دستور gpio -v را اجرا می کینم باید ورژن Wiring Pi و اطلاعات مختصری در مورد رزبری پای نمایش داده شود.

و با اجرای دستور gpio readall دیاگرام و جرئیات GPIO رزبری پای نمایش داده می شود.

برای نمایش کاربرد Wiring Pi یک مثال ساده برای کنترل یک LED را دنبال می کنیم. led را به همراه مقاومت را به پایه ۱۷ برد رزبری پای و زمین وصل کنید طبق شکل زیر ترمینال را باز کنید و با دستور cd به پوشه /var/www منتقل شوید. سپس توسط دستور sudo nano gpio.php فایل gpio.php را ایجاد کنید و کد زیر را در آن کپی و ذخیره کنید. به وسیله CNTRL + X

اتصال led به رزبری پای

کلید های ON و OFF این برنامه شامل فرم های HTML است وقتی شما یکی از کلید ها را فشار می دهید با توجه به عنوان کلید قسمتی از آدرس URL تغییر می کند. (gpio.php?on=ON and gpio.php?off=OFF) و پایه ۱۷ gpio از طرق PHP و دستور shell_exec کنترل می شود.برنامه سطر های ۱۴ تا ۲۱ مقدار کلید را از URL می خواند و توسط تابع shell_exec پین را روشن و خاموش می کند.

برای دسترسی به صفحه طراحی شده کافی است آدرس IP رزبری پای را همراه gpio.php\ وارد کنید به عنوان مثال

برای بدست آوردن IP رزبری پای می توانید از دستور ifconfig در ترمینال استفاده کنید.

اگر دکمه ها کار نکرد به احتمال زیاد وب سرور اجازه اجرای دستورات شل لینوکس را ندارد. برای تصحیح این مورد دستور sudo visudo را در ترمینال اجرا کنید. و خط زیر را به فایل sudoers اضافه کنید.

همچنین مطمئن شوید که var/www/ متعلق به گروه کاربری www-data باشد برای مطمئن شدن دستور زیر را اجرا کنید.

استفاده از پروژه php-gpio

ما از تابع shell_exec برای کنترل GPIO رزبری پای استفاده کردیم ولی این تنها راه نیست به عنوان مثال پروژه php-gpio یک کتابخانه PHP‌ برای دسترسی به پین های GPIO رزبری پای است. برای استفاده از php-gpio از دستور زیر برای دریافت و نصب کتابخانه استفاده کنید.

php-gpio از تعداد کمی API ساده برای استفاده و تغییر وضعیت پین های GPIO رزبری پای اسفاده می کند. اسکریپت باید شامل کد های زیر باشد تا کتابخانه GPIO لود شود و GPIO آماده استفاده

در این مثال در سطر آخر GPIO شماره ۱۷ را به عنوان پین خروجی تنظیم کردیم برای کنترل GPIO به دو دستور زیر نیاز داریم

عبارت اول وضعیت پین ۱۷ را یک می کند یعنی led متصل به آن روشن می شود و عبارت دوم آن را صفر می کند و دستور سطر آخر وضعیت همه پین ها را ریست می کند. برنامه پایین یک برنامه ساده برای راه اندازی یک led چشمک زن به وسیله کتابخانه php-gpio است.

برای اجرای اسکریپت دستور زیر را در ترمینال اجرا کنید.

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

راه حل این مشکل ساده است از تابع shell_exec برای اجرای آن در صفحه وب کمک بگیرید.

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

درباره ی علی عزتی

علی عزتی هستم. رشته ی مهندسی برق الکترونیک رو خوندم. علاقه ی من به یادگیری و به اشتراک گذاشتن چیز هایی که یاد گرفتم. باعث شده تا بنویسم. علاقه ی زیادی به الکترونیک دارم. و دوست دارم چیزهای جدید یادبگیرم و بسازم … :))