اینترنت اشیاء اول / آموزش

Remote Development And Debug on Raspberry Pi
نوشته شده توسط : احسان غلامی کناری
شنبه ۹ دي ۱۳۹۶
  • رزبری پای
  • Python
  • VisualStudio
  • PyCharm
  • Linux

 

مقدمه : 

در این آموزش می خواهیم این موارد را ذکر کنیم:

  • توسعه پایتون اپلیکیشن در محیط ویندوز با ویژوال استادیو و پای چرم
  • انتشار آن به یک رزبری پای که سیستم عامل Raspbian را اجرا کرده است
  • اجرا اپلیکیشن در رزبری پای و دیباگ بصورت ریموت از ویندوز

نیازمندی ها : 

آماده سازی : 

  • نصب ویژوال استادیو و Python tools برای ویزوال استادیو و اتصال به اینترنت
  • نصب Putty
  • نصب Raspbian بروی رزبری پای (setup guide)
  • رزبری پای خود را به اینترنت متصل کنید(Howto wireless connection) (wired or wireless)

مطمئن شوید که هم کامپیوتر محیط توسعه (ویندوز - ویژوال استادیو) و هم رزبری پای در یک شبکه هستند و از ویندوز به رزبری پای Ping وجود دارد.

بدست آوردن IP آدرس

شما باید آی پی آدرس رزبری پای خود را برای استقرار و دیباگ کد پایتون بدست آورید. در اینجا ما فرض میکنیم که آدرس آی پی رزبری پای 192.168.0.107 است. 

باز کردن یک پنجره ترمینال با Putty 

می خواهیم توسط Putty به ترمینال رزبری پای متصل شویم. آی پی رزبری پای را در Putty وارد می کنیم.

 

بروی دکمه Open کلیک می کنیم.

نام کاربری و کلمه عبور رزبری پای را وارد می کنیم

نام کاربری پیش فرض: pi

کلمه عبور پیش فرض: raspberry

 

 

  • در این قسمت در پوشه home یک فولدر به نام "pythonapp" ایجاد کنید و سطح دسترسی آن را "0777" نمایید در واقع این دسترسی ها access/read/write را اهدا کردید
  • با دستور "pwd" می توانید مسیر این فولدر را ببینید "/home/pi/pythonapp"

 

 

دستورات استفاده شده در این قسمت :

    mkdir pythonapp

    chmod 0777 pythonapp

    cd pythonapp

    pwd

 

با دستور زیر سیستم را آپدیت نمایید : 

sudo apt-get update

توسط دستور زیر نصب پکیج متن باز ptvsd در رزبری پای (remote debugging libraries)

sudo pip install ptvsd

 

فعال سازی Windows file share بروی رزبری پای

با دستور زیر پکیج نرم افزاری Samba را نصب نمایید : 

sudo apt-get install samba samba-common-bin

 
با دستور زیر تنظیمات  Samba را انجام دهید :
 
sudo nano /etc/samba/smb.conf

دستور بالا یک ادیتور برای فایل کانفیگ Samba در ترمینال باز میکند که در انتهای فایل خطوط زیر را اضافه و ذخیره کنید .

 

 

 

خطوط اضافه شده به انتهای فایل کانفیگ Samba :

[pythonapp]

path=/home/pi/pythonapp

browsable=yes

writable=yes

only guest=no

create mask=0777

directory mask=0777

public=yes

 

Switch back to windows, open Windows File Explorer in the development machine. Type "\\192.168.0.107\pythonapp" in the address bar. You should be able to explore the empty folder in RPi device from a windows machine.

حالا یک پنجره فایل اکسپلورر در ویندوز باز نمایید و در قسمت آدرس بار "\\192.168.0.107\pythonapp" وارد نمایید. شما بابد قادر به دیدن فولدر خالی رزبری پای در ویندوز خود خواهید شد.

 

 

توسعه و انتشار اسکریپت های پایتون

  • ویژوال استادیو خود را باز نمایید 

 

  • از قسمت تمپلیت ها "Python Application" و یک پروژه خالی ایجاد نمایید

 

  • در این فسمت بروی گزینه Python environment زیر شاخه ای solution explorer راست کلیک نمایید و گزینه "Add/Remove Python Environments…" را در پاپ آپ منو انتخاب نمایید

 

 

 

 

  • ​در صورتی که پایتون در سیستم شما نصب شده باشد گزینه "Python 2.7" را فقط انتخاب نمایید . در غیر اینصورت ویژوال استادیو را ببندید و پایتون را نصب نمایید.

 

 

 

 

  • ​در این قسمت بروی گزینه "Install Python Package…" کلیک نمایید

 

 

 

 

  • ​عبارت "ptvsd" در این قسمت وارد نمایید و دکمه OK را فشار دهید

 

 

 

 

  • فایل pythonapp.py را باز نمایید و دستورات زیر را در آن وارد نمایید

 

 

import ptvsd

ptvsd.enable_attach(secret='my_secret')

 

first_num = int(raw_input('Enter first number: '))

second_num = int(raw_input('Enter second number: '))

sum = first_num + second_num

print('{0} + {1} = {2}: '.format(first_num, second_num, sum))

 

 

  • ​بروز دکمه Start کلیک نمایید

 

  • کنسول ویندوز باز خواهد شد و از شما 2 عدد می خواهد و که در نهایت جمع این دو عدد نمایش داده می شود

  • ​حالا اجاز ه دهید که تنظیمات لازم را برای انتشار این اسکریپت به رزبری پای انجام دهیم . بروی پروژه در solution explorer راست کلیک نمایید و گزینه "properties" را انتخاب نمایید 

 

  • ​در پنجره "properties" بروی تب "Publish" این آدرس "\\192.168.0.107\pythonapp" را در قسمت  publish location وارد نمایید

 

 

 

با این کار می خواهیم آخرین ورژن از اسکریپت های پایتون را در رزبری پای انتشار دهیم.

هر زمان که شما کد را تغییر دهید وراست کلیک کنید بروی پروژه و گزینه "Publish" را بزنید  آخرین ورژن از اسکریپت های پایتون را در رزبری پای انتشار خواهید داد.

 

Remotely Debug the Python script that is running on Raspberry Pi Device

  • Switch back to the Putty terminal window. If session timed-out, re-enter your credentials and go to the "pythonapp" folder. Type the following command in the SSH terminal window:

    python pythonapp.py

     

  • Previous command will run the python script. Before entering first number switch back to "Visual Studio" window.

  • In Visual Studio, put a breakpoint on the line that starts with "sum = first…"

     

  • In the "Debug" menu, click on "Attach to Process…" menu item.

     

  • In the "Attach to Process" window, select "Python remote (ptvsd)" as Transport. Enter "tcp://my_secret@192.168.0.107" as Qualifier and press ENTER. Available Python processes on the RPi device will be listed. Select the one to Debug and press "Attach" button in this window.

     

     

    Here the keyword "my_secret" in the Qualifier must be the same keyword that we entered in the second line of the Python source code.

     

  • Now go back to the SSH terminal to the RPi device and enter the two integer value to calculate their sum. When you enter the second number and press ENTER, Visual studio will flash and the execution cursor will stop on the breakpoint. You can browse local variables, threads, their values etc. on the Locals, Watch, Threads, Call Stack etc. windows. You can execute the script line by line remotely.

     

 

آموزش توسط : اینترنت اشیا اول

 

نظرات (1)

avatar
محمد   |   پنجشنبه ۱۴ دي ۱۳۹۶

تشکر از پست بسیار جالب شما

نظرات خود را ارسال نمایید