- Käytetyt materiaalit
- NEO6M GPS-moduuli
- 1,3 tuuman I2C OLED -näyttö
- Piirikaavio
- Arduinon ohjelmointi Arduino OLED -nopeusmittarille
Nopeusmittareita käytetään ajoneuvon ajonopeuden mittaamiseen. Aikaisemmin käytimme IR-anturia ja halli-anturia analogisen nopeusmittarin ja digitaalisen nopeusmittarin rakentamiseen. Tänään mittaamme liikkuvan ajoneuvon nopeuden GPS: n avulla. GPS-nopeusmittarit ovat tarkempia kuin tavalliset nopeusmittarit, koska se pystyy jatkuvasti paikantamaan ajoneuvon ja laskemaan nopeuden. GPS-tekniikkaa käytetään laajasti älypuhelimissa ja ajoneuvoissa navigointiin ja liikennetiedotuksiin.
Tässä projektissa rakennamme Arduino GPS -nopeusmittarin käyttämällä NEO6M GPS-moduulia OLED-näytöllä.
Käytetyt materiaalit
- Arduino Nano
- NEO6M GPS-moduuli
- 1,3 tuuman I2C OLED -näyttö
- Leipälauta
- Puseroiden liittäminen
NEO6M GPS-moduuli
Tässä käytämme NEO6M GPS-moduulia. NEO-6M GPS-moduuli on suosittu GPS-vastaanotin, jossa on sisäänrakennettu keraaminen antenni, joka tarjoaa vahvan satelliittihaun. Tällä vastaanottimella on kyky tunnistaa sijainnit ja seurata jopa 22 satelliittia ja tunnistaa sijainnit kaikkialla maailmassa. Sisäisen signaalin ilmaisimen avulla voimme seurata moduulin verkon tilaa. Siinä on tietojen varmuuskopioakku, jotta moduuli voi tallentaa tiedot, kun päävirta sammutetaan vahingossa.
GPS-vastaanotinmoduulin ydin on u-bloxin NEO-6M GPS-siru. Se pystyy seuraamaan jopa 22 satelliittia 50 kanavalla ja sillä on erittäin vaikuttava herkkyystaso, joka on -161 dBm. Tällä 50-kanavaisella u-blox 6 -paikannusmoottorilla on alle sekunnin aika-ensikorjaus (TTFF). Tämä moduuli tukee tiedonsiirtonopeutta välillä 4800-230400 bps ja oletuksena baudinopeus on 9600.
Ominaisuudet:
- Käyttöjännite: (2,7-3,6) V DC
- Käyttövirta: 67 mA
- Tiedonsiirtonopeus: 4800-230400 bps (9600 oletus)
- Tiedonsiirtoprotokolla: NEMA
- Liitäntä: UART
- Ulkoinen antenni ja sisäänrakennettu EEPROM.
GPS-moduulin pinout:
- VCC: Moduulin tulojännitetappi
- GND: Maadoitettu tappi
- RX, TX: UART-tiedonsiirtonastat mikrokontrollerilla
Olemme aiemmin liittäneet GPS: n Arduinoon ja rakentaneet monia projekteja GPS-moduuleilla, mukaan lukien ajoneuvojen seuranta.
1,3 tuuman I2C OLED -näyttö
Termi OLED tarkoittaa orgaanista valoa emittoivaa diodia, ja se käyttää samaa tekniikkaa, jota käytetään useimmissa televisioissamme, mutta siinä on vähemmän pikseleitä. On todella hauskaa saada nämä viileän näköiset näyttömoduulit liitettäviksi Arduinoon, koska se saa projektimme näyttämään hienolta. Olemme käsittäneet koko artikkelin OLED-näytöistä ja sen tyypeistä täällä. Tässä käytämme yksiväristä 4-nastaista SH1106 OLED 1.28 ”OLED-näyttöä. Tämä näyttö voi toimia vain I2C-tilassa.
Tekniset tiedot:
- Ohjaimen IC: SH1106
- Tulojännite: 3,3 V-5 V DC
- Tarkkuus: 128x64
- Liitäntä: I2C
- Virrankulutus: 8 mA
- Pikselin väri: sininen
- Katselukulma:> 160 astetta
Tapin kuvaus:
VCC: Syöttöjännite 3,3-5 V DC
GND: Maadoitusviite
SCL: I2C-liitännän kellotappi
SDA: I2C-liitännän sarjatieto
Arduino-yhteisö on jo antanut meille paljon kirjastoja, joita voidaan käyttää suoraan tekemään tästä paljon yksinkertaisempaa. Kokeilin muutamia kirjastoja ja huomasin, että Adafruit_SH1106.h- kirjasto oli erittäin helppokäyttöinen ja sillä oli kourallinen graafisia vaihtoehtoja, joten käytämme samaa tässä opetusohjelmassa.
OLED näyttää erittäin siistiltä ja voidaan helposti liittää muihin mikro-ohjaimiin mielenkiintoisten projektien rakentamiseksi:
- SSD1306 OLED -näytön ja Raspberry Pi: n yhdistäminen
- SSD1306 OLED -näytön ja Arduinon yhdistäminen
- Internet-kello ESP32: n ja OLED-näytön avulla
- Automaattinen vaihtolämpötilan säädin, joka käyttää Arduino-, DHT11- ja IR Blaster -laitteita
Piirikaavio
Tämän OLED-tekniikkaa käyttävän Arduino GPS -nopeusmittarin kytkentäkaavio on annettu alla.
Koko asennus näyttää seuraavalta:
Arduinon ohjelmointi Arduino OLED -nopeusmittarille
Projektin täydellinen koodi on opetusohjelman alaosassa. Tässä selitämme täydellisen koodin riveittäin.
Ensinnäkin sisällytä kaikki kirjastot. TinyGPS ++. H -kirjastoa käytetään GPS-koordinaattien saamiseen GPS-vastaanotinmoduulilla ja Adafruit_SH1106.h käytetään OLED: lle.
#sisältää
Sitten määritetään OLED I2C-osoite, joka voi olla joko OX3C tai OX3D, tässä se on minun tapauksessani OX3C. Lisäksi on määritettävä näytön nollaustappi. Minun tapauksessani se määritellään arvoksi -1, koska näyttö jakaa Arduinon Reset-nastan.
#define OLED_ADDRESS 0x3C #define OLED_RESET -1 Adafruit_SH1106-näyttö (OLED_RESET);
Seuraavaksi TinyGPSPlus- ja Softwareserial- luokan objektit määritellään kuten alla on esitetty. Ohjelmistosarjaluokka tarvitsee Arduino-nastan nro. sarjaliikenteelle, joka määritellään tässä 2 ja 3.
int RX = 2, TX = 3; TinyGPSPlus gps; SoftwareSerial gpssoft (RX, TX);
Asennuksen sisäpuolella () alustetaan sarjaliikenne ja OLED. Oletusarvoinen tiedonsiirtonopeus ohjelmistojen sarjaliikenteelle on määritetty 9600. Tässä SH1106_SWITCHCAPVCC: tä käytetään näytön jännitteen generointiin 3,3 V: sta sisäisesti ja display.begin- toimintoa käytetään näytön alustamiseen.
void setup () { Sarja.alku (9600); gpssoft.begin (9600); display.begin (SH1106_SWITCHCAPVCC, OLED_ADDRESS); display.clearDisplay (); }
Sisällä , kun taas todellinen silmukka, sarjanumero vastaanotettu data on validoitu, jos voimassa oleva GPS-signaalit vastaanotetaan, sitten displayspeed () kutsutaan osoittaa nopeuden arvo OLED.
taas (gpssoft.available ()> 0) if (gps.encode (gpssoft.read ())) näyttää nopeuden ();
Sisällä displayspeed () funktio, nopeuden dataa GPS-moduuli tarkastetaan toiminto gps.speed.isValid () , ja jos se palauttaa oikean arvon, nopeuden arvo näytetään OLED-näyttö. Tässä OLED: n tekstikoko määritetään display.setTextSize- toiminnolla ja kohdistimen sijainti määritetään display.setCursor- toiminnolla. GPS-moduulin nopeustiedot dekoodataan gps.speed.kmph () -toiminnolla ja lopuksi ne näytetään display.display () -toiminnolla.
if (gps.speed.isValid ()) { display.setTextSize (2); display.setCursor (40, 40); display.print (gps.speed.kmph ()); display.display (); }
Lataa lopuksi koodi Arduino Unoon ja laita järjestelmä liikkuvaan ajoneuvoon, ja näet nopeuden OLED-näytössä alla olevan kuvan mukaisesti.
Täydellinen koodi esittelyvideolla on alla.