Mục lục:

Cách xây dựng bộ đếm người với Raspberry Pi và Ubidots: 6 bước
Cách xây dựng bộ đếm người với Raspberry Pi và Ubidots: 6 bước

Video: Cách xây dựng bộ đếm người với Raspberry Pi và Ubidots: 6 bước

Video: Cách xây dựng bộ đếm người với Raspberry Pi và Ubidots: 6 bước
Video: ESP32/ESP8266 AMAZON IOTS CORE 2024, Tháng mười hai
Anonim
Cách xây dựng bộ đếm người với Raspberry Pi và Ubidots
Cách xây dựng bộ đếm người với Raspberry Pi và Ubidots
Cách xây dựng bộ đếm người với Raspberry Pi và Ubidots
Cách xây dựng bộ đếm người với Raspberry Pi và Ubidots

Trong dự án đơn giản này, chúng tôi sẽ sử dụng cảm biến chuyển động để phát hiện xem có vật thể đang đi qua phía trước Raspberry Pi của chúng tôi hay không. Sau đó, chúng tôi sẽ đếm số lần điều đó xảy ra và gửi giá trị này đến Ubidots.

Quầy người thường là thiết bị đắt tiền được sử dụng trong ngành bán lẻ để hiểu cách người mua hàng hành xử. Nhờ Raspberry Pi và Ubidots, chúng tôi có thể xây dựng bộ đếm số người hoạt động hiệu quả trong vài giờ với một vài đô la!

Khi chúng tôi gửi dữ liệu đếm số người đến Ubidots, chúng tôi có thể tạo các biểu đồ đẹp để phân tích, cũng như cảnh báo qua SMS / Email.

Bước 1: Lấy đúng vật liệu

Nhận các tài liệu phù hợp
Nhận các tài liệu phù hợp
Nhận các tài liệu phù hợp
Nhận các tài liệu phù hợp
Nhận các tài liệu phù hợp
Nhận các tài liệu phù hợp
Nhận các tài liệu phù hợp
Nhận các tài liệu phù hợp

Để hoàn thành dự án này, bạn sẽ cần:

  1. A Raspberry Pi Mẫu B
  2. Một cảm biến PIR bằng thị sai
  3. Một USB WiFi Dongle tương thích với Raspberry Pi
  4. Một bộ pin USB để cung cấp năng lượng cho Raspberry Pi (đây là tùy chọn trong trường hợp bạn muốn rời khỏi Pi hoàn toàn không dây)
  5. Ba dây nhảy nữ - nữ
  6. Tài khoản Ubidots - hoặc - Giấy phép STEM

Bước 2: Kết nối mọi thứ

Nối dây mọi thứ
Nối dây mọi thứ
Nối dây mọi thứ
Nối dây mọi thứ

Cảm biến chuyển động PIR sử dụng khá đơn giản vì nó chỉ có ba chân:

  • V +
  • GND
  • Chân tín hiệu xuất ra "1" khi có chuyển động và "0" khi không có.

Không cần hàn bất cứ thứ gì, cũng như viết I2C phức tạp hoặc các hàm nối tiếp để phát hiện tín hiệu này; chỉ cần cắm cáp thẳng vào chân GPIO của Raspberry Pi và nó sẽ hoạt động!

Bước 3: Vỏ bọc

Vỏ bọc
Vỏ bọc
Vỏ bọc
Vỏ bọc

Vì cảm biến PIR rất nhạy cảm với chuyển động, tôi đã sử dụng công tắc nhảy phía sau nó để đặt độ nhạy thấp nhất có thể. Ngoài ra, tôi lấy một chiếc hộp cũ từ một cặp kính râm và tạo một lỗ trên đó, sau đó đặt RPi và cảm biến PIR vào bên trong nó. Bằng cách này, cảm biến chuyển động tập trung cao độ vào một điểm, thay vì đa hướng như vậy.

Bước 4: Mã hóa RPi của bạn

Tại thời điểm này, chúng tôi sẽ giả định rằng bạn đã thực hiện thiết lập cơ bản cho Raspberry Pi của mình và bạn đang xem dòng lệnh Linux của nó. Nếu không, chúng tôi khuyên bạn nên xem qua hướng dẫn này trước. Bạn cũng có thể kiểm tra bài đăng này về cách sử dụng Wicd để thiết lập WiFi cho Raspberry Pi của mình.

Hãy bắt đầu bằng cách đảm bảo rằng chúng ta có tất cả các thư viện cần thiết:

$ sudo apt-get update $ sudo apt-get update $ sudo apt-get install python-setuptools $ sudo easy_install pip $ pip install ubidots

Tạo một tệp mới có tên "peoplecounter.py":

$ sudo nano peoplecounter.py

Và viết vào nó đoạn mã dưới đây. Đảm bảo thay thế các giá trị của khóa API và ID biến bằng các giá trị trong tài khoản Ubidots cá nhân của bạn. (Lưu ý: mã không quá thanh lịch, nhưng tôi không phải là nhà phát triển Python, chỉ là một anh chàng phần cứng:)

Tập lệnh bao gồm một vòng lặp kiểm tra trạng thái của chân số 7 (cảm biến chuyển động). Nếu nó đọc "1", nghĩa là đã có chuyển động, thì nó sẽ tăng biến "số người" và đợi 1,5 giây để cảm biến chuyển động hoạt động trở lại bình thường. Điều này được thực hiện 10 lần, đảm bảo có ít nhất 1 giây giữa mỗi chu kỳ, sau đó nó sẽ gửi tổng số "chuyển động" đến Ubidots. Nếu bạn cần hiệu chỉnh Bộ đếm người, thì bạn nên chơi với các dòng "time.sleep" với các giá trị khác.

từ ubidots nhập ApiClient

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

thời gian nhập khẩu

GPIO.setmode (GPIO. BCM)

GPIO.setup (7, GPIO. IN)

cố gắng:

api = ApiClient ("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")

people = api.get_variable ("5238cec3f91b282c7357a140")

ngoại trừ: print "Không thể kết nối với API, hãy kiểm tra kết nối Internet của bạn"

bộ đếm = 0

peoplev = 0

trong khi (1):

hiện diện = GPIO.input (7)

nếu (sự hiện diện):

số người + = 1

sự hiện diện = 0

time.sleep (1.5)

time.sleep (1)

bộ đếm + = 1

if (bộ đếm == 10):

in số người

people.save_value ({'value': peoplecount})

bộ đếm = 0

peoplev = 0

Bước 5: Hiển thị dữ liệu của bạn

Hiển thị dữ liệu của bạn
Hiển thị dữ liệu của bạn
Hiển thị dữ liệu của bạn
Hiển thị dữ liệu của bạn
Hiển thị dữ liệu của bạn
Hiển thị dữ liệu của bạn
Hiển thị dữ liệu của bạn
Hiển thị dữ liệu của bạn

Cuối cùng, đi tới bảng điều khiển Ubidots của bạn và thêm một tiện ích con thuộc loại "Statement". Điều này sẽ hiển thị tổng số người được phát hiện trong khung thời gian bạn chỉ định

Bước 6: Kết thúc

Kết thúc
Kết thúc

Dự án này cung cấp gợi ý về lượng người đi qua một điểm cụ thể. Nó không cung cấp số người chính xác, do những hạn chế của cảm biến chuyển động, nhưng trong một số ứng dụng, điều này có thể là vừa đủ.

Dữ liệu được thu thập có thể dễ dàng được gửi đến Ubidots Cloud, nơi nó có thể được diễn giải bằng cách tạo cảnh báo, trang tổng quan trực tiếp hoặc thậm chí chia sẻ dữ liệu này trên phương tiện truyền thông xã hội, dưới dạng mã nhúng hoặc chỉ trong một liên kết công khai. Bạn cũng có thể đọc dữ liệu này từ một ứng dụng khác bằng cách sử dụng Ubidots API.

Đề xuất: