Mục lục:

MicroPython IoT Rover dựa trên WEMOS D1 (ESP-8266EX): 7 bước (có hình ảnh)
MicroPython IoT Rover dựa trên WEMOS D1 (ESP-8266EX): 7 bước (có hình ảnh)

Video: MicroPython IoT Rover dựa trên WEMOS D1 (ESP-8266EX): 7 bước (có hình ảnh)

Video: MicroPython IoT Rover dựa trên WEMOS D1 (ESP-8266EX): 7 bước (có hình ảnh)
Video: Điểm danh sinh viên dựa trên RFID sử dụng ESP8266 NodeMCU với Website và Database MySQL - VDLapTrinh 2024, Tháng mười một
Anonim
Image
Image
MicroPython IoT Rover dựa trên WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover dựa trên WEMOS D1 (ESP-8266EX)

** Cập nhật: Tôi đã đăng một video mới cho v2 với một cây thương **

Tôi tổ chức các hội thảo về Robot cho trẻ nhỏ và tôi luôn tìm kiếm các nền tảng kinh tế để xây dựng các dự án hấp dẫn. Mặc dù các bản sao của Arduino rẻ nhưng nó sử dụng ngôn ngữ C / C ++ mà trẻ em không quen thuộc. Ngoài ra, nó không có WiFi tích hợp sẵn cho các dự án IoT. Mặt khác, mặc dù Raspberry Pi có WIFI và trẻ em có thể lập trình nó bằng Python, nhưng nó vẫn là một nền tảng đắt tiền để chỉ cần điều khiển một vài cổng GPIO để bật và tắt thiết bị. Tôi cần một cái gì đó ở giữa có cả khả năng WIFI và Python. Có vẻ như tôi đã tìm thấy câu trả lời của mình trong MicroPython trên một bảng mạch dựa trên ESP8266 giá rẻ.

Micropython là gì?

Theo trang web của mình, MicroPython là một triển khai gọn gàng và hiệu quả của các ngôn ngữ lập trình Python 3 bao gồm một tập hợp con nhỏ của thư viện chuẩn Python và nó được tối ưu hóa để chạy trên vi điều khiển và trong môi trường hạn chế (chẳng hạn như ESP8266). Về cơ bản nó là Python IDE trên một con chip. Một lợi ích chính là bạn có thể tạo mã và thay đổi mã nhanh chóng bằng cách sử dụng ứng dụng khách trình duyệt web có tên là Webrepl. (Hãy thử làm điều đó trong Arduino.) Bạn cũng có thể xem dữ liệu cảm biến trong thời gian thực trên Webrepl thay vì dựa vào ghi dữ liệu hoặc màn hình LED trong Arduino.

ESP8266 là gì?

Tóm lại, hãy nghĩ về nó như một Arduino với khả năng kết nối mạng tích hợp. Bạn có thể sử dụng Arduino IDE để lập trình bo mạch ESP8266 bằng C / C ++ hoặc bạn có thể flash nó bằng NodeMCU hoặc MicroPython. Trong dự án này, tôi sẽ cài đặt MicroPython lên bảng ESP8266.

Tôi quyết định chọn WEMOS D1 dựa trên ESP8266-12EX cho dự án đơn giản này, nơi tôi sẽ điều hướng một chiếc xe 2WD bằng trình duyệt web. Có những bảng khác được thiết kế cho MicroPython nhưng tôi muốn một thứ gì đó rẻ tiền mà tôi có thể vứt đi nếu nó không đáp ứng tiêu chí của tôi. Như mong đợi, nó đáp ứng tất cả các yêu cầu của tôi và rất có thể tôi sẽ kết hợp WeMos và Micropython vào các dự án trong tương lai.

Bước 1: Các bộ phận

Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận
  • Wemos D1 hoặc bất kỳ bo mạch dựa trên ESP8266 nào
  • Tấm chắn động cơ (Tôi đang sử dụng L293D giá rẻ của AliExpress)
  • Giá đỡ pin cho 4 x AA và 9V (4 x pin AA dành cho động cơ và 9V dành cho bo mạch Wemos)
  • Khung gầm xe 2WD
  • Cáp Dupont

Có thể cần mỏ hàn, tua vít và súng bắn keo để ghép mọi thứ lại với nhau.

Bước 2: Lắp ráp phần cứng

Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng

Đầu tiên, lắp ráp khung xe theo hướng dẫn.

Sau đó, keo nóng các thành phần khác như hình.

Dây động cơ nên được hàn vào các đầu cuối của động cơ và sử dụng keo nóng để gia cố các mối nối đầu cuối.

Gắn một công tắc nhỏ vào ngăn chứa pin 4AA. Thao tác này sẽ bật / tắt nguồn cho tấm chắn động cơ.

Bước 3: Đấu dây

Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây

Làm theo sơ đồ đấu dây của tôi như được hiển thị.

Wemos đến Motor Shield:

D1 IN2

D2 IN1 D3 IN4 ** bỏ qua D4 D5 IN3 GND -> GND

Tấm chắn động cơ đến động cơ / nguồn:

Một thiết bị đầu cuối -> Động cơ bên trái

Đầu cuối B -> Động cơ phải VCC -> Pin (+) GND -> Pin (-)

Bước 4: Cài đặt MicroPython

Đầu tiên, Wemos có một chip nối tiếp / USB dựa trên CH304G. Đây là con chip tương tự được tìm thấy trong các bản sao Arduino rẻ tiền và bạn phải cài đặt trình điều khiển thích hợp cho Mac hoặc PC. Làm theo hướng dẫn trên trang web này để cài đặt trình điều khiển.

Kết nối Wemos với máy tính của bạn và xác nhận rằng máy tính của bạn có thể phát hiện ra Wemos. Trên Mac, hãy chạy lệnh sau và bạn sẽ thấy một thiết bị có tên /dev/tty.wchusbserial640.

$ ls -lt / dev / tty * | cái đầu

crw-rw-rw- 1 root wheel 17, 4 tháng 3 2 23:31 /dev/tty.wchusbserial640

Nếu bạn đang sử dụng PC, bạn có thể sử dụng Tài liệu hướng dẫn này làm tài liệu tham khảo.

Tiếp theo, bạn sẽ cần thiết lập Python 2 hoặc 3 trên máy tính của mình vì công cụ flash, esptool.py, dựa trên Python. Mặc dù hướng dẫn MicroPython có thể nói rằng công cụ chỉ hoạt động với Python 2.7, nhưng tôi đã có thể chạy nó trong Python 3 mà không gặp bất kỳ vấn đề nào. Tải xuống Python mới nhất từ https://www.python.org và làm theo hướng dẫn cài đặt cho PC hoặc Mac của bạn.

Cuối cùng, bạn sẽ cần cài đặt MicroPython trên Wemos. Trang MicroPython có một hướng dẫn tuyệt vời về cách thiết lập MicroPython trên ESP8266. Chỉ cần làm theo hướng dẫn cài đặt trong Bắt đầu với MicroPython trên ESP8266.

Dưới đây là các lệnh tôi đã sử dụng:

$ esptool.py --port /dev/tty.wchusbserial640 delete_flash

esptool.py v1.3 Đang kết nối…. Đang chạy sơ khai flash Cesanta… Xóa flash (quá trình này có thể mất một lúc)… Quá trình xóa mất 10,5 giây

$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108-v1.8.7.bin

esptool.py v1.3 Đang kết nối…. Đang chạy sơ khai của bộ nhấp nháy Cesanta… Các thông số flash được đặt thành 0x0240 Đã viết 589824 byte ở 0x0 trong 50,8 giây (92,8 kbit / s)… Đang rời khỏi…

MicroPython hiện đã được cài đặt trên bảng của bạn!

Bước 5: Thiết lập mạng

Thiết lập mạng
Thiết lập mạng

Mặc dù MicroPython hiện đã được cài đặt trên Wemos của bạn nhưng nó vẫn chưa được kết nối với mạng của bạn. Trước tiên, bạn cần kích hoạt mạng. Trên Mac, thực hiện lệnh SCREEN để bắt đầu phiên đầu cuối nối tiếp tới Wemos.

$ screen /dev/tty.wchusbserial640 115200

Khi bạn thấy màn hình trống, hãy nhấn QUAY LẠI để xem lời nhắc:

>>

(Lưu ý: Để thoát, hãy nhập CTRL-A CTRL- )

Bây giờ, hãy kích hoạt quyền truy cập webclient. Gõ "import webrepl_setup" để chạy chương trình thiết lập. Nhập E để bật WebREPL và sau đó đặt mật khẩu. Khởi động lại để kích hoạt các thay đổi.

>> nhập webrepl_setup

Trạng thái tự động khởi động trình nền WebREPL: bị vô hiệu Bạn có muốn (E) điều khiển hoặc (D) có thể chạy khi khởi động không? (Dòng trống để thoát)> E Để bật WebREPL, bạn phải đặt mật khẩu cho nó Mật khẩu mới: xxxxx Xác nhận mật khẩu: xxxxx Các thay đổi sẽ được kích hoạt sau khi khởi động lại Bạn có muốn khởi động lại ngay bây giờ không? (y / n) y

Cuối cùng, tải ứng dụng Webrepl xuống máy của bạn. Đây là tùy chọn nhưng máy khách đi kèm với các công cụ hữu ích khác mà bạn có thể muốn sử dụng sau này. Ví dụ: webrepl_cli.py là lệnh sao chép tệp vào Wemos theo cú pháp giống scp. Sử dụng git để tải xuống ứng dụng khách. (Cài đặt công cụ git nếu bạn chưa có.)

git clone

Mở trình duyệt web của bạn và trên trường URL, nhập vị trí của vị trí tệp khách hàng webrepl đã tải xuống của bạn, chẳng hạn như:

tệp: ///Users/xxxxx/wemos/webrepl/webrepl.html

Điều này sẽ hiển thị ứng dụng webrepl trên trình duyệt của bạn. Trước khi bạn có thể kết nối với nó, trước tiên bạn phải kết nối với Điểm truy cập WIFi của nó. Nếu bạn nhìn vào WIFI khả dụng cho máy tính của mình, bạn sẽ thấy một mạng bắt đầu bằng MicroPython-xxxx. Kết nối với mạng đó. (Cảnh báo: Sau khi kết nối với mạng đó, bạn sẽ mất quyền truy cập Internet.)

Quay lại ứng dụng webrepl của bạn và nhấp vào Kết nối. Nó sẽ nhắc nhập mật khẩu. Nhập mật khẩu Wemos của bạn và bạn sẽ kết nối.

Chào mừng bạn đến với MicroPython!

Mật khẩu: Đã kết nối WebREPL >>>

Wemos của bạn vẫn đang chạy ở Chế độ AccessPoint. Mặc dù điều này là OK, nhưng tôi thích nó chạy ở Chế độ Trạm nơi nó kết nối với WIFI gia đình của tôi để máy tính của tôi có thể truy cập nó thông qua WIFI gia đình và vẫn có thể truy cập Internet. Để làm điều đó, bạn sẽ phải tạo một tệp có tên boot.py với cấu hình mạng và tải nó lên Wemos.

Đây là một mẫu boot.py. Thay đổi ssid và mật khẩu cho mạng WIFI gia đình của bạn. Ngoài ra, tôi muốn cấp cho nó một IP tĩnh là 192.168.0.32. Thay đổi nó thành địa chỉ IP có sẵn của WIFI tại nhà của bạn.

boot.py (bạn có thể tải xuống từ bên dưới)

nhập gc

import webrepl def do_connect (): import network sta_if = network. WLAN (network. STA_IF) nếu không sta_if.isconnected (): print ('đang kết nối với mạng…') sta_if.active (True) sta_if.ifconfig (('192.168. 0.32 ',' 255.255.255.0 ',' 192.168.0.1 ',' 192.168.0.1 ')) sta_if.connect (' ',' ') khi không sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Sử dụng biểu mẫu "Gửi tệp" của ứng dụng khách Webrepl để gửi tệp boot.py tới Wemos của bạn. Nhấn nút đặt lại để khởi động lại. Nếu bạn vẫn kết nối qua USB bằng lệnh SCREEN, bạn sẽ thấy:

kết nối với mạng… cấu hình mạng: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Trình nền WebREPL bắt đầu trên ws: //192.168.4.1: 8266 Trình nền WebREPL bắt đầu trên ws: //192.168.0.32: 8266 Webrepl đã khởi động ở chế độ bình thường không thể mở tệp 'main.py' để đọc MicroPython v1.8.7-7-gb5a1a20a3 vào ngày 2017-01-09; Mô-đun ESP với ESP8266 Nhập "help ()" để biết thêm thông tin. >>>

Điều này xác nhận rằng Wemos của bạn được kết nối với WIFI gia đình của bạn bằng địa chỉ ipad là 192.168.0.32.

Bạn có thể ping địa chỉ IP đó để xác thực.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 byte dữ liệu

64 byte từ 192.168.0.32: icmp_seq = 0 ttl = 255 time = 9.334 ms. 64 byte từ 192.168.0.32: icmp_seq = 1 ttl = 255 time = 11.071 ms..

Bước 6: Cài đặt chương trình chính

Cài đặt chương trình chính
Cài đặt chương trình chính
Cài đặt chương trình chính
Cài đặt chương trình chính

Cuối cùng, bạn sẽ cần cài đặt chương trình chính sẽ tiếp tục chạy trên Wemos của bạn.

Quay lại trình duyệt web của bạn và chạy chương trình ứng dụng khách webrepl. Thay đổi địa chỉ ip thành địa chỉ IP Wemos của bạn. Trong trường hợp của tôi, bây giờ là 192.168.0.32. Nhập mật khẩu Wemos của bạn và bây giờ bạn sẽ được kết nối với Wemos.

Hãy tải lên chương trình main.py đính kèm. Tải tệp đính kèm xuống máy tính của bạn. Nhấp vào Chọn tệp để chọn main.py đã tải xuống và nhấp vào Đã gửi tới thiết bị.

Bạn sẽ cần nhấn nút Rest để tải chương trình main.py. Sau khi nhấn nút Đặt lại, bạn sẽ thấy:

kết nối với mạng…

cấu hình mạng: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

WebREPL daemon bắt đầu trên ws: //192.168.4.1: 8266 WebREPL daemon bắt đầu trên ws: //192.168.0.32: 8266 Đã khởi động webrepl ở chế độ bình thường Đang nghe, hãy kết nối trình duyệt của bạn với…

Điều này có nghĩa là chương trình main.py của bạn đã được kích hoạt và liệt kê đến cổng 80.

Để kiểm tra, hãy mở trình duyệt web của bạn và nhập

Điều này sẽ hiển thị màn hình điều khiển ô tô như trong video. Nếu dây của bạn được kết nối đúng cách, các nút điều khiển sẽ gửi tín hiệu thích hợp đến các cổng GPIO của bạn để di chuyển xe.

Bước 7: Cải tiến trong tương lai

Những việc cần làm sau đây nằm trong danh sách v2 của tôi:

  • Sử dụng PWM để điều khiển tốc độ động cơ
  • Cải thiện giao diện web. Có lẽ sử dụng khuôn khổ aREST. Tôi không tin rằng lib aREST có sẵn trên MicroPython vào lúc này, vì vậy tôi có thể phải hack nó.

Cảm ơn bạn đã đọc hướng dẫn này. Hãy theo dõi tôi trên Facebook, Youtube, và các bảng hướng dẫn để biết thêm các dự án khác trong tương lai.

Đề xuất: