สารบัญ:
- ขั้นตอนที่ 1: รับวัสดุที่เหมาะสม
- ขั้นตอนที่ 2: การเดินสายไฟขึ้น
- ขั้นตอนที่ 3: ปลอก
- ขั้นตอนที่ 4: การเข้ารหัส RPi. ของคุณ
- ขั้นตอนที่ 5: แสดงข้อมูลของคุณ
- ขั้นตอนที่ 6: การสรุป
วีดีโอ: วิธีสร้างตัวนับผู้คนด้วย Raspberry Pi และ Ubidots: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ในโปรเจ็กต์ง่ายๆ นี้ เราจะใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหวเพื่อตรวจจับว่ามีวัตถุผ่านหน้า Raspberry Pi ของเราหรือไม่ จากนั้นเราจะนับจำนวนครั้งที่เกิดขึ้น และส่งค่านี้ไปยัง Ubidots
เคาน์เตอร์ผู้คนมักเป็นอุปกรณ์ราคาแพงที่ใช้ในอุตสาหกรรมค้าปลีกเพื่อทำความเข้าใจว่าผู้ซื้อมีพฤติกรรมอย่างไร ขอบคุณ Raspberry Pi และ Ubidots เราสามารถสร้างเคาน์เตอร์ที่ใช้งานได้ภายในเวลาไม่กี่ชั่วโมงและด้วยเงินเพียงไม่กี่ดอลลาร์!
เมื่อเราส่งข้อมูลการนับจำนวนคนไปยัง Ubidots แล้ว เราสามารถสร้างกราฟที่ดีสำหรับการวิเคราะห์ รวมถึงการแจ้งเตือนทาง SMS/อีเมล
ขั้นตอนที่ 1: รับวัสดุที่เหมาะสม
เพื่อให้โครงการนี้เสร็จสมบูรณ์ คุณจะต้อง:
- ราสเบอร์รี่ Pi รุ่น B
- เซ็นเซอร์ PIR โดย Parallax
- USB WiFi Dongle ที่รองรับ Raspberry Pi
- ชุดแบตเตอรี่ USB สำหรับจ่ายไฟให้กับ Raspberry Pi (เป็นทางเลือกในกรณีที่คุณต้องการปล่อย Pi แบบไร้สายทั้งหมด)
- สายจัมเปอร์หญิง-หญิง 3 เส้น
- บัญชี Ubidots - หรือ - ใบอนุญาต STEM
ขั้นตอนที่ 2: การเดินสายไฟขึ้น
เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR ค่อนข้างใช้งานง่าย เพราะมีสามพินเท่านั้น:
- วี+
- 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 และ ID ตัวแปรด้วยค่าในบัญชี Ubidots ส่วนตัวของคุณ (หมายเหตุ: รหัสไม่หรูหราเกินไป แต่ฉันไม่ใช่นักพัฒนา Python เป็นแค่คนฮาร์ดแวร์:)
สคริปต์ประกอบด้วยลูปที่ตรวจสอบสถานะของพิน #7 (เซ็นเซอร์ตรวจจับความเคลื่อนไหว) หากอ่าน "1" ซึ่งหมายความว่ามีการเคลื่อนไหว ตัวแปร "จำนวนคน" จะเพิ่มขึ้นและรอ 1.5 วินาทีเพื่อให้เซ็นเซอร์ตรวจจับความเคลื่อนไหวกลับสู่สภาวะปกติ ดำเนินการ 10 ครั้ง ตรวจสอบให้แน่ใจว่าแต่ละรอบมีเวลาอย่างน้อย 1 วินาที จากนั้นจึงส่ง "การเคลื่อนไหว" ทั้งหมดไปยัง Ubidots หากคุณต้องการปรับเทียบ People Counter คุณควรเล่นกับบรรทัด "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
คนv = 0
ในขณะที่(1):
การมีอยู่ = GPIO.input (7)
ถ้า (การแสดงตน):
จำนวนคน += 1
การมีอยู่ = 0
เวลานอน(1.5)
เวลานอน(1)
เคาน์เตอร์ += 1
ถ้า(ตัวนับ==10):
พิมพ์คนนับ
people.save_value({'value':peoplecount})
ตัวนับ = 0
คนv = 0
ขั้นตอนที่ 5: แสดงข้อมูลของคุณ
สุดท้าย ไปที่แดชบอร์ด Ubidots ของคุณ และเพิ่มวิดเจ็ตประเภท "คำชี้แจง" ซึ่งจะแสดงจำนวนคนที่ตรวจพบภายในกรอบเวลาที่คุณระบุ
ขั้นตอนที่ 6: การสรุป
โครงการนี้ให้คำใบ้เกี่ยวกับจำนวนผู้คนที่ผ่านจุดใดจุดหนึ่ง ไม่ได้ระบุจำนวนคนที่แน่นอน เนื่องจากข้อจำกัดของเซ็นเซอร์ตรวจจับความเคลื่อนไหว แต่ในบางแอปพลิเคชัน อาจเพียงพอ
ข้อมูลที่รวบรวมได้สามารถส่งไปยัง Ubidots Cloud ได้อย่างง่ายดาย ซึ่งสามารถตีความได้โดยการสร้างการแจ้งเตือน แดชบอร์ดแบบสด หรือแม้กระทั่งการแชร์ข้อมูลนี้ในโซเชียลมีเดีย เป็นโค้ดสำหรับฝัง หรือเพียงแค่ในลิงก์สาธารณะ คุณยังสามารถอ่านข้อมูลนี้จากแอปพลิเคชันอื่นโดยใช้ Ubidots API
แนะนำ:
ติดตาม: ศูนย์สื่อขั้นสูงพร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): 3 ขั้นตอน
ติดตาม: Advanced Media Center พร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): บทความนี้เป็นบทความต่อจากบทความก่อนหน้าของฉันที่ประสบความสำเร็จค่อนข้างมากเกี่ยวกับการสร้างศูนย์สื่ออเนกประสงค์ โดยอ้างอิงจาก Raspberry PI ที่ได้รับความนิยมมากในตอนแรก แต่ ในภายหลัง เนื่องจากไม่มีเอาต์พุตที่สอดคล้องกับ HEVC, H.265 และ HDMI 2.2 จึงมีสวิตช์
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: 3 ขั้นตอน
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: Story A beacon จะส่งสัญญาณอย่างต่อเนื่องเพื่อให้อุปกรณ์บลูทู ธ อื่น ๆ รู้ว่ามีอยู่ และฉันอยากได้บีคอนบลูทูธเพื่อติดตามกุญแจมาตลอด เพราะฉันลืมเอามันมาเหมือน 10 ครั้งในปีที่แล้ว และฉันก็เกิดขึ้น
RuuviTag และ PiZero W และ Blinkt! เทอร์โมมิเตอร์แบบ Bluetooth Beacon: 3 ขั้นตอน (พร้อมรูปภาพ)
RuuviTag และ PiZero W และ Blinkt! เครื่องวัดอุณหภูมิที่ใช้ Bluetooth Beacon: คำแนะนำนี้อธิบายวิธีการอ่านข้อมูลอุณหภูมิและความชื้นจาก RuuviTag โดยใช้ Bluetooth กับ Raspberry Pi Zero W และเพื่อแสดงค่าเป็นเลขฐานสองบน Pimoroni กะพริบตา! pHAT.หรือเรียกสั้นๆ ว่า จะสร้างสถานะอย่างไร
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): 25 ขั้นตอน (พร้อมรูปภาพ)
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): นี่คือบทแนะนำเกี่ยวกับวิธีการสร้าง Quadcopter โดยใช้มอเตอร์ NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS & วิทยุ 3DR ฉันพยายามอธิบายแต่ละขั้นตอนด้วยรูปภาพจำนวนหนึ่ง หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดตอบกลับ