หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ Fall detection โดยใช้ Phone และ Arduino Cloud

ใช้ข้อมูลจาก Sensors ของ Phone และ Arduino Cloud เพื่อทำ Fall detection

โปรเจกต์ Fall detection โดยใช้ Phone และ Arduino Cloud
12,943 การดู
2 ถูกใจ

รายการอุปกรณ์และเครื่องมือ

1x Arduino Nano RP2040 Connect
-
}

แอปพลิเคชันและแพลตฟอร์ม

1x Arduino IoT Cloud
เว็บ Official
1x ARDUINO IOT REMOTE
ค้นหา Google

รายละเอียดและวิธีทำ

Overview

ในโปรเจกต์นี้ ผมจะแสดงให้เห็นถึงความง่ายในการสร้างโปรเจกต์ IoT โดยใช้โทรศัพท์มือถือของคุณเป็นอุปกรณ์เพิ่มเติมสำหรับส่งข้อมูลผ่าน Arduino Cloud เป้าหมายคือการสาธิตแนวคิดนี้ด้วยการสร้างตัวอย่างระบบตรวจจับการล้ม (fall detection system) ที่ใช้โทรศัพท์ของคุณ

ด้วยการสตรีมข้อมูลจากโทรศัพท์ของเราไปยัง Arduino Cloud โดยใช้ฟีเจอร์ "Phone as Device" ในโหมด background ทำให้เราสามารถตรวจสอบการเร่งความเร็วที่เกิดขึ้นอย่างกะทันหันของโทรศัพท์ได้ Arduino Nano RP2040 Connect จะรับข้อมูลจาก Accelerometer ของโทรศัพท์แบบ real time และหากตรวจพบความเร่งที่เกินเกณฑ์ (threshold) ที่กำหนดไว้ จะเกิดการทริกเกอร์เหตุการณ์และ LED บนบอร์ดจะสว่างขึ้นเพื่อแจ้งเตือนคนรอบข้าง

เพื่อให้ง่ายต่อการมอนิเตอร์ระบบ ผมได้สร้าง Dashboard ที่แสดงสถานะปัจจุบันของระบบ Dashboard นี้ประกอบด้วยข้อมูลเกี่ยวกับเหตุการณ์การล้ม รวมถึง timestamp และตำแหน่ง GPS ด้วยวิธีนี้ คุณสามารถติดตามเหตุการณ์ต่างๆ และดำเนินการหากจำเป็นได้อย่างง่ายดาย

ระบบนี้ถูกออกแบบมาให้ใช้งานและติดตั้งได้ง่าย สิ่งที่คุณต้องทำมีเพียงแค่เปิดใช้งานฟีเจอร์ "Phone as Device" บนโทรศัพท์มือถือของคุณ และโปรแกรม Arduino Nano RP2040 Connect ด้วย Sketch ที่ให้ไว้ในตัวอย่างนี้ โทรศัพท์จะส่งข้อมูลไปยัง Arduino Cloud โดยอัตโนมัติ และ Nano จะเริ่มตรวจสอบการล้มโดยอัตโนมัติ พร้อมทั้งอัปเดตสถานะให้คุณทราบผ่าน Dashboard

ในตอนท้าย ผมจะแสดงวิธีสร้าง Trigger เพื่อรับการแจ้งเตือนเมื่อตรวจพบการล้ม

The setup

การติดตั้งนั้นง่ายมาก

รายการแรกคือโทรศัพท์มือถือที่รัน App Arduino IoT Remote พร้อมเปิดใช้งานฟีเจอร์ “Phone as Device” ในโหมด background ซึ่งจะส่งข้อมูลจาก Sensor ต่างๆ ไปยัง Arduino Cloud เช่น ตำแหน่ง GPS และความเร่ง (acceleration)

ส่วนประกอบที่สองคือ Arduino Nano RP2040 Connect เราจะกำหนดค่าการซิงโครไนซ์ตัวแปร GPS และ acceleration ระหว่างโทรศัพท์และ Nano โดย Sketch ที่รันบน Nano จะตรวจจับว่าความเร่งเกินเกณฑ์ที่กำหนดหรือไม่ และเปิดใช้งานเหตุการณ์เพื่อระบุว่าการล้มเกิดขึ้นเมื่อใด ที่ไหน และรุนแรงเพียงใด

ทั้งหมดนี้จะถูกมอนิเตอร์และควบคุมโดย Dashboard บน Arduino IoT Cloud ซึ่งเราจะสามารถดูข้อมูลการล้มครั้งล่าสุดและข้อมูลย้อนหลังได้ นอกจากนี้ เรายังสามารถล้างสถานะการตรวจจับการล้มได้ด้วยปุ่มกด

The project setup

The process

ขั้นตอนนี้ตรงไปตรงมามาก:

1. กำหนดค่าโทรศัพท์ของคุณเป็นอุปกรณ์ Arduino IoT Cloud

2. กำหนดค่าอุปกรณ์ที่จะแสดงผลเมื่อมีการล้ม

3. สร้าง Dashboard

4. สร้าง Trigger เพื่อรับการแจ้งเตือน

5. การทดสอบ

Configure your phone as an Arduino IoT Cloud device

การใช้งานโทรศัพท์เป็นอุปกรณ์แบบ background เป็นกระบวนการที่ง่าย อย่างไรก็ตาม ก่อนที่คุณจะเริ่ม ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง App เวอร์ชันล่าสุดบนอุปกรณ์ของคุณแล้ว เป็นที่น่าสังเกตว่า App นี้รองรับทั้งแพลตฟอร์ม Android และ iOS

1. เปิดใช้งานฟีเจอร์ “Phone as Device”

ในการดำเนินการต่อ ให้ไปที่ตัวเลือก "Phone as Device" บนแถบเมนูของ App จากนั้นทำตามคำแนะนำเพื่ออนุญาตให้ App เข้าถึง Sensor ของโทรศัพท์คุณ

2. เปิดใช้งานโหมด background

เมื่อคุณทำขั้นตอนก่อนหน้าเสร็จแล้ว คุณจะได้รับข้อความแจ้งให้เปิดใช้งานฟีเจอร์ "Background mode" คุณสามารถเปิดใช้งานได้ทันทีหรือทำด้วยตนเองในภายหลัง คุณยังสามารถเลือกวิธีที่อุปกรณ์จะสตรีมข้อมูลไปยัง IoT Cloud ได้:

  1. แบบเป็นระยะ (Periodically): ข้อมูลจะถูกสตรีมไปยัง Cloud ตามช่วงเวลาปกติที่คุณระบุ
  2. เมื่อมีการเปลี่ยนแปลง (On change): ข้อมูลจะถูกสตรีมไปยัง Cloud ทุกครั้งที่ค่าที่วัดได้มีการเปลี่ยนแปลง
  3. คุณสามารถอ่านคู่มือฉบับเต็มได้ที่นี่: https://docs.arduino.cc/arduino-cloud/tutorials/iot-remote-phone-sensors

Configure the device

Nano RP2040 Connect เป็นอุปกรณ์ที่ใช้รัน Logic และเป็นที่ตั้งของ LED แจ้งเตือน (เราจะใช้ LED แบบ builtin)

คุณเพียงแค่ทำตามขั้นตอนดังนี้:

1. สร้าง Device

เชื่อมต่อบอร์ด Nano RP2040 Connect เข้ากับ PC โดยใช้สาย USB ไปที่ส่วน Devices ของ Arduino IoT Cloud ( https://create.arduino.cc/iot/devices ) และคลิกที่ ADD

ทำตามคำแนะนำใน Wizard แล้วอุปกรณ์ของคุณจะถูกตรวจพบ กำหนดค่าเพื่อใช้งานกับ Arduino Cloud และถูกเพิ่มเข้าไปในรายการอุปกรณ์

2. สร้าง Thing

ไปที่ส่วน Things ของ Arduino IoT Cloud ( https://create.arduino.cc/iot/things ) และคลิกที่ CREATE ตั้งชื่อให้เรียบร้อยแล้ว Thing ของคุณจะถูกสร้างขึ้น

3. สร้าง Variables

เพิ่มตัวแปรโดยคลิกที่ปุ่ม ADD

เมื่อคุณสร้างตัวแปร ‘accel’ และ ‘gps’ คุณต้องเปิดใช้งานการซิงโครไนซ์กับตัวแปรของโทรศัพท์ ‘Accelerometer_Linear’ และ ‘Gps’:

  1. Acceleration

ตัวแปรโทรศัพท์: Accelerometer_Linear

ตัวแปร Nano: accel

  1. Position

ตัวแปรโทรศัพท์: Gps

ตัวแปร Nano: gps

ใน tutorial นี้คุณจะพบคำอธิบายฉบับเต็มของกระบวนการสร้างตัวแปรและการซิงโครไนซ์แบบ Thing-to-thing

เมื่อสิ้นสุดกระบวนการ รายการตัวแปรของคุณควรเป็นดังนี้

Nano RP2040 Thing - Variables configuration

4. เชื่อมโยง Thing กับ Device ของคุณ

ไปที่ส่วน Associated Device และคลิกที่ “Select Device” เลือก Nano RP2040 Connect ของคุณจากรายการ

5. กำหนดค่าเครือข่าย

ไปที่ส่วน Network และคลิกที่ “Change” ตั้งค่าข้อมูลการเข้าถึง WIFI ของคุณ

6. แก้ไข Sketch

วาง Sketch ลงในส่วนย่อย “Sketch” ของส่วน Thing คุณสามารถหา Sketch ได้ที่ส่วน Code ในตอนท้ายของโปรเจกต์

Create a dashboard

ไปที่ส่วน Dashboards และคลิกที่ CREATE ตั้งชื่อและเริ่มเพิ่ม Widget ตามตารางต่อไปนี้:

| Widget type | Widget name | Variable name |

|-------------|--------------------------|---------------------|

| Status | Fall detected | fall |

| Push button | Clear Fall det | fall_clear |

| Stepper | Acceleration threshold | threshold |

| Messenger | Messenger | message |

| Gauge | Last fall intensity | fall_intensity |

| Map | Last fall location | gps |

| Value | Last Fall detection time | fall_detection_time |

| Chart | Fall Intensity History | fall_intensity |

ผลลัพธ์สุดท้ายจะเป็นดังนี้:

Fall detection dashboard

Configure a Trigger to receive notifications

ขั้นตอนนี้ตรงไปตรงมามาก:

  1. ไปที่หน้า Triggers ของคุณ https://app.arduino.cc/triggers และคลิกที่ CREATE TRIGGER
  2. ไปที่เมนู dropdown ด้านบนซ้ายแล้วคลิกที่ "Rename Trigger" เพื่อตั้งชื่อ เช่น ผมตั้งค่าเป็น "Fall detection"
  3. ในแผงด้านขวา ให้เลือกตัวแปร Boolean "fall" เป็นเงื่อนไข
  4. กำหนดค่าการทำงาน (Actions) ในกรณีของผม ผมได้กำหนดให้มีการส่ง Email และ Push notification บน App มือถือ
Configure a Trigger

Let's test the system!

ลองนำทั้งหมดนี้มาใช้งานจริง!

ก่อนอื่น ให้กำหนดค่าเกณฑ์ (threshold) ซึ่งความไวต่อความเร่งจะขึ้นอยู่กับระดับนี้

หากคุณเริ่มเขย่าโทรศัพท์ เมื่อความเร่งเกินเกณฑ์ที่กำหนด คุณจะเห็นว่า:

  1. LED แบบ builtin ของ Nano จะสว่างขึ้น
  1. บน Dashboard ตัวบ่งชี้ “Fall detected” จะเปลี่ยนเป็น TRUE (สีเขียว)
  2. บน Dashboard จะมีข้อความใหม่ใน Messenger ระบุ timestamp, ตำแหน่ง และความรุนแรงของการล้ม
  3. Widget อื่นๆ บน Dashboard จะถูกอัปเดตด้วยข้อมูลการล้ม
  4. คุณจะได้รับการแจ้งเตือนทาง Email หรือมือถือ (ขึ้นอยู่กับการกำหนดค่าของคุณ)

หากคุณต้องการปิด LED บนบอร์ดและสถานะ Widget บน Dashboard คุณเพียงแค่กดปุ่ม “Clear Fall Det”

Future use cases

การประยุกต์ใช้งานนั้นไร้ขีดจำกัด

แทนที่จะเปิดไฟ LED บน Nano ระบบอาจถูกออกแบบให้มีหน้าจอ LCD หรือการแจ้งเตือนด้วยเสียง

แต่คุณยังสามารถใช้ข้อมูลจาก Sensor ของโทรศัพท์ในโปรเจกต์ของคุณได้อีกด้วย ลองจินตนาการถึงความเป็นไปได้ไม่รู้จบจากการใช้ข้อมูลดังกล่าว ตัวอย่างเช่น คุณสามารถใช้ขอบเขตทางภูมิศาสตร์เสมือน (Geofencing) เพื่อเริ่มการทำงานตามตำแหน่งของคุณ คุณยังสามารถทำระบบอัตโนมัติในบ้าน เช่น ปิดไฟเมื่อคุณออกจากบ้านและเปิดไฟเมื่อคุณกลับมา ล็อกประตู และปรับระบบควบคุมอุณหภูมิในบ้าน นอกจากนี้ คุณยังสามารถติดตามคนที่คุณรักด้วย Geofencing และรับการแจ้งเตือนทันทีหากพวกเขาออกจากพื้นที่ที่กำหนด Accelerometer ในโทรศัพท์ของคุณยังสามารถใช้ตรวจจับอุบัติเหตุหรือการล้ม และคุณยังสามารถใช้โทรศัพท์เป็นรีโมทคอนโทรลสำหรับเกมหรือหุ่นยนต์ได้อีกด้วย

จินตนาการของคุณเท่านั้นที่เป็นขอบเขตของสิ่งที่คุณสามารถทำได้ด้วยฟีเจอร์ใหม่นี้

เรียนรู้เพิ่มเติม

หากคุณต้องการเรียนรู้เพิ่มเติม โปรดดูเอกสาร (documentation) อย่างเป็นทางการของ Arduino ซึ่งคุณจะพบกับคู่มือการเริ่มต้นใช้งาน Tutorial และตัวอย่างที่เป็นประโยชน์มากมาย

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: fall-detection-using-your-phone-and-arduino-cloud-e79ba2
2450 บาท
PromptPay QR Code