Mục lục:

Pumpkin Pi Trick-or-Treater: 5 bước
Pumpkin Pi Trick-or-Treater: 5 bước

Video: Pumpkin Pi Trick-or-Treater: 5 bước

Video: Pumpkin Pi Trick-or-Treater: 5 bước
Video: Round Loom Trick Or Treat Pumpkin Bag 2024, Tháng bảy
Anonim
Pumpkin Pi Trick-or-Treater
Pumpkin Pi Trick-or-Treater

Bởi elizabethna

Cách xây dựng màn hình nhiệt độ Raspberry Pi
Cách xây dựng màn hình nhiệt độ Raspberry Pi
Cách xây dựng màn hình nhiệt độ Raspberry Pi
Cách xây dựng màn hình nhiệt độ Raspberry Pi
Truyền dữ liệu từ Google Trang tính sang Trang tổng quan
Truyền dữ liệu từ Google Trang tính sang Trang tổng quan
Truyền dữ liệu từ Google Trang tính sang Trang tổng quan
Truyền dữ liệu từ Google Trang tính sang Trang tổng quan
Mạng lưới cảm biến nhiệt độ
Mạng lưới cảm biến nhiệt độ
Mạng lưới cảm biến nhiệt độ
Mạng lưới cảm biến nhiệt độ

Bạn đang tìm kiếm một dự án Halloween nhanh chóng hữu ích theo nhiều cách? Bạn muốn sử dụng tốt Pi Zero WH đó? Bạn có muốn sử dụng dữ liệu để xác định xem bạn sẽ cần bao nhiêu kẹo cho năm tới?

Hãy sẵn sàng để xây dựng Công cụ theo dõi lừa hoặc trị bí ngô Pi! Nhân đôi vai trò trang trí và một công cụ theo dõi mọi người, Pi-in-a-Pumpkin này thay đổi màu sắc và dòng khi phát hiện chuyển động. Bắt đầu từ đầu, dự án này sẽ không khiến bạn mất quá một buổi chiều để tập hợp lại - vừa kịp cho Halloween!

Quân nhu

  • Pi Zero WH với thẻ SD
  • Cảm biến chuyển động PIR
  • LED RGB
  • Điện trở 220 ohm
  • (3) Dây buộc (F / F, M / F, M / M)
  • Pin di động
  • Bí ngô giả

Bước 1: 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

Khi bạn đã thiết lập và chạy Pi, chúng tôi cần kết nối cảm biến chuyển động và đèn LED. Đảm bảo rằng Pi của bạn không được kết nối với nguồn tại thời điểm này.

Cảm biến chuyển động của chúng tôi yêu cầu chúng tôi kết nối nó với nguồn 3,3V, mặt đất và chân dữ liệu. Tôi đã kết nối chân cảm biến 3.3V với chân 1 của Pi, chân cảm biến nối đất với chân 6 của Pi và chân cảm biến Dữ liệu với chân 16 của Pi. Hình ảnh đầu tiên cho thấy kết nối đầy đủ cho Pi và cảm biến chuyển động.

Đèn LED phức tạp hơn một chút so với cảm biến chuyển động vì chúng yêu cầu một điện trở để chạy chính xác mà không làm hỏng chúng hoặc Pi. Tôi đã sử dụng ba điện trở 220 ohm nhưng điện trở 220 và 330 ohm thường được sử dụng với đèn LED.

Để kết nối mọi thứ, bạn có thể:

  • Hàn chân LED vào điện trở rồi luồn dây vào Pi
  • Sử dụng breadboard và các đường dây buộc để kết nối mọi thứ
  • Sử dụng dây buộc và băng dính điện để kết nối mọi thứ (như tôi đã làm).

Tuy nhiên, chúng tôi sẽ kết nối đèn LED của mình với các chân 11, 13 và 15. Điều này phức tạp hơn một chút so với cảm biến chuyển động, vì các chân trên đèn LED tương ứng với một màu cụ thể! Chân dài là GND; và, ít nhất trên đèn LED của tôi, các chân có màu Đỏ, GND, Xanh lam, Xanh lục. Tôi đã kết nối Xanh dương với chân Pi 11, Xanh lục với chân Pi 13, và Đỏ với chân Pi 15. Hình thứ hai cho thấy các kết nối mạch cuối cùng.

Bước 2: Trạng thái ban đầu

Trạng thái ban đầu
Trạng thái ban đầu
Trạng thái ban đầu
Trạng thái ban đầu

Chắc chắn chúng ta có thể biết khi nào chuyển động được phát hiện bằng đèn LED, nhưng làm cách nào để theo dõi xem có bao nhiêu kẻ lừa tình đã ghé qua để ăn trộm kẹo của chúng ta?

Chúng tôi sẽ truyền trực tuyến đến trang tổng quan mỗi khi chuyển động bắt đầu và ngừng được phát hiện. Vì bảng điều khiển này có thể truy cập từ bất kỳ đâu có kết nối internet, chúng tôi có thể theo dõi từ xa xem có ai đó đang đến gần cửa trước / bát kẹo hay không.

Bước 1: Đăng ký Tài khoản Trạng thái Ban đầu Truy cập https://iot.app.initialstate.com và tạo một tài khoản mới.

Bước 2: Cài đặt ISStreamer

Cài đặt mô-đun Python trạng thái ban đầu vào Raspberry Pi của bạn. Tại dấu nhắc lệnh (trước tiên đừng quên SSH vào số Pi của bạn), hãy chạy lệnh sau:

$ cd / home / pi /

$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Bước 3: Tạo một số Automagic

Sau Bước 2, bạn sẽ thấy một cái gì đó tương tự như kết quả sau ra màn hình:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Mật khẩu: Bắt đầu ISStreamer Python Cài đặt dễ dàng! Quá trình này có thể mất vài phút để cài đặt, hãy uống một chút cà phê:) Nhưng đừng quên quay lại, tôi sẽ có câu hỏi sau! Tìm thấy easy_install: setuptools 1.1.6 Tìm thấy pip: pip 1.5.6 từ /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) Phiên bản chính pip: Phiên bản nhỏ 1 pip: 5 ISStreamer đã được tìm thấy, đang cập nhật… Yêu cầu đã được cập nhật: ISStreamer trong /Library/Python/2.7/site-packages Đang dọn dẹp… Bạn có muốn tự động lấy một script mẫu không? [y / N] Bạn muốn lưu ví dụ ở đâu? [default:./is_example.py] Vui lòng chọn ứng dụng Trạng thái ban đầu bạn đang sử dụng: 1. app.initialstate.com 2. [MỚI!] iot.app.initialstate.com Nhập lựa chọn 1 hoặc 2: Nhập iot.app Tên người dùng.initialstate.com: Nhập mật khẩu iot.app.initialstate.com:

Khi được nhắc tự động lấy một tập lệnh mẫu, hãy nhập y. Điều này sẽ tạo một tập lệnh thử nghiệm mà chúng tôi có thể chạy để đảm bảo rằng chúng tôi có thể truyền dữ liệu đến Trạng thái ban đầu. Lời nhắc tiếp theo sẽ hỏi bạn muốn lưu tệp ví dụ ở đâu. Bạn có thể nhập đường dẫn cục bộ tùy chỉnh hoặc nhấn enter để chấp nhận vị trí mặc định. Cuối cùng, bạn sẽ được hỏi bạn đang sử dụng ứng dụng Trạng thái ban đầu nào. Nếu gần đây bạn đã tạo một tài khoản, hãy chọn tùy chọn 2, nhập tên người dùng và mật khẩu của bạn. Sau đó quá trình cài đặt sẽ hoàn tất.

Bước 4: Truy cập các phím

Hãy xem tập lệnh mẫu đã được tạo. $ nano is_example.py Trên dòng 15, bạn sẽ thấy một dòng bắt đầu bằng streamer = Streamer (bucket_…. Dòng này tạo một nhóm dữ liệu mới có tên “Python Stream Example” và được liên kết với tài khoản của bạn. Sự liên kết này xảy ra do tham số access_key =”…” trên cùng dòng đó. Chuỗi dài các chữ cái và số đó là khóa truy cập tài khoản Trạng thái ban đầu của bạn. Nếu bạn truy cập tài khoản Trạng thái ban đầu trong trình duyệt web, hãy nhấp vào tên người dùng của bạn ở trên cùng bên phải, sau đó truy cập vào “cài đặt của tôi”, bạn sẽ tìm thấy cùng một khóa truy cập đó ở cuối trang trong “Khóa truy cập truyền trực tuyến”.

Mỗi khi bạn tạo một luồng dữ liệu, khóa truy cập đó sẽ hướng luồng dữ liệu đó đến tài khoản của bạn (vì vậy đừng chia sẻ khóa của bạn với bất kỳ ai).

Bước 5: Chạy ví dụ

Chạy tập lệnh thử nghiệm để đảm bảo chúng tôi có thể tạo luồng dữ liệu vào tài khoản Trạng thái ban đầu của bạn. Chạy như sau:

$ python is_example.py

Bước 6: Lợi nhuận

Quay lại tài khoản Trạng thái ban đầu trong trình duyệt web của bạn. Một nhóm dữ liệu mới được gọi là “Ví dụ về luồng Python” đáng lẽ phải hiển thị ở bên trái trong giá nhật ký của bạn (bạn có thể phải làm mới trang). Nhấp vào nhóm này và sau đó nhấp vào biểu tượng Waves để xem dữ liệu thử nghiệm.

Bước 3: Tập lệnh Python

Tạo một tập lệnh và mở trình soạn thảo văn bản bằng lệnh sau:

nano vistors.py

Sao chép và dán mã từ đây vào trình soạn thảo văn bản của bạn.

Trước khi cố gắng chạy bất cứ thứ gì, chúng tôi cần thực hiện một vài chỉnh sửa và xem lại những gì đang xảy ra trong tập lệnh của mình.

nhập RPi. GPIO dưới dạng GPIO

from time import sleep from ISStreamer. Streamer import Streamer # Cho Pi biết chúng tôi sẽ sử dụng hệ thống đánh số GPIO.setmode (GPIO. BCM) # Các chân D1 và LED được kết nối với PIN = 23 BLUE = 17 GREEN = 27 RED = 22 # Chỉ định chân cảm biến chuyển động của chúng tôi làm đầu vào GPIO.setup (PIN, GPIO. IN) # Chỉ định chân LED của chúng tôi làm đầu ra GPIO.setup (ĐỎ, GPIO. OUT) GPIO.output (ĐỎ, 0) GPIO.setup (XANH, GPIO. OUT) GPIO.output (XANH, 0) GPIO.setup (XANH, GPIO. OUT) GPIO.output (XANH, 0)

Các dòng 1-21 là để khởi tạo. Đầu tiên, chúng tôi nhập giao diện GPIO của Pi và một cách để ngủ tập lệnh của chúng tôi. Sau đó, chúng tôi nhập trình phát trực tuyến Trạng thái ban đầu mà chúng tôi đã cài đặt trên trang trước.

GPIO.setmode chỉ định hệ thống đánh số mà chúng tôi đang sử dụng cho các chân. Thay vì vị trí thực tế, chúng tôi đang sử dụng hệ thống đánh số của Pi. Như trong sơ đồ của chúng tôi trước đó, các chân chúng tôi chọn là 23, 17, 27 và 22. Sau đó, chúng tôi thiết lập chân chuyển động làm đầu vào và chân LED làm đầu ra.

# Tên nhóm Trạng thái ban đầu (hiển thị)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Khoá nhóm trạng thái ban đầu (ẩn) BUCKET_KEY = "trickortreat" # Khoá truy cập trạng thái ban đầu ACCESS_KEY = "Your_Access_Key" # Các biến đảm bảo chúng tôi không phát trực tuyến rằng có hoặc không có chuyển động hai lần liên tiếp # Điều này giúp tiết kiệm các sự kiện đã gửi và khả năng xử lý đã cóRecordedMotion = FalsereadyRecordedNoMotion = False counter = 0 # Khởi tạo trạng thái ban đầu Streamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # Bật và thiết lập đèn LED chuyển sang màu vàng GPIO.output (RED, 1) GPIO.output (GREEN, 1)

Các dòng 23-41 rất quan trọng vì chúng tôi đang khởi tạo trình phân luồng Trạng thái ban đầu và đặt đèn LED thành màu vàng. Đặt khóa truy cập Trạng thái ban đầu của bạn trên dòng 28.

# Vòng lặp vô thời hạn

while True: # Nếu cảm biến chuyển động kéo lên cao (phát hiện chuyển động): if GPIO.input (PIN) == 1: in "Đã phát hiện chuyển động" # Nếu chúng ta chưa phát trực tiếp: nếu chưa cóRecordedMotion: counter = counter + 1 # Đặt LED thành GPIO.output màu đỏ (RED, 1) GPIO.output (GREEN, 0) # Luồng sang trạng thái ban đầu streamer.log (": ghost: or: chocolate_bar:?", ": Chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans ?: candy:", counter) streamer.flush ()readyRecordedMotion = TruereadyRecordedNoMotion = False else: # Tạm dừng tập lệnh trong 1 giây ở chế độ ngủ (1) else: print "Không phát hiện chuyển động" # Nếu chúng tôi chưa phát trực tiếp: nếu chưa cóRecordedNoMotion: # Đặt LED thành GPIO.output màu vàng (RED, 1) GPIO.output (GREEN, 1) # Truyền tới trạng thái ban đầu streamer.log (": ghost: or: chocolate_bar:? ",": no_pedestrian: No One Around ") streamer.flush ()readyRecordedNoMotion = TruereadyRecordedMotion = False else: # Tạm dừng tập lệnh cho chế độ ngủ 1 giây (1)

Các dòng 43-77 là phần thịt của mã. Nếu phát hiện chuyển động, tập lệnh sẽ kiểm tra xem có phải "Time For Treats!" đã được phát trực tuyến. Nếu không, nó được gửi đến Trạng thái ban đầu và đèn LED được đặt thành màu đỏ; nếu có, tập lệnh sẽ đợi 1 giây và sau đó đọc lại từ cảm biến chuyển động. Điều tương tự cũng xảy ra nếu không có chuyển động nào được phát hiện.

Đã đến lúc kiểm tra mã! Đảm bảo rằng bạn đã lưu tệp đã chỉnh sửa của mình với khóa truy cập được thêm vào dòng 28, sau đó nhập vào thiết bị đầu cuối:

python visit.py

Bạn sẽ thấy đèn LED bật sáng và "Không phát hiện chuyển động" bắt đầu in ra dòng lệnh. Hãy thử vẫy tay qua cảm biến chuyển động - bây giờ bạn sẽ thấy đèn đỏ và "Đã phát hiện chuyển động" bắt đầu in!

Bây giờ để xác minh rằng các bài đọc của chúng tôi đang được truyền về Trạng thái ban đầu.

Bước 4: Trang tổng quan Trick-or-Treat

Bảng điều khiển Trick-or-Treat
Bảng điều khiển Trick-or-Treat

Đi tới Trạng thái ban đầu và kiểm tra trang tổng quan của bạn! Bạn sẽ thấy một thùng có tên là "? Trick or Treat Tracker". Vẫy tay gần cảm biến chuyển động và xem nó cập nhật!

Trang tổng quan của tôi bao gồm 2 Ô Tóm tắt hiển thị Giá trị cuối cùng và Biểu đồ số lượng sự kiện để tôi có thể biết thời gian cảm biến được kích hoạt.

Dưới đây là một số điều cần xem xét:

  • Bạn có thể muốn chia số lượng "Người đói" cho 2 để tính thực tế là cùng một người sẽ đi qua trước cảm biến chuyển động hai lần - trên đường đến cửa nhà bạn và trên đường về. Bạn có thể làm điều này với Biểu thức thời gian thực bằng phương trình "= math.round (([Hungry Humans?] / 2), 0)".
  • Bạn có thể kiểm tra mức độ nhạy cảm của cảm biến chuyển động và đặt nó trên vỉa hè của bạn cho phù hợp. Tôi khuyên bạn nên giữ nó đủ xa cửa để nó không kích hoạt khi ai đó đứng ở cửa.
  • Bạn cũng có thể thiết lập cảnh báo bằng văn bản để cho bạn biết ai đó đang đến gần.
  • Chọn một hình nền để tạo cho bảng điều khiển của bạn một chút cá tính ma quái!

Bước 5: Bí đỏ Pi

Đề xuất: