สารบัญ:

IDC2018IOT ตัวติดตามการวิ่งขา: 6 ขั้นตอน
IDC2018IOT ตัวติดตามการวิ่งขา: 6 ขั้นตอน

วีดีโอ: IDC2018IOT ตัวติดตามการวิ่งขา: 6 ขั้นตอน

วีดีโอ: IDC2018IOT ตัวติดตามการวิ่งขา: 6 ขั้นตอน
วีดีโอ: AIS นำเทคโนโลยี IoT เพิ่มประสิทธิภาพการปฏิบัติงานของกองบังคับการตำรวจนครบาล 1 2024, กรกฎาคม
Anonim
IDC2018IOT ตัวติดตามการวิ่งขา
IDC2018IOT ตัวติดตามการวิ่งขา

เรานำแนวคิดนี้ออกมาเป็นส่วนหนึ่งของหลักสูตร "Internet Of Things" ที่ IDC Herzliya

เป้าหมายของโครงการคือการปรับปรุงกิจกรรมทางกายภาพที่เกี่ยวข้องกับการวิ่งหรือเดินโดยใช้ NodeMCU เซ็นเซอร์สองสามตัวและเซิร์ฟเวอร์ที่มีความสามารถ ผลลัพธ์ของโครงการนี้คืออุปกรณ์ IOT ที่มีประโยชน์มากซึ่งในอนาคตจะเปลี่ยนเป็นผลิตภัณฑ์การผลิตจริงที่จะใช้ได้ทุกที่! โปรดแจ้งให้เราทราบว่าคุณคิดอย่างไร:)

ก่อนที่คุณจะเริ่ม ตรวจสอบให้แน่ใจว่าคุณมี:

* อุปกรณ์ NodeMCU

* 1 เซ็นเซอร์เพียโซอิเล็กทริก

* เซ็นเซอร์ MPU6050

* หนึ่งเมทริกซ์ขนาดใหญ่

* เชือกยางยืด

* บัญชี Firebase

ไม่จำเป็น:

* เซ็นเซอร์ Piezoelectric หลายตัว

* มัลติเพล็กเซอร์

ขั้นตอนที่ 1: การตั้งค่าและการปรับเทียบ MPU6050

Image
Image

"กำลังโหลด="ขี้เกียจ"

การตั้งค่า Piezo
การตั้งค่า Piezo

คำแนะนำ:

  • เชื่อมต่อ piezo กับตัวต้านทาน 1M (ดูรูปที่แนบมา)
  • อัปโหลดภาพร่างที่แนบมา
  • เชื่อมต่ออุปกรณ์กับเท้าข้างหนึ่งโดยใช้เชือกยางยืด
  • เปิด "พล็อตเตอร์แบบอนุกรม"
  • ดูวิดีโอที่แนบมากับขั้นตอนนี้

ขั้นตอนที่ 3: การรวมเซ็นเซอร์เข้ากับ Arduino

Image
Image
การรวมเซ็นเซอร์เข้ากับ Arduino
การรวมเซ็นเซอร์เข้ากับ Arduino

เราเห็นวิธีการปรับเทียบเซ็นเซอร์แล้ว ตอนนี้เรากำลังจะรวมเซ็นเซอร์ทั้งสองเข้ากับ NodeMCU!

  • เชื่อมต่อเซ็นเซอร์ทั้งสองเข้ากับอุปกรณ์ ใช้หมุดเดียวกับในขั้นตอนที่ 1+2
  • โหลดภาพร่างที่แนบมา
  • เชื่อมต่ออุปกรณ์ที่มีเซ็นเซอร์ 2 ตัวเข้ากับเท้าเดียว
  • เปิด "พล็อตเตอร์แบบอนุกรม"
  • ดูวิดีโอที่แนบมา

ขั้นตอนที่ 4: การส่งข้อมูลไปยังคลาวด์

ส่งข้อมูลไปยังคลาวด์!
ส่งข้อมูลไปยังคลาวด์!
ส่งข้อมูลไปยังคลาวด์!
ส่งข้อมูลไปยังคลาวด์!
ส่งข้อมูลไปยังคลาวด์!
ส่งข้อมูลไปยังคลาวด์!

ในขั้นตอนนี้ เราจะเชื่อมต่ออุปกรณ์ของเรากับระบบคลาวด์และส่งข้อมูลเพื่อดูแผนภูมิที่น่าทึ่ง!

เราจะใช้โปรโตคอล MQTT และส่งข้อมูลไปยังเซิร์ฟเวอร์ฟรีที่เรียกว่า "Adafruit"

หมายเหตุ: Adafruit ไม่รองรับการส่งข้อมูลสองสามครั้งทุกวินาที มันทำงานช้าลง ดังนั้นเราจะส่งจุดข้อมูลโดยเฉลี่ยของเรา ไม่ใช่จุดข้อมูลเอง เราจะแปลงข้อมูลจากเซ็นเซอร์ 2 ตัวของเราเป็นข้อมูลเฉลี่ยโดยใช้การแปลงต่อไปนี้:

* เวลาการตรวจจับขั้นตอนจะเปลี่ยนเป็นขั้นตอนต่อนาที แต่ละช่วงระยะเวลาสามารถพบได้โดย (millis() - step_timestamp) และการหาค่าเฉลี่ยสามารถทำได้โดยใช้ตัวกรองดังที่เราเห็นก่อนหน้านี้: val = val * 0.7 + new_val * 0.3

* พลังขั้นจะถูกแปลงเป็นพลังขั้นเฉลี่ย เราจะใช้วิธีการเดียวกันกับการใช้ "สูงสุด" สำหรับแต่ละขั้นตอน แต่เราจะใช้ตัวกรองเพื่อหาค่าเฉลี่ยโดยใช้ตัวกรอง average = average * 0.6 + new_val * 0.4

คำแนะนำ:

  • เข้าสู่เว็บไซต์ของ Adafruit ตามที่อยู่ io.adafruit.com และตรวจสอบว่าคุณมีบัญชีแล้ว
  • สร้างแดชบอร์ดใหม่ คุณสามารถตั้งชื่อว่า "ตัวตรวจจับขั้นตอนของฉัน"
  • ภายในแดชบอร์ด ให้กดปุ่ม + แล้วเลือก "แผนภูมิเส้น" และสร้างฟีดชื่อ "steps_per_min"
  • ภายในแดชบอร์ด ให้กดปุ่ม + แล้วเลือก "แผนภูมิเส้น" และสร้างฟีดชื่อ "average_step_power"
  • ตอนนี้คุณควรเห็นแผนภูมิว่าง 2 แผนภูมิสำหรับแต่ละฟิลด์
  • ใช้ภาพร่างที่แนบมาและตั้งค่าคอนฟิกต่อไปนี้:

USERNAME = ชื่อผู้ใช้ Adafruit ของคุณ

KEY = รหัส Adafruit ของคุณ

WLAN_SSID = ชื่อ WIFI

WLAN_PASS = ผ่าน WIFI

mpuStepThreshold = เกณฑ์จากขั้นตอนที่ 2

จากนั้นคุณสามารถเชื่อมต่ออุปกรณ์กับเท้าข้างหนึ่งและภาพร่างจะส่งข้อมูลขั้นตอนไปยังเซิร์ฟเวอร์!

ขั้นตอนที่ 5: การใช้อุปกรณ์ 2 เครื่องพร้อมกัน

ใช้ 2 เครื่องพร้อมกัน
ใช้ 2 เครื่องพร้อมกัน
ใช้ 2 เครื่องพร้อมกัน
ใช้ 2 เครื่องพร้อมกัน

ในขั้นตอนนี้เราจะจำลองคน 2 คนที่เดินเครื่องพร้อมกัน!

เราจะใช้ 2 อุปกรณ์ที่แตกต่างกัน - ด้วยจุดข้อมูลเดียวกันตามที่อธิบายไว้ในขั้นตอนที่ 4

มันง่ายมาก มี 3 งานง่าย ๆ:

1) สร้างฟีดเพิ่มเติมสำหรับข้อมูลจากอุปกรณ์เครื่องที่ 2 เราแนะนำให้แก้ไข "_2" ภายหลัง

2) เปลี่ยนบล็อกในแดชบอร์ดเพื่อแสดงข้อมูลจากทั้งสองฟีด

3) เปลี่ยนชื่อของฟีดในร่างของอุปกรณ์ที่สอง

4) เห็นผล!

บันทึก:

Adafruit ต่อต้านข้อมูลที่มาเร็วเกินไป อาจจำเป็นต้องปรับความถี่ในการส่งข้อมูลไปยังเซิร์ฟเวอร์ ทำได้โดยค้นหาสิ่งต่อไปนี้ในภาพร่าง:

// ส่งทุก 5 วินาที ไม่เกินขีดจำกัดของ Adafruit สำหรับผู้ใช้ฟรี // หากคุณใช้พรีเมี่ยมหรือเซิร์ฟเวอร์ของคุณเอง อย่าลังเลที่จะเปลี่ยน // ทุกครั้งที่ส่งจุดข้อมูลสลับกัน if(มิลลิวินาที() - lastTimeDataSent > 5000){

ขั้นตอนที่ 6: การปรับปรุง หมายเหตุ และแผนในอนาคต

ความท้าทายหลัก:

ความท้าทายหลักในโครงการคือการทดสอบ NodeMCU ในการออกกำลังกาย สาย USB หลุดบ่อย และเมื่อพยายามเคลื่อนที่อย่างรวดเร็ว อาจเกิดปัญหาในการถอดหมุด หลายครั้งที่เราทำการดีบักโค้ดที่ใช้งานได้จริง และปัญหาอยู่ในขอบเขตทางกายภาพ

เราเอาชนะความท้าทายนี้ด้วยการถือแล็ปท็อปไว้ใกล้กับนักวิ่ง และเขียนโค้ดทีละส่วน

ความท้าทายอีกประการหนึ่งคือการทำให้ส่วนประกอบต่างๆ โต้ตอบกันได้อย่างราบรื่น:

  • พายโซกับคันเร่ง: จัดเรียงตามที่อธิบายไว้ในขั้นตอนที่ 3 ด้วยแนวคิดที่สร้างสรรค์ที่เรามี
  • เซ็นเซอร์กับเซิร์ฟเวอร์: ตามที่อธิบายไว้ในขั้นตอนที่ 4 เราแปลงค่าเป็นค่าอื่นๆ ที่สามารถส่งไปยังเซิร์ฟเวอร์ได้ช้าลง

ข้อจำกัดของระบบ:

  • ต้องสอบเทียบก่อนใช้งาน
  • ต้องเปลี่ยนเป็นผลิตภัณฑ์ที่มีความแข็งมากขึ้นซึ่งไม่แตกหักง่ายในการออกกำลังกาย
  • เพียโซอิเล็กทริกเซนเซอร์ไม่แม่นยำมาก
  • ต้องการการเชื่อมต่อ wifi (แก้ไขง่ายๆ ด้วยฮอตสปอตมือถือ)

แผนการในอนาคต

ตอนนี้ เรามีอุปกรณ์ตรวจสอบขาที่ทำงานได้อย่างสมบูรณ์แล้ว ยังมีการปรับปรุงเพิ่มเติมที่สามารถทำได้!

หลายชิ้น!

  • เชื่อมต่อพายโซกับส่วนต่างๆ ของเท้า
  • ใช้มัลติเพล็กเซอร์เนื่องจาก NodeMCU รองรับพินอะนาล็อกเพียงพินเดียวเท่านั้น
  • สามารถแสดงแผนที่ความร้อนของเท้าเพื่ออธิบายบริเวณที่มีการกระแทกได้
  • สามารถใช้ข้อมูลนี้เพื่อสร้างการแจ้งเตือนเกี่ยวกับท่าที่ไม่ถูกต้องและความสมดุลของร่างกาย

หลายเครื่อง!

  • เราแสดงวิธีเชื่อมต่ออุปกรณ์ 2 เครื่องพร้อมกัน แต่คุณสามารถเชื่อมต่อ 22 piezos กับผู้เล่นฟุตบอล 22 คนได้!
  • ข้อมูลสามารถเปิดเผยระหว่างเกมเพื่อแสดงตัวชี้วัดที่น่าสนใจเกี่ยวกับผู้เล่น!

เซ็นเซอร์ขั้นสูง

เราใช้เพียโซและมาตรความเร่ง แต่คุณสามารถเพิ่มอุปกรณ์อื่นๆ ที่จะเพิ่มคุณค่าเอาต์พุตและให้ข้อมูลเพิ่มเติม:

  • เลเซอร์ที่แม่นยำเพื่อตรวจจับรอยเท้า
  • วัดระยะห่างระหว่างเท้ากับพื้น
  • วัดระยะห่างระหว่างผู้เล่นต่างกัน (กรณีใช้หลายเครื่อง)

แนะนำ: