0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用GPS模块和Arduino制作一个多功能测速仪

芯情观察猿 来源:芯情观察猿 作者:芯情观察猿 2022-08-04 10:27 次阅读

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

项目的核心是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可以根据不同的环境状况和运行模式,自动调节定位时间,在确保定位精度的同时大大降低了模块功耗。

pYYBAGLrLNKAcOsWAAI7VTmtWa4269.png

凭借超小尺寸,超高精度和灵敏度,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

poYBAGLrLQWAfAcbAACWWTKORho159.png


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


连接Arduino GPS测速仪


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

poYBAGLrLSaAKMsWAAJjLda8bLk606.png


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

poYBAGLrLYGAKaaBAASrJD21h4M066.png

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,因为板子放在静止的桌上。

pYYBAGLrLcaAS0iFAAUbEkNNHlo453.png

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

poYBAGLrLdSAQbBYAAUf0EfZHJU527.png

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gps
    gps
    +关注

    关注

    22

    文章

    2735

    浏览量

    164073
  • Arduino
    +关注

    关注

    184

    文章

    6422

    浏览量

    184627
  • 测速仪
    +关注

    关注

    0

    文章

    21

    浏览量

    3998
收藏 人收藏

    评论

    相关推荐

    测速仪的工作原理

    测距的原理。激光对被测物体两次测距,然后用时间差和距离差的比得出速度。激光测速仪的测量范围要更远,耗电量低,取证力度也较强,但是激光测速仪也有定的缺点,那就是不能在运动中使用,只能
    发表于 12-02 10:03

    基于51,DS12887、DS18B20多功能自行车测速仪

    本帖最后由 eehome 于 2013-1-5 10:07 编辑 基于51,DS12887、DS18B20多功能自行车测速仪含有原理图源程序
    发表于 08-15 14:49

    具有实时语音播报的超声波测距测速仪的设计

    具有实时语音播报的超声波测距测速仪的设计的硬件需要什么?你们谁会啊?谢谢了
    发表于 03-16 16:06

    非接触式激光测速仪

    的特点。在工业领域,尤其是在煤矿,纺织等需要测量带转动物体的领域,往往需要的带转动测速仪很多。传统的机械式的检测结构,需要两物体表面相接触,,但设备在长期使用中,因磨损等不可预计情况,使得电机转速
    发表于 10-18 08:42

    基于ARM920T内核的24GHZ微波雷达测速仪设计与算法研究

    这是基于ARM920T内核的24GHZ微波雷达测速仪设计与算法研究的方案,希望能对大家有参考帮助。导读:为了提高目前公路交通中对车辆速度的监测手段,提出种基于ARM(advanc
    发表于 07-24 14:14

    测速仪表程序

    有没有大神有 基于单片机的自行车测速仪表的程序
    发表于 12-24 16:01

    LED白光测速仪

    ` 本帖最后由 msechina 于 2017-11-27 14:08 编辑 MSE-V508白光测速仪LED白光测速仪LED白光测速仪种非接触
    发表于 06-26 15:50

    【STM32F103试用申请】可视化初速测速仪

    ,距离,时间等参数。试用计划:1.开箱硬件分析与原理图分析2.测速电路与程序编写并分享3.使用原子3.5寸液晶屏编写人机界面4.整体测试与展示预计成果:分享使用过程和心得,每完成功能
    发表于 09-14 11:20

    激光多普勒测速仪的原理是什么?

    激光多普勒测速仪是利用激光多普勒效应来测量流体或固体运动速度的种仪器, 通常 由五部分组成:激光器,入射光学单元,接收或收集光学单元,多普勒信号处理器和数据 处理系统或数据处理器,主要优点在于非
    发表于 09-18 09:02

    MCS-II微机测速仪应用领域

    北京鸿泰顺达长期供应MCS-II微机测速仪;MCS-II微机测速仪市场价格|供货电话北京鸿泰顺达长期供应MCS-II微机测速仪;MCS-II微机测速仪市场价格|供货电话MCS-II高性
    发表于 08-31 09:25

    智慧交通广域雷达测速仪是什么

    超速成为交通事故的首要杀手,特别是像高速公路这些速度快的道路,超速引起的交通事故就更加频繁了。所以安装测速仪的目的就是为了有效减少因超速引起的交通事故。(现已经广泛用于警察超速测试等行业。)、智慧
    发表于 12-24 06:19

    基于RT-Thread+RA6M4的测速仪实验平台信息整合系统设计方案

    中比较重要的参数,其精度对系统的整体性能有重大影响。我们自主研发的新型激光多普勒测速仪可以为纯惯性导航系统提供高精度的速度值,修正纯惯性导航的累积误差,从而提高传统惯性导航系统的稳定性和准确性
    发表于 08-15 14:54

    雷达测速仪分类 测速仪的安装方式

    威尔电器:深圳测速仪在公路上需要安装到哪里?
    发表于 04-18 10:15 1519次阅读

    巍泰技术智能交通高速公路定点式测速仪雷达与移动测速仪雷达原理与应用

    一般道路上的雷达测速仪分为固定测速和移动测速两类。固定测速就是指定点式安装测速仪的方式来进行定点测速
    的头像 发表于 08-11 11:26 839次阅读
    巍泰技术智能交通高速公路定点式<b class='flag-5'>测速仪</b>雷达与移动<b class='flag-5'>测速仪</b>雷达原理与应用