基于STM32的智能垃圾车系统

基于STM32的智能导盲系统

闲来无事,用手头STM32做个项目。

成品功能:
1、垃圾车可以可以按照规定的路线自动行驶,当红外传感器检测到有人靠近后可以自动停车,电机驱动打开垃圾桶盖;
2、垃圾桶内设红外传感器,当垃圾桶内的垃圾已经装满的时候,单片机会通过短信模块自动发送短信给管理人员;
3、小车装有GPS定位,可以通过GPS实时查看垃圾车的位置,当垃圾已满或超重时会提醒有关人员进行垃圾清理。

材料

  • STM32F103C8T6芯片最小系统板
  • OLED液晶显示屏
  • 5个红外检测模块
  • 杜邦线
  • GSM模块
  • GPS模块
  • 人体红外模块
  • 一个模块小车
  • 一个电池盒
  • 四节5号电池
  • ULN2003驱动模块
  • 一个舵机
  • 一个开关
  • 一个小垃圾桶(纸盒子也行)
  • 用keil5进行开发

小车为在这里插入图片描述

开始制作。

整体示意图

这里画了一个简单的示意图,方便后续设计思路
在这里插入图片描述

系统流程图

在这里插入图片描述

还有系统原理图等在资料中。

制作过程

1、首先测试GPS,找到地址(经纬度)数据。再测试GSM,通过AT指令使其可以发短信(也可测试打电话,本项目用不到),然后在板子中测试,再测试GPS,找到地址(经纬度)数据。
2、测试小车自动循迹。
3、测试小车

GPS模块调试
模块原理

GPS(ATK-NEO-6M GPS)模块
设置好后,模块接收NMEA码并解析出我们需要的数据。
例如: 在这里插入图片描述
每个都代表着不同的数据。可以参考:GPS的NMEA码的详细解释定义
具体的模块已经配置好了,我们使用就可以了。

硬件连接

1、给模块供5V电、GND接地。
2、模块接到板子串口1上(模块TX接板子PA10、模块RX接板子PA9)。

代码调试

1、代码要做的就是将这个过程自动化。收集到数据之后自动处理。
2、部分代码如下

void parseGpsBuffer()
{
   
	char *subString;
	char *subStringNext;
	char i = 0;
	if (Save_Data.isGetData)
	{
   
		Save_Data.isGetData = false;
		u2_printf("**************\r\n");
		u2_printf(Save_Data.GPS_Buffer);
		for (i = 0 ; i <= 6 ; i++)
		{
   
			if (i == 0)
			{
   
				if ((subString = strstr(Save_Data.GPS_Buffer, ",")) == NULL)
					errorLog(1);	
			}
			else
			{
   
				subString++;
				if ((subStringNext = strstr(subString, ",")) != NULL)
				{
   
					char usefullBuffer[2]; 
					switch(i)
					{
   
						case 1:memcpy(Save_Data.UTCTime, subString, subStringNext - subString);break;	//??è?UTCê±??
						case 2:memcpy(usefullBuffer, subString, subStringNext - subString);break;	//??è?UTCê±??
						case 3:memcpy(Save_Data.latitude<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

释博文

您的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值