วงจร

วิธีสร้าง Counter People ด้วย Raspberry Pi และ Ubidots: 6 ขั้นตอน

Ispindel Belgo 2019

Ispindel Belgo 2019

สารบัญ:

Anonim

ในโครงการง่าย ๆ นี้เราจะใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหวเพื่อตรวจสอบว่าวัตถุผ่านหน้าราสเบอร์รี่ Pi ของเราหรือไม่ จากนั้นเราจะนับจำนวนครั้งที่เกิดขึ้นและส่งค่านี้ไปยัง Ubidots

โดยทั่วไปตัวนับคนเป็นอุปกรณ์ราคาแพงที่ใช้ในอุตสาหกรรมค้าปลีกเพื่อทำความเข้าใจกับพฤติกรรมของผู้ซื้อ ขอบคุณ Raspberry Pi และ Ubidots เราสามารถสร้างคนที่ทำงานได้ในเวลาไม่กี่ชั่วโมงและด้วยเงินเพียงไม่กี่!

เมื่อเราส่งข้อมูลการนับจำนวนคนไปยัง Ubidots แล้วเราสามารถสร้างกราฟที่ดีสำหรับการวิเคราะห์เช่นเดียวกับการแจ้งเตือนทาง SMS / อีเมล์

วัสดุ:

ขั้นตอนที่ 1: การได้รับวัสดุที่เหมาะสม

เพื่อให้โครงการนี้สำเร็จคุณจะต้อง:

  1. ราสเบอร์รี่ Pi รุ่น B
  2. เซ็นเซอร์ PIR โดย Parallax
  3. Dongle USB WiFi ที่รองรับ Raspberry Pi
  4. ก้อนแบตเตอรี่ USB สำหรับใช้พลังงาน Raspberry Pi (เป็นตัวเลือกในกรณีที่คุณต้องการปล่อยให้ Pi ไร้สายโดยสมบูรณ์)
  5. สายจัมเปอร์หญิง - หญิงสามสาย

ขั้นตอนที่ 2: เดินสายสิ่งต่างๆ

เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR นั้นค่อนข้างใช้งานง่ายเพราะมีเพียงสามพิน:

  • V +
  • GND
  • พินสัญญาณที่ส่งออก "1" เมื่อมีการเคลื่อนไหวและ "0" เมื่อไม่มี

ไม่จำเป็นต้องประสานอะไรเลยหรือเขียนฟังก์ชัน I2C หรืออนุกรมที่ซับซ้อนเพื่อตรวจจับสัญญาณนี้ เพียงแค่เสียบสายเคเบิลตรงกับหมุด GPIO ของ Raspberry Pi ของคุณและมันจะทำงาน!

ขั้นตอนที่ 3: ปลอก

เนื่องจากเซ็นเซอร์ PIR มีความไวต่อการเคลื่อนไหวมากฉันจึงใช้สวิตช์จัมเปอร์ด้านหลังเพื่อตั้งค่าความรู้สึกที่เป็นไปได้ต่ำสุด นอกจากนี้ฉันได้นำกล่องเก่ามาใส่แว่นกันแดดแล้วทำรูในนั้นจากนั้นวาง RPi และเซ็นเซอร์ PIR ไว้ข้างใน ด้วยวิธีนี้เซ็นเซอร์ตรวจจับความเคลื่อนไหวมุ่งเน้นอย่างมากในจุดเดียวแทนที่จะเป็นแบบรอบทิศทาง

ขั้นตอนที่ 4: การเข้ารหัส RPi ของคุณ

ณ จุดนี้เราจะสมมติว่าคุณได้ตั้งค่าพื้นฐานของ Raspberry Pi แล้วและคุณกำลังดูบรรทัดคำสั่ง Linux ถ้าไม่เราขอแนะนำให้อ่านคู่มือนี้ก่อน คุณสามารถตรวจสอบโพสต์นี้เกี่ยวกับการใช้ Wicd เพื่อตั้งค่า WiFi ของ Raspberry Pi ของคุณ

เริ่มต้นด้วยการทำให้แน่ใจว่าเรามีห้องสมุดที่ต้องการทั้งหมด:

$ sudo apt-get update
$ sudo apt-get upgrade $ sudo apt-get install python-setuptools $ sudo easy_install pip $ pip ติดตั้ง ubidots

สร้างไฟล์ใหม่ชื่อ "peoplecounter.py":

$ sudo nano peoplecounter.py

และเขียนรหัสด้านล่าง ตรวจสอบให้แน่ใจว่าได้แทนที่ค่าของคีย์ API และรหัสตัวแปรด้วยค่าในบัญชี Ubidots ส่วนตัวของคุณ (หมายเหตุ: รหัสไม่หรูหราเกินไป แต่เดี๋ยวก่อนฉันไม่ใช่นักพัฒนา Python แค่เป็นฮาร์ดแวร์ :)

สคริปต์ประกอบด้วยลูปที่ตรวจสอบสถานะของพิน # 7 (เซ็นเซอร์ตรวจจับความเคลื่อนไหว) หากมันอ่าน "1" หมายความว่ามีการเคลื่อนไหวก็จะเพิ่มตัวแปร "peoplecount" และรอ 1.5 วินาทีเพื่อให้เซ็นเซอร์ตรวจจับความเคลื่อนไหวกลับมาเป็นปกติ ทำ 10 ครั้งทำให้แน่ใจว่ามีอย่างน้อย 1 วินาทีระหว่างแต่ละรอบจากนั้นจะส่งผลรวมของ "การเคลื่อนไหว" ทั้งหมดไปยัง Ubidots หากคุณต้องการปรับเทียบตัวนับคนคุณควรเล่นด้วย "time.sleep" บรรทัดที่มีค่าอื่น ๆ

จาก ubidots นำเข้า ApiClient

นำเข้า RPi.GPIO เป็น GPIO

เวลานำเข้า

GPIO.setmode (GPIO.BCM)

GPIO.setup (7, GPIO.IN)

ลอง:

api = ApiClient ("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")

คน = api.get_variable ("5238cec3f91b282c7357a140")

ยกเว้น: พิมพ์ "ไม่สามารถเชื่อมต่อกับ API ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณ"

ตัวนับ = 0

peoplev = 0

ในขณะที่ (1):

สถานะ = GPIO.input (7)

ถ้า (แสดงตน):

peoplecount + = 1

สถานะ = 0

time.sleep (1.5)

time.sleep (1)

เคาน์เตอร์ + = 1

ถ้า (เคาน์เตอร์ == 10):

พิมพ์ peoplecount

people.save_value ({ 'ค่า': peoplecount})

ตัวนับ = 0

peoplev = 0

ขั้นตอนที่ 5: แสดงข้อมูลของคุณ

สุดท้ายไปที่แดชบอร์ด Ubidots ของคุณและเพิ่มวิดเจ็ตประเภท "คำแถลง"นี้จะแสดงจำนวนคนทั้งหมดที่ตรวจพบภายในกรอบเวลาที่คุณระบุ

ขั้นตอนที่ 6: การตัดคำ

โครงการนี้ให้คำแนะนำเกี่ยวกับจำนวนคนที่เดินผ่านจุดใดจุดหนึ่ง มันไม่ได้ให้จำนวนคนที่แน่นอนเนื่องจากข้อ จำกัด ของเซ็นเซอร์ตรวจจับความเคลื่อนไหว แต่ในบางแอปพลิเคชั่นนี่อาจจะเพียงพอ

ข้อมูลที่เก็บรวบรวมสามารถส่งไปยัง Ubidots Cloud ได้อย่างง่ายดายซึ่งสามารถตีความได้โดยการสร้างการแจ้งเตือนแดชบอร์ดสดหรือแม้แต่การแบ่งปันข้อมูลนี้ในโซเชียลมีเดียเช่นรหัสฝังหรือในลิงก์สาธารณะ คุณยังสามารถอ่านข้อมูลนี้จากแอปพลิเคชันอื่นโดยใช้ Ubidots API