Kích thước nhỏ và các khía cạnh kết nối của Raspberry Pi Zero W khiến nó trở thành một ứng cử viên tuyệt vời cho các kịch bản IoT Hub. Nó có thể dễ dàng lập trình bằng Python, vì vậy nó có tiềm năng rất lớn. Dự án này chủ yếu giải thích cách cài đặt hệ điều hành Raspbian và Python không đầu bằng cách sử dụng Windows và VS Code. Nó sẽ giúp bạn bắt đầu
Thiết lập Raspberry Pi Zero W
Tải xuống Raspbian Buster Lite để cài đặt không đầu. Nếu bạn muốn phiên bản dành cho máy tính để bàn, vui lòng chọn phiên bản khác
- Khi Ứng dụng khởi động, hãy chọn Raspbian Lite làm HĐH để cài đặt không đầu
- Chọn ổ thẻ SD và bắt đầu cài đặt
- Khi quá trình cài đặt hoàn tất, bạn có thể phải tháo và lắp lại thẻ SD
Có thể truy cập Headless Pi bằng SSH qua WiFi
- Để bật SSH, hãy tạo một tệp trống có tên
ssh
trong thư mục gốc. Ghi chú. Không gia hạn - Đối với kết nối WiFi, hãy tạo tệp
wpa_supplicant.conf
trong thư mục gốc với các nội dung sau được điều chỉnh theo WiFi của bạn - Lưu ý rằng nó phải có kết thúc dòng kiểu Linux. Trong mã VS, có thể thực hiện bằng cách thay đổi CRLF thành LF ở dưới cùng bên phải
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YOUR_SSID"
scan_ssid=1
psk="YOUR_SSID_PASSWORD"
key_mgmt=WPA-PSK
}
Ngoài SSID và mật khẩu, tệp có thể cần một số thay đổi khác. Dưới đây là một số lời khuyên
- Đăng nhập vào cổng WiFi của bạn để xem nó thuộc loại WPA-PSK hay WPA2-PSK
- Nếu là WPA2-PSK, setkey_mgmt=WPA2-PSKKiểm tra cách mã hóa được thực hiện trong cổng thông tin. Nếu là AES, hãy thêm dòng sau vào trước key_mgmtpairwise=CCMP
- Nếu bạn muốn chia sẻ thêm mẹo, vui lòng thêm chúng vào phần bình luận
Vui lòng lưu các tệp cục bộ. Vì tệp wpa_supplicant.conf
có thể cần chỉnh sửa. Và sau khi bạn cắm thẻ SD vào Raspberry Pi Zero và cắm lại vào PC, bạn có thể thấy rằng các tệp bạn tạo đã biến mất. Đó là bình thường
- Cắm thẻ SD của bạn vào Raspberry Pi và kết nối nó với PC bằng cáp USB. Phải mất vài phút để nó khởi động
Mở Terminal trong VS Code bằng Powershell
- Gõ lệnh
ssh pi@raspberrypi.local
- Nếu bạn nhận được phản hồi như không thể tìm thấy máy chủ, một số mẹo khắc phục sự cố được liệt kê ở trên
- Theo mặc định, tên người dùng là pi và mật khẩu là raspberry
- Nếu bạn đăng nhập thành công, quá trình cài đặt ban đầu và kết nối với Wi-Fi đã thành công. ]
Cài đặt Python 3
Trước khi cài đặt Python, bạn có thể muốn đảm bảo rằng hệ điều hành Raspbian đã được cập nhật. Để có được bản cập nhật mới nhất, hãy chạy lệnh sau
Raspbian đi kèm với Python 2. 7. xx đã cài đặt [tại thời điểm viết bài này]. Bạn nên gỡ cài đặt đó và cài đặt Python 3. Để gỡ cài đặt Python 2. 7. xx, hãy chạy các lệnh sau
sudo apt-get remove python
0# import library for GPIO
import RPi.GPIO as GPIO
# print GPIO info
print[GPIO.RPI_INFO]# time library
import time# Port of PIR
pir_port = 14# Setup GPIO mode to Broadcom
GPIO.setmode[GPIO.BCM]# configure the pin as input pin
GPIO.setup[pir_port, GPIO.IN]# do the loop
try:
while [True]:
# if the input is zero, nobody is there at the sensor
if GPIO.input[pir_port] == 0:
print["000"]
else:
# found somebody at the sensor
print["111"]
# wait for 1 sec whether you detect someone or not
time.sleep[1]
# If user presses ^C cleanup the GPIO
except KeyboardInterrupt:
GPIO.cleanup[]
print["Exiting"]
Bây giờ hãy bắt đầu cài đặt Python 3 và các gói cần thiết
1# import library for GPIO
import RPi.GPIO as GPIO
# print GPIO info
print[GPIO.RPI_INFO]# time library
import time# Port of PIR
pir_port = 14# Setup GPIO mode to Broadcom
GPIO.setmode[GPIO.BCM]# configure the pin as input pin
GPIO.setup[pir_port, GPIO.IN]# do the loop
try:
while [True]:
# if the input is zero, nobody is there at the sensor
if GPIO.input[pir_port] == 0:
print["000"]
else:
# found somebody at the sensor
print["111"]
# wait for 1 sec whether you detect someone or not
time.sleep[1]
# If user presses ^C cleanup the GPIO
except KeyboardInterrupt:
GPIO.cleanup[]
print["Exiting"]
2# import library for GPIO
import RPi.GPIO as GPIO
# print GPIO info
print[GPIO.RPI_INFO]# time library
import time# Port of PIR
pir_port = 14# Setup GPIO mode to Broadcom
GPIO.setmode[GPIO.BCM]# configure the pin as input pin
GPIO.setup[pir_port, GPIO.IN]# do the loop
try:
while [True]:
# if the input is zero, nobody is there at the sensor
if GPIO.input[pir_port] == 0:
print["000"]
else:
# found somebody at the sensor
print["111"]
# wait for 1 sec whether you detect someone or not
time.sleep[1]
# If user presses ^C cleanup the GPIO
except KeyboardInterrupt:
GPIO.cleanup[]
print["Exiting"]
0# import library for GPIO
import RPi.GPIO as GPIO
# print GPIO info
print[GPIO.RPI_INFO]# time library
import time# Port of PIR
pir_port = 14# Setup GPIO mode to Broadcom
GPIO.setmode[GPIO.BCM]# configure the pin as input pin
GPIO.setup[pir_port, GPIO.IN]# do the loop
try:
while [True]:
# if the input is zero, nobody is there at the sensor
if GPIO.input[pir_port] == 0:
print["000"]
else:
# found somebody at the sensor
print["111"]
# wait for 1 sec whether you detect someone or not
time.sleep[1]
# If user presses ^C cleanup the GPIO
except KeyboardInterrupt:
GPIO.cleanup[]
print["Exiting"]
Bây giờ bạn đã sẵn sàng để lập trình Raspberry Pi Zero W. Trước khi bạn kết nối mạch của mình, hãy tắt Pi khỏi SSH bằng lệnh sau và ngắt kết nối USB
Xây dựng dự án Cảm biến PIR
Đây là một dự án nhỏ hiển thị giao tiếp với cổng GPIO và in một thông báo. Nó bao gồm một cảm biến chuyển động PIR phát hiện xem có người ở phía trước nó không. Dựa vào đó, nó đặt cổng thành Cao khi có thứ gì đó ở gần nó và thành thấp khi không có gì ở gần. Chương trình sẽ in 111 hoặc 000 tùy thuộc vào trạng thái của cổng. [Tại sao lại gặp khó khăn khi bật/tắt đèn LED, nếu bạn có thể nhìn thấy thông báo in?]
Kết nối mạch như sau [Tham khảo phần Sơ đồ cho tệp Fritzing]
Giả định rằng bạn đã quen thuộc với Python. Trong chương trình, các cổng GPIO được khai báo bằng quy ước BCM và được khởi tạo bằng thư viện RPI. Vòng lặp theo dõi cổng với khoảng thời gian 1 giây và in thông báo tương ứng. Đây là mã
# import library for GPIO
import RPi.GPIO as GPIO
# print GPIO info
print[GPIO.RPI_INFO]# time library
import time# Port of PIR
pir_port = 14# Setup GPIO mode to Broadcom
GPIO.setmode[GPIO.BCM]# configure the pin as input pin
GPIO.setup[pir_port, GPIO.IN]
# do the loop
try:
while [True]:
# if the input is zero, nobody is there at the sensor
if GPIO.input[pir_port] == 0:
print["000"]
else:
# found somebody at the sensor
print["111"]
# wait for 1 sec whether you detect someone or not
time.sleep[1]
# If user presses ^C cleanup the GPIO
except KeyboardInterrupt:
GPIO.cleanup[]
print["Exiting"]
Mã này có thể được lưu cục bộ trên máy Windows của bạn và được chuyển sang Raspberry Pi. Chuyển tệp
1 sang Raspberry Pi bằng WinSCP. [Ngoài ra, tệp có thể được chỉnh sửa trong Raspberry Pi bằng trình chỉnh sửa nano. ]# import library for GPIO
import RPi.GPIO as GPIO
# print GPIO info
print[GPIO.RPI_INFO]# time library
import time# Port of PIR
pir_port = 14# Setup GPIO mode to Broadcom
GPIO.setmode[GPIO.BCM]# configure the pin as input pin
GPIO.setup[pir_port, GPIO.IN]
# do the loop
try:
while [True]:
# if the input is zero, nobody is there at the sensor
if GPIO.input[pir_port] == 0:
print["000"]
else:
# found somebody at the sensor
print["111"]
# wait for 1 sec whether you detect someone or not
time.sleep[1]
# If user presses ^C cleanup the GPIO
except KeyboardInterrupt:
GPIO.cleanup[]
print["Exiting"]
Chuyển xong vào VS Code -> Terminal, SSH vào Raspberry Pi
Với lệnh
2, bạn sẽ thấy tệp được chuyển ở đó. Bây giờ hãy chạy lệnh sau# import library for GPIO
import RPi.GPIO as GPIO
# print GPIO info
print[GPIO.RPI_INFO]# time library
import time# Port of PIR
pir_port = 14# Setup GPIO mode to Broadcom
GPIO.setmode[GPIO.BCM]# configure the pin as input pin
GPIO.setup[pir_port, GPIO.IN]
# do the loop
try:
while [True]:
# if the input is zero, nobody is there at the sensor
if GPIO.input[pir_port] == 0:
print["000"]
else:
# found somebody at the sensor
print["111"]
# wait for 1 sec whether you detect someone or not
time.sleep[1]
# If user presses ^C cleanup the GPIO
except KeyboardInterrupt:
GPIO.cleanup[]
print["Exiting"]
Bạn sẽ thấy 000 và 111 được in dựa trên những gì ở phía trước cảm biến PIR
Hy vọng điều này sẽ giúp bạn bắt đầu trên Raspberry Pi Zero W với Python 3. Hãy chia sẻ bài viết để lan tỏa