13 KiB
GPS डेटा पढ़ें - वर्चुअल IoT हार्डवेयर
इस पाठ के इस भाग में, आप अपने वर्चुअल IoT डिवाइस में एक GPS सेंसर जोड़ेंगे और इससे मान पढ़ेंगे।
वर्चुअल हार्डवेयर
वर्चुअल IoT डिवाइस एक सिम्युलेटेड GPS सेंसर का उपयोग करेगा, जो UART के माध्यम से एक सीरियल पोर्ट पर उपलब्ध है।
एक भौतिक GPS सेंसर में GPS सैटेलाइट्स से रेडियो तरंगों को पकड़ने के लिए एक एंटीना होता है, और GPS सिग्नल को GPS डेटा में बदलता है। इसका वर्चुअल संस्करण इसे सिम्युलेट करता है, जिससे आप या तो लैटिट्यूड और लॉन्गिट्यूड सेट कर सकते हैं, कच्चे NMEA वाक्य भेज सकते हैं, या एक GPX फ़ाइल अपलोड कर सकते हैं जिसमें कई स्थान होते हैं जो क्रमिक रूप से लौटाए जा सकते हैं।
🎓 NMEA वाक्य इस पाठ में बाद में कवर किए जाएंगे
सेंसर को CounterFit में जोड़ें
वर्चुअल GPS सेंसर का उपयोग करने के लिए, आपको इसे CounterFit ऐप में जोड़ना होगा।
कार्य - सेंसर को CounterFit में जोड़ें
GPS सेंसर को CounterFit ऐप में जोड़ें।
-
अपने कंप्यूटर पर
gps-sensor
नामक एक फ़ोल्डर में एक नया Python ऐप बनाएं, जिसमें एक फ़ाइलapp.py
और एक Python वर्चुअल एनवायरनमेंट हो, और CounterFit pip पैकेज जोड़ें।⚠️ यदि आवश्यक हो, तो पाठ 1 में CounterFit Python प्रोजेक्ट बनाने और सेटअप करने के निर्देशों का संदर्भ लें।
-
एक अतिरिक्त Pip पैकेज इंस्टॉल करें जो UART आधारित सेंसर से सीरियल कनेक्शन के माध्यम से बात करने के लिए CounterFit शिम इंस्टॉल करता है। सुनिश्चित करें कि आप इसे उस टर्मिनल से इंस्टॉल कर रहे हैं जिसमें वर्चुअल एनवायरनमेंट सक्रिय है।
pip install counterfit-shims-serial
-
सुनिश्चित करें कि CounterFit वेब ऐप चल रहा है।
-
एक GPS सेंसर बनाएं:
-
Sensors पैन में Create sensor बॉक्स में, Sensor type ड्रॉपडाउन करें और UART GPS चुनें।
-
Port को /dev/ttyAMA0 पर सेट रहने दें।
-
Add बटन चुनें ताकि
/dev/ttyAMA0
पोर्ट पर GPS सेंसर बनाया जा सके।
GPS सेंसर बनाया जाएगा और सेंसर सूची में दिखाई देगा।
-
GPS सेंसर को प्रोग्राम करें
अब वर्चुअल IoT डिवाइस को वर्चुअल GPS सेंसर का उपयोग करने के लिए प्रोग्राम किया जा सकता है।
कार्य - GPS सेंसर को प्रोग्राम करें
GPS सेंसर ऐप को प्रोग्राम करें।
-
सुनिश्चित करें कि
gps-sensor
ऐप VS Code में खुला है। -
app.py
फ़ाइल खोलें। -
CounterFit से ऐप को कनेक्ट करने के लिए
app.py
के शीर्ष पर निम्न कोड जोड़ें:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
इसके नीचे कुछ आवश्यक लाइब्रेरी आयात करने के लिए निम्न कोड जोड़ें, जिसमें CounterFit सीरियल पोर्ट के लिए लाइब्रेरी शामिल है:
import time import counterfit_shims_serial serial = counterfit_shims_serial.Serial('/dev/ttyAMA0')
यह कोड
counterfit_shims_serial
Pip पैकेज सेserial
मॉड्यूल आयात करता है। फिर यह/dev/ttyAMA0
सीरियल पोर्ट से कनेक्ट करता है - यह वह पता है जहां वर्चुअल GPS सेंसर अपने UART पोर्ट के लिए उपयोग करता है। -
इसके नीचे निम्न कोड जोड़ें ताकि सीरियल पोर्ट से डेटा पढ़ा जा सके और कंसोल पर प्रिंट किया जा सके:
def print_gps_data(line): print(line.rstrip()) while True: line = serial.readline().decode('utf-8') while len(line) > 0: print_gps_data(line) line = serial.readline().decode('utf-8') time.sleep(1)
एक फ़ंक्शन
print_gps_data
परिभाषित किया गया है जो कंसोल पर पास की गई लाइन को प्रिंट करता है।इसके बाद कोड हमेशा के लिए लूप करता है, प्रत्येक लूप में सीरियल पोर्ट से जितनी लाइनें संभव हो उतनी पढ़ता है। यह प्रत्येक लाइन के लिए
print_gps_data
फ़ंक्शन को कॉल करता है।सभी डेटा पढ़ने के बाद, लूप 1 सेकंड के लिए सोता है और फिर से प्रयास करता है।
-
इस कोड को चलाएं, यह सुनिश्चित करते हुए कि आप एक अलग टर्मिनल का उपयोग कर रहे हैं जिसमें CounterFit ऐप चल रहा है, ताकि CounterFit ऐप चालू रहे।
-
CounterFit ऐप से GPS सेंसर का मान बदलें। आप इसे निम्न तरीकों में से किसी एक में कर सकते हैं:
-
Source को
Lat/Lon
पर सेट करें, और एक स्पष्ट लैटिट्यूड, लॉन्गिट्यूड और GPS फिक्स प्राप्त करने के लिए उपयोग किए गए सैटेलाइट्स की संख्या सेट करें। यह मान केवल एक बार भेजा जाएगा, इसलिए Repeat बॉक्स को चेक करें ताकि डेटा हर सेकंड दोहराया जा सके। -
Source को
NMEA
पर सेट करें और कुछ NMEA वाक्य टेक्स्ट बॉक्स में जोड़ें। ये सभी मान भेजे जाएंगे, प्रत्येक नए GGA (पोजिशन फिक्स) वाक्य को पढ़ने से पहले 1 सेकंड की देरी होगी।आप nmeagen.org जैसे टूल का उपयोग करके इन वाक्यों को मैप पर ड्रॉ करके जनरेट कर सकते हैं। ये मान केवल एक बार भेजे जाएंगे, इसलिए Repeat बॉक्स को चेक करें ताकि डेटा एक सेकंड बाद फिर से भेजा जा सके।
-
Source को GPX फ़ाइल पर सेट करें और ट्रैक लोकेशन के साथ एक GPX फ़ाइल अपलोड करें। आप AllTrails जैसे लोकप्रिय मैपिंग और हाइकिंग साइट्स से GPX फ़ाइलें डाउनलोड कर सकते हैं। इन फ़ाइलों में एक ट्रेल के रूप में कई GPS लोकेशन होती हैं, और GPS सेंसर प्रत्येक नई लोकेशन को 1 सेकंड के अंतराल पर लौटाएगा।
ये मान केवल एक बार भेजे जाएंगे, इसलिए Repeat बॉक्स को चेक करें ताकि डेटा एक सेकंड बाद फिर से भेजा जा सके।
एक बार जब आप GPS सेटिंग्स को कॉन्फ़िगर कर लें, तो इन मानों को सेंसर पर लागू करने के लिए Set बटन चुनें।
-
-
आप GPS सेंसर से कच्चा आउटपुट देखेंगे, कुछ इस तरह:
$GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67
💁 आप इस कोड को code-gps/virtual-device फ़ोल्डर में पा सकते हैं।
😀 आपका GPS सेंसर प्रोग्राम सफल रहा!
अस्वीकरण:
यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।