Skip to content

PetToothFairy/Arduino

Repository files navigation

Smart IoT Toothbrush Application for Dogs, 양치코치

Capstone Design, Fall 2024, Inha University
인하대학교 종합설계프로젝트 - 대상 수상작

Project Duration : 2024.09. ~ 2024.12.


스크린샷 2024-12-20 17 05 18

IMG_3202


🎥 소개 영상

default.mp4

🎥 기기 시연 영상

실시간 부위 확인 기능에 대한 부분 시연 영상
3D 프린팅으로 제작된 압력센서, 아두이노(가속도 센서, 자기 센서 내장), 배터리가 내장된 실제 양치 가능 칫솔 제작 기기입니다.

default.mp4

⚒️ Development Environment

  • Arduino Board: Arduino Nano 33 BLE Rev1
  • IDE: Arduino IDE
  • Version Control: Git

⚙️ Dependencies / Libraries

  • Accelerometer, Magnetometer and Gyroscope values: Arduino_LSM9DS1.h
  • Bluetooth: ArduinoBLE.h
  • KalmanFilter: SimpleKalmanFilter.h

📁 Arduino Directory Structure

📁 Arduino
├── README.md
├── accuracy_test
│   └── accuracy_test.ino
├── complementary_filter
│   └── complementary_filter.ino
├── data_to_swift
│   └── data_to_swift.ino
├── final
│   └── final.ino
├── fsr_test
│   └── fsr.ino
├── kalman_filter
│   └── kalman_filter.ino
├── libraries
│   ├── ArduinoBLE
│   │   ├── CHANGELOG
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── docs
│   │   │   ├── api.md
│   │   │   ├── assets
│   │   │   │   └── ble-bulletin-board-model.png
│   │   │   └── readme.md
│   │   ├── examples
│   │   │   ├── Central
│   │   │   │   ├── LedControl
│   │   │   │   │   └── LedControl.ino
│   │   │   │   ├── PeripheralExplorer
│   │   │   │   │   └── PeripheralExplorer.ino
│   │   │   │   ├── Scan
│   │   │   │   │   └── Scan.ino
│   │   │   │   ├── ScanCallback
│   │   │   │   │   └── ScanCallback.ino
│   │   │   │   └── SensorTagButton
│   │   │   │       └── SensorTagButton.ino
│   │   │   └── Peripheral
│   │   │       ├── Advertising
│   │   │       │   ├── EnhancedAdvertising
│   │   │       │   │   └── EnhancedAdvertising.ino
│   │   │       │   └── RawDataAdvertising
│   │   │       │       └── RawDataAdvertising.ino
│   │   │       ├── BatteryMonitor
│   │   │       │   └── BatteryMonitor.ino
│   │   │       ├── ButtonLED
│   │   │       │   └── ButtonLED.ino
│   │   │       ├── CallbackLED
│   │   │       │   └── CallbackLED.ino
│   │   │       ├── EncryptedBatteryMonitor
│   │   │       │   └── EncryptedBatteryMonitor.ino
│   │   │       └── LED
│   │   │           └── LED.ino
│   │   ├── extras
│   │   │   ├── arduino-ble-parser.py
│   │   │   └── test
│   │   │       ├── CMakeLists.txt
│   │   │       ├── external
│   │   │       │   └── catch
│   │   │       │       └── v2.12.1
│   │   │       │           └── include
│   │   │       │               └── catch.hpp
│   │   │       ├── include
│   │   │       │   ├── Arduino.h
│   │   │       │   ├── test_advertising_data
│   │   │       │   │   └── FakeBLELocalDevice.h
│   │   │       │   ├── test_discovered_device
│   │   │       │   │   └── FakeGAP.h
│   │   │       │   └── util
│   │   │       │       ├── Common.h
│   │   │       │       ├── HCIFakeTransport.h
│   │   │       │       ├── Stream.h
│   │   │       │       ├── String.h
│   │   │       │       ├── TestUtil.h
│   │   │       │       └── itoa.h
│   │   │       └── src
│   │   │           ├── Arduino.cpp
│   │   │           ├── test_advertising_data
│   │   │           │   ├── FakeBLELocalDevice.cpp
│   │   │           │   ├── test_advertising_data.cpp
│   │   │           │   ├── test_local_name.cpp
│   │   │           │   ├── test_manufacturer.cpp
│   │   │           │   └── test_service.cpp
│   │   │           ├── test_discovered_device
│   │   │           │   ├── FakeGAP.cpp
│   │   │           │   └── test_discovered_device.cpp
│   │   │           ├── test_main.cpp
│   │   │           ├── test_uuid
│   │   │           │   └── test_uuid.cpp
│   │   │           └── util
│   │   │               ├── Common.cpp
│   │   │               ├── HCIFakeTransport.cpp
│   │   │               ├── String.cpp
│   │   │               ├── TestUtil.cpp
│   │   │               └── itoa.c
│   │   ├── keywords.txt
│   │   ├── library.properties
│   │   └── src
│   │       ├── ArduinoBLE.h
│   │       ├── BLEAdvertisingData.cpp
│   │       ├── BLEAdvertisingData.h
│   │       ├── BLECharacteristic.cpp
│   │       ├── BLECharacteristic.h
│   │       ├── BLEDescriptor.cpp
│   │       ├── BLEDescriptor.h
│   │       ├── BLEDevice.cpp
│   │       ├── BLEDevice.h
│   │       ├── BLEProperty.h
│   │       ├── BLEService.cpp
│   │       ├── BLEService.h
│   │       ├── BLEStringCharacteristic.cpp
│   │       ├── BLEStringCharacteristic.h
│   │       ├── BLETypedCharacteristic.h
│   │       ├── BLETypedCharacteristics.cpp
│   │       ├── BLETypedCharacteristics.h
│   │       ├── local
│   │       │   ├── BLELocalAttribute.cpp
│   │       │   ├── BLELocalAttribute.h
│   │       │   ├── BLELocalCharacteristic.cpp
│   │       │   ├── BLELocalCharacteristic.h
│   │       │   ├── BLELocalDescriptor.cpp
│   │       │   ├── BLELocalDescriptor.h
│   │       │   ├── BLELocalDevice.cpp
│   │       │   ├── BLELocalDevice.h
│   │       │   ├── BLELocalService.cpp
│   │       │   └── BLELocalService.h
│   │       ├── remote
│   │       │   ├── BLERemoteAttribute.cpp
│   │       │   ├── BLERemoteAttribute.h
│   │       │   ├── BLERemoteCharacteristic.cpp
│   │       │   ├── BLERemoteCharacteristic.h
│   │       │   ├── BLERemoteDescriptor.cpp
│   │       │   ├── BLERemoteDescriptor.h
│   │       │   ├── BLERemoteDevice.cpp
│   │       │   ├── BLERemoteDevice.h
│   │       │   ├── BLERemoteService.cpp
│   │       │   └── BLERemoteService.h
│   │       └── utility
│   │           ├── ATT.cpp
│   │           ├── ATT.h
│   │           ├── BLELinkedList.h
│   │           ├── BLEUuid.cpp
│   │           ├── BLEUuid.h
│   │           ├── CordioHCICustomDriver.h
│   │           ├── GAP.cpp
│   │           ├── GAP.h
│   │           ├── GATT.cpp
│   │           ├── GATT.h
│   │           ├── HCI.cpp
│   │           ├── HCI.h
│   │           ├── HCICordioTransport.cpp
│   │           ├── HCICordioTransport.h
│   │           ├── HCISilabsTransport.cpp
│   │           ├── HCISilabsTransport.h
│   │           ├── HCITransport.h
│   │           ├── HCIUartTransport.cpp
│   │           ├── HCIUartTransport.h
│   │           ├── HCIVirtualTransport.cpp
│   │           ├── HCIVirtualTransport.h
│   │           ├── HCIVirtualTransportAT.cpp
│   │           ├── HCIVirtualTransportAT.h
│   │           ├── L2CAPSignaling.cpp
│   │           ├── L2CAPSignaling.h
│   │           ├── bitDescriptions.cpp
│   │           ├── bitDescriptions.h
│   │           ├── btct.cpp
│   │           ├── btct.h
│   │           ├── keyDistribution.cpp
│   │           └── keyDistribution.h
│   ├── Arduino_BMI270_BMM150
│   │   ├── CHANGELOG
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── docs
│   │   │   ├── api.md
│   │   │   └── readme.md
│   │   ├── examples
│   │   │   ├── Interrupts_subclassing
│   │   │   │   └── Interrupts_subclassing.ino
│   │   │   ├── SimpleAccelerometer
│   │   │   │   └── SimpleAccelerometer.ino
│   │   │   ├── SimpleGyroscope
│   │   │   │   └── SimpleGyroscope.ino
│   │   │   └── SimpleMagnetometer
│   │   │       └── SimpleMagnetometer.ino
│   │   ├── keywords.txt
│   │   ├── library.properties
│   │   └── src
│   │       ├── Arduino_BMI270_BMM150.h
│   │       ├── BMI270.cpp
│   │       ├── BoschSensorClass.h
│   │       └── utilities
│   │           ├── BMI270-Sensor-API
│   │           │   ├── LICENSE
│   │           │   ├── OIS_README.md
│   │           │   ├── README.md
│   │           │   ├── bmi2.c
│   │           │   ├── bmi2.h
│   │           │   ├── bmi270.c
│   │           │   ├── bmi270.h
│   │           │   ├── bmi270_context.c
│   │           │   ├── bmi270_context.h
│   │           │   ├── bmi270_legacy.c
│   │           │   ├── bmi270_legacy.h
│   │           │   ├── bmi270_maximum_fifo.c
│   │           │   ├── bmi270_maximum_fifo.h
│   │           │   ├── bmi2_defs.h
│   │           │   ├── bmi2_ois.c
│   │           │   └── bmi2_ois.h
│   │           └── BMM150-Sensor-API
│   │               ├── Interrupt_settings.md
│   │               ├── LICENSE
│   │               ├── README.md
│   │               ├── bmm150.c
│   │               ├── bmm150.h
│   │               └── bmm150_defs.h
│   ├── Arduino_LSM6DSOX
│   │   ├── LICENSE.txt
│   │   ├── README.adoc
│   │   ├── docs
│   │   │   ├── api.md
│   │   │   └── readme.md
│   │   ├── examples
│   │   │   ├── SimpleAccelerometer
│   │   │   │   └── SimpleAccelerometer.ino
│   │   │   ├── SimpleGyroscope
│   │   │   │   └── SimpleGyroscope.ino
│   │   │   └── SimpleTemperature
│   │   │       └── SimpleTemperature.ino
│   │   ├── keywords.txt
│   │   ├── library.properties
│   │   └── src
│   │       ├── Arduino_LSM6DSOX.h
│   │       ├── LSM6DSOX.cpp
│   │       └── LSM6DSOX.h
│   ├── Arduino_LSM9DS1
│   │   ├── CHANGELOG
│   │   ├── LICENSE.txt
│   │   ├── README.adoc
│   │   ├── docs
│   │   │   ├── api.md
│   │   │   └── readme.md
│   │   ├── examples
│   │   │   ├── SimpleAccelerometer
│   │   │   │   └── SimpleAccelerometer.ino
│   │   │   ├── SimpleGyroscope
│   │   │   │   └── SimpleGyroscope.ino
│   │   │   └── SimpleMagnetometer
│   │   │       └── SimpleMagnetometer.ino
│   │   ├── keywords.txt
│   │   ├── library.properties
│   │   └── src
│   │       ├── Arduino_LSM9DS1.h
│   │       ├── LSM9DS1.cpp
│   │       └── LSM9DS1.h
│   └── SimpleKalmanFilter
│       ├── LICENSE
│       ├── README.md
│       ├── examples
│       │   ├── AltitudeKalmanFilterExample
│       │   │   └── AltitudeKalmanFilterExample.ino
│       │   └── BasicKalmanFilterExample
│       │       └── BasicKalmanFilterExample.ino
│       ├── images
│       │   └── kalman_filter_example_1.png
│       ├── keywords.txt
│       ├── library.json
│       ├── library.properties
│       └── src
│           ├── SimpleKalmanFilter.cpp
│           └── SimpleKalmanFilter.h
├── logic_v2
│   └── logic_v2.ino
├── lowpass_filter
│   └── lowpass_filter.ino
└── one_sec_BLE
    └── one_sec_BLE.ino

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages