跳到主要内容

无线加速度传感器 - 1

· 阅读需 3 分钟
  • 上传代码 & 驱动 MPU6050

MPU 6050ESP8266-01S 制作一个无线加速度传感器

概述

这个项目,我想使用 MPU6050 做传感器,ESP8266 做数据读取和网页服务端,网页显示动态的加速度数据和三轴加速度变化曲线图。

应用场景

设计的应用场景是高中物理教学,在学习力学(牛顿三定律)和后面的圆周运动中都多多少少需要测量加速度,虽然物理老师会用比较原始的方式测量到加速度让学生懂得原理,但在此之后原理不再是最重要的部分,而快速、准确、直观地获得数据变得更加重要。

优点

无线:不用连接数据线,进行实验时,不用担心数据线阻力或者缠绕的困扰。
测显分离:使用手机加速度测量软件时通常需要先测量再看数据,而这个设备可以边测边看到数据变化。

缺点

目标应用场景过于当一,作为产品的话不太会有销量。

制作

首先我要搞定的是 ESP8266 上传程序的问题,之前使用 Arduino IDE 就没成功上传过 ESP8266 的程序,都用的 ESP32 替代的……

程序烧录

参考了ESP8266 下载/烧录IDE编译的程序和 「Grok 2」的回答,使用了之前给我爸做的项目做的一个 CH340 「USB-C」转「串口」的板子上传程序 USB转串口

需要注意的是接线和Reset线的连接

ESP <==> 串口  
3V3 <==> 3V3
GND <==> GND
RX <==> TX
TX <==> RX
IO0 <==> GND

RESET 要注意先拉低之后重置完就要拉高,把跳线裸露容易导致上传失败(可能是内部没有上拉?)。
然后我花了差不多一个小时成功传上去了 「Blink」。

驱动 MPU6050

使用了 Adafruit MPU6050 库,先用了库里的「Example」由于 ESP8266-01S 所保留的 GPIO 没有包含硬件 IIC 主线,所以需要改默认引脚:

#define SDA_PIN 0 // IO0
#define SCL_PIN 2 // IO2

Wire.begin(SDA_PIN, SCL_PIN); //使用模拟IIC

然后改了下「Serial」的发送内容和「Delay」传了上去: 读到的数据与串口绘图