基于STM32的盲人守护精灵设计与实现

2024-02-05 19:40

本文主要是介绍基于STM32的盲人守护精灵设计与实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1  适用场景

2  开发环境

3  技术框架及硬件元件

4  实现功能

6  实物图

7  关键源码


1  适用场景


        盲人拐杖、智能导盲杖


2  开发环境


        下位机开发环境:Keil µVision5

        上位机开发环境:腾讯云平台

        小鱼儿电子设计微信号:IOTElectronics(可获取视频)

3  技术框架及设计思路


  • 技术框架:STM32单片机+WiFi无线通信技术+腾讯云平台+微信小程序+微信公众号提醒
  • 设计思路:系统上电后,拐杖开启智能模式,使用者在行走中,拐杖检测到前方障碍物,会语音提示报警,使用者不慎摔倒时,拐杖会发出警报声,引起周围行人注意并实施援救,当周围环境亮度过暗时,会亮灯提示其他人,同时当前方有积水时,会报警和语音提示。
  • 硬件元件:STM32单片机+5516光线传感器+DS1302实时时钟模块+水滴传感器+ADXL345三轴加速度传感器+JQ8400语音播报模块+E18-D80NK漫反射光电红外传感器+OLED12864屏幕+LED照明灯+按键+蜂鸣器+ESP8266 WiFi无线通信模块

4  实现功能


  • LED灯照明:当光线传感器监测环境的光线值低于30%时,自动开启照明灯进行照明,防止行人碰撞,并为行人照明。
  • 红外障碍物监测:当红外传感器检测前方有障碍物,语音提示"有障碍"2s提醒一次)。
  • 跌倒报警:当三轴加速度传感器检测到盲人摔倒,蜂鸣器会报警,在跌倒时间大于30s,未起来,通过微信公众号提醒监护人。
  • 积水监测:当拐杖触到积水会语音提示"有积水"2s提醒一次)。
  • 按键功能:按下按键可以实现时间设定、语音播报温度和时间以及开机和关机。
  • 微信小程序远程监测:通过WiFi无线通信技术将监测的相关数据上传至腾讯云平台,进而发送至微信小程序,并通过公众号进行提醒。

5  实物图


微信小程序图

6  关键源码


SENSOR sensor;
unsigned int  adc;
unsigned int  cnt_beep;
unsigned int  cnt_display=0; 
unsigned char flag_beep;
unsigned char cnt_play;
unsigned char start=1;
void App_GetSensor_Point(void)
{static unsigned char delay;float f_temp;if(start==0){flag_beep=0;sensor.led=0;sensor.play=0;		return;}if(delay++>100){delay=0;ADXL345_GetValue();}if(timer3cnt>1000) { 	cnt_play++;volume_config(30);f_temp=0.0625*DS18B20_GetTemp();sensor. Temperature=f_temp;				if(sensor. Temperature>99)sensor.temperature=0;sensor.fall=adxlInfo.status;			if(READ_IR==0)sensor.ir=1;else          sensor.ir=0;			ADC_Read(10);				if(sensor. Water>30)sensor.water=1;else               sensor. Water=0;		if(sensor. Light<40)sensor.led=1;else               sensor.led=0;				flag_beep=0;if(sensor.fall||sensor. Water)flag_beep=1;sensor. Play=0;if(sensor.ir)   sensor. Play|=0x01;if(sensor. Water)sensor. Play|=0x02;timer3cnt=0;																			}		display_info();
}

这篇关于基于STM32的盲人守护精灵设计与实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/681958

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

Java实现字节字符转bcd编码

《Java实现字节字符转bcd编码》BCD是一种将十进制数字编码为二进制的表示方式,常用于数字显示和存储,本文将介绍如何在Java中实现字节字符转BCD码的过程,需要的小伙伴可以了解下... 目录前言BCD码是什么Java实现字节转bcd编码方法补充总结前言BCD码(Binary-Coded Decima

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja