-->
gF6u0Vqh6RFrxd4GViiplRIajFJiSmm4Y0jpjNDw
Bookmark

Membuat Spedometer GPS Arduino dengan tampilan LCD OLED

Kali ini kita akan membahas cara membuat Spedometer GPS Arduino dengan tampilan LCD OLED. Bagaimana membuat Spedometer GPS Arduino dengan tampilan LCD OLED? Berikut langkah langkah membuat Spedometer GPS Arduino dengan tampilan LCD OLED.

Spedometer digunakan untuk mengukur kecepatan perjalanan kendaraan. kali ini kita akan menggunakan GPS untuk mengukur kecepatan kendaraan yang bergerak. Spedometer GPS lebih akurat daripada spedometer standar karena dapat terus mencari lokasi kendaraan dan dapat menghitung kecepatan. Teknologi GPS banyak digunakan di smartphone dan kendaraan untuk navigasi dan peringatan lalu lintas.

Dalam proyek ini, kami akan membuat spedometer GPS Arduino menggunakan modul GPS NEO6M dengan monitor OLED. membangun speedometer GPS Arduino menggunakan modul GPS NEO6M dengan tampilan OLED. 

Bahan-bahan yang digunakan

  • Arduino Nano
  • Modul GPS NE06M
  • Layar OLED l2C 1,3 in
  • Papan project board
  • Kabel Jumper

1. Modul GPS NEO6M

Modul GPS NEO-6M adalah sebuah penerima GPS yang populer dengan antena keramik built-in, yang memberikan kemampuan pencarian satelit yang kuat. Penerima ini memiliki kemampuan untuk mendeteksi lokasi dan melacak hingga 22 satelit dan mengidentifikasi lokasi di mana pun di dunia. Dengan indikator sinyal on-board, kami dapat memantau status jaringan modul. Ini memiliki baterai cadangan data sehingga modul dapat menyimpan data ketika daya utama mati secara tidak sengaja.

Intinya di dalam modul penerima GPS adalah chip GPS NEO-6M dari u-blox. GPS ini dapat melacak hingga 22 satelit di 50 saluran dan memiliki tingkat sensitivitas yang sangat mengesankan yaitu -161 dBm. Posisi mesin u-blox 6 50 saluran ini memiliki Time-To-First-Fix (TTFF) di bawah 1 detik. Modul ini mendukung baud rate dari 4800-230400bps dan memiliki baud default 9600.

Spesifikasi : 

  • Tegangan operasi: (2,7-3,6) V DC
  • Operasi Saat Ini: 67 mA
  • Kecepatan baud: 4800-230400 bps (9600 Default)
  • Protokol Komunikasi: NEMA
  • Antarmuka: UART
  • Antena eksternal dan EEPROM internal.

Pin out dari Modul GPS:

  • VCC:  Pin tegangan input Modul.
  • GND:  Pin ground.
  • RX, TX:  Pin komunikasi UART dengan Mikrokontroler.

Kami sebelumnya telah  menghubungkan GPS dengan Arduino  dan membangun banyak  proyek menggunakan modul GPS  termasuk  pelacakan kendaraan .

2. Layar OLED I2C 1,3 inci

Istilah OLED adalah singkatan dari " Organic Light emitting diode",  ini menggunakan teknologi yang sama yang digunakan di sebagian besar televisi kami tetapi memiliki piksel lebih sedikit dibandingkan dengan mereka. suatu hal menyenangkan jika kita memiliki miniatur televisi yang berfungsi, selain itu kita dapat membuat dengan arduino. kami menggunakan layar OLED Monokrom 4-pin SH1106 OLED 1,28 . Tampilan ini hanya dapat bekerja dengan mode I2C.

Spesifikasi : 

  • IC Driver: SH1106
  • Tegangan Input: 3.3V-5V DC
  • Resolusi: 128x64
  • Antarmuka: I2C
  • Konsumsi saat ini: 8 mA
  • Warna piksel: Biru
  • Sudut pandang:> 160 derajat

Data sheet Pin OLED:

  • VCC: Catu daya input 3,3-5V DC
  • GND: Pin referensi ground
  • SCL: Pin jam dari antarmuka I2C
  • SDA: Pin Data Serial dari antarmuka I2C

Anda dapat memanfaatkan perpustakaan Adafruit SH1106.h untuk menjalankan OLED. Disana anda dapat mendownload library OLED di Adafruit, selain itu penggunaan nya sangat mudah dan memiliki opsi grafis, oleh karena itu kami akan menggunakan dalam tutorial ini.

OLED terlihat sangat keren dan dapat  dihubungkan dengan mudah ke mikrokontroler lain untuk membangun beberapa proyek menarik:

  • Menghubungkan Layar OLED SSD1306 dengan Raspberry Pi
  • Menghubungkan Layar OLED SSD1306 dengan Arduino
  • Jam Internet menggunakan ESP32 dan Layar OLED
  • Pengatur Suhu AC Otomatis menggunakan Arduino, DHT11 dan IR Blaster

Skema Rangkaian

Skema Rangkaian untuk speedometer GPS Arduino ini menggunakan OLED di bawah ini.

null

Membuat Spedometer GPS Arduino dengan LCD OLED

Pemrograman Arduino untuk Arduino OLED Speedometer

Untuk Kode pemrograman lengkap proyek diberikan di bagian bawah tutorial. Di sini kami menjelaskan kode lengkap baris demi baris.

Pertama-tama, sertakan semua perpustakaan. Disini library TinyGPS ++. H digunakan untuk mendapatkan koordinat GPS menggunakan modul penerima GPS dan Adafruit_SH1106.h digunakan untuk OLED.

#include <TinyGPS ++. h>
#include <SoftwareSerial.h>
#include <Wire.h> 

#include <Adafruit_SH1106.h>

Kemudian, alamat I2C OLED ditentukan, anda dapat menggunakan OX3C atau OX3D, disini kami menggunakan OX3C. Selain itu, pin Setel ulang tampilan harus ditentukan. Kali ini kami menggunakan -1 untuk reset.

# tentukan OLED_ADDRESS 0x3C
# tentukan OLED_RESET -1 tampilan Adafruit_SH1106 (OLED_RESET);

Untuk komunikasi serial kita menggunakan pin arduino seperti dibawah :

int RX = 2, TX = 3;
GPS TinyGPSPlus;
SoftwareSerial gpssoft (RX, TX);

Di dalam pengaturan () , inisialisasi dilakukan untuk komunikasi Serial dan OLED. Baud rate default untuk komunikasi serial Software didefinisikan sebagai 9600. Di sini SH1106_SWITCHCAPVCC digunakan untuk menghasilkan tegangan tampilan dari internal 3,3V dan fungsi display. Begin digunakan untuk menginisialisasi tampilan.

void setup ()
{ Serial.begin (9600);
gpssoft.begin (9600);
display.begin (SH1106_SWITCHCAPVCC, OLED_ADDRESS);
display.clearDisplay ();
}

Di dalam while true loop, data serial yang diterima divalidasi, jika sinyal GPS yang diterima valid, maka displaypeed () dipanggil untuk menunjukkan nilai kecepatan pada OLED.

while (gpssoft.available ()> 0) if (gps.encode (gpssoft.read ())) displaypeed ();

Di dalam () displayspeed fungsi, data kecepatan dari modul GPS diperiksa menggunakan fungsi gps.speed.isValid () dan jika ia mengembalikan nilai benar, maka nilai kecepatan yang ditampilkan pada layar OLED. Di sini ukuran teks pada OLED ditentukan menggunakan fungsi display.setTextSize dan posisi kursor ditentukan menggunakan fungsi display.setCursor. Data kecepatan dari modul GPS didekodekan menggunakan fungsi gps.speed.kmph () dan terakhir ditampilkan menggunakan display.display ().

if (gps.speed.isValid ()) {
display.setTextSize (2);
display.setCursor (40, 40);
display.print (gps.speed.kmph ()); display.display (); }

Program Project 

#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(27, 2);

  display.print("CIRCUIT DIGEST");

  display.setTextSize(1);

  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);

}

1 comment

1 comment

  • Micheal
    Micheal
    August 31, 2021 at 1:43 AM
    There's vehicle DVD players, wristbands, cell phones, cell phones and handheld units all worked in with GPS abilities. ADN GPS
    Reply