چگونه به کنترل الکترونیکی از یک مرورگر با استفاده از MicroPython در Jupyter نوت بوک

اگر شما می خواهید برای کنترل دستگاه های الکترونیکی مانند یک رله یا موتور شما می توانید انجام این کار با استفا

توسط PATRIS-MUSIC در 31 تیر 1399

اگر شما می خواهید برای کنترل دستگاه های الکترونیکی مانند یک رله یا موتور شما می توانید انجام این کار با استفاده از MicroPython با ESP8266 و مرورگر وب است. معمولا شما می خواهم برنامه یک ESP8266 استفاده از Arduino اما C++ که Arduino استفاده است که همیشه ساده ترین زبان برنامه نویسی برای مبتدیان برای یادگیری است.

MicroPython است که بسیار ساده تر برای برنامه. به علاوه, این یک راه عالی برای استفاده از کد پایتون در یک میکروکنترلر مانند یک ESP8266 یا ESP32 به کنترل اساسا هر جزء الکترونیکی شما می خواهید از کامپیوتر خود را در حال اجرا Jupyter نوت بوک در یک مرورگر. اگر شما جدید به MicroPython چک کردن ما راهنماهای قبلی در استفاده از آن با یک میکروکنترلر; یکی را پوشش می دهد ایجاد rogue نقاط دسترسی در حالی که دیگر مذاکرات در مورد برنامه نویسی یک طیف بیش از Wi-Fi.

مثال ما سناریو

برای کمک به شما نشان دهد که چگونه MicroPython یک طیف و Jupyter نوت بوک می تواند مورد استفاده قرار گیرد برای کنترل قطعات الکترونیکی ما خواهید بود با استفاده از یک راه اندازی است که به طور معمول بسیار دشوار است برای انجام این کار در Arduino اما بسیار آسان در MicroPython.

بر روی برد بورد ما ESP8266 زوج با یک D1 مینی است که متصل به یک رله سوئیچ. یک رله الکترونیکی سوئیچ شبیه به تک قطب سوئیچ دیوار هستند که در بسیاری از اتاق های خود را. هنگامی که ما آن را ارسال یک قدرت سیگنال آن را روشن یا خاموش. وجود 9 ولت باتری متصل خواهد شد که به نوبه خود بر روی موتور هنگامی که ما می خواهم آن را به.

آنچه شما نیاز دارید

پروژه قطعات:

که اصول آن, اما هنگامی که شما D1 مینی متصل به خود را برد بورد با خود رله متصل اتصال رله در برابر پین GPIO و قلاب کردن یک باتری 9V به موتور.

بر روی کامپیوتر شما:

مرحله 1: شناسایی صحیح پورت سریال

پلاگین خود را ESP8266 به کامپیوتر شما و سپس اجرای یکی از دستورات زیر را برای دیدن آنچه در آن سریال آدرس است. اگر شما جدا MCU به پورت USB بعد از آن ممکن است یکی دیگر از سریال آدرس.

در یک کامپیوتر لینوکس:

~$ dmesg | grep tty /dev/مس.بلوتوث-ورودی پورت
/dev/مس.SOC
/dev/مس.wchusbserial14630
/dev/مس.MALS
/dev/مس.usbserial-14630

در مک:

~% ls /dev/مس.* /dev/مس.بلوتوث-ورودی پورت
/dev/مس.SOC
/dev/مس.wchusbserial14630
/dev/مس.MALS
/dev/مس.usbserial-14630

از نتایج من از لینوکس و macOS آن خواهد بود /dev/مس.wchusbserial14630. اگر شما دو پورت سریال همیشه استفاده از یک با "wch" در آن است. برای اطمینان می دانم که اگر آن را خود ESP8266 شما می توانید جدا از آن تکرار فرمان و سپس پلاگین را به همان پورت USB و تکرار دوباره آن را.

در ویندوز برای پیدا کردن سریال نشانی, شما نیاز به باز کردن دستگاه مدیریت و پیدا کردن پورت COM در زیر "Ports (COM & LPT)." ما در حال رفتن به نشان دادن هر یک از ویندوز مراحل زیر را بنابراین اگر شما با استفاده از ویندوز و نمی توانند بفهمند این روند ضربه تا نظرات و ما سعی خواهیم کرد و هدایت شما در مسیر درست.

Step 2: دانلود آخرین MicroPython دودویی

اگر شما در حال حاضر MicroPython نصب شده بر روی میکروکنترلر مانند اگر شما به دنبال یکی از راهنماهای قبلی و سپس شما می توانید جست و خیز به مرحله 4. در غیر این صورت شما نیاز MicroPython در طیف.

دانلود آخرین نسخه سیستم عامل مبتنی بر هیئت مدیره شما با استفاده از. بازدید MicroPython صفحه دانلود پیدا کردن هیئت مدیره خود را و دانلود فایل. شما می توانید پیدا کردن سریع لینک های زیر به محبوبیت برای ESP8266 و ESP32 تخته. هنگامی که شما در هیئت مدیره خود را انتخاب کنید را انتخاب کنید .bin فایل برای آخرین نسخه پایدار.

مرحله 3: پاک کردن هیئت مدیره

پاک کردن هیئت مدیره به طوری که هیچ مسائل وجود دارد زمانی که شما فلش MicroPython به آن است. با استفاده از دستور زیر جایگزین من پورت سریال با پورت سریال خود ESP.

~$ esptool.py --port /dev/مس.wchusbserial14630 erase_flash esptool.py v2.8
پورت سریال /dev/مس.wchusbserial14140
اتصال....
تشخیص نوع تراشه... ESP8266
تراشه ESP8266EX
امکانات: WiFi
کریستال است 26MHz
MAC: 2c:f4:32:4b:07:83
آپلود خرد...
در حال اجرا در ترمینال...
ترمینال در حال اجرا...
پاک کردن فلش (این ممکن است در حالی که)...

گام 4: فلش MicroPython

در حال حاضر اگر شما با استفاده از یک ESP8266 میکروکنترلر زیر را اجرا کنید به فلش MicroPython بیش از آن. جایگزین .bin فایل در پایان با MicroPython دودویی شما دریافت شده است.

~$ esptool.py --port /dev/مس.wchusbserial14630 --baud 460800 write_flash --flash_size=تشخیص 0 /کاربران/کالی/محبوبیت/esp8266-20191220-v1.12.بن esptool.py v2.8
پورت سریال /dev/مس.wchusbserial14630
اتصال....
تشخیص نوع تراشه... ESP8266
تراشه ESP8266EX
امکانات: WiFi
کریستال است 26MHz
MAC: 2c:f4:32:4b:07:83
آپلود خرد...
در حال اجرا در ترمینال...
ترمینال در حال اجرا...
تغییر baud rate به 460800
تغییر کرده است.
پیکربندی فلش اندازه...
شناسایی خودکار فلش size: 4MB
فلش پارامترهای تنظیم به 0x0040
فشرده 617880 بایت به 402086...
نوشت 617880 بایت (402086 فشرده) در 0x00000000 در 9.6 ثانیه (موثر 514.5 kbit/s)...
هش از اطلاعات تایید نشده است. خروج...
سخت تنظیم مجدد از طریق پین RTS...

اگر شما با استفاده از یک ESP32 اجرا میشه به جای. دوباره جایگزین .bin فایل در پایان با MicroPython دودویی شما دریافت شده است.

~$ esptool.py --تراشه esp32 --port /dev/مس.wchusbserial14630 write_flash -z 0x1000 /کاربران/کالی/محبوبیت/esp32-idf3-20191220-v1.12.بن

هنگامی که آن را انجام داده, درخشان, تایید می کنند که این کار با استفاده از دستور زیر. اگر خروجی مشابه شما خوب هستید. اگر شما هیچ چیز را نمی بینم ضربه را وارد کنید چند بار به زور آن را به عمل.

~$ صفحه نمایش /dev/مس.wchusbserial14630 115200 MicroPython v1.12 در 2019-12-20; ESP ماژول با ESP8266
نوع "کمک()" برای اطلاعات بیشتر.
>>>

مرحله 5: نصب Jupyter نوت بوک

در حال حاضر ما نیاز به Jupyter نوت بوک در کامپیوتر ما وب برنامه ما خواهید بود با استفاده از به طور مستقیم کنترل موتور, رله, سنسور و سایر قطعات. اگر شما در حال حاضر آن نصب شده است جست و خیز به مرحله 6 به هسته است. در غیر این صورت خود را ارتقاء pip نصب و راه اندازی:

~$ python3 -m pip install --ارتقاء پیپ جمع آوری ستاره دانلود پیپ-20.1.1-py2.py3-هیچ کدام-هر.whl (1.5 MB) |████████████████████████████████| 1.5 MB 935 kB/s
نصب و جمع آوری بسته های: پیپ
با موفقیت نصب pip-20.1.1

سپس نصب Jupyter نوت بوک با:

~$ python3 -m pip نصب jupyter جمع آوری jupyter با استفاده از کش jupyter-1.0.0-py2.py3-هیچ کدام-هر.whl (2.7 کیلوبایت)
جمع آوری نوت بوک با استفاده از ذخیره سازی نوت بوک-6.0.3-py3-هیچ کدام-هر.whl (9.7 MB)
جمع آوری qtconsole دانلود qtconsole-4.7.5-py2.py3-هیچ کدام-هر.whl (118 kB) |████████████████████████████████| 118 kB 907 kB/s
جمع آوری ipykernel دانلود ipykernel-5.3.3-py3-هیچ کدام-هر.whl (120 kB) |████████████████████████████████| 120 kB 11.7 MB/s
جمع آوری ipywidgets با استفاده از کش ipywidgets-7.5.1-py2.py3-هیچ کدام-هر.whl (121 kB)
جمع آوری nbconvert با استفاده از کش nbconvert-5.6.1-py2.py3-هیچ کدام-هر.whl (455 kB)
جمع آوری jupyter-کنسول با استفاده از کش jupyter_console-6.1.0-py2.py3-هیچ کدام-هر.whl (21 kB)
مورد نیاز در حال حاضر راضی: nbformat در /usr/lib/python3/dist-بسته (از نوت بوک->jupyter) (5.0.7)
مورد نیاز در حال حاضر راضی: گردباد>=5.0 در /usr/lib/python3/dist-بسته (از نوت بوک->jupyter) (5.1.1)
جمع آوری Send2Trash با استفاده از کش Send2Trash-1.5.0-py3-هیچ کدام-هر.whl (12 kB)
مورد نیاز در حال حاضر راضی: jupyter هسته ای>=4.6.1 در /usr/lib/python3/dist-بسته (از نوت بوک->jupyter) (4.6.3)
جمع آوری jupyter-مشتری>=5.3.4 دانلود jupyter_client-6.1.6-py3-هیچ کدام-هر.whl (108 kB) |████████████████████████████████| 108 kB 2.2 MB/s
مورد نیاز در حال حاضر راضی: traitlets>=4.2.1 در /usr/lib/python3/dist-بسته (از نوت بوک->jupyter) (4.3.3)
جمع آوری prometheus-مشتری دانلود prometheus_client-0.8.0-py2.py3-هیچ کدام-هر.whl (53 kB) |████████████████████████████████| 53 kB 1.9 MB/s
مورد نیاز در حال حاضر راضی: ipython-genutils در /usr/lib/python3/dist-بسته (از نوت بوک->jupyter) (0.2.0)
جمع آوری pyzmq>=17 دانلود pyzmq-19.0.1-cp38-cp38-manylinux1_x86_64.whl (1.1 MB) |████████████████████████████████| 1.1 MB 9.9 MB/s
مورد نیاز در حال حاضر راضی: jinja2 در /usr/lib/python3/dist-بسته (از نوت بوک->jupyter) (2.10.1)
جمع آوری terminado>=0.8.1 با استفاده از کش terminado-0.8.3-py2.py3-هیچ کدام-هر.whl (33 kB)
مورد نیاز در حال حاضر راضی: pygments در /usr/lib/python3/dist-بسته (از qtconsole->jupyter) (2.3.1)
جمع آوری qtpy با استفاده از کش QtPy-1.9.0-py2.py3-هیچ کدام-هر.whl (54 kB)
مورد نیاز در حال حاضر راضی: ipython>=5.0.0 در /usr/lib/python3/dist-بسته (از ipykernel->jupyter) (7.13.0)
جمع آوری widgetsnbextension~=3.5.0 با استفاده از کش widgetsnbextension-3.5.1-py2.py3-هیچ کدام-هر.whl (2.2 MB)
جمع آوری testpath با استفاده از کش testpath-0.4.4-py2.py3-هیچ کدام-هر.whl (163 kB)
مورد نیاز در حال حاضر راضی: mistune<2,>=0.8.1 در /usr/lib/python3/dist-بسته (از nbconvert->jupyter) (0.8.4)
جمع آوری pandocfilters>=1.4.1 با استفاده از کش pandocfilters-1.4.2.tar.gz (14 kB)
جمع آوری bleach دانلود bleach-3.1.5-py2.py3-هیچ کدام-هر.whl (151 kB) |████████████████████████████████| 151 kB 1.3 MB/s
جمع آوری entrypoints>=0.2.2 با استفاده از کش entrypoints-0.3-py2.py3-هیچ کدام-هر.whl (11 kB)
جمع آوری defusedxml با استفاده از کش defusedxml-0.6.0-py2.py3-هیچ کدام-هر.whl (23 kB)
مورد نیاز در حال حاضر راضی: فوری-جعبه ابزار!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 در /usr/lib/python3/dist-بسته (از jupyter-کنسول->jupyter) (3.0.5)
مورد نیاز در حال حاضر راضی: python-dateutil>=2.1 در /usr/lib/python3/dist-بسته (از jupyter-مشتری>=5.3.4->نوت بوک->jupyter) (2.8.1)
جمع آوری ptyprocess; os_name != "nt" با استفاده از کش ptyprocess-0.6.0-py2.py3-هیچ کدام-هر.whl (39 kB)
مورد نیاز در حال حاضر راضی: pexpect در /usr/lib/python3/dist-بسته (از ipython>=5.0.0->ipykernel->jupyter) (4.6.0)
مورد نیاز در حال حاضر راضی: webencodings در /usr/lib/python3/dist-بسته (از سفید کننده->nbconvert->jupyter) (0.5.1)
مورد نیاز در حال حاضر راضی: بسته بندی در /usr/lib/python3/dist-بسته (از سفید کننده->nbconvert->jupyter) (20.3)
مورد نیاز در حال حاضر راضی: شش>=1.9.0 در /usr/lib/python3/dist-بسته (از سفید کننده->nbconvert->jupyter) (1.14.0)
ساختمان چرخ برای جمع آوری بسته های: pandocfilters ساختمان چرخ برای pandocfilters (setup.py) ... انجام می شود ایجاد شده چرخ برای pandocfilters: filename=pandocfilters-1.4.2-py3-هیچ کدام-هر.whl size=7856 sha256=d120576d72839490baf2013615ee01ad685c9e81b3a8f3068b4597432d8a6b36 ذخیره شده در دایرکتوری: /خانه/کالی/.کش/پیپ/چرخ/f6/08/65/e4636b703d0e870cd62692dafd6b47db27287fe80cea433722
با موفقیت ساخته شده است pandocfilters
نصب و جمع آوری بسته های: pyzmq, jupyter-مشتری ipykernel, Send2Trash, testpath, pandocfilters سیاه سفید entrypoints, defusedxml, nbconvert تیتان فرزند پاپتوس-مشتری ptyprocess, terminado نوت بوک qtpy, qtconsole, widgetsnbextension, ipywidgets, jupyter-کنسول jupyter
با موفقیت نصب Send2Trash-1.5.0 bleach-3.1.5 defusedxml-0.6.0 entrypoints-0.3 ipykernel-5.3.3 ipywidgets-7.5.1 jupyter-1.0.0 jupyter-مشتری-6.1.6 jupyter-کنسول-6.1.0 nbconvert-5.6.1 نوت بوک-6.0.3 pandocfilters-1.4.2 prometheus-مشتری-0.8.0 ptyprocess-0.6.0 pyzmq-19.0.1 qtconsole-4.7.5 qtpy-1.9.0 terminado-0.8.3 testpath-0.4.4 widgetsnbextension-3.5.1

و ارتقاء Juypter مشتری:

~$ pip3 نصب --ارتقاء jupyter_client مورد نیاز در حال حاضر به تاریخ: jupyter_client در ./.local/lib/python3.8/سایت-بسته (6.1.6)
مورد نیاز در حال حاضر راضی پرش ارتقاء: jupyter هسته ای>=4.6.0 در /usr/lib/python3/dist-بسته (از jupyter_client) (4.6.3)
مورد نیاز در حال حاضر راضی پرش ارتقاء: traitlets در /usr/lib/python3/dist-بسته (از jupyter_client) (4.3.3)
مورد نیاز در حال حاضر راضی پرش ارتقاء: python-dateutil>=2.1 در /usr/lib/python3/dist-بسته (از jupyter_client) (2.8.1)
مورد نیاز در حال حاضر راضی پرش ارتقاء: گردباد>=4.1 در /usr/lib/python3/dist-بسته (از jupyter_client) (5.1.1)
مورد نیاز در حال حاضر راضی پرش ارتقاء: pyzmq>=13 ./.local/lib/python3.8/سایت-بسته (از jupyter_client) (19.0.1)

مرحله 6: نصب Jupyter نوت بوک MicroPython هسته

ما نیاز به نصب MicroPython کرنل برای Jupyter نوت بوک در حال حاضر. ما می توانید آن را از Jupyter MicroPython هسته GitHub مخزن با استفاده از:

~$ git clone https://github.com/goatchurchprime/jupyter_micropython_kernel.git شبیه سازی به 'jupyter_micropython_kernel'...
کنترل از راه دور: شمارش اشیاء: 340 انجام می شود.
کنترل از راه دور: در مجموع 340 (دلتا 0) مورد استفاده مجدد قرار 0 (دلتا 0) بسته-340 مورد استفاده مجدد قرار
دریافت اشیاء: 100% (340/340), 108.88 KiB | 1.25 مگابایت/s انجام می شود.
حل و فصل دلتا: 100% (240/240) انجام می شود.

بعد آن را نصب کنید به Python3 با (استفاده از sudo اگر چیزی را اشتباه می رود):

~$ pip3 نصب -e jupyter_micropython_kernel اخذ file:///home/کالی/jupyter_micropython_kernel
مورد نیاز در حال حاضر راضی: pyserial>=3.4 در /usr/lib/python3/dist-بسته (از jupyter-micropython-kernel==0.1.3) (3.4)
مورد نیاز در حال حاضر راضی: websocket-مشتری>=0.44 و در /usr/lib/python3/dist-بسته (از jupyter-micropython-kernel==0.1.3) (0.53.0)
نصب و جمع آوری بسته های: jupyter-micropython-هسته در حال اجرا setup.py توسعه برای jupyter-micropython-هسته
با موفقیت نصب jupyter-micropython-هسته

در حال حاضر نصب کرنل به Jupyter:

~$ python3 -m jupyter_micropython_kernel.نصب نصب IPython هسته تنظیمات از micropython
/صفحه اصلی/کالی/jupyter_micropython_kernel/jupyter_micropython_kernel/نصب کنید.py:29: DeprecationWarning: به جای نادیده گرفته شده است. نصب kernelspec همیشه جایگزین های موجود و نصب و راه اندازی k.install_kernel_spec(td, 'Micropython' user=user جایگزین=True prefix=پیشوند)
...به /صفحه اصلی/کالی/.local/share/jupyter/دانه/micropython

Jupyter در حال حاضر باید آماده به کار با MicroPython.

گام 7: باز Jupyter نوت بوک

در حال حاضر برای باز کردن رابط وب برای Jupyter نوت بوک استفاده کنید:

~$ jupyter نوت بوک

اگر شما نصب Jupyter نوت بوک را به محلی با استفاده از این به جای:

~$ ~/.local/bin/jupyter-نوت بوک

و یا اضافه کردن export PATH=$PATH:~/.local/bin خود را به ~/.فایل bashrc و سعی کنید jupyter دوباره.

شما ممکن است نیاز به ورودی رمز عبور خود را قبل از اینکه آن را باز کنید. بعد از آن شما باید یک رابط مانند زیر باز در یک مرورگر وب است.

گام 8: باز کردن یک MicroPython Jupyter نوت بوک

برای ایجاد یک MicroPython فایل کلیک بر روی "جدید" را انتخاب کنید و "MicroPython - USB" را به عنوان نوع سند برای ایجاد.

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

گام 9: کنترل موتور خود را از وب

در Jupyter نوت بوک MicroPython فایل زیر استفاده کنید برای اولین بلوک مطمئن شوید که به استفاده از پورت سریال به جای من. پس از آن می گوید: "آماده" پس از آن شروع می شود اتصال شما می توانید ادامه.

%serialconnect به --port=/dev/مس.wchusbserial14630 --baud=115200

در حال حاضر ما دوم, بلوک, بیایید یک کار کوچک برای روشن و خاموش کردن موتور. اول مطمئن شوید که شما واردات از واردات ماشین آلات پین و از زمان واردات خواب. سپس تعریف ارزش "موتور" به عنوان 1 یا درست به آن را روشن و 0 یا غلط به آن را خاموش. برای "خواب" من با استفاده از 0.2 ثانیه برای چه مدت آن را اجرا خواهد کرد زمانی که فعال می شود. شما می توانید دکمه "اجرا" به تماشای آن در عمل است.

از واردات ماشین آلات پین
از زمان واردات خواب
موتور = پین(5 پین.کردن)
موتور.ارزش(1)
خواب(0.2)
موتور.ارزش(0)
خواب(0.2)

شما همچنین می توانید استفاده کنید .در() و یا .خاموش() برای کنترل پین:

موتور.در()
خواب(0.2)
موتور.خاموش()
خواب(0.2)

اگر شما می خواهید به حلقه چیزهایی که ما می توانیم شروع به استفاده های مختلف پایتون ساختارهای داده است که واقعا سرگرم کننده و آسان است که نیاز نیست و هر از چیزهای که Arduino IDE می کند. پس بیایید ببینیم که اگر ما می توانیم فقط موتور روشن و خاموش برای 10 بار در یک ردیف:

از زمان واردات خواب
برای من در محدوده(10):
موتور.در()
خواب(0.5)
موتور.خاموش() خواب(0.5)

اگر شما می خواهید برای جلوگیری از کد خود را, شما همیشه می توانید دکمه توقف نماد و اگر آن را فقط نگه می دارد در حال اجرا, شما می توانید فشار دهید که به قطع آن می شود و قادر به ارائه کد جدید

اگر شما یک مبتدی هستید و یا کسی که در حال حاضر می داند که کمی از پایتون MicroPython است که احتمالا بهترین راه برای شروع تعامل با الکترونیک از لپ تاپ خود را — در حال چرخش موتور درخشان لیزر و انجام تمام انواع چیزهای جالب دیگر.

می خواهید شروع به ساختن پول به عنوان یک کلاه سفید هکر? پرش شروع خود را-کلاه سفید هک حرفه ای با ما 2020 حق بیمه هک اخلاقی, گواهینامه آموزشی از بسته نرم افزاری جدید Null Byte فروشگاه و دریافت بیش از 60 ساعت آموزش از هک اخلاقی حرفه ای است.

خرید در حال حاضر (90 درصد تخفیف) >

تصویر پوشش از طریق Retia/Null Byte


tinyurlis.gdclck.ruulvis.netshrtco.de
آخرین مطالب
مقالات مشابه
نظرات کاربرن