- उपयोग किया गया सामन
- NEO6M GPS मॉड्यूल
- 1.3 इंच I2C OLED डिस्प्ले
- सर्किट आरेख
- Arduino OLED स्पीडोमीटर के लिए Arduino प्रोग्रामिंग
स्पीडोमीटर का उपयोग किसी वाहन की यात्रा गति को मापने के लिए किया जाता है। हमने पहले क्रमशः एनालॉग स्पीडोमीटर और डिजिटल स्पीडोमीटर बनाने के लिए आईआर सेंसर और हॉल सेंसर का उपयोग किया था। आज हम एक चलते वाहन की गति को मापने के लिए जीपीएस का उपयोग करेंगे। जीपीएस स्पीडोमीटर मानक स्पीडोमीटर की तुलना में अधिक सटीक हैं क्योंकि यह लगातार वाहन का पता लगा सकता है और गति की गणना कर सकता है। नेविगेशन और ट्रैफ़िक अलर्ट के लिए स्मार्टफ़ोन और वाहनों में GPS तकनीक का व्यापक रूप से उपयोग किया जाता है।
इस परियोजना में, हम एक OLED डिस्प्ले के साथ NEO6M GPS मॉड्यूल का उपयोग करके एक Arduino GPS स्पीडोमीटर का निर्माण करेंगे ।
उपयोग किया गया सामन
- अरुडिनो नैनो
- NEO6M GPS मॉड्यूल
- 1.3 इंच I2C OLED डिस्प्ले
- ब्रेड बोर्ड
- जंपर्स को जोड़ना
NEO6M GPS मॉड्यूल
यहाँ हम NEO6M GPS मॉड्यूल का उपयोग कर रहे हैं। NEO-6M GPS मॉड्यूल एक लोकप्रिय जीपीएस रिसीवर है जिसमें बिल्ट-इन सिरेमिक एंटीना है, जो एक मजबूत उपग्रह खोज क्षमता प्रदान करता है। इस रिसीवर में स्थानों को समझने और 22 उपग्रहों को ट्रैक करने और दुनिया में कहीं भी स्थानों की पहचान करने की क्षमता है। ऑन-बोर्ड सिग्नल संकेतक के साथ, हम मॉड्यूल की नेटवर्क स्थिति की निगरानी कर सकते हैं। इसमें डेटा बैकअप बैटरी होती है, ताकि गलती से मुख्य बिजली बंद होने पर मॉड्यूल डेटा को बचा सके।
GPS रिसीवर मॉड्यूल के अंदर का मुख्य दिल u-blox से NEO-6M GPS चिप है। यह 50 चैनलों पर 22 उपग्रहों को ट्रैक कर सकता है और एक बहुत ही प्रभावशाली संवेदनशीलता स्तर है जो -161 डीबीएम है। यह 50-चैनल u-blox 6 पोजिशनिंग इंजन 1 सेकंड से कम का टाइम-टू-फर्स्ट-फिक्स (TTFF) समेटे हुए है। यह मॉड्यूल 4800-230400 बीपीएस से बॉड दर का समर्थन करता है और इसमें 9600 का डिफ़ॉल्ट बॉड है।
विशेषताएं:
- ऑपरेटिंग वोल्टेज: (2.7-3.6) वी डीसी
- ऑपरेटिंग करंट: 67 mA
- बॉड दर: 4800-230400 बीपीएस (9600 डिफ़ॉल्ट)
- संचार प्रोटोकॉल: NEMA
- इंटरफ़ेस: UART
- बाहरी एंटीना और निर्मित में EEPROM।
जीपीएस मॉड्यूल का पिनआउट:
- VCC: मॉड्यूल का इनपुट वोल्टेज पिन
- GND: ग्राउंड पिन
- RX, TX: UART संचार पिन माइक्रोकंट्रोलर के साथ
हमने पहले Arduino के साथ GPS को बाधित किया है और वाहन ट्रैकिंग सहित जीपीएस मॉड्यूल का उपयोग करके कई परियोजनाओं का निर्माण किया है।
1.3 इंच I2C OLED डिस्प्ले
ओएलईडी शब्द " ऑर्गेनिक लाइट एमिटिंग डायोड" के लिए खड़ा है , यह उसी तकनीक का उपयोग करता है जो हमारे अधिकांश टीवी में उपयोग किया जाता है लेकिन उनकी तुलना में कम पिक्सेल होते हैं। इन कूल लुक वाले डिस्प्ले मॉड्यूल को Arduino के साथ इंटरफेयर किया जाना असली मज़ा है क्योंकि यह हमारे प्रोजेक्ट्स को कूल लुक देगा। हमने यहां OLED प्रदर्शनों और इसके प्रकारों पर एक पूरा लेख शामिल किया है। यहाँ, हम एक मोनोक्रोम 4-पिन SH1106 OLED 1.28 ”OLED डिस्प्ले का उपयोग कर रहे हैं । यह डिस्प्ले केवल I2C मोड के साथ काम कर सकता है।
तकनीकी निर्देश:
- चालक आईसी: SH1106
- इनपुट वोल्टेज: 3.3V-5V DC
- संकल्प: 128x64
- इंटरफ़ेस: I2C
- वर्तमान खपत: 8 एमए
- पिक्सेल रंग: नीला
- व्यूइंग एंगल:> 160 डिग्री
पिन विवरण:
वीसीसी: इनपुट बिजली की आपूर्ति 3.3-5V डीसी
GND: ग्राउंड संदर्भ पिन
SCL: I2C इंटरफ़ेस का क्लॉक पिन
एसडीए: I2C इंटरफ़ेस का सीरियल डेटा पिन
Arduino समुदाय ने हमें पहले से ही बहुत सारे पुस्तकालय दिए हैं जो सीधे तौर पर इसे बहुत सरल बनाने के लिए उपयोग किया जा सकता है। मैंने कुछ पुस्तकालयों की कोशिश की और पाया कि Adafruit_SH1106.h लाइब्रेरी का उपयोग करना बहुत आसान था और इसमें मुट्ठी भर ग्राफ़िकल विकल्प थे, इसलिए हम इस ट्यूटोरियल में इसका उपयोग करेंगे।
OLED बहुत ही शांत दिखता है और कुछ दिलचस्प परियोजनाओं के निर्माण के लिए अन्य माइक्रोकंट्रोलर्स के साथ आसानी से हस्तक्षेप किया जा सकता है:
- रास्पबेरी पाई के साथ SSD1306 OLED डिस्प्ले को इंटरफैस करना
- SSD1306 OLED डिस्प्ले को Arduino के साथ Interfacing
- ESP32 और OLED डिस्प्ले का उपयोग करके इंटरनेट क्लॉक
- Arduino, DHT11 और IR ब्लास्टर का उपयोग करके स्वचालित AC तापमान नियंत्रक
सर्किट आरेख
OLED का उपयोग कर इस Arduino GPS स्पीडोमीटर के लिए सर्किट आरेख नीचे दिया गया है।
पूरा सेटअप नीचे की तरह दिखेगा:
Arduino OLED स्पीडोमीटर के लिए Arduino प्रोग्रामिंग
प्रोजेक्ट का पूरा कोड ट्यूटोरियल के नीचे दिया गया है। यहाँ हम लाइन द्वारा पूरा कोड लाइन की व्याख्या कर रहे हैं।
सबसे पहले, सभी पुस्तकालयों को शामिल करें। यहाँ TinyGPS ++। H लाइब्रेरी का उपयोग GPS रिसीवर मॉड्यूल का उपयोग करके GPS निर्देशांक प्राप्त करने के लिए किया जाता है और Adafruit_SH1106.h का उपयोग OLED के लिए किया जाता है।
#शामिल
फिर, OLED I2C पता परिभाषित किया गया है, जो या तो OX3C या OX3D हो सकता है, यहाँ यह मेरे मामले में OX3C है। इसके अलावा, डिस्प्ले के रीसेट पिन को परिभाषित करना होगा। मेरे मामले में, इसे -1 के रूप में परिभाषित किया गया है, क्योंकि डिस्प्ले Arduino के रीसेट पिन को साझा कर रहा है।
#define OLED_ADDRESS 0x3C #define OLED_RESET -1 Adafruit_SH1106 प्रदर्शन (OLED_RESET);
अगला, TinyGPSPlus और Softwareserial वर्ग के लिए वस्तुओं को नीचे दिखाए गए के रूप में परिभाषित किया गया है। सॉफ्टवेयर सीरियल क्लास को Arduino pin no की जरूरत होती है। धारावाहिक संचार के लिए, जिसे यहाँ 2 और 3 के रूप में परिभाषित किया गया है।
int RX = 2, TX = 3; TinyGPSPlus जीपीएस; SoftwareSerial gpssoft (RX, TX);
इनसाइड सेटअप () के तहत, सीरियल संचार और ओएलईडी के लिए इनिशियलाइज़ेशन किया जाता है। सॉफ़्टवेयर धारावाहिक संचार के लिए डिफ़ॉल्ट बॉड दर को 9600 के रूप में परिभाषित किया गया है। यहां SH1106_SWITCHCAPVCC का उपयोग 3.3V से प्रदर्शन वोल्टेज उत्पन्न करने के लिए किया जाता है और प्रदर्शन को प्रारंभ करने के लिए display.begin फ़ंक्शन का उपयोग किया जाता है।
शून्य सेटअप () { Serial.begin (9600); gpssoft.begin (9600); display.begin (SH1106_SWITCHCAPVCC, OLED_ADDRESS); display.clearDisplay (); }
अंदर है, जबकि सच पाश, प्राप्त धारावाहिक डेटा मान्य किए जाते हैं, यदि मान्य जीपीएस संकेतों प्राप्त कर रहे हैं, तो displayspeed () OLED पर गति मूल्य को दिखाने के लिए कहा जाता है।
जबकि (gpssoft.available ()> 0) if (gps.encode (gpssoft.read) ())) displayspeed ();
डिस्प्लेस्पीड्स () फ़ंक्शन के अंदर, जीपीएस मॉड्यूल से स्पीड डेटा को फ़ंक्शन gps.speed.isValid () का उपयोग करके चेक किया जाता है और यदि यह एक सही मान देता है, तो गति प्रदर्शन OLED डिस्प्ले पर प्रदर्शित होता है। यहाँ OLED पर पाठ का आकार display.setTextSize फ़ंक्शन का उपयोग करके परिभाषित किया गया है और कर्सर स्थिति display.setCursor फ़ंक्शन का उपयोग करके परिभाषित किया गया है । जीपीएस मॉड्यूल से गति डेटा gps.speed.kmph () फ़ंक्शन का उपयोग करके डिकोड किया गया है और अंत में इसे display.display () का उपयोग करके प्रदर्शित किया गया है ।
if (gps.speed.isValid ()) { display.setTextSize (2); display.setCursor (40, 40); display.print (gps.speed.kmph ()); display.display (); }
अंत में, Arduino Uno में कोड अपलोड करें और सिस्टम को चलती वाहन में रखें, और आप OLED डिस्प्ले पर गति को नीचे दी गई छवि के अनुसार दिखा सकते हैं।
डेमो वीडियो के साथ पूरा कोड नीचे दिया गया है।