lap trinh MicroPython-1

Điều duy nhất tốt hơn so với lập trình MicroPython là lập trình MicroPython qua Wi-Fi. Vì vậy, khi bạn thiết lập MicroPython trên vi điều khiển và có nguồn điện riêng, bạn sẽ không cần sử dụng cáp dữ liệu để kết nối với nó bất cứ khi nào bạn cần tương tác với nó, lập trình, tải lên tệp hoặc lấy dữ liệu.

Giao diện REPL của MicroPython rất đơn giản, điều này làm cho nó trở thành một lựa chọn hấp dẫn cho bảng ESP8266 hoặc EP32, và giao diện WebREPL thậm chí còn thuận tiện hơn. Sau khi thiết lập mọi thứ ban đầu, bạn có thể kết nối và điều khiển bảng qua điểm truy cập Wi-Fi của nó, sau đó lập trình hoặc tải lên mã từ ứng dụng web tiện dụng.

Những gì bạn cần

Để bắt đầu với lập trình MicroPython trên một vi điều khiển thông qua Wi-Fi, bạn sẽ cần một ESP8266 hoặc ESP32 hội đồng phát triển với Wi-Fi, chẳng hạn như một trong những:

  • D1 Mini ESP8266
  • NodeMCU ESP8266
  • D1 Mini ESP32
  • NodeMCU ESP32

Bạn cũng sẽ cần cáp Micro-USB để kết nối bo mạch của bạn với máy tính Linux, macOS hoặc Windows. Mặc dù chúng tôi sẽ sử dụng MCU qua Wi-Fi, nhưng nó sẽ cần được thiết lập trước, vì vậy chúng tôi cần một cáp để kết nối qua giao diện nối tiếp. Sau đó, nếu bạn muốn bo mạch của mình được cấp nguồn độc lập sau này, bạn có thể làm như vậy và cách dễ nhất là với bộ chuyển đổi 5 volt. Và để bảo vệ chân của bảng của bạn, bạn có thể lấy một bảng mạch tùy chọn.

  • Cáp micro-USB (để thiết lập mọi thứ)
  • Bộ đổi nguồn 5 V (nếu cấp nguồn qua cổng Micro-USB sau)
  • Bánh mì không hàn (để bảo vệ chân của bảng)

Ngoài phần cứng, bạn cũng sẽ cần cài đặt ESPtool trên hệ thống của mình. Nếu bạn đã làm theo hướng dẫn của chúng tôi về việc bắt đầu với MicroPython cho vi điều khiển , bạn đã có nó. Nếu không, hãy xem Bước 1 ở đó để cài đặt nó.

Bước 1 Xác định Cổng nối tiếp đúng

Trước tiên, chúng ta cần tìm địa chỉ nối tiếp cho EPS8266, vì vậy hãy cắm bảng của bạn vào máy tính của bạn, sau đó chạy lệnh để xem cổng nối tiếp nào được kết nối.

Trên máy tính Linux, giống như máy tính sử dụng Kali, hãy sử dụng cách sau để tìm cổng của thiết bị ESP8266 được kết nối của bạn. Từ kết quả của tôi, nó sẽ là /dev/cu.wchusbserial14630.

~$ dmesg | grep tty

/dev/cu.Bluetooth-Incoming-Port
/dev/cu.SOC
/dev/cu.wchusbserial14630
/dev/cu.MALS
/dev/cu.usbserial-14630

Trên máy Mac, sử dụng như sau để thay thế.

~% ls /dev/cu.*

/dev/cu.Bluetooth-Incoming-Port
/dev/cu.SOC
/dev/cu.wchusbserial14630
/dev/cu.MALS
/dev/cu.usbserial-14630

Trên Windows, bạn sẽ cần mở Trình quản lý thiết bị để tìm cổng COM trong thư mục “Cổng (COM & LPT)”. Chúng tôi sẽ không hiển thị bất kỳ bước nào của Windows bên dưới, vì vậy nếu bạn đang sử dụng Windows và không thể tìm ra quy trình, hãy đưa ra các nhận xét và chúng tôi sẽ cố gắng điều khiển bạn đi đúng hướng.

Bây giờ, một lần nữa, địa chỉ nối tiếp phù hợp với tôi trên Kali hoặc macOS sẽ là /dev/cu.wchusbserial14630, mặc dù cũng có /dev/cu.usbserial-14630 liên quan đến ESP8266. Nếu bạn nhìn thấy hai, luôn luôn sử dụng một với “wch” trong đó.

Để biết chắc chắn nếu đó là cho ESP8266 của bạn, bạn có thể rút phích cắm bảng và chạy lại lệnh để thấy sự khác biệt. Nếu bạn cắm bảng trở lại vào một cổng khác, hãy đảm bảo chạy lại lệnh để lấy địa chỉ mới.

Địa chỉ tìm thấy sẽ là địa chỉ chúng tôi sử dụng khi ban hành lệnh.

Bước 2 Tải xuống nhị phân MicroPython mới nhất

Để có được MicroPython trên bộ vi điều khiển của bạn, trước tiên bạn sẽ phải tải xuống phần sụn mới nhất dựa trên bảng bạn đang sử dụng. Truy cập trang tải xuống của MicroPython , tìm bảng của bạn và tải xuống tệp. Tôi đang sử dụng một chiếc ESP8266, vì vậy tôi sẽ sử dụng cái đó . Nhưng nếu bạn đang sử dụng một chiếc ESP32, hãy đảm bảo tải xuống cái đó thay thế . Khi bạn chọn bảng của mình, hãy chọn tệp .bin để phát hành ổn định mới nhất.

Bước 3 Xóa bảng & Flash MicroPython

Để đảm bảo không có trục trặc khi flash MicroPython vào MCU của bạn, trước tiên hãy xóa bảng. Sử dụng lệnh dưới đây để làm như vậy, thay thế cổng nối tiếp của tôi bằng cổng nối tiếp của ESP của bạn.

~$ esptool.py --port /dev/cu.wchusbserial14630 erase_flash

esptool.py v2.8
Serial port /dev/cu.wchusbserial14140
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 2c:f4:32:4b:07:83
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...

Sau đó, nếu bạn đang sử dụng một vi điều khiển ESP8266, hãy chạy lệnh sau để flash MicroPython qua nó. Thay thế tệp .bin ở cuối bằng tệp nhị phân MicroPython bạn đã tải xuống.

~$ esptool.py --port /dev/cu.wchusbserial14630 --baud 460800 write_flash --flash_size=detect 0 /Users/kali/Downloads/esp8266-20191220-v1.12.bin

esptool.py v2.8
Serial port /dev/cu.wchusbserial14630
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 2c:f4:32:4b:07:83
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0040
Compressed 617880 bytes to 402086...
Wrote 617880 bytes (402086 compressed) at 0x00000000 in 9.6 seconds (effective 514.5 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Nếu bạn đang sử dụng ESP32, hãy chạy lệnh sau. Một lần nữa, thay thế tệp .bin ở cuối bằng tệp nhị phân MicroPython mà bạn đã tải xuống.

~$ esptool.py --chip esp32 --port /dev/cu.wchusbserial14630 write_flash -z 0x1000 /Users/kali/Downloads/esp32-idf3-20191220-v1.12.bin

Khi nó nhấp nháy xong, bạn có thể xác nhận rằng nó hoạt động bằng lệnh sau. Nếu đầu ra tương tự, bạn tốt. Nếu bạn không thấy gì, hãy nhấn Enter một vài lần nữa để buộc nó thành hành động.

~$ screen /dev/cu.wchusbserial14630 115200

MicroPython v1.12 on 2019-12-20; ESP module with ESP8266
Type "help()" for more information.
>>>

Bước 4 Tải xuống WebREPL

Trong hướng dẫn khác của chúng tôi, chúng tôi đã trình bày cách sử dụng REPL (đọc, đánh giá, in vòng lặp), giao diện dòng lệnh cho MicroPython trên bảng. Điều đó đòi hỏi chúng tôi phải kết nối qua cáp, nhưng cũng có WebREPL, không yêu cầu dây. Bạn có thể tải xuống WebREPL qua GitHub (https://github.com/micropython/webrepl )bằng lệnh bên dưới hoặc bạn có thể truy cập phiên bản WebREPL trực tuyến.

~$ git clone https://github.com/micropython/webrepl.git

Cloning into 'webrepl'...
remote: Enumerating objects: 186, done.
remote: Total 186 (delta 0), reused 0 (delta 0), pack-reused 186
Receiving objects: 100% (186/186), 75.12 KiB | 1.06 MiB/s, done.
Resolving deltas: 100% (109/109), done.

Bây giờ, thay đổi vào thư mục đó và liệt kê các tập tin của nó. Bạn sẽ thấy tệp “webrepl.html”. Đó là những gì bạn sẽ mở để bắt đầu liên lạc với hội đồng quản trị của bạn. Nhưng chưa mở nó – chúng ta phải thiết lập WebREPL trên bảng trước.

~$ cd webrepl
~/webrepl$ ls

FileSaver.js  README.md  webrepl_cli.py  websocket_helper.py
LICENSE       term.js    webrepl.html

Bước 5 Kích hoạt WebREPL trong MicroPython

Để đảm bảo bạn có thể kết nối với bảng ESP8266 hoặc ESP32, trước tiên bạn cần định cấu hình WebREPL. Trong cửa sổ terminal mới, sử dụng lại màn hình để kết nối với bảng thông qua cổng nối tiếp. Một lần nữa, thay thế cổng với của bạn.

~$ screen /dev/cu.wchusbserial14630 115200

MicroPython v1.12 on 2019-12-20; ESP module with ESP8266
Type "help()" for more information.
>>>

Tiếp theo, hãy thiết lập WebREPL bằng lệnh sau. Khi được hỏi, nhấn E trên bàn phím của bạn và nhấn Enter để bật nó khi khởi động.

>>> import webrepl_setup

WebREPL daemon auto-start status: disabled

Would you like to (E)nable or (D)isable it running on boot?
(Empty line to quit)
> e

Tiếp theo, bạn cần đặt mật khẩu. Tôi sẽ sử dụng mật khẩu “mật khẩu” siêu mạnh làm ví dụ (tôi hy vọng bạn biết tôi đang đùa ), xác nhận mật khẩu, sau đó nhập Y và Enter để khởi động lại khi bật WebREPL.

To enable WebREPL, you must set password for it
New password (4-9 chars): password
Confirm password: password
Changes will be activated after reboot
Would you like to reboot now? (y/n) y
...
Started webrepl in normal mode

MicroPython v1.12 on 2019-12-20; ESP module with ESP8266
Type "help()" for more information.
>>>

Bước 6 Kết nối với MicroPython qua WebREPL

Trên máy tính của bạn, mở cài đặt Wi-Fi của bạn và kết nối với mạng MicroPython. Mật khẩu để kết nối là micropythoN (đảm bảo ghi nhớ chữ N ở cuối).

Tiếp theo, quay lại thư mục / webrepl của chúng tôi trong cửa sổ terminal khác, mở tệp .html mà bạn đã tìm thấy trước đó. Trong Kali, sử dụng:

~/webrepl$ xdg-open webrepl.html

Trên macOS, chỉ cần sử dụng:

~/webrepl% open webrepl.html

Một cửa sổ trình duyệt sẽ mở với ứng dụng khách WebREPL. Bạn cũng có thể mở phiên bản WebREPL trực tiếp từ bên trong trình duyệt, thay vì qua thiết bị đầu cuối. Khi ứng dụng khách mở, nhấp vào “Kết nối” ở trên cùng bên trái, sau đó nhập mật khẩu bạn đã đặt trước đó, trong trường hợp của tôi là “mật khẩu”.

Kết nối với MicroPython

Bây giờ bạn có thể truy cập giao diện WebREPL cho bảng của mình và tải lên hoặc tải xuống mã. Ở bên phải, bạn có thể “Chọn tệp” để chọn chương trình, sau đó nhấn “Gửi đến thiết bị”. Để nhận tệp từ bảng, hãy sử dụng tùy chọn “Nhận từ thiết bị”.

Để chứng minh rằng bạn có một phiên hoạt động, hãy sử dụng bản in Hello World.

>>> print("Hello World!")

Hello World!

Thật tuyệt, giờ đây rõ ràng là chúng ta có thể thực thi mã Python từ dòng lệnh trên vi điều khiển qua Wi-Fi. Khá tuyệt phải không? Nó không được mã hóa hay bất cứ thứ gì, nhưng đây vẫn là một cách tuyệt vời để lập trình và tải lên các ứng dụng hiện có mà không cần bất kỳ loại cáp nào được kết nối.

Kết nối với MicroPython

Đảm bảo sử dụng mật khẩu mạnh

Giao diện web của MicroPython là một cách tương tác đáng kinh ngạc với một bảng mà nếu không thì đòi hỏi bạn phải có kết nối nối tiếp. Tuy nhiên, thực tiễn tốt nhất được áp dụng khi nói đến bảo mật Wi-Fi

Để lại một bình luận