SIM800x మాడ్యూల్స్ యొక్క GSM స్థాన సేవ మరియు Yandex.Locator APIతో దాని పని

SIM800x మాడ్యూల్స్ యొక్క GSM స్థాన సేవ మరియు Yandex.Locator APIతో దాని పని

Google, దురదృష్టవశాత్తు GSM మాడ్యూల్‌లను ఉపయోగించే చాలా మంది వినియోగదారుల కోసం, 2-3 నెలల క్రితం మాడ్యూల్‌కు కనిపించే సెల్ టవర్‌ల కోఆర్డినేట్‌ల ఆధారంగా లొకేషన్‌ని నిర్ణయించడానికి APIని బ్లాక్ చేసి, చెల్లింపు ప్రాతిపదికన బదిలీ చేసింది. దీని కారణంగా, SIM800 సిరీస్ మాడ్యూల్స్ ఉత్పత్తి చేయబడ్డాయి SIMCom వైర్‌లెస్ సొల్యూషన్స్, AT+CIPGSMLOC కమాండ్ యొక్క కార్యాచరణ పని చేయడం ఆగిపోయింది. Yandex అందించిన ఇలాంటి సేవను ఉపయోగించడం ద్వారా మీరు ఈ సమస్యను ఎలా పరిష్కరించవచ్చో ఈ వ్యాసంలో నేను మీకు చెప్తాను - Yandex.Locator.

Yandex సెల్ టవర్ల కోఆర్డినేట్‌లను ఎలా స్వీకరిస్తుందో దాటవేద్దాం, ప్రధాన విషయం ఏమిటంటే మేము ఈ ఉచిత సేవను ఉపయోగించుకోవచ్చు మరియు క్రింది డేటాను పొందవచ్చు: అక్షాంశం, రేఖాంశం, ఎత్తు, అలాగే ప్రతి పరామితికి సుమారుగా లోపం. Google నుండి ఇకపై అందుబాటులో లేని సేవకు బదులుగా Yandex APIకి త్వరగా మారడంపై చిన్న ట్యుటోరియల్ ఇవ్వడం వ్యాసం యొక్క ముఖ్య ఉద్దేశ్యం.

దిగువన, ఉదాహరణగా, మేము మాడ్యూల్ స్థానం యొక్క అక్షాంశం మరియు రేఖాంశాన్ని మాత్రమే చూపుతాము.

కాబట్టి ప్రారంభిద్దాం

ముందుగా మీరు ఇక్కడ ఉన్న వినియోగదారు ఒప్పందాన్ని చదవాలి: yandex.ru/legal/locator_api. ప్రత్యేక శ్రద్ధ నిబంధన 3.6కి చెల్లించాలి. ఈ వినియోగదారు ఒప్పందం ముందస్తు నోటీసు లేకుండా, ఎప్పుడైనా Yandex.Locator APIని మార్చడానికి/సరిదిద్దడానికి లేదా నవీకరించడానికి Yandex హక్కును కలిగి ఉంది..

చిరునామాకు వెళ్లండి yandex.ru/dev/locator/keys/get మరియు మీరు గతంలో సృష్టించిన Yandex ఖాతాను అభివృద్ధి సమూహానికి జోడించండి. ఈ దశలు ఈ సేవను యాక్సెస్ చేయడానికి కీని పొందడానికి మిమ్మల్ని అనుమతిస్తాయి.

SIM800x మాడ్యూల్స్ యొక్క GSM స్థాన సేవ మరియు Yandex.Locator APIతో దాని పని
మీరు అందుకున్న కీని వ్రాయండి లేదా నిల్వ చేయండి.

ఈ దశలను పూర్తి చేసిన తర్వాత, మీరు పేజీకి ప్రాప్యతను కలిగి ఉంటారు yandex.ru/dev/locator/doc/dg/api/geolocation-api-docpage ఇక్కడ Yandex.Locator సేవ యొక్క ఆపరేషన్ యొక్క మెకానిజం గురించి ప్రాథమిక సమాచారం అందించబడుతుంది.

Yandex.Locator సేవలకు CURL ఆకృతిలో XML అభ్యర్థనను రూపొందించడానికి, మీరు మాడ్యూల్ ద్వారా “కనిపించే” సెల్ టవర్‌లపై సమాచారాన్ని పొందాలి:

  • కంట్రీ కోడ్ - కంట్రీ కోడ్
  • ఆపరేటరిడ్ - మొబైల్ నెట్‌వర్క్ కోడ్
  • cellid - సెల్ ఐడెంటిఫైయర్
  • lac - స్థాన కోడ్

‘AT+CNETSCAN’ ఆదేశాన్ని పంపడం ద్వారా మాడ్యూల్ నుండి ఈ సమాచారాన్ని పొందవచ్చు.

మాడ్యూల్ నుండి సమాచారం అందింది

Operator:"MegaFon",MCC:250,MNC:02,Rxlev:59,Cellid:2105,Arfcn:96,Lac:1E9E,Bsic:31<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:54,Cellid:2107,Arfcn:18,Lac:1E9E,Bsic:3A<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:45,Cellid:10A9,Arfcn:97,Lac:1E9E,Bsic:11<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:41,Cellid:2108,Arfcn:814,Lac:1E9E,Bsic:1F<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:43,Cellid:5100,Arfcn:13,Lac:1E9E,Bsic:2B<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:39,Cellid:5102,Arfcn:839,Lac:1E9E,Bsic:1A<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:38,Cellid:2106,Arfcn:104,Lac:1E9E,Bsic:0A<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:37,Cellid:0FE7,Arfcn:12,Lac:1E9E,Bsic:24<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:44,Cellid:14C8,Arfcn:91,Lac:1E9E,Bsic:24<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:37,Cellid:04B3,Arfcn:105,Lac:1E9E,Bsic:3A<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:47,Cellid:29A0,Arfcn:70,Lac:39BA,Bsic:09<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:43,Cellid:0FDD,Arfcn:590,Lac:39BA,Bsic:09<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:44,Cellid:29A1,Arfcn:84,Lac:39BA,Bsic:10<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:40,Cellid:8F95,Arfcn:81,Lac:39BA,Bsic:03<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:43,Cellid:0FDF,Arfcn:855,Lac:39BA,Bsic:24<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:37,Cellid:299C,Arfcn:851,Lac:39BA,Bsic:17<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:37,Cellid:0FDE,Arfcn:852,Lac:39BA,Bsic:1B<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:35,Cellid:299F,Arfcn:72,Lac:39BA,Bsic:10<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:33,Cellid:28A5,Arfcn:66,Lac:396D,Bsic:25<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:33,Cellid:2A8F,Arfcn:71,Lac:39BA,Bsic:23<CR><LF>
Operator:"MOTIV",MCC:250,MNC:20,Rxlev:46,Cellid:39D2,Arfcn:865,Lac:4D0D,Bsic:14<CR><LF>
Operator:"MOTIV",MCC:250,MNC:20,Rxlev:36,Cellid:09EE,Arfcn:866,Lac:4D0D,Bsic:25<CR><LF>
Operator:"MOTIV",MCC:250,MNC:20,Rxlev:28,Cellid:09ED,Arfcn:869,Lac:4D0D,Bsic:22<CR><LF>
Operator:"MOTIV",MCC:250,MNC:20,Rxlev:28,Cellid:09EF,Arfcn:861,Lac:4D0D,Bsic:17<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:66,Cellid:58FE,Arfcn:1021,Lac:00EC,Bsic:0A<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:50,Cellid:58FD,Arfcn:1016,Lac:00EC,Bsic:08<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:49,Cellid:58FF,Arfcn:1023,Lac:00EC,Bsic:09<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:46,Cellid:F93B,Arfcn:59,Lac:00EC,Bsic:20<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:50,Cellid:381B,Arfcn:1020,Lac:00EC,Bsic:0A<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:37,Cellid:3819,Arfcn:42,Lac:00EC,Bsic:08<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:34,Cellid:4C0F,Arfcn:43,Lac:00EC,Bsic:0A<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:33,Cellid:0817,Arfcn:26,Lac:00EC,Bsic:27<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:34,Cellid:3A5D,Arfcn:1017,Lac:00E9,Bsic:34<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:33,Cellid:3D05,Arfcn:1018,Lac:00EC,Bsic:1F<CR><LF>

తర్వాత మీరు మాడ్యూల్ యొక్క Cellid మరియు Lac ప్రతిస్పందన నుండి డేటాను హెక్సాడెసిమల్ నుండి దశాంశానికి మార్చవలసి ఉంటుందని గమనించడం ముఖ్యం.

ఇప్పుడు మేము Yandex సర్వర్‌ను సంప్రదించడానికి XML డేటాను రూపొందించాలి, అది తరువాత ఒక మూలకంలో కలపబడుతుంది.

డేటా పట్టిక

డేటా
వ్యాఖ్యను

xml=<ya_lbs_request><common><version>1.0</version><api_key>

...
ఇది Yandex నుండి అందుకున్న 88-అంకెల కీని కలిగి ఉండాలి

</api_key></common>
<gsm_cells>
<cell><countrycode>
250

దేశం కోడ్ (MCC)

</countrycode><operatorid>
2

ఆపరేటర్ కోడ్ (MNC)

</operatorid><cellid>
8453

మాడ్యూల్ నుండి స్వీకరించబడిన జాబితా నుండి మొదటి టవర్ యొక్క సెల్లిడ్ మరియు బేస్ 16 ఉన్న సంఖ్య నుండి బేస్ 10 ఉన్న సంఖ్యకు మార్చబడింది (మాడ్యూల్ నుండి అందుకున్న విలువ 2105)

</cellid><lac>
7838

మొదటి టవర్ యొక్క లాక్, బేస్ 16 నంబర్ నుండి బేస్ 10 నంబర్‌కి మార్చబడింది (మాడ్యూల్ నుండి అందుకున్న విలువ 1E9E)

</lac></cell>
...

సెల్ ట్యాగ్ ద్వారా ఏకం చేయబడిన సమూహం నిర్దిష్ట స్థానం యొక్క విశ్వసనీయతను పెంచడానికి అవసరమైనన్ని సార్లు పునరావృతమవుతుంది

</gsm_cells>
<ip><address_v4>
10.137.92.60

GPRS సందర్భాన్ని తెరిచిన తర్వాత నెట్‌వర్క్ ద్వారా మాడ్యూల్‌కు కేటాయించిన IP చిరునామాను మాడ్యూల్‌కు ‘AT+SAPBR=2,1’ కమాండ్‌ని పంపడం ద్వారా పొందవచ్చు - క్రింద చూడండి

</address_v4></ip></ya_lbs_request>

ఇది క్రింది విధంగా 1304 అక్షరాలతో XML సందేశాన్ని రూపొందిస్తుంది:

సందేశం

xml=<ya_lbs_request><common><version>1.0</version><api_key>{здесь необходимо указать свой ключ}</api_key></common><gsm_cells><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>8453</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>8455</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>4265</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>8456</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>20736</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>20738</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>8454</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>4071</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>5320</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>1203</cellid><lac>7838</lac></cell></gsm_cells><ip><address_v4>10.137.92.60</address_v4></ip></ya_lbs_request>

ఈ సందేశం Megafon ఆపరేటర్ యొక్క సెల్ టవర్లపై డేటా ఆధారంగా రూపొందించబడింది, ఇది డేటాతో భర్తీ చేయబడుతుంది, వీటిలో: జారీ చేయబడిన కోఆర్డినేట్‌ల విశ్వసనీయతను పెంచడానికి 'AT+CNETSCAN' కమాండ్ ద్వారా స్వీకరించబడిన మాడ్యూల్‌కు కనిపించే ఇతర టవర్‌లపై.

మాడ్యూల్‌తో పని చేయడం మరియు ప్రస్తుత కోఆర్డినేట్‌లను పొందడం

మాడ్యూల్తో పని యొక్క AT-లాగ్

>AT+SAPBR=3,1,”Contype”,”GPRS” // конфигурирование профиля доступа в Интернет
<OK
>AT+SAPBR=3,1,”APN”,”internet” // конфигурирование APN 
<OK
>AT+SAPBR=1,1 // запрос на открытие GPRS контекста
<OK // контекст открыт
>AT+SAPBR=2,1 // запрос текущего IP адреса присвоенного оператором сотовой связи
<+SAPBR: 1,1,”10.137.92.60” // данный IP адрес потребуется вставить в XML-сообщение
<
<OK
>AT+HTTPINIT
<OK
>AT+HTTPPARA=”CID”,1
<OK
>AT+HTTPPARA=”URL”,”http://api.lbs.yandex.net/geolocation”
<OK
>AT+HTTPDATA=1304,10000 // первое число – длина сформированного XML-сообщения
<DOWNLOAD // приглашение к вводу XML-сообщения
< // вводим сформированное нами XML-сообщение
<OK
>AT+HTTPACTION=1
<OK
<
<+HTTPACTION: 1,200,303 // 200 – сообщение отправлено, 303 – получено 303 байт данных
>AT+HTTPREAD=81,10
<+HTTPREAD: 10
<60.0330963 // широта на которой расположен модуль
<OK
>AT+HTTPREAD=116,10
<+HTTPREAD: 10
<30.2484303 // долгота на которой расположен модуль
>AT+HTTPTERM
<OK

ఈ విధంగా, మేము మాడ్యూల్ యొక్క ప్రస్తుత కోఆర్డినేట్‌లను అందుకున్నాము: 60.0330963, 30.2484304.
సెల్ టవర్ల ద్వారా పంపబడే డేటా సంఖ్య పెరుగుదలతో, స్థాన నిర్ధారణ యొక్క ఖచ్చితత్వం దామాషా ప్రకారం పెరుగుతుంది.

Yandex.Locator సేవ నుండి ప్రతిస్పందన యొక్క కంటెంట్ మరియు మీకు అవసరమైన డేటా ఎంపిక గురించి మరింత వివరణాత్మక సమాచారాన్ని లింక్‌లో చదవవచ్చు: yandex.ru/dev/locator/doc/dg/api/xml-reply-docpage, API->XML->ప్రతిస్పందన విభాగంలో

తీర్మానం

ఈ మెటీరియల్ డెవలపర్‌లకు మంచి సహాయంగా ఉంటుందని నేను ఆశిస్తున్నాను. వ్యాఖ్యలలో మీ ప్రశ్నలకు సమాధానం ఇవ్వడానికి నేను సిద్ధంగా ఉన్నాను.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి