基于STM32的摔倒预警系统
闲来无事,用手头STM32做个项目。
成品功能:
摔倒预警。当老人发生摔倒时,自动进行求救,给一个人发短信,附带位置信息。
思考:如何确定老人是摔倒了?
方法:我打算用两到三个测量高度的传感器。分别放在脚腕、手腕、和头。当三个高度一直时表明老人是躺着的,再根据其他辅助信息,比如时间,地点等去确定老人是不是真的摔倒了。
从网上找半天,发现敏感的大气压强传感器可以确定高度,精确到15cm,符合我的预期。
材料
- STM32F103ZET6芯片开发板
- 液晶显示屏
- 杜邦线
- 两块BMP280模块
- GSM模块
- GPS模块
- 用keil5进行开发
开始制作。
制作过程
首先测试BMP280模块,得到期望的数据后再测试GPS模块,找到地址(经纬度)数据。再测试GSM,通过AT指令使其可以发短信(也可测试打电话,本项目用不到),然后在板子中测试,再测试GPS,找到地址(经纬度)数据。最后完成代码逻辑。
BMP280模块
这个模块有SPI和IIC两种连接方式,我们这里采用iic因为我们其他两个模块都要用串口,我们还要调试,就没有那么多串口可以用。根据网上找的BMP280驱动连接板子后可以看到我们希望得到的数据。先用两路BMP进行测试。结果如图所示。
部分代码
void bmp280GetData(float* pressure,float* temperature,float* asl)
{
static float t;