基于STM32的智能(GPS+NB-IOT)导盲系统

基于STM32的智能(GPS+BC26)导盲系统

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

成品功能: STM32通过GPS模块采集位置数据,通过超声波监测距离,看前方是否有障碍物,有的话蜂鸣器提醒。数据显示在屏幕上,通过NB-IOT(BC26)模块连接阿里云物联网平台接受数据并实时监控。


材料

  • STM32ZET6开发板(战舰V3)
  • TFT显示屏(战舰有我用的2.7寸的)
  • NB-IOT(BC26)模块
  • GPS模块(ATK-NEO-6M GPS 模块)
  • 超声波模块(HCSR04)
  • 杜邦线
  • 用keil5进行开发

开始制作。

制作过程

首先测试GPS模块,将例程下入板中测试。然后测试BC26模块,通过AT指令接入阿里云,成功连接后再通过STM32接入阿里云实现通信。最后加入超声波模块。进行组合测试。https://blog.csdn.net/weixin_42320020/article/details/115556492

GPS模块

GPS(ATK-NEO-6M GPS)模块
设置好后,模块接收NMEA码并解析出我们需要的数据。
例如: 基于STM32的智能(GPS+NB-IOT)导盲系统_第1张图片
每个都代表着不同的数据。可以参考:GPS的NMEA码的详细解释定义
具体的模块已经配置好了,我们使用就可以了。

硬件连接
  1. 将模块插入到开发板的ATK-MODULE接口(靠下插)即可。

基于STM32的智能(GPS+NB-IOT)导盲系统_第2张图片
2. 短接: USART3_RX 和 GBC_TX 以及 USART3_TX 和 GBC_RX。

代码测试
  1. 将原子哥的代码下载到板子中进行测试。
  2. 通电测试(我开始在室内,等了好久都没有数据,后来搬到室外就有数据了,第一次连接需要等一会儿,在室外有数据之后,再回到室内就还有数据。)
  3. 这样即表示成功
    基于STM32的智能(GPS+NB-IOT)导盲系统_第3张图片

NB-IOT(BC26)模块

模块配置连接阿里云可以参考我上篇文章。基于STM32的NB-IOT(BC26)的温湿度监测系统

这里需要添加几个展示。基于STM32的智能(GPS+NB-IOT)导盲系统_第4张图片
这样BC26和阿里云对接就搞定了。

将GSM模块加入BC26代码中

哪个作为基础代码都可以

  1. 将模块代码文件加入。
  2. 在keil中添加引入这个文件。
  3. 在主函数中添加初始化函数。
  4. 将位置数据添加到串口中。基于STM32的智能(GPS+NB-IOT)导盲系统_第5张图片这里位置数据是个结构体,我们这样打包串口位置数据。{\"GeoLocation\":{\"E\":%.5f,\"N\":%.5f,\"G\":%.1f}
  5. 进行测试。基于STM32的智能(GPS+NB-IOT)导盲系统_第6张图片
    可以看到已经有数据了。
超声波模块

超声波模块工作原理:
(1)采用IO口TRIG触发测距,给最少10us的高电平信号。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回。
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续时间就是超声波从发射到返回的时间,测试距离=(高电平时间*声速(340M/s)/2(发射和回来的时间,所以要除以2))

超声波STM32代码:

void Ultra_Ranging(float *p)
{
     
	u8 i;
	u32 j;
	float Ultr_Temp;	
	for(i=0;i<5;i++)
	{
     
		TRIG_Send=1;
		delay_ms(10);
		TRIG_Send=0;
		while(!ECHO_Reci);
		while(ECHO_Reci)
		{
     
			delay_us(10);
			j++;
		}
		Ultr_Temp+=340/2*j*10;
		j=0;
		delay_ms(60);
	}
	*p=Ultr_Temp/5/1000000; 	
}

将超声波代码加入到写好的代码中。进行测试。
基于STM32的智能(GPS+NB-IOT)导盲系统_第7张图片
可以看到效果跟预想的一样。
最后加入当超声波监测距离小于3米蜂鸣器报警。
这个项目就完成你了。

最后附上完整的项目文件。自行下载。

这个项目到这里就算完了。
还有很多不足的地方,希望大佬可以指正。也希望和爱好者交流学习。

禁止转载!!!
QQ:2039723308
VX:Shiboven

你可能感兴趣的:(STM32,BC26,NB-IOT,STM32,BC26,超声波,HC-SR04,盲人)