विषयसूची:

स्मार्ट बॉय [जीपीएस, रेडियो (एनआरएफ24) और एक एसडी कार्ड मॉड्यूल]: 5 कदम (चित्रों के साथ)
स्मार्ट बॉय [जीपीएस, रेडियो (एनआरएफ24) और एक एसडी कार्ड मॉड्यूल]: 5 कदम (चित्रों के साथ)

वीडियो: स्मार्ट बॉय [जीपीएस, रेडियो (एनआरएफ24) और एक एसडी कार्ड मॉड्यूल]: 5 कदम (चित्रों के साथ)

वीडियो: स्मार्ट बॉय [जीपीएस, रेडियो (एनआरएफ24) और एक एसडी कार्ड मॉड्यूल]: 5 कदम (चित्रों के साथ)
वीडियो: Now my CAR is GPS protected 💥 | अब टेंशन चोर को होगी, हमें नहीं 👍| @OnelapDotIN GO GPS tracker 2024, नवंबर
Anonim
Image
Image

यह स्मार्ट बॉय श्रृंखला एक वैज्ञानिक बुआ बनाने के हमारे (महत्वाकांक्षी) प्रयास को चार्ट करती है जो ऑफ-द-शेल्फ उत्पादों का उपयोग करके समुद्र के बारे में सार्थक माप ले सकती है। यह चार में से दो का ट्यूटोरियल है - सुनिश्चित करें कि आप अद्यतित हैं, और यदि आपको परियोजना के लिए एक त्वरित परिचय की आवश्यकता है, तो हमारा सारांश देखें।

भाग 1: तरंग और तापमान माप बनाना

इस ट्यूटोरियल में, हम आपको दिखाते हैं कि जीपीएस डेटा कैसे प्राप्त करें, इसे एसडी कार्ड पर स्टोर करें और इसे रेडियो का उपयोग करके कहीं भेजें।

हमने ऐसा इसलिए किया ताकि हम अपने समुद्री बॉय के स्थान पर नज़र रख सकें। रेडियो का मतलब है कि हम इसे दूर से देख सकते हैं और एसडी कार्ड का मतलब है कि अगर कुछ टूट जाता है और यह भटक जाता है, तो हम इसके अनियोजित भ्रमण के दौरान एकत्र किए गए डेटा को डाउनलोड कर सकते हैं - अगर हम इसे पुनः प्राप्त करने में सक्षम हैं!

आपूर्ति

जीपीएस मॉड्यूल - अमेज़ॅन

एसडी कार्ड मॉड्यूल - अमेज़ॅन

एसडी कार्ड - अमेज़न

2 X रेडियो मॉड्यूल (NRF24L01+) - Amazon

2 एक्स अरुडिनो - अमेज़ॅन

चरण 1: GPS डेटा प्राप्त करना

रेडियो के माध्यम से जीपीएस डेटा भेजना
रेडियो के माध्यम से जीपीएस डेटा भेजना

स्मार्ट बॉय जीपीएस स्थान और डेटाटाइम सहित समुद्र में बैठते ही सेंसर माप करता है। योजनाबद्ध पर एक नज़र डालें जो दिखाता है कि हम सर्किट कैसे सेट करते हैं। GPS मॉड्यूल सीरियल कनेक्शन के माध्यम से संचार करता है, इसलिए हम इसके साथ संचार करने के लिए Arduino सॉफ़्टवेयर सीरियल लाइब्रेरी के साथ-साथ छोटी GPS लाइब्रेरी का उपयोग कर रहे हैं। ये पुस्तकालय सब कुछ सुपर सरल बनाते हैं। आइए आपको कोड के माध्यम से ले चलते हैं …

#शामिल

#include // TinyGPS++ ऑब्जेक्ट TinyGPSPlus gps; // GPS डिवाइस SoftwareSerial ss(4, 3) से सीरियल कनेक्शन; संरचना डेटा संरचना {डबल अक्षांश; दोहरा देशांतर; अहस्ताक्षरित लंबी तिथि; अहस्ताक्षरित लंबे समय; }जीपीएसडेटा; शून्य सेटअप () {Serial.begin (115200); ss.begin (९६००); } शून्य लूप () { जबकि (ss.उपलब्ध ()> 0) { अगर (gps.encode (ss.read ())) {getInfo (); प्रिंट परिणाम (); } } } शून्य getInfo () { अगर (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); जीपीएसडाटा। देशांतर = जीपीएस। स्थान। एलएनजी (); } और { Serial.println ("अमान्य स्थान"); } अगर (gps.date.isValid ()) {gpsData.date = gps.date.value (); } और { Serial.println ("अमान्य तिथि"); } अगर (gps.time.isValid ()) {gpsData.time = gps.time.value (); } और { Serial.println ("अमान्य समय"); } } शून्य प्रिंट परिणाम () { सीरियल.प्रिंट ("स्थान:"); सीरियल.प्रिंट (gpsData.latitude, 6); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (gpsData.longitude, 6); सीरियल.प्रिंट ("दिनांक:"); सीरियल.प्रिंट (gpsData.date); सीरियल.प्रिंट ("समय:"); सीरियल.प्रिंट (gpsData.time); सीरियल.प्रिंट्लन (); }

(इस कोड के लिए https://www.youtube.com/embed/xz1ix76U28E पर वीडियो देखें)

चरण 2: रेडियो के माध्यम से जीपीएस डेटा भेजना

रेडियो के माध्यम से जीपीएस डेटा भेजना
रेडियो के माध्यम से जीपीएस डेटा भेजना

मान लीजिए कि बोया माप लेने के लिए समुद्र में है, लेकिन हम अपने पैरों को गीला किए बिना या बोया को किनारे लाए बिना डेटा देखना चाहते हैं। दूर से माप प्राप्त करने के लिए, हम संचार के दोनों किनारों पर एक Arduino से जुड़े एक रेडियो मॉड्यूल का उपयोग कर रहे हैं। भविष्य में, हम रिसीवर-साइड Arduino को रास्पबेरी पाई से बदल देंगे। रेडियो इन दोनों इंटरफेस के साथ समान रूप से काम करता है इसलिए उन्हें स्वैप करना बहुत सीधा है।

रेडियो मॉड्यूल SPI का उपयोग करके संचार करता है, जिसके लिए I2C की तुलना में कुछ अधिक कनेक्शन की आवश्यकता होती है, लेकिन NRF24 लाइब्रेरी के कारण अभी भी इसका उपयोग करना वास्तव में आसान है। सेंसर माप के लिए GPS मॉड्यूल का उपयोग करते हुए, हम इसके डेटा को एक Arduino से दूसरे में संचारित करते हैं। हम GPS और रेडियो मॉड्यूल को Arduino से कनेक्ट करने जा रहे हैं और दूसरी तरफ एक Arduino को रेडियो मॉड्यूल के साथ - योजनाबद्ध पर एक नज़र डालें।

ट्रांसमीटर

#शामिल

#include #include #include #include TinyGPSPlus gps; सॉफ्टवेयर सीरियल एसएस (4, 3); RF24 रेडियो (8, 7); // सीई, सीएसएन संरचना डेटास्ट्रक्चर {दोहरा अक्षांश; दोहरा देशांतर; अहस्ताक्षरित लंबी तिथि; अहस्ताक्षरित लंबे समय; }जीपीएसडेटा; शून्य सेटअप () {Serial.begin(११५२००); ss.begin (९६००); Serial.println ("रेडियो सेट करना"); // सेटअप ट्रांसमीटर रेडियो रेडियो। शुरू (); Radio.openWritingPipe(0xF0F0F0F0E1LL); रेडियो.सेटचैनल (0x76); Radio.setPALevel(RF24_PA_MAX); Radio.setDataRate(RF24_250KBPS); रेडियो.स्टॉपलिस्टिंग (); Radio.enableDynamicPayloads (); रेडियो.पावरअप (); Serial.println ("भेजना शुरू करना"); } शून्य लूप () { जबकि (ss.उपलब्ध ()> 0) { अगर (gps.encode (ss.read ())) {getInfo (); Radio.write(&gpsData, sizeof(gpsData)); } } } शून्य getInfo () { अगर (gps.location.isValid ()) {gpsData.longitude = gps.location.lng (); जीपीएसडाटा।अक्षांश = जीपीएस। स्थान। लैट (); } और {gpsData.longitude = ०.०; जीपीएसडाटा।अक्षांश = 0.0; } अगर (gps.date.isValid ()) {gpsData.date = gps.date.value (); } और {gpsData.date = 0; } अगर (gps.time.isValid ()) {gpsData.time = gps.time.value (); } और {gpsData.time = 0; } }

RECEIVER

#शामिल

#include #include RF24 रेडियो(8, 7); // सीई, सीएसएन संरचना डेटास्ट्रक्चर {दोहरा अक्षांश; दोहरा देशांतर; अहस्ताक्षरित लंबी तिथि; अहस्ताक्षरित लंबे समय; }जीपीएसडेटा; शून्य सेटअप () {Serial.begin(११५२००); // सेटअप रिसीवर रेडियो रेडियो। शुरू (); Radio.openReadingPipe(1, 0xF0F0F0F0E1LL); रेडियो.सेटचैनल (0x76); Radio.setPALevel(RF24_PA_MAX); Radio.setDataRate(RF24_250KBPS); Radio.startListening (); Radio.enableDynamicPayloads (); रेडियो.पावरअप (); } शून्य लूप () { अगर (रेडियो.उपलब्ध ()) { Radio.read(&gpsData, sizeof(gpsData)); सीरियल.प्रिंट ("स्थान:"); सीरियल.प्रिंट (gpsData.latitude, 6); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (gpsData.longitude, 6); सीरियल.प्रिंट ("दिनांक:"); सीरियल.प्रिंट (gpsData.date); सीरियल.प्रिंट ("समय:"); सीरियल.प्रिंट (gpsData.time); Serial.println ();} }

(इस कोड के लिए https://www.youtube.com/embed/xz1ix76U28E पर वीडियो देखें)

चरण 3: एसडी कार्ड मॉड्यूल का उपयोग करके डेटा संग्रहीत करना

एसडी कार्ड मॉड्यूल का उपयोग करके डेटा संग्रहीत करना
एसडी कार्ड मॉड्यूल का उपयोग करके डेटा संग्रहीत करना

रेडियो मॉड्यूल काफी विश्वसनीय है, लेकिन कभी-कभी आपको एक आकस्मिक योजना की आवश्यकता होती है यदि रिसीवर की तरफ बिजली कटौती होती है या यदि रेडियो सीमा से बाहर चला जाता है। हमारी आकस्मिक योजना एक एसडी कार्ड मॉड्यूल है जो हमें हमारे द्वारा एकत्र किए गए डेटा को संग्रहीत करने की अनुमति देता है। एकत्र किए जा रहे डेटा की मात्रा इतनी बड़ी नहीं है, इसलिए एक छोटा एसडी कार्ड भी आसानी से एक दिन के डेटा को स्टोर करने में सक्षम होगा।

#शामिल

#include #include #include TinyGPSPlus gps; सॉफ्टवेयर सीरियल एसएस (4, 3); संरचना डेटा संरचना {डबल अक्षांश; दोहरा देशांतर; अहस्ताक्षरित लंबी तिथि; अहस्ताक्षरित लंबे समय; }जीपीएसडेटा; शून्य सेटअप () {Serial.begin(११५२००); ss.begin (९६००); if (!SD.begin(5)) { Serial.println ("कार्ड विफल, या मौजूद नहीं है"); वापसी; } Serial.println ("कार्ड इनिशियलाइज़्ड।"); फ़ाइल डेटाफ़ाइल = एसडी.ओपन ("gps_data.csv", FILE_WRITE); अगर (डेटाफाइल) {dataFile.println ("अक्षांश, देशांतर, दिनांक, समय"); डेटाफाइल। बंद करें (); } और { Serial.println ("नहीं, फ़ाइल नहीं खोल सकता"); }} शून्य लूप () { जबकि (ss.उपलब्ध ()> 0) { अगर (gps.encode (ss.read ())) {getInfo (); प्रिंट परिणाम (); सेवइन्फो (); } } } शून्य getInfo () { अगर (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); जीपीएसडाटा। देशांतर = जीपीएस। स्थान। एलएनजी (); } और { Serial.println ("अमान्य स्थान"); } अगर (gps.date.isValid ()){gpsData.date = gps.date.value(); } और { Serial.println ("अमान्य तिथि"); } अगर (gps.time.isValid ()) {gpsData.time = gps.time.value (); } और { Serial.println ("अमान्य समय"); } } शून्य प्रिंट परिणाम () { सीरियल.प्रिंट ("स्थान:"); सीरियल.प्रिंट (gpsData.latitude, 6); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (gpsData.longitude, 6); सीरियल.प्रिंट ("दिनांक:"); सीरियल.प्रिंट (gpsData.date); सीरियल.प्रिंट ("समय:"); सीरियल.प्रिंट (gpsData.time); सीरियल.प्रिंट्लन (); } शून्य सेवइन्फो () {फ़ाइल डेटाफाइल = एसडी.ओपन ("gps_data.csv", FILE_WRITE); अगर (डेटाफाइल) {डेटाफाइल.प्रिंट (gpsData.latitude); डेटाफाइल.प्रिंट ("", "); डेटाफाइल.प्रिंट (gpsData.longitude); डेटाफाइल.प्रिंट ("", "); डेटाफाइल.प्रिंट (gpsData.date); डेटाफाइल.प्रिंट ("", "); dataFile.println (gpsData.time); डेटाफाइल। बंद करें (); } और { Serial.println ("नोप नो डेटाफाइल"); } }

(हम वीडियो में इस कोड के माध्यम से बात करते हैं

चरण 4: GPS डेटा भेजना और संग्रहीत करना

GPS डेटा भेजना और संग्रहीत करना
GPS डेटा भेजना और संग्रहीत करना
GPS डेटा भेजना और संग्रहीत करना
GPS डेटा भेजना और संग्रहीत करना

चरण 5: धन्यवाद

धन्यवाद!
धन्यवाद!

हमारी डाक प्रेषण सूची पर साइन अप करें!

भाग 1: तरंग और तापमान मापन करना

भाग 2: GPS NRF24 रेडियो और एसडी कार्ड

भाग 3: बुआ को निर्धारण शक्ति

भाग 4: बुआ की तैनाती

सिफारिश की: