Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Những thứ chúng ta sẽ cần:
- Raspberry Pi với Raspbian
- Cảm biến cảm ứng từ adafruit
- Nguồn điện (Pin / DC)
- Ethernet hoặc WiFi cho Raspberry Pi
- Một máy tính khác
Bước 1: Thiết lập phần cứng Raspberry Pi của chúng tôi
Đầu tiên, kết nối cảm biến cảm ứng của chúng tôi với các chân GPIO trên Raspberry Pi của chúng tôi. Sử dụng một số loại cáp linh hoạt
Xác định 3 chân trên cảm biến của chúng tôi:
- GND - kết nối với chân nối đất
- VCC - kết nối với chân 5V
- SIG - kết nối với chân signel
Chúng tôi sẽ sử dụng 5V, nối đất và GPIO 18 trên pi mâm xôi của chúng tôi trong ví dụ này.
Bước 2: Thiết lập môi trường của chúng tôi trên Raspberry Pi
Lấy địa chỉ IP của raspberry Pi của chúng tôi.
Sau đó, kết nối với pi raspberry của chúng tôi bằng ssh:
tên người dùng ssh @ ipaddress
sau đó nhập mật khẩu của chúng tôi.
Khi chúng tôi đã vào, hãy cài đặt apache2 làm máy chủ web của chúng tôi bằng cách nhập:
sudo apt-get install apache2
Bước 3: Thiết kế một đoạn mã Python để đọc đầu vào từ cảm biến của chúng tôi
Thiết kế
Trong mã ví dụ của chúng tôi, chúng tôi sử dụng một vài lệnh khác nhau.
Để biểu thị rằng chúng tôi rất vui, chúng tôi thực hiện 2 lần nhấn và giữ
Để biểu thị rằng chúng tôi đang buồn, chúng tôi thực hiện một lần nhấn ngắn và một lần nhấn dài
Để chỉ ra rằng chúng tôi đang nhầm lẫn, chúng tôi thực hiện một lần nhấn ngắn, chờ một nhịp, sau đó nhấn 2 lần nhấn ngắn. Để biểu thị rằng chúng tôi hài lòng, chúng tôi thực hiện một lần nhấn ngắn, một lần nhấn khoảng cách ngắn và một lần nhấn dài
Để chỉ ra rằng chúng tôi đang chán, chúng tôi nhấn 3 lần nhấn ngắn
Dịch các lệnh này thành các lệnh chuỗi: (t để nhấn ngắn, T để nhấn và giữ, g cho khoảng cách ngắn, G cho khoảng cách dài)
vui vẻ: TgT
buồn: tgT
bối rối: tGtgt
chán: tgtgt
Sau đó, chúng tôi sẽ xuất mã tâm trạng hiện tại của chúng tôi thành một tệp html thân thiện với trình duyệt để phục vụ.
Mã số
nhập RPi. GPIO dưới dạng thời gian nhập GPIO
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM) GPIO.setup (18, GPIO. IN)
touch_count = 0
touch_state = 0 touch_duration = 0 gap_duration = 0 current_cmd = ""
def cmd ():
global current_cmd if current_cmd [-3:] == "TgT": current_cmd = "" mood ("Buồn") nếu current_cmd [-3:] == "tgT": current_cmd = "" mood ("Hạnh phúc") nếu current_cmd [-5:] == "tGtgt": current_cmd = "" mood ("Bối rối") if current_cmd [-5:] == "tgtgt": current_cmd = "" mood ("Chán")
def mood (tâm trạng):
file = open ("index.html", "w") html = """
Trình báo cáo tâm trạng di động
Này, tâm trạng gần đây nhất của tôi là
{}
"""
file.write (html.format (tâm trạng))
trong khi (1):
time.sleep (0,001) if (GPIO.input (18)): if touch_state == 0: if gap_duration> 2000: gap_duration = 0 if gap_duration> 200: current_cmd = current_cmd + "G" else: current_cmd = current_cmd + "g "gap_duration = 0 touch_state = 1 touch_count = touch_count + 1 if touch_state == 1: touch_duration = touch_duration + 1 else: if gap_duration 200: current_cmd = current_cmd +" T "else: current_cmd = current_cmd +" t "touch_duration = 0 cmd ()
GPIO.cleanup ()
Thiết lập để hoạt động với máy chủ web của chúng tôi
nhập hoặc tải tệp python ở trên vào vị trí máy chủ web của chúng tôi, được mặc định thành / var / www / html
cd / var / www / html
sudo nano touch.py
Sau đó nhập mã ở trên
Bước 4: Khởi động máy chủ của chúng tôi để xem nó hoạt động
cd / var / www / html
sudo python touch.py
Sau đó, nhập địa chỉ IP cho Raspberry Pi của chúng tôi, sau đó chúng tôi sẽ thấy báo cáo tâm trạng của chúng tôi đang hoạt động!
Hãy thử các loại lệnh cảm ứng khác nhau và trang sẽ tự động làm mới để phản ánh điều đó!