You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/kn/3-transport/lessons/1-location-tracking/pi-gps-sensor.md

16 KiB

GPS ಡೇಟಾವನ್ನು ಓದಿ - Raspberry Pi

ಪಾಠದ ಈ ಭಾಗದಲ್ಲಿ, ನೀವು ನಿಮ್ಮ Raspberry Pi ಗೆ GPS ಸೆನ್ಸಾರ್ ಅನ್ನು ಸೇರಿಸಿ, ಅದರಿಂದ ಮೌಲ್ಯಗಳನ್ನು ಓದುವಿರಿ.

##ಹೊ الثلاثರಿಗೆ

Raspberry Pi ಗೆ GPS ಸೆನ್ಸಾರ್ ಬೇಕಾಗುತ್ತದೆ.

ನೀವು ಬಳಸಬಹುದಾದ ಸೆನ್ಸಾರ್ ಒಂದು Grove GPS Air530 ಸೆನ್ಸಾರ್. ಈ ಸೆನ್ಸಾರ್ ಹಲವು GPS ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಸಂಪರ್ಕ ಹೊಂದುತ್ತದೆ ವೇಗದ, ಖಚಿತ ಸರಿಗೊಳಿಸುವಿಕೆಯೆಗಾಗಿ. ಸೆನ್ಸಾರ್ 2 ಭಾಗಗಳಿಂದ ಕೂಡಿದೆ - ಸೆನ್ಸಾರ್‌ನ ಕೋರೆಯನ್ನುಲೆಕಟ್ರಾನಿಕ್ಸ್, ಮತ್ತು ಸೌರಗ್ರಹಗಳ ಮುಖ್ಯವಾಣಿ ತರಂಗಗಳನ್ನು ಹಿಡಿಯಲು ಪಾತಳದ ತಂತಿ ಮೂಲಕ ಸಂಪರ್ಕಿಸಿದ ಹೊರಗಿನ ಆಂಟೆನಾಗಳು.

ಇದು UART ಸೆನ್ಸಾರ್, ಹಾಗಾಗಿ GPS ಡೇಟಾವನ್ನು UART ಮೂಲಕ ಕಳುಹಿಸುತ್ತದೆ.

##GPS ಸೆನ್ಸಾರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ

Grove GPS ಸೆನ್ಸಾರ್ ಅನ್ನು Raspberry Pi ಗೆ ಸಂಪರ್ಕಿಸಬಹುದು.

###ಕಾರ್ಯ - GPS ಸೆನ್ಸಾರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ

GPS ಸೆನ್ಸಾರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ.

A grove GPS sensor

  1. Grove ಕೇಬಲ್‌ನ ಒಂದು ಮುಗುಳ್ನು GPS ಸೆನ್ಸಾರ್‌ನ ಸೊಕೇಟ್‌ಗೆ ಇಳಿಸಿ. ಅದು ಒಂದೇ ದಿಕ್ಕಿನಲ್ಲಿ ಹೋಗುತ್ತದೆ.

  2. Raspberry Pi ಅನ್ನು ತಡೆಯುವ ಮೂಲಕ, Grove ಕೇಬಲ್‌ನ ಮತ್ತೊಂದು ಮುಗುಳ್ನು Grove Base ಹ್ಯಾಟ್‌ನಲ್ಲಿ UART ಎಂದು ಗುರುತಿಸಲಾದ UART ಸೊಕೇಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ. ಈ ಸೊಕೇಟ್ ಮಧ್ಯದ ಸಾಲಿನಲ್ಲಿ, SD ಕಾರ್ಡ್ ಸ್ಲಾಟ್‌ಗೆ ಸಮೀಪವಿರುವ ಬದಿಯಲ್ಲಿ ಇದೆ, USB ಪೋರ್ಟ್‌ಗಳು ಮತ್ತು ಇಥರ್ನೆಟ್ ಸೊಕೇಟ್‌ನ ಮತ್ತೊಂದು ಕೊನೆಯಲ್ಲಿ.

    The grove GPS sensor connected to the UART socket

  3. GPS ಸೆನ್ಸಾರ್ ಅನ್ನು ಸ್ಥಾನಗೊಳ್ಳಿಸಿ ಆಗ ಆಂಟೆನಾದ ಹವಾ ಮುಗಿಯುವಿಕೆಗೆ ಸ್ಪಷ್ಟ ದೃಷ್ಟಿ ದೊರೆಯುತ್ತದೆ - ಇದ್ದಕ್ಕಿದ್ದಂತೆ ತೆರೆದ ಕಿಟಕಿಯ ಬದಿಯಲ್ಲಿ ಅಥವಾ ಹೊರಗೆ. ಆಂಟೆನಾಗೆ ಯಾವಾಗಲೂ ಅಡ್ಡಿಪಡಿಸುವುದಿಲ್ಲ ಎಂದರೆ ಸ್ಪಷ್ಟವಾದ ಸಂಕೆತ್ ಪಡೆಯುವುದು ಸುಲಭವಿದೆ.

GPS ಸೆನ್ಸಾರ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಿ

Raspberry Pi ಈಗ ಅಂಟಿಸಿದ GPS ಸೆನ್ಸಾರ್ ಅನ್ನು ಬಳಕೆ ಮಾಡಲು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಬಹುದಾಗಿದೆ.

###ಕಾರ್ಯ - GPS ಸೆನ್ಸಾರ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಿ

ಯಂತ್ರವನ್ನು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಿ.

  1. Pi ಪವರ್ ಅಪ್ ಮಾಡಿ ಮತ್ತು ಬೂಟ್ ಆಗುವುದನ್ನು ಕಾಯಿರಿ

  2. GPS ಸೆನ್ಸಾರ್ 2 LEDಗಳನ್ನು ಹೊಂದಿದೆ - ಡೇಟಾ ಪ್ರಸಾರವಾಗುವಾಗ ಟಿಲಿಯುವ ನೀಲಿ LED ಮತ್ತು ಪ್ರತಿ ಸೆಕೆಂಡ್ ಒಂದು ಸಲ ಟಿಲಿಯುವ ಹಸಿರು LED ಸೌರಗ್ರಹಗಳಿಂದ ಡೇಟಾ ಸ್ವೀಕರಿಸುವಾಗ. Pi ಪವರ್ ಅಪ್ ಮಾಡಿದಾಗ ನೀಲಿ LED ಟಿಲಿಯುತ್ತಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಕೆಲ ನಿಮಿಷಗಳ ನಂತರ ಹಸಿರು LED ಟಿಲಿಯುತ್ತದೆ - ಅದಾಗದಿದ್ದರೆ ನೀವು ಆಂಟೆನಾವನ್ನು ಮತ್ತೊಂದು ಸ್ಥಳಕ್ಕೆ ವರ್ಗಾಯಿಸಬೇಕಾಗಬಹುದು.

  3. Pi ನಲ್ಲಿ ನೇರವಾಗಿ ಅಥವಾ Remote SSH ವಿಸ್ತರಣೆ ಮೂಲಕ ಸಂಪರ್ಕಿಸಿ VS Code ಪ್ರಾರಂಭಿಸಿ.

    ⚠️ ಅಗತ್ಯವಿದ್ದರೆ ಪಾಠ 1 ರಲ್ಲಿ VS Code ಸೆಟ್ ಅಪ್ ಮತ್ತು ಪ್ರಾರಂಭಿಸುವ ಮಾರ್ಗದರ್ಶಿಯನ್ನು ನೋಡಿ.

  4. ಬ್ಲೂಟೂತ್ ಬೆಂಬಲಿಸುವ Raspberry Pi ನವೀಕೃತ ಆವೃತಿಗಳಲ್ಲಿ, Bluetooth ಗೆ ಬಳಸುವ ಸೀರಿಯಲ್ ಪೋರ್ಟ್ ಮತ್ತು Grove UART ಪೋರ್ಟ್ ಬಳಸುವ ಸೀರಿಯಲ್ ಪೋರ್ಟ್ ನಡುವೆ ಸಂಘರ್ಷ ಉಂಟಾಗುತ್ತದೆ. ಇದನ್ನು ಸರಿಪಡಿಸಲು, ಕೆಳಗಿನ ಕಾರ್ಯಗಳನ್ನು ಮಾಡಿರಿ:

    1. VS Code ಟರ್ಮಿನಲ್ ನಿಂದ, /boot/config.txt ಫೈಲ್ ಅನ್ನು nano ಬಳಸಿ ಸಂಪಾದಿಸಿ, ಅದು ಒಂದು ಒಳನಿರ್ಮಿತ ಟರ್ಮಿನಲ್ ಟೆಕ್ಸ್ಟ್ ಸಂಪಾದಕ, ಹೀಗೆ:

      sudo nano /boot/config.txt
      

      ಈ ಫೈಲ್ ಅನ್ನು VS Code ನಿಂದ ಸಂಪಾದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಏಕೆಂದರೆ ನೀವು sudo ಅನುಮತಿಗಳೊಂದಿಗೆ, ಏರಿಗಾದ ಅನುಮತಿಯೊಂದಿಗೆ ಸಂಪಾದಿಸಬೇಕಾಗುತ್ತದೆ. VS Code ಈ ಅನುಮತಿಗಳನ್ನು ನೀಡುವುದಿಲ್ಲ.

    2. ನಿಮ್ಮ ಕರ್ಸರ್ ಕೀಗಳನ್ನು ಬಳಸಿ ಫೈಲ್‌ನ ಅಂತ್ಯಕ್ಕೆ ಹೋಗಿ. ನಂತರ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ನಕಲಿಸಿ ಫೈಲ್ ಕೊನೆಯಲ್ಲಿ ಅಂಟಿಸಿ:

      dtoverlay=pi3-miniuart-bt
      dtoverlay=pi3-disable-bt
      enable_uart=1
      

      ನಿಮ್ಮ ಸಾಧನದ ಸಾಮಾನ್ಯ ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್‌ಗಳು (Ctrl+v ವಿಂಡೋಸ್, ಲಿನಕ್ಸ್ ಅಥವಾ Raspberry Pi OS ನಲ್ಲಿ, Cmd+v macOS ನಲ್ಲಿ) ಬಳಸಿ ಅಂಟಿಸಬಹುದು.

    3. ಈ ಫೈಲ್‌ನ್ನು ಉಳಿಸಿ ಮತ್ತು nano ನಿಂದ Ctrl+x ಒತ್ತಿ ನಿರ್ಗಮಿಸಿ. ತಿದ್ದುಪಡಿಸಿದ ಬಫರ್ ಉಳಿಸುವುದಕ್ಕೆ ಒಪ್ಪಿಗೆ ನೀಡಲು y ಒತ್ತಿ, ನಂತರ /boot/config.txt ಅನ್ನು ಮೀರಿಸಿದಂತೆ ಒಪ್ಪಿಸಲು enter ಒತ್ತಿ.

      ತಪ್ಪು ಮಾಡಿದರೆ, ಉಳಿಸದೆ ನಿರ್ಗಮಿಸಿ, ನಂತರ ಈ ಹಂತಗಳನ್ನು ಪುನರಾವರ್ತಿಸಿ.

    4. /boot/cmdline.txt ಫೈಲ್ ಅನ್ನು nano ನಲ್ಲಿ ಸಂಪಾದಿಸಿ ಕೆಳಗಿನ ಕಮಾಂಡ್ ಬಳಸಿ:

      sudo nano /boot/cmdline.txt
      
    5. ಈ ಫೈಲ್‌ನಲ್ಲಿ ಸ್ಪೇಸ್ ಬಳಸಿ ವಿಭಜಿಸಲಾದ ಹಲವಾರು ಕೀ/ಮೌಲ್ಯ ಜೋಡಿಗಳು ಇವೆ. console ಎಂಬ ಕೀ ಇರುವ ಕೀ/ಮೌಲ್ಯ ಜೋಡಿಗಳನ್ನು ತೆಗೆದು ಹಾಕಿ. ಅವು ಬಹುಶಃ ಈ ರೀತಿಯಲ್ಲಿರಬಹುದು:

      console=serial0,115200 console=tty1 
      

      ಕರ್ಸರ್ ಕೀಗಳನ್ನು ಬಳಸಿ ಈ ಎಂಟ್ರಿಗಳಲ್ಲಿ ಸಾಗಬಹುದು, ನಂತರ ಸಾಮಾನ್ಯ del ಅಥವಾ backspace ಕೀಲಿಗಳನ್ನು ಬಳಸಿ ಅಳಿಸಬಹುದು.

      ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಮೂಲ ಫೈಲ್ ಹೀಗೆ ಇದ್ದರೆ:

      console=serial0,115200 console=tty1 root=PARTUUID=058e2867-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
      

      ಹೊಸ ಆವೃತ್ತಿ ಇವಾಗಿರುವುದು:

      root=PARTUUID=058e2867-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
      
    6. ಮೇಲಿನ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ ಈ ಫೈಲ್ ಉಳಿಸಿ ಮತ್ತು nano ನಿಂದ ನಿರ್ಗಮಿಸಿ

    7. ನಿಮ್ಮ Pi ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ, ನಂತರ Pi ಮರುಪ್ರಾರಂಭವಾದ ಮೇಲೆ VS Code ನಲ್ಲಿ ಮತ್ತೆ ಸಂಪರ್ಕಿಸಿರಿ.

  5. ಟರ್ಮಿನಲ್ ನಿಂದ, pi ಬಳಕೆದಾರರ ಮನೆ ಡೈರೆಕ್ಟರಿಯಲ್ಲೊಂದು gps-sensor ಎಂಬ ಹೊಸ ಫೋಲ್ಡರ್ ಸೃಷ್ಟಿಸಿ. ಈ ಫೋಲ್ಡರ್‌లో app.py ಎಂಬ ಫೈಲ್ ಸೃಷ್ಟಿಸಿ.

  6. ಈ ಫೋಲ್ಡರ್ ಅನ್ನು VS Code ನಲ್ಲಿ ತೆರೆಯಿರಿ

  7. GPS ಮೋḍ್ಯೂಲ್ UART ಡೇಟಾವನ್ನು ಸೀರಿಯಲ್ ಪೋರ್ಟ್ ಮೂಲಕ ಕಳುಹಿಸುತ್ತದೆ. ನಿಮ್ಮ ಪೈಥಾನ್ ಕೋಡ್‌ನಿಂದ ಸೀರಿಯಲ್ ಪೋರ್ಟ್‌ಗೆ ಸಂವಹನ ಮಾಡಲು pyserial ಪಿಪ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ:

    pip3 install pyserial
    
  8. ಈ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ನಿಮ್ಮ app.py ಫೈಲ್‌ಗೆ ಸೇರಿಸಿ:

    import time
    import serial
    
    serial = serial.Serial('/dev/ttyAMA0', 9600, timeout=1)
    serial.reset_input_buffer()
    serial.flush()
    
    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)
    

    ಈ ಕೋಡ್ pyserial ಪಿಪ್ ಪ್ಯಾಕೇಜ್‌ನ serial ಮೋḍ್ಯೂಲ್ ಅನ್ನು ಆಮದು ಮಾಡುತ್ತದೆ. ನಂತರ /dev/ttyAMA0 ಎಂಬ ಸೀರಿಯಲ್ ಪೋರ್ಟ್‌ಗೆ ಸಂಪರ್ಕ ಹೊಂದುತ್ತದೆ - ಇದು Grove Pi Base Hat ತನ್ನ UART ಪೋರ್ಟ್‌ಗಾಗಿ ಬಳಸುವ ಸೀರಿಯಲ್ ಪೋರ್ಟ್‌ನ ವಿಳಾಸ. ನಂತರ ಈ ಸೀರಿಯಲ್ ಸಂಪರ್ಕದಿಂದ ಇಡಿಯ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ.

    ನಂತರ print_gps_data ಎಂಬ ಫಂಕ್ಷನ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದ್ದು, ಅದಕ್ಕೆ ನೀಡಲಾದ ಸಾಲನ್ನು ಕನ್ಸೋಲಿಗೆ ಮುದ್ರಿಸುತ್ತದೆ.

    ನಂತರ ಕೋಡ್ ಶಾಶ್ವತವಾಗಿ ಲೂಪ್ ಮಾಡುತ್ತದೆ, ಪ್ರತಿ ಲೂಪ್‌ನಲ್ಲಿ ಸೀರಿಯಲ್ ಪೋರ್ಟ್‌ನಿಂದ ಎಷ್ಟು ಸಾಲುಗಳಾದರೂ ಓದಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಸಾಲಿಗಾಗಿ print_gps_data ಫಂಕ್ಷನ್ ಅನ್ನು ಕರೆಸುತ್ತದೆ.

    ಎಲ್ಲಾ ಡೇಟಾ ಓದಿದ ನಂತರ, ಲೂಪ್ 1 ಸೆಕೆಂಡ್‌ಗಾಗಿ ನಿದ್ರಿಸುತ್ತದೆ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸುತ್ತದೆ.

  9. ಈ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ. ನೀವು GPS ಸೆನ್ಸಾರ್‌ನ ಕಚ್ಚಾ ನುಡಿವಾಣಿಗೆ ಹೀಗೊಂದು ಲೈಕ್ ಐದು ಲಕ್ಷಗಳು ಕಾಣಿಸುತ್ತವೆ:

    $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $BDGSA,A,1,,,,,,,,,,,,,,,*0F
    $GPGSV,1,1,00*79
    $BDGSV,1,1,00*68
    

    ನಿಮ್ಮ ಕೋಡ್ ನಿಲ್ಲಿಸಿ ಮತ್ತೆ ಆರಂಭಿಸುವಾಗ ಕೆಳಗಿನ ದೋಷಗಳನ್ನು ಪಡಿಸಿದರೆ, ನಿಮ್ಮ while ಲೂಪ್‌ನಲ್ಲಿ try - except ಬ್ಲಾಕ್ ಸೇರಿಸಿ.

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 0: invalid continuation byte
    
    while True:
        try:
            line = serial.readline().decode('utf-8')
    
            while len(line) > 0:
                print_gps_data()
                line = serial.readline().decode('utf-8')
    
        # ಮೊದಲ ಬೈಟ್ ಓದಿಕೊಳ್ಳಲಾಗುವಾಗ ಅದು ಆಗಾಗಾಗಿ ಒಂದು ಅಕ್ಷರದ ಮಧ್ಯಭಾಗದಲ್ಲಿರಬಹುದು.
        # ಇನ್ನೊಂದು ಸಂಪೂರ್ಣ ಸಾಲನ್ನು ಓದಿ ಮುಂದುವರೆಯಿರಿ.
    
        except UnicodeDecodeError:
            line = serial.readline().decode('utf-8')
    
    time.sleep(1)
    

💁 ನೀವು ಈ ಕೋಡ್ ಅನ್ನು code-gps/pi ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಕಂಡುಹಿಡಿಯಬಹುದು.

😀 ನಿಮ್ಮ GPS ಸೆನ್ಸಾರ್ ಪ್ರೋಗ್ರಾಂ ಯಶಸ್ವಿಯಾಯಿತು!


ತಪಾಸಣೆ ಸೂಚನೆ:
ಈ ದಾಖಲೆ AI ಅನುವಾದ ಸೇವೆ Co-op Translator ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಗೆ ಪ್ರಯತ್ನಿಸಿದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದದಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸಂಬದ್ಧತೆಗಳು ಇರಬಹುದಾದ ಬಗ್ಗೆ ದಯವಿಟ್ಟು ಜಾಗರೂಕರಾಗಿ ಇರುವಿರಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ಇದ್ದ ಮೂಲ ದಾಖಲೆ ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಅವಶ್ಯಕ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ಅರ್ಥಗರ್ಭಿತ ತಪ್ಪು ನಿರ್ಧಾರಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗದಿದ್ದೇವೆ.