GPS working and Arduino Hindi me

0
130

मित्रो, स्वागत है आपका, आज हम बात करेंगे GPS के बारे में. GPS यानी Global Positioning System, यह navigation system USA में develop हुई है और सारी दुनिया इसका free इस्तमाल कर सकती है. GPS enabled device या automobile की आप map पर position जान सकते है, आप उसका रूट ट्रैक कर सकते है. GPS सिर्फ जगह ही नहीं समय और कई सारी information देता है. GPS हर Transport Business में काम आता है पर ये काम केसे करता है? तो चलिए देखते हैं.


GPS Satellite

आप सोचेंगे की बिना Internet या SIMCARD के भी आप location कैसे पता कर सकते है. तो इसका जवाब है GPS module में एक छोटा सा antenna होता है जो direct navigation satellite से communicate करता है. हमे यह तो पता है की पृथ्वी के इर्द गिर्द काफी सारे satellites घूमते है, इसमें से 24 satellites US ने GPS navigation के लिए रखे है. और ये satellites इस तरह set है की हर समय पूरी पृथ्वी cover हो जाए. एक location कम से कम 3 satellites की range में होता है. तो आप इससे पता लगा सकते है की GPS की range कितनी है. यह microwave frequency पे काम करता है. अब पूरे GPS system में तीन part है:

Parts of GPS

  • Control Segment
  • Upace Segment
  • User Segment
3 elements of GPS

control segment का काम space में घूम रही satellites को align रखने का, समय और बाकी जानकारी transmit और receive करने का होता है. USA GPS को control करता है इसलिए control segment भी वो ही मैनेज करता है. space segment यानी अपनी satellites और user segment यानी जिस किसी device, automobile में GPS module है. आज तो phone, missiles, watch, car सब मे GPS module होता है. अब हमने जाना की GPS काम केसे करता है अब इसको अपने uno के साथ use करना जानेगे और uno compatible module के बारे में बात करेंगे.

NEO-6M GPS Module

NEO-6M uno के साथ interface होने वाला एक GPS module है. इसमें चार pins है और इसमें हमे externally antenna solder करना पड़ता है. यह serial communication पे काम करता है इसलिए इसमें Vcc, Gnd, Rx, और Tx pins है. इससे GPS location लेने के लिए सिर्फ serial communication पे हमे ध्यान होगा. Data हमे raw form में मिलेगा हमे इसे latitude, longitude, time, date जेसी information मिल सकती है.

Specification:

  • इस module में एक एक्सटर्नल एंटीना है and built-in EEPROM भी .
  • Interface: RS232 TTL
  • Power supply: 3V to 5V
  • Default baudrate: 9600 bps
  • Works with standard NMEA sentences

तो चलिए अब हम इसको interface करके code करते है.

Coding

#include <SoftwareSerial.h>
SoftwareSerial gps(4, 3);
void setup(){
  Serial.begin(9600);
  gps.begin(9600);
  }
void loop()
    {
    while (gps.available() > 0){
    byte gpsData = gps.read();
    Serial.write(gpsData);
      }
    }
GPS connection with UNO

अब हम सबसे पहले Vcc और Gnd connect कर देंगे फिर uno की pin 3 और 4 को Rx और Tx से connect कर देंगे. अब यह communication हम uno के pin 0 या 1 पर नहीं कर रहे इसलिय हमे SoftwareSerial header file include करनी पड़ती है. अब हमे पता है की serial communication है मतलब baudrate set करना होगा और serial ports में available है तो उसको हम read करेंगे. अब आप जब serial monitor खोलके देखेंगे तो आपको gps की जानकारी सब NMEA format में मिलेगा. NMEA मतलब National Marine Electronics Association. तो चलिए हम यह format की बात करते है.

यह data कुछ एसा दिखता है:

$GPGGA,110617.00,41XX.XXXXX,N,00831.54761,W,1,05,2.68,129.0,M,50.1,M,,*42
  • 110617 – यह समय की जानकारी देता है, 11:06:17 UTC
  • 41XX.XXXXX,N – latitude 41 deg XX.XXXXX’ N
  • 00831.54761,W – Longitude 008 deg 31.54761′ W
  • 1 – fix quality (0 = invalid; 1= GPS fix; 2 = DGPS fix; 3 = PPS fix; 4 = Real Time Kinematic; 5 = Float RTK; 6 = estimated (dead reckoning); 7 = Manual input mode; 8 = Simulation mode)
  • 05 – कितनी satellites से data प्राप्त किया है.
  • 2.68 – Horizontal dilution of position
  • 129.0, M – Altitude, in meters above the sea level
  • 50.1, M – Height of geoid (mean sea level) above WGS84 ellipsoid
  • empty field – time in seconds since last DGPS update
  • empty field – DGPS station ID number
  • *42 – the checksum data, always begins with *

The other NMEA sentences provide additional information:

  • $GPGSA – GPS DOP and active satellites
  • $GPGSV – Detailed GPS satellite information
  • $GPGLL – Geographic Latitude and Longitude
  • $GPRMC – Essential GPS pvt (position, velocity, time) data
  • $GPVTG – Velocity made good

अब दोस्तों इस data को आप wifi module से cloud में save करके कही से भी Track कर सकते है और इससे कोई भी Tracking Management system बना सकते है. यह तो raw data मिला अगर आपको uno से data simple way में चाहिए तो आप TinyGPS++ header file install करके उसके function use कर सकते है.

Simplyfied data Code

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin= 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
TinyGPSPlus gps;
SoftwareSerial ss(RXPin, TXPin);
void setup(){
  Serial.begin(9600);
  ss.begin(GPSBaud);
}
void loop(){
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0){
    gps.encode(ss.read());
    if (gps.location.isUpdated()){
      Serial.print("Latitude= "); 
      Serial.print(gps.location.lat(), 6);
      Serial.print(" Longitude= "); 
      Serial.println(gps.location.lng(), 6);
    }
  }
}

Summing Up

अब हमने बहुत सारी libraries import की है तो हमे पता है की libraries केसे include करना है.  सबसे पहले हम वो library files download करके uno की libraries folder में save करते है और फिर Arduino IDE को फिर से open करके हम include कर सकते है. दुसरा तरीका यह है की library की zip file download करके ide में sketch >>include libraries>>add .ZIP file करके भी कर सकते है . अब आप code देख के तो समझ ही गए होंगे की इस header file से क्या change हुआ. इस बार हमने gps नाम का object बनाया. फिर ss नाम का दुसरा object बनाया जिसको हम software serial के लिए use करते है. अब हमे gps location पाना easy हो गया. हम सिर्फ gps.location.lat() और gps.location.lng() functions use करके latitude और longitude पा सकते है.

तो दोस्तों हमने आज gps के बारे में जाना. यह कैसे काम करता है और gps module को uno के साथ interface कर सकते है. में आशा करता हूँ कि आपको यह blog अच्छा लगा होगा और आप इसको Follow कर रहे होंगे. हम जल्द ही मिलते है फिर से अपने नए blog में. तब तक के लिए Happy IoTing!!!!

LEAVE A REPLY

Please enter your comment!
Please enter your name here