цифровая электроника
вычислительная техника
встраиваемые системы

 

GPS спидометр на основе Arduino своими руками

Автор: Mike(admin) от 9-09-2020, 03:55

Спидометры используются для измерения скорости движения транспортного средства. Для создания аналогового или цифрового спидометра можно использовать ИК-датчик или датчик Холла соответственно. Но сегодня мы будем использовать GPS для измерения скорости движущегося транспортного средства. Спидометры GPS более точны, чем стандартные спидометры, потому что они могут непрерывно определять местонахождение автомобиля и вычислять скорость. Технология GPS широко используется в смартфонах и транспортных средствах для навигации и оповещения о дорожном движении.


GPS спидометр на основе Arduino своими руками

В этом проекте мы создадим GPS спидометр на основе Arduino с использованием модуля NEO6M GPS и OLED-дисплея.


Итак, здесь мы используем GPS-модуль NEO6M. NEO-6M – это популярный GPS-приемник со встроенной керамической антенной, обеспечивающий надежный поиск спутников. Этот приемник может определять местоположение и отслеживать до 22 спутников и определять местоположения в любой точке мира. С помощью встроенного индикатора сигнала мы можем контролировать состояние сети модуля. Он имеет резервный накопитель данных, так что модуль может сохранять данные при случайном отключении основного питания.


GPS-модуль NEO6M

Основой модуля GPS-приемника является GPS-чип NEO-6M от u-blox. Он может отслеживать до 22 спутников на 50 каналах и имеет очень впечатляющий уровень чувствительности, который составляет -161 дБмВт. Этот 50-канальный механизм позиционирования u-blox 6 может похвастаться временем до первого исправления (TTFF) менее 1 секунды. Этот модуль поддерживает скорость передачи 4800-230400 бит/с и имеет скорость по умолчанию 9600 бод.


GPS-модуль NEO6M

Данный модуль имеет четыре пользовательских вывода. VCC – контакт входного напряжения модуля, GND – контакт заземления, RX и TX – контакты приема и передачи интерфейса UART для связи с микроконтроллером.


В качестве средства отображения будем использовать OLED-дисплей. Термин OLED означает «органический светоизлучающий диод», он использует ту же технологию, что и большинство наших телевизоров, но имеет меньше пикселей по сравнению с ними. Здесь мы используем монохромный 4-контактный OLED-дисплей SH1106 с диагональю 1,28 дюйма. Этот дисплей может работать только в режиме I2C.


OLED-дисплей

Его выводы следующие. VCC – для напряжения питания 3,3-5 В, GND – контакт заземления, SCL – тактовый вывод интерфейса I2C, SDA – вывод последовательных данных интерфейса I2C.


Сообщество Arduino уже предоставило нам множество библиотек, которые можно напрямую использовать для работы с дисплеем. Например, библиотека Adafruit_SH1106.h очень проста в использовании и имеет несколько графических параметров, поэтому мы будем использовать ее в этом примере.


Принципиальная схема GPS-спидометра на основе Arduino с использованием OLED-дисплея приведена далее.


Принципиальная схема GPS-спидометра на основе Arduino с использованием OLED-дисплея

Подключив все согласно данной схеме можно получить примерно такую установку.


GPS спидометр на основе Arduino своими руками

Полный код программы GPS-спидометра на основе Arduino приведен далее.



#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <Adafruit_SH1106.h>
#define OLED_ADDRESS   0x3C
#define OLED_RESET -1
Adafruit_SH1106 display(OLED_RESET);
int RX = 2, TX = 3;
TinyGPSPlus gps;
SoftwareSerial gpssoft(RX, TX);
void setup()
{
  Serial.begin(9600);
  gpssoft.begin(9600);
  display.begin(SH1106_SWITCHCAPVCC, OLED_ADDRESS);
  display.clearDisplay();
  display.display();
}
void loop()
{
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(35, 20);
  display.print("SPEED(KMPH)");
  display.display();
  while (gpssoft.available() > 0)
    if (gps.encode(gpssoft.read()))
      displayspeed();
  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    display.setTextSize(1);
    display.setCursor(35, 40);
    display.print("Error!!!");
    display.display();
    while (true);
  }
}
void displayspeed()
{
  if (gps.speed.isValid())
  {
    display.setTextSize(2);
    display.setCursor(40, 40);
    display.print(gps.speed.kmph());
    display.display();
  }
  else
  {
    display.setTextSize(1);
    display.setCursor(35, 40);
    display.print("No Data!!!");
    display.display();
  }
  delay(100);
}

Наконец, загрузите код в Arduino и поместите систему в движущийся автомобиль, и вы увидите скорость на OLED-дисплее, как показано на следующем изображении.


GPS спидометр на основе Arduino своими руками



© digitrode.ru


Теги: Arduino, GPS




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий