亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

自制智能鞋垫:基于 Arduino MKR1000 的足底压力分布实时监测

所需组件与物料

组件数量备注
Arduino MKR10001大多数 3.3V/5V 带 Wi-Fi 开发板均可,不推荐 ESP 系列(实测读数不稳)
力敏电阻 (FSR) Interlink 4023量程 100N,也可用 406 型,增加数量可提升精度
导线1按英尺购买
10kΩ 电阻3调整分压比例以适配量程
移动电源1
ADXL345 三轴加速度计模块116g 量程,用于步态周期分析(可选)

所需工具

所需应用与在线服务

项目简介

足底压力测广泛应用于步态分析、临床诊断与运动表现评估。本项目通过 3 个 FSR 传感器采集关键受力点数据,结合加速度计辅助步态识别,通过 Wi-Fi 实时上传至 Thinger.io 云端仪表盘可视化压力分布热力图。

硬件接线

自制智能鞋垫:基于 Arduino MKR1000 的足底压力分布实时监测

关键提示:

硬件固定在鞋垫上

自制智能鞋垫:基于 Arduino MKR1000 的足底压力分布实时监测

建议先跑通代码再固定硬件,避免焊接不良需返工。三个 FSR 分别贴在鞋垫:

最佳贴合位置需反复试走,选模拟量变化最大处。导线用胶带固定防位移干扰读数。鞋垫底部与鞋内贴魔术贴防滑。加速度计用双面胶贴在鞋后跟外侧。

力值测量与数据处理

代码大量使用数组管理三路 FSR 数据。完整代码见文末,此处解析核心逻辑:

Thinger.io 连接与数据上传结构


#define _DEBUG_
#include 
#include 
#include 
#include 
#include 

#define USERNAME "yourUsername"
#define DEVICE_ID "yourDeviceID"
#define DEVICE_CREDENTIAL "yourDeviceCredential"
#define SSID "yourSSID"
#define SSID_PASSWORD "yourSSIDPassword"

#define noFSRs 3
#define FSR1 A1
#define FSR2 A2
#define FSR3 A3

float fsrVoltageArray[3], fsrForceArray[3], fsrWeightInGramsArray[3];
int pinArray[3] = {FSR1, FSR2, FSR3};
float forceMaxArray[3] = {100.0, 100.0, 100.0};
float voltageMax = 0.98 * 5000; // 5V 系统取 4900mV 作为饱和阈值

ThingerWifi101 thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL);

void setup() {
  Serial.begin(115200);
  thing.add_wifi(SSID, SSID_PASSWORD);

  // 原始 ADC 值
  thing["pressure"] >> [](pson& out) {
    out["FSR1"] = analogRead(FSR1);
    out["FSR2"] = analogRead(FSR2);
    out["FSR3"] = analogRead(FSR3);
  };

  // 电压值 (mV)
  thing["voltage"] >> [](pson& out) {
    for (int i=0; i> [](pson& out) {
    for (int i=0; i> [](pson& out) {
    for (int i=0; i> [](pson& out) {
      sensors_event_t event;
      accel.getEvent(&event);
      out["x"] = event.acceleration.x;
      out["y"] = event.acceleration.y;
      out["z"] = event.acceleration.z;
    };
  }
}

void loop() { thing.handle(); }

Thinger.io 仪表盘效果

自制智能鞋垫:基于 Arduino MKR1000 的足底压力分布实时监测

加速度计测量

通过 I2C 读取 ADXL345 三轴加速度(m/s²),同上传至云端,便于步态周期分割与动作识别。

Thinger.io 库使用要点

常见问题 FAQ

完整代码


#define _DEBUG_
#include 
#include 
#include 
#include 
#include 

#define USERNAME "yourUsername"
#define DEVICE_ID "yourDevice"
#define DEVICE_CREDENTIAL "yourCredential"
#define SSID "yourSSID"
#define SSID_PASSWORD "yourSSIDPassword"

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
int x=0, y=0, z=0;

#define noFSRs 3
#define FSR1 A1
#define FSR2 A2
#define FSR3 A3

float fsrVoltageArray[3], fsrForceArray[3], fsrWeightInGramsArray[3];
int pinArray[3] = {FSR1, FSR2, FSR3};
float forceMaxArray[3] = {100.0, 100.0, 100.0};
float conversionToKgrams = 1.0/9.80665;
long Vcc = 5000;
float voltageMax = 0.98 * Vcc;

ThingerWifi101 thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL);

void setup() {
  Serial.begin(115200);
  thing.add_wifi(SSID, SSID_PASSWORD);

  if(!accel.begin()) Serial.println("No ADXL345 detected.");
  else {
    accel.setRange(ADXL345_RANGE_16_G);
    thing["accelerometer"] >> [](pson& out){
      sensors_event_t event;
      accel.getEvent(&event);
      out["x"] = event.acceleration.x;
      out["y"] = event.acceleration.y;
      out["z"] = event.acceleration.z;
    };
  }

  thing["pressure"] >> [](pson & out) {
    out["FSR1"] = analogRead(FSR1);
    out["FSR2"] = analogRead(FSR2);
    out["FSR3"] = analogRead(FSR3);
  };

  thing["voltage"] >> [](pson & out) {
    for (int FSR=0; FSR> [](pson & out) {
    for (int FSR=0; FSR> [](pson & out) {
    for (int FSR=0; FSR

原理图

自制智能鞋垫:基于 Arduino MKR1000 的足底压力分布实时监测

制造工艺

  1. 智能调酒师:树莓派驱动的自动鸡尾酒机
  2. 用 Arduino Nano 和 Nokia 5110 LCD 自制 20kHz 示波器:简易 DIY 指南
  3. DIY ADXL335 地震检测仪 — 低功耗三轴加速度计项目
  4. Arduino UNO 精准视觉反应时间测试仪
  5. 家用增压泵故障排查:常见原因与解决方案全指南
  6. 季度供应链体检:保障运营顺畅
  7. 压缩空气系统压降控制实战指南
  8. ABB推出智能传感器监测轴承健康,减少停机
  9. 智能家居演进:未来连接生活展望
  10. 最大化物联网投资回报:从盲区到自动化运营的四阶段进阶
  11. 楼宇管理系统(BMS)赋能智慧城市:IoT驱动能效、安防与个性化体验
  12. 使用 sys.getsizeof() 高效测量 Python 对象内存占用