- Uporabljeni materiali
- NEO6M GPS modul
- 1,3-palčni zaslon I2C OLED
- Shema vezja
- Programiranje Arduino za Arduino OLED Speedometer
Merilniki hitrosti se uporabljajo za merjenje potovalne hitrosti vozila. Pred tem smo uporabili IR senzor in Hall senzor za izdelavo analognega merilnika hitrosti oziroma digitalnega merilnika hitrosti. Danes bomo z GPS merili hitrost premikajočega se vozila. Merilniki hitrosti GPS so natančnejši od običajnih merilnikov hitrosti, saj lahko neprestano locirajo vozilo in izračunajo hitrost. Tehnologija GPS se pogosto uporablja v pametnih telefonih in vozilih za navigacijo in prometna opozorila.
V tem projektu bomo zgradili merilnik hitrosti Arduino GPS z uporabo GPS-modula NEO6M z zaslonom OLED.
Uporabljeni materiali
- Arduino Nano
- NEO6M GPS modul
- 1,3-palčni zaslon I2C OLED
- Breadboard
- Povezovanje skakalcev
NEO6M GPS modul
Tu uporabljamo GPS modul NEO6M. Modul GPS NEO-6M je priljubljen sprejemnik GPS z vgrajeno keramično anteno, ki zagotavlja močno satelitsko iskanje. Ta sprejemnik lahko zazna lokacije in spremlja do 22 satelitov ter prepozna lokacije kjer koli na svetu. Z vgrajenim indikatorjem signala lahko spremljamo stanje omrežja modula. Ima baterijo za varnostno kopiranje podatkov, tako da lahko modul shrani podatke ob nenamernem izklopu glavnega napajanja.
Osrednje srce modula sprejemnika GPS je GPS-čip NEO-6M podjetja u-blox. Na 50 kanalih lahko spremlja do 22 satelitov in ima zelo impresivno raven občutljivosti -161 dBm. Ta 50-kanalni motor za pozicioniranje u-blox 6 se ponaša s časom do prvega popravka (TTFF), krajšim od 1 sekunde. Ta modul podpira hitrost prenosa od 4800 do 230400 bps in ima privzeto hitrost prenosa 9600.
Lastnosti:
- Delovna napetost: (2,7-3,6) V DC
- Delovni tok: 67 mA
- Hitrost prenosa: 4800–230400 bps (9600 privzeto)
- Komunikacijski protokol: NEMA
- Vmesnik: UART
- Zunanja antena in vgrajen EEPROM.
Izrez modula GPS:
- VCC: zatič vhodne napetosti modula
- GND: ozemljitveni zatič
- RX, TX: UART komunikacijski zatiči z mikrokrmilnikom
Že prej smo povezali GPS z Arduinom in z uporabo modulov GPS, vključno s sledenjem vozil, gradimo številne projekte.
1,3-palčni zaslon I2C OLED
Izraz OLED pomeni " organska dioda, ki oddaja svetlobo", uporablja isto tehnologijo, kot jo uporablja večina naših televizorjev, vendar ima manj slikovnih pik v primerjavi z njimi. Zelo zabavno je, da se ti modro prikazani moduli povežejo z Arduinom, saj bodo naši projekti videti kul. Tukaj smo zajeli celoten članek o OLED zaslonih in njihovih vrstah. Tu uporabljamo enobarvni 4-pinski OLED zaslon SH1106 OLED 1,28 ”. Ta zaslon lahko deluje samo v načinu I2C.
Tehnične specifikacije:
- IC gonilnika: SH1106
- Vhodna napetost: 3,3 V-5 V DC
- Ločljivost: 128x64
- Vmesnik: I2C
- Trenutna poraba: 8 mA
- Barva slikovne pike: modra
- Vidni kot:> 160 stopinj
Opis zatiča:
VCC: Vhodno napajanje 3.3-5V DC
GND: Ozemljitveni referenčni zatič
SCL: Ura za zaklepanje vmesnika I2C
SDA: zaporedni podatkovni zatič vmesnika I2C
Skupnost Arduino nam je že dala veliko knjižnic, s katerimi lahko to poenostavimo. Preizkusil sem nekaj knjižnic in ugotovil, da je bila knjižnica Adafruit_SH1106.h zelo enostavna za uporabo in ima nekaj grafičnih možnosti, zato bomo v tej vadnici uporabili enako.
OLED izgleda zelo kul in ga je mogoče zlahka povezati z drugimi mikrokrmilniki, da bi ustvarili nekaj zanimivih projektov:
- Povezava SSD1306 OLED zaslona z Raspberry Pi
- Povezava SSD1306 OLED zaslona z Arduinom
- Internetna ura z uporabo ESP32 in OLED zaslona
- Samodejni regulator temperature AC z uporabo Arduino, DHT11 in IR Blaster
Shema vezja
Shema vezja za ta merilnik hitrosti Arduino GPS z uporabo OLED je podana spodaj.
Popolna namestitev bo videti spodaj:
Programiranje Arduino za Arduino OLED Speedometer
Popolna koda projekta je navedena na dnu vadnice. Tukaj razlagamo celotno kodo po vrsticah.
Najprej vključite vse knjižnice. Tu se knjižnica TinyGPS ++. H uporablja za pridobivanje GPS koordinat z uporabo sprejemnega modula GPS, Adafruit_SH1106.h pa za OLED.
#include
Nato je definiran naslov OLED I2C, ki je lahko OX3C ali OX3D, tu je to OX3C v mojem primeru. Določiti je treba tudi ponastavitveni zatič zaslona. V mojem primeru je opredeljena kot -1, saj si zaslon deli Arduinoov PIN za ponastavitev.
#define OLED_ADDRESS 0x3C #define OLED_RESET -1 zaslon Adafruit_SH1106 (OLED_RESET);
Nato so predmeti za razred TinyGPSPlus in Softwareserial definirani, kot je prikazano spodaj. Serijski razred programske opreme potrebuje Arduino pin št. za serijsko komunikacijo, kar je tukaj opredeljeno kot 2 in 3.
int RX = 2, TX = 3; TinyGPSPlus gps; SoftwareSerial gpssoft (RX, TX);
Znotraj nastavitve () se izvede inicializacija za serijsko komunikacijo in OLED. Privzeta hitrost prenosa za serijsko komunikacijo s programsko opremo je določena kot 9600. Tu se SH1106_SWITCHCAPVCC uporablja za interno generiranje prikazne napetosti od 3,3 V, za inicializacijo zaslona pa funkcijo display.begin .
void setup () { Serial.begin (9600); gpssoft.begin (9600); display.begin (SH1106_SWITCHCAPVCC, OLED_ADDRESS); display.clearDisplay (); }
V notranjosti pa res zanka, serijske podatke prejete so potrjeni, če so prejeli veljavni signali GPS, potem displayspeed (), se imenuje za prikaz hitrosti vrednost na OLED.
medtem ko (gpssoft.available ()> 0), če (gps.encode (gpssoft.read ())) displaypeed ();
Znotraj displayspeed () funkcijo, podatke o hitrosti iz GPS modul se preverja s pomočjo funkcije gps.speed.isValid () in če se vrne pravo vrednost, nato pa se prikaže vrednost hitrosti na OLED zaslon. Tu je velikost besedila na OLED določena s funkcijo display.setTextSize, položaj kurzorja pa s funkcijo display.setCursor . Podatki o hitrosti iz modula GPS se dešifrirajo s funkcijo gps.speed.kmph () in na koncu se prikažejo s pomočjo display.display () .
če (gps.speed.isValid ()) { display.setTextSize (2); display.setCursor (40, 40); display.print (gps.speed.kmph ()); display.display (); }
Na koncu naložite kodo v Arduino Uno in sistem vstavite v vozilo, ki vozi, in na OLED zaslonu boste videli hitrost, kot je prikazano na spodnji sliki.
Celotna koda z predstavitvenim videoposnetkom je navedena spodaj.