https://mbb.eet-china.com/blog/3975615-433890.html
2022-8-4用GPS模块和Arduino制作一个多功能车辆测速仪
2022-8-4 10:30  665 0 1 分类: 智能硬件 文集: 方案

车辆测速装置有机械式和电子式两种,本项目利用GPS模块、Arduino和OLED显示屏测量并显示车辆的即时速度,属于智能仪表类别。

项目的核心是GPS接收器。目前最流行的GPS模块是ublox NEO-6M,这里我们采用了Quectel L86 GPS模块,因为其简单且天线非常小巧,只要与Arduino、0.96″ OLED显示屏连接,与速度相关参数就显示在OLED屏幕上。项目BOM清单如下:

Arduino Nano板         x1
L80/L86 GPS模块    x1
OLED显示屏         x1
杜邦线                x20
面包板                 x1

Quectel L86/L80 GPS模块

Quectel L86采用联发科技GNSS MT3333芯片,是一款集成16mm×16mm×4.0mm贴片天线的超紧凑型GNSS模块,使客户能灵活地从GPS切换到GNSS。L86采用LCC封装,内置贴片天线使其拥有超强的捕获和追踪能力。
通过先进的AGPS(EASY)轨道预测技术和省电模式(AlwaysLocate技术),L86模块能自动计算和预测长达三天的轨道信息,并将这些信息存储到内部RAM存储器中,即使在室内弱信号情况下也能实现低功耗快速定位。AlwaysLocate技术的运用,使得L86可以根据不同的环境状况和运行模式,自动调节定位时间,在确保定位精度的同时大大降低了模块功耗。

凭借超小尺寸,超高精度和灵敏度,L86几乎能满足M2M客户所有应用需求,尤其适用于车载、个人追踪、工业级PDA及其他相关手持设备等领域,特别适合于GPS接收机和OBD应用。主要优势包括:
支持多重卫星系统:GPS、GLONASS、QZSS
内嵌贴片天线:16mm×16mm×4.0mm
超紧凑型封装:18.4mm×18.4mm×6.45mm
支持内外置天线自动切换
支持短路保护和天线侦测
内置低噪声放大器,提高接收高灵敏度
支持自辅助AGPS(EASY技术,无需外部存储器)
极低的电流消耗:26mA@追踪模式
多种省电模式:待机模式、备份模式、周期模式、AlwaysLocate模式
LOCUS技术,支持日志信息自动记录保存
高灵敏度:-167dBm@追踪模式,-149dBm@捕获模式
99个捕获信道,33个追踪信道
支持Balloon模式,定位高度高达80km
支持DGPS和SBAS(WAAS/EGNOS/MSAS/GAGAN)
多频主动干扰消除技术增强抗干扰能力
授时服务支持PPS与NMEA同步功能
支持移远通信自主研发的SDK命令
UART接口:波特率范围4800~115200bps,默认波特率9600bps
更新速率:1Hz(默认),最高10Hz
输入/输出电压:2.7~2.9V
协议:NMEA 0183/PMTK

作为一个SMD形式的工业级模块,项目制作时需要插入2.54间距排针,并焊接在底部PCB上。焊上所有12个针脚后,L86模块就变得十分友好,可轻易插接在面包板上。

连接Arduino GPS测速仪

Arduino GPS测速仪电路非常简洁,只要将三个组件按照电路图连接起来即可。

Quectel L86 GPS模块有12个引脚,本项目只用其中的5个。将VCC、GND连接到Arduino开发板的3.3V、GND引脚;V_BCKP引脚也要连接到3.3V,如果不连接的话模块就不能工作。L86模块的Rx、Tx引脚要分别连接到Arduino开发板的数字引脚2、3上。

OLED显示屏是I2C总线,其VCC、GND引脚要连接到Arduino开发板的3.3V、GND引脚。同样,SDA、SCL引脚则连接到Arduino板子的A4、A5引脚上。

编写代码

L80 GPS模块支持Tiny GPS++ Library,下载库文件并上传到Arduino库文件夹。除了Tiny GPS++ Library,代码还需要称作Adafruit SSD1306的SSD1306 Library文件。

以下是完整代码,拷贝并上传到Arduino Nano Board即可。

#include 
#include 
#include 
#include

#define rxPin 2
#define txPin 3
SoftwareSerial mygps(rxPin, txPin);

#define SCREEN_WIDTH 128?????? // OLED display width, in pixels
#define SCREEN_HEIGHT 64?????? // OLED display height, in pixels
#define OLED_RESET -1??????????//Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C????//See datasheet for Address
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

TinyGPSPlus gps;

void setup()
{
Serial.begin(115200);
mygps.begin(9600);

if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS))
{
Serial.println(F("SSD1306 allocation failed"));
????for (;;); // Don't proceed, loop forever
}
display.clearDisplay();
display.display();
delay(2000);
}

void loop()
{
boolean newData = false;
for (unsigned long start = millis(); millis() - start < 1000;)
{
while (mygps.available())
{
if (gps.encode(mygps.read()))
{
newData = true;
}
}
}

//If newData is true
if (newData == true)
{
newData = false;
display.setTextColor(SSD1306_WHITE);

if (gps.location.isValid() == 1)
{
//String gps_speed = String(gps.speed.kmph());
display.setCursor(0, 0);
display.setTextSize(3);
display.print(gps.speed.kmph());

display.setCursor(75, 20);
display.setTextSize(2);
display.print("km/h");

display.setTextSize(1);
display.setCursor(0, 50);
display.print("SAT:");
display.setCursor(25, 50);
display.print(gps.satellites.value());

display.setTextSize(1);
display.setCursor(70, 50);
display.print("ALT:");
display.setCursor(95, 50);
display.print(gps.altitude.meters(), 0);

display.display();
delay(1500);
display.clearDisplay();
}
}

else
{
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.setTextSize(3);
display.print("No Data");
display.display();
delay(1500);
display.clearDisplay();
}
}

Arduino GPS测速仪调试

把上述代码上传到Arduino Nano Board后,OLED显示屏起初并不显示数据,因为L86 GPS接收器还没有与卫星系统同步。

稍微等一下,GPS就开始接收来自最近卫星系统的数据,信号的接收与同步情况设备驻地的内外环境有关。与卫星系统同步妥当后,OLED显示屏开始以每小时公里(kmph)为单位显示速度。当然,现在显示的是0kmph,因为板子放在静止的桌上。

如果将GPS测速仪放在运动的车辆上,就会显示以kmph为单位的车速,连接的卫星数量,以及以米为单位的海拔高度。

可见。这个测速仪不但简单,功能还真不少,只要带在身上你就能够获得汽车、自动车、公交车、火车和飞机的速度和所在的海拔高度,以及比赛和训练时的运动速度,还可带它取户外一起融入大自然。

2022-8-4用GPS模块和Arduino制作一个多功能车辆测速仪相关推荐

  1. GPS模块——基于Arduino

    GPS输出分多种类型 该代码块对应GNGGA信息的获取.分离和提取. #include <SoftwareSerial.h>SoftwareSerial ss(4, 3); // RX,T ...

  2. 基于Arduino制作一个实时示波器

    示波器是电子工程师或制造商的工作台上可以找到的最重要的工具之一.它主要用于查看波形并确定其输入端可能随时间变化的信号的电压电平.频率.噪声和其他参数.嵌入式软件开发人员还使用它进行代码调试,技术人员在 ...

  3. 用matlab跳动的心,[ 教程 ] 用Arduino制作一个跳动的心

    步骤4: 连接点阵屏的第二部分 这里分2部分 Arduino引脚: 13 12 11 10 点阵屏下面一排引脚: 1 2 3 4 接下来 Arduino引脚: A2 A3 A4 A5 点阵屏下面一排引 ...

  4. 如何用ARDUINO制作一个鸟蛋孵化器

    项目背景介绍 经常养宠物的朋友,遇到宠物繁殖很是头疼,特别是鸟类繁殖,更加需要一个恒温恒湿的孵化箱.市面上孵化箱种类繁多,从几十块的到上千块的孵化箱都有,性能参差不齐,有些孵化箱的温度相差3度是常有的 ...

  5. 用Arduino制作一个功能最基础的辉光钟

    辉光管,原本是在电子管时代用作显示的器件,一般多用在科学仪表上面.后来,随着LED的出现和普及,需要高压驱动,且相对成本高昂的辉光管便逐渐被淘汰,推出了历史舞台. 然而,因为辉光管有着非常高逼格的显示 ...

  6. Arduino制作一个人体感应灯

    现在的很多家庭中都装有感应灯,人体感应灯比声控感应灯的优点是不会影响别人休息,安静. 接下来就是简单的制作过程. 1.需要的设备: 1.arduino Uno主控板一个: 2.人体红外传感器一个: 3 ...

  7. 使用 Arduino 制作一个绘图仪

    2019独角兽企业重金招聘Python工程师标准>>> 使用开源硬件和软件的 DIY 绘图仪可以自动地绘制.雕刻. 在上学时,科学系的壁橱里藏着一台惠普绘图仪.虽然我在上学的期间可以 ...

  8. 如何使用 Arduino 制作一个绘图仪

    在上学时,科学系的壁橱里藏着一台惠普绘图仪.虽然我在上学的期间可以经常使用它,但我还是想拥有一台属于自己的绘图仪.许多年之后,步进电机已经很容易获得了,我又在从事电子产品和微控制器方面的工作,最近,我 ...

  9. Arduino读取GPS模块

    Arduino读取GPS模块 最近要做一个公交车报站器,所以打算用GPS模块来实现定位的功能,于是找朋友借了个GPS模块来试试. GPS模块 常见的GPS模块的参数都差不多,除了有些个别输出格式不同. ...

  10. Arduino模块学习笔记(一)—GPS模块的使用

    Arduino模块学习笔记(一)--GSP模块的使用 文章目录 Arduino模块学习笔记(一)--GSP模块的使用 所需组件 一.模块使用介绍 1.GPS模块(在室内时,一般获取不到位置信息) 2. ...

最新文章

  1. AtomicBoolean 的使用与介绍
  2. Web前端主要学什么?这些知识要掌握
  3. redis的安全性及客户端工具的使用
  4. Java里a和b哪个大_Java中 a+=b和a=a+b有什么区别?
  5. 计算机组成比作人的什么位置,理学第章计算机组成上.ppt
  6. csrss.exe系统进程介绍
  7. 【Calcite】Cilcate编译
  8. Learn English !
  9. PostgresSQL数据类型
  10. sql join on和不用join区别_图解 SQL 各种 JOIN,太有用了!
  11. 虚拟机IP更换后 weblogic无法启动 java.net.BindException: 无法指定被请求的地址
  12. php utc时间_datetime - 以PHP格式获取UTC时间
  13. 群晖DS220+ 应用小笔记
  14. android toast显示时间,Android Toast自定义显示时间
  15. pwnable.kr 第一题fd
  16. linux下的etc文件夹
  17. 骨传导耳机是什么,骨传导耳机对耳朵有什么好处吗
  18. 初创公司,如何找到靠谱的产品经理?
  19. 基于单片机仓库智能巡检车的设计
  20. 国际工业自动化技术及装备展(导电滑环应用领域)

热门文章

  1. java浮动广告_浮动的广告代码
  2. Unity 3D游戏五:打飞碟
  3. 计算机的新技术未来发展趋势论文,计算机最新技术发展趋势毕业论文
  4. php解析krc文件,将酷狗krc歌词解析并转换为lrc歌词php源码_PHP
  5. FAT32 文件系统详解
  6. 基于 Flink SQL CDC的实时数据同步方案
  7. 2007所做更改会影响共用模板normal
  8. 高级工具 zeppelin 整合hive教程
  9. excel制图小技巧
  10. 小米盒子升级android tv后不能安装第三方软件下载,小米电视,小米盒子无法安装第三方应用,怎么办?...