- Korišteni materijali
- GPS modul NEO6M
- 1,3-inčni I2C OLED zaslon
- Kružni dijagram
- Programiranje Arduina za Arduino OLED brzinomjer
Brzinomjeri se koriste za mjerenje brzine putovanja vozila. Prije smo koristili IR senzor i Hall senzor za izradu analognog brzinomera, odnosno digitalnog brzinomjera. Danas ćemo koristiti GPS za mjerenje brzine vozila u pokretu. GPS brzinomjeri precizniji su od standardnih brzinomjera jer mogu neprestano locirati vozilo i mogu izračunati brzinu. GPS tehnologija široko se koristi u pametnim telefonima i vozilima za navigaciju i upozorenja o prometu.
U ovom ćemo projektu izraditi Arduino GPS brzinomjer pomoću NEO6M GPS modula s OLED zaslonom.
Korišteni materijali
- Arduino Nano
- GPS modul NEO6M
- 1,3-inčni I2C OLED zaslon
- Breadboard
- Spajanje skakača
GPS modul NEO6M
Ovdje koristimo NEO6M GPS modul. GPS modul NEO-6M popularan je GPS prijamnik s ugrađenom keramičkom antenom, koji pruža snažnu mogućnost satelitskog pretraživanja. Ovaj prijemnik može prepoznati lokacije i pratiti do 22 satelita te identificira lokacije bilo gdje u svijetu. Pomoću ugrađenog indikatora signala možemo pratiti mrežno stanje modula. Ima rezervnu bateriju podataka, tako da modul može spremiti podatke kada se slučajno isključi glavno napajanje.
![]()
Srž jezgre unutar modula GPS prijamnika je GPS čip NEO-6M tvrtke u-blox. Može pratiti do 22 satelita na 50 kanala i ima vrlo impresivnu razinu osjetljivosti koja iznosi -161 dBm. Ovaj 50-kanalni u-blox 6 mehanizam za pozicioniranje može se pohvaliti time-to-first-fix (TTFF) kraćim od 1 sekunde. Ovaj modul podržava brzinu prijenosa od 4800 do 230400 bps i zadana je brzina prijenosa od 9600.
Značajke:
- Radni napon: (2,7-3,6) V DC
- Radna struja: 67 mA
- Brzina prijenosa: 4800-230400 bps (zadana 9600)
- Komunikacijski protokol: NEMA
- Sučelje: UART
- Vanjska antena i ugrađeni EEPROM.
Isječak GPS modula:
![]()
- VCC: Pin ulaznog napona modula
- GND: prizemni klin
- RX, TX: UART-ove komunikacijske igle s mikrokontrolerom
Prethodno smo povezali GPS s Arduinom i izgradili smo mnoge projekte koristeći GPS module, uključujući praćenje vozila.
1,3-inčni I2C OLED zaslon
Izraz OLED označava se kao " organska dioda koja emitira svjetlost", koristi istu tehnologiju koja se koristi u većini naših televizora, ali ima manje piksela u usporedbi s njima. Zaista je zabavno imati ove module zaslona u izgledu kako bi ih se povezalo s Arduinom, jer će naši projekti izgledati cool. Ovdje smo pokrili cijeli članak o OLED zaslonima i njihovim vrstama. Ovdje koristimo jednobojni 4-pinski OLED zaslon SH1106 OLED 1,28 ”. Ovaj zaslon može raditi samo u načinu I2C.

Tehničke specifikacije:
- IC upravljačkog programa: SH1106
- Ulazni napon: 3.3V-5V DC
- Rezolucija: 128x64
- Sučelje: I2C
- Potrošnja struje: 8 mA
- Boja piksela: plava
- Kut gledanja:> 160 stupnjeva
Opis pribadače:
VCC: Ulazno napajanje 3,3-5V DC
GND: Referentni pin za uzemljenje
SCL: Igla sata sučelja I2C
SDA: Pribadača za serijske podatke I2C sučelja
Zajednica Arduino već nam je dala puno knjižnica koje se mogu izravno koristiti da bi se ovo učinilo puno jednostavnijim. Isprobao sam nekoliko knjižnica i otkrio da je knjižnica Adafruit_SH1106.h vrlo jednostavna za upotrebu i da ima pregršt grafičkih opcija, stoga ćemo istu koristiti u ovom vodiču.
OLED izgleda vrlo cool i lako se može povezati s drugim mikrokontrolerima kako bi se stvorili neki zanimljivi projekti:
- Povezivanje SSD1306 OLED zaslona s Raspberry Pi
- Povezivanje SSD1306 OLED zaslona s Arduinom
- Internet sat pomoću ESP32 i OLED zaslona
- Automatski regulator temperature izmjenične struje koji koristi Arduino, DHT11 i IR Blaster
Kružni dijagram
Dijagram sklopa za ovaj Arduino GPS brzinomjer pomoću OLED- a dat je u nastavku.

Kompletna postavka izgledat će dolje:

Programiranje Arduina za Arduino OLED brzinomjer
Kompletni kod projekta nalazi se na dnu vodiča. Ovdje objašnjavamo kompletan kod redak po redak.
Prije svega, uključite sve knjižnice. Ovdje se knjižnica TinyGPS ++. H koristi za dobivanje GPS koordinata pomoću modula GPS prijamnika, a Adafruit_SH1106.h koristi se za OLED.
#include
Zatim se definira OLED I2C adresa, koja može biti OX3C ili OX3D, ovdje je to OX3C u mom slučaju. Također, mora se definirati Reset pin zaslona. U mom slučaju, definirano je kao -1, jer zaslon dijeli Arduinoov Reset pin.
#define OLED_ADDRESS 0x3C #define OLED_RESET -1 Adafruit_SH1106 display (OLED_RESET);
Dalje, objekti za klasu TinyGPSPlus i Softwareserial definirani su kako je prikazano u nastavku. Serijska klasa softvera treba Arduino pin br. za serijsku komunikaciju, koja je ovdje definirana kao 2 i 3.
int RX = 2, TX = 3; TinyGPSPlus gps; SoftwareSerial gpssoft (RX, TX);
Unutar postavljanja () , inicijalizacija se vrši za serijsku komunikaciju i OLED. Zadana brzina prijenosa za serijsku komunikaciju softvera definirana je kao 9600. Ovdje se SH1106_SWITCHCAPVCC koristi za interno generiranje napona prikaza od 3,3 V, a funkcija display.begin koristi se za inicijalizaciju zaslona.
void setup () { Serial.begin (9600); gpssoft.begin (9600); display.begin (SH1106_SWITCHCAPVCC, OLED_ADDRESS); display.clearDisplay (); }
Unutar a istina petlje, serijski podaci primljeni su potvrđene, ako su primili valjani GPS signali, onda displayspeed () je pozvan pokazati vrijednost brzine na OLED.
dok je (gpssoft.available ()> 0) if (gps.encode (gpssoft.read ())) displaypeed ();
Unutar displayspeed () funkciji, podaci brzine od GPS modula provjerava pomoću funkcije gps.speed.isValid () i ako se vraća pravu vrijednost, tada je brzina Vrijednost se prikazuje na OLED zaslonu. Ovdje se veličina teksta na OLED-u definira pomoću funkcije display.setTextSize, a položaj kursora određuje se pomoću funkcije display.setCursor . Podaci o brzini iz GPS modula dekodiraju se pomoću funkcije gps.speed.kmph () i na kraju se prikazuju pomoću display.display () .
if (gps.speed.isValid ()) { display.setTextSize (2); display.setCursor (40, 40); display.print (gps.speed.kmph ()); display.display (); }
Napokon, prenesite kôd u Arduino Uno i stavite sustav u vozilo u pokretu, a na OLED zaslonu možete vidjeti brzinu kao što je prikazano na donjoj slici.

Kompletni kôd s demo videom dat je u nastavku.
