Tôi có một thiết bị có cáp cổng nối tiếp USB mà tôi muốn kết nối với Raspberry Pi của mình. Chipset cho USB nối tiếp này là PL-2303 của Prolific Technology, Inc.
Làm cách nào tôi có thể đọc dữ liệu từ kết nối nối tiếp của thiết bị này bằng Python?
Tôi có một thiết bị có cáp cổng nối tiếp USB mà tôi muốn kết nối với Raspberry Pi của mình. Chipset cho USB nối tiếp này là PL-2303 của Prolific Technology, Inc.
Làm cách nào tôi có thể đọc dữ liệu từ kết nối nối tiếp của thiết bị này bằng Python?
Câu trả lời:
Để nói chuyện với một thiết bị nối tiếp bằng Python, hãy sử dụng mô-đun pyserial. Nếu nó không có sẵn trong bản phân phối của bạn, nó có thể được cài đặt bằng cách lấy một bản sao của nguồn từ trang dự án pyserial và chạy "python setup.py install"
Các ví dụ đơn giản về việc sử dụng pyserial có sẵn trong phần giới thiệu ngắn .
Mô-đun cho PL-2303 có sẵn theo mặc định - xem kho lưu trữ phần mềm GitHub - khi bạn cắm thiết bị vào, bạn sẽ thấy thiết bị khởi động /var/log/messages
. Tôi đã kết nối với Arduino và "chỉ hoạt động" trên cổng giao tiếp /dev/ttyUSB0
(thiết bị khác, trình điều khiển, chipset, v.v., vì vậy số dặm của bạn có thể thay đổi ).
PL-2303 được hỗ trợ tốt và nó sẽ xuất hiện dưới dạng /dev/ttyUSBx
. Không cần trình điều khiển. Đọc nó như bất kỳ cổng nối tiếp bình thường. Tôi chưa sử dụng Python, nhưng trong C ++, tôi mở () nó ở chế độ không chặn, chọn () để xem có dữ liệu nào được đọc không, sau đó thực hiện đọc ().
Tải xuống pySerial ( https://pypi.python.org/pypi/pyserial )
wget http://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz?raw=true -O pyserial-2.7.tar.gz
tar -xzf pyserial-2.7.tar.gz
cd pyserial-2.7
sudo python setup.py install
Bạn có thể kiểm tra tính khả dụng của ttyUSB với dòng
ls -ltr /dev|grep -i ttyUSB
Để xem đầu ra nối tiếp sử dụng
tail -f /dev/ttyUSB<NUMBER FROM ABOVE>
Để thoát ra crtl + c
Tạo một tệp testserial.py dán mã này
#!/usr/bin/python
from time import sleep
import serial
# Establish the connection on a specific port
ser = serial.Serial('/dev/ttyUSB0', 9600)
x = 1 while True:
print ser.readline() # Read the newest output
x += 1
Hướng dẫn tuyệt vời cho điều đó:
http://www.digitalmihailo.com/post/usb-programming-with-python-on-linux
Một nguồn thông tin có giá trị là http://www.lvr.com/usbc.htm Hoàn thành