# បំបែកទិន្នន័យ GPS - ឧបករណ៍ IoT ស្មារតី និង Raspberry Pi នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបំបែកសារជាសំណង NMEA ដែលបានអានពីឧបករណ៍ GPS ដោយ Raspberry Pi ឬឧបករណ៍ IoT ស្មារតី ហើយយកតំបន់កោងដែនទ័រនិងរយៈដែនទ័រ។ ## បំបែកទិន្នន័យ GPS បន្ទាប់ពីទិន្នន័យ NMEA ដើមត្រូវបានអានពីច្រកស៊ីរីល បច្ចេកវិទ្យាអាចបំបែកវា ដោយប្រើបណ្ណាល័យ NMEA កូដព្រៃ។ ### ភារកិច្ច - បំបែកទិន្នន័យ GPS កម្មវិធីឧបករណ៍ដើម្បីបំបែកទិន្នន័យ GPS។ 1. បើកគំរូកម្មវិធី `gps-sensor` ប្រសិនបើមិនទើបបើកទេ 1. ដំឡើងកញ្ចប់ Pip `pynmea2`។ កញ្ចប់នេះមានកូដសម្រាប់បំបែកសារជាសំណង NMEA។ ```sh pip3 install pynmea2 ``` 1. បន្ថែមកូដខាងក្រោមទៅការនាំចូលនៅក្នុងឯកសារ `app.py` សម្រាប់នាំចូលម៉ូឌុល `pynmea2`៖ ```python import pynmea2 ``` 1. ប្តូររបស់ក្នុងមុខងារ `print_gps_data` ជាកូដដូចខាងក្រោម៖ ```python msg = pynmea2.parse(line) if msg.sentence_type == 'GGA': lat = pynmea2.dm_to_sd(msg.lat) lon = pynmea2.dm_to_sd(msg.lon) if msg.lat_dir == 'S': lat = lat * -1 if msg.lon_dir == 'W': lon = lon * -1 print(f'{lat},{lon} - from {msg.num_sats} satellites') ``` កូដនេះនឹងប្រើបណ្ណាល័យ `pynmea2` ដើម្បីវិភាគបន្ទាត់ដែលបានអានពីច្រកស៊ីរី UART។ ប្រសិនបើប្រភេទប្រយោគនៃសារ គឺជា `GGA` នោះហើយនេះគឺជាសារកំណត់ទីតាំង ហើយត្រូវបានដំណើរការ។ តម្លៃតំបន់កោងដែនទ័រនិងរយៈដែនទ័រត្រូវបានអានពីសារ ហើយបម្លែងទៅជាដឺក្រេសទសភាគពីរបៀប NMEA `(d)ddmm.mmmm`។ មុខងារ `dm_to_sd` ធ្វើបម្លែងនេះ។ ទិសដៅនៃតំបន់កោងដែនទ័រត្រូវបានពិនិត្យបន្ទាប់ ហើយប្រសិនបើតំបន់កោងដែនទ័រស្ថិតនៅត្បូង តម្លៃនោះត្រូវបានបម្លែងទៅជាព្រឹតិ្តអវិជ្ជមាន។ ដូចគ្នានឹងរយៈដែនទ័រ បើវារស្ថិតនៅភាគលិច វាត្រូវបានបម្លែងឲ្យជាលេខអវិជ្ជមាន។ ជាចុងក្រោយ អង្គតំបន់ត្រូវបានបោះពុម្ពទៅខ្សែទ្រនិច រាប់ជាមួយនឹងចំនួនផ្កាយផ្កាយដែលប្រើសម្រាប់ទទួលទីតាំង។ 1. រត់កូដ។ ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ IoT ស្មារតី សូមធានាថាកម្មវិធី CounterFit កំពុងរត់ ហើយទិន្នន័យ GPS កំពុងត្រូវផ្ញើ។ ```output pi@raspberrypi:~/gps-sensor $ python3 app.py 47.6423109,-122.1390293 - from 3 satellites ``` > 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-gps-decode/virtual-device](../../../../../3-transport/lessons/1-location-tracking/code-gps-decode/virtual-device) ឬថត [code-gps-decode/pi](../../../../../3-transport/lessons/1-location-tracking/code-gps-decode/pi)។ 😀 កម្មវិធីឧបករណ៍ GPS របស់អ្នកដែលមានការបំបែកទិន្នន័យបានជោគជ័យ! --- **ការបដិសេធ**៖ ឯកសារនេះត្រូវបានបកប្រែក្នុងគោលបំណងប្រើប្រាស់សេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំដើម្បីបានភាពត្រឹមត្រូវ សូមជ្រាបថា ការបកប្រែមួយចំនួនដែលអូតូម៉ាទិចអាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាដែលមានដើមគួរត្រូវបានរកឃើញជា ប្រភពសម្បទាន ឬប្រភពផ្លូវការ។ សម្រាប់ព័ត៌មានសំខាន់ របៀបបកប្រែដោយមនុស្សជំនាញគឺត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះទេ។