Huduma ya Mahali ya GSM ya moduli za SIM800x na kazi yake na API ya Yandex.Locator

Huduma ya Mahali ya GSM ya moduli za SIM800x na kazi yake na API ya Yandex.Locator

Google, kwa bahati mbaya kwa watumiaji wengi wa moduli za GSM, miezi 2-3 iliyopita ilizuia na kuhamisha kwa msingi wa kulipia API ya kuamua eneo kulingana na kuratibu za minara ya seli inayoonekana kwenye moduli. Kwa sababu ya hili, kwenye moduli za mfululizo wa SIM800 zinazozalishwa SIMCom Wireless Solutions, utendaji wa amri ya AT+CIPGSMLOC uliacha kufanya kazi. Katika makala hii nitakuambia jinsi unaweza kutatua tatizo hili kwa kutumia huduma sawa iliyotolewa na Yandex - Yandex.Locator.

Hebu turuke jinsi Yandex inapokea kuratibu za minara ya seli, jambo kuu ni kwamba tunaweza kutumia huduma hii ya bure na kupata data zifuatazo: Latitude, Longitude, Altitude, pamoja na kosa la takriban kwa kila parameter. Kusudi kuu la kifungu ni kutoa mafunzo mafupi juu ya kubadili haraka kwa Yandex API, badala ya huduma ambayo haipatikani tena kutoka kwa Google.

Hapa chini, kama mfano, tutaonyesha tu latitudo na longitudo ya eneo la moduli.

Basi hebu tuanze

Kwanza unahitaji kusoma makubaliano ya mtumiaji yaliyoko: yandex.ru/legal/locator_api. Uangalifu hasa unapaswa kulipwa kwa kifungu cha 3.6. makubaliano haya ya mtumiaji, ambayo yanasema kuwa Yandex inahifadhi haki ya kubadilisha/kusahihisha au kusasisha API ya Yandex.Locator wakati wowote, bila ilani ya mapema..

Nenda kwa anwani yandex.ru/dev/locator/keys/get na ongeza akaunti yako ya Yandex iliyoundwa hapo awali kwenye kikundi cha ukuzaji. Hatua hizi zitakuwezesha kupata ufunguo wa kufikia huduma hii.

Huduma ya Mahali ya GSM ya moduli za SIM800x na kazi yake na API ya Yandex.Locator
Andika au uhifadhi ufunguo unaopokea.

Baada ya kukamilisha hatua hizi, utakuwa na upatikanaji wa ukurasa yandex.ru/dev/locator/doc/dg/api/geolocation-api-docpage ambapo maelezo ya msingi kuhusu utaratibu wa uendeshaji wa huduma ya Yandex.Locator hutolewa.

Ili kutoa ombi la XML katika umbizo la cURL kwa huduma za Yandex.Locator, utahitaji kupata taarifa kuhusu minara ya seli "inayoonekana" kwa kutumia moduli:

  • msimbo wa nchi - msimbo wa nchi
  • operator - msimbo wa mtandao wa simu
  • cellid - kitambulisho cha seli
  • lac - nambari ya eneo

Taarifa hii inaweza kupatikana kutoka kwa moduli kwa kutuma amri ya 'AT+CNETSCAN'.

Taarifa iliyopokelewa kutoka kwa moduli

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>

Ni muhimu kutambua kwamba baadaye utahitaji kubadilisha data kutoka kwa majibu ya Cellid na Lac ya moduli kutoka hexadecimal hadi decimal.

Sasa tunahitaji kutoa data ya XML ili kuwasiliana na seva ya Yandex, ambayo baadaye itaunganishwa kuwa kipengele kimoja.

jedwali la data

Data
Maoni

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

...
Hii inapaswa kuwa na ufunguo wa tarakimu 88 uliopokelewa kutoka kwa Yandex

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

Msimbo wa Nchi (MCC)

</countrycode><operatorid>
2

Msimbo wa Opereta (MNC)

</operatorid><cellid>
8453

Celid ya mnara wa kwanza kutoka kwa orodha iliyopokelewa kutoka kwa moduli na kubadilishwa kutoka nambari iliyo na msingi 16 hadi nambari iliyo na msingi 10 (thamani iliyopokelewa kutoka kwa moduli ni 2105)

</cellid><lac>
7838

Lac ya mnara wa kwanza, pia imebadilishwa kutoka nambari ya msingi 16 hadi nambari ya msingi 10 (thamani iliyopokelewa kutoka kwa moduli ni 1E9E)

</lac></cell>
...

Kikundi kilichounganishwa na lebo ya seli kinaweza kurudiwa mara nyingi inavyohitajika ili kuongeza uaminifu wa eneo mahususi

</gsm_cells>
<ip><address_v4>
10.137.92.60

Anwani ya IP iliyopewa moduli na mtandao baada ya kufungua muktadha wa GPRS inaweza kupatikana kwa kutuma amri 'AT+SAPBR=2,1' kwa moduli - tazama hapa chini.

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

Hii itatoa ujumbe wa XML herufi 1304 kwa muda mrefu kama ifuatavyo:

Ujumbe

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>

Ujumbe huu unatolewa kwa msingi wa data kwenye minara ya seli ya opereta ya Megafon, inaweza kuongezewa na data, pamoja na: kwenye minara mingine inayoonekana kwa moduli iliyopokelewa kwa kutumia amri ya 'AT+CNETSCAN' ili kuongeza uaminifu wa kuratibu zilizotolewa.

Kufanya kazi na moduli na kupata kuratibu za sasa

AT-logi ya kazi na moduli

>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

Kwa hivyo, tulipokea kuratibu za sasa za moduli: 60.0330963, 30.2484304.
Kadiri idadi ya data inayotumwa kupitia minara ya seli inavyoongezeka, usahihi wa uamuzi wa eneo utaongezeka sawia.

Maelezo zaidi kuhusu maudhui ya jibu kutoka kwa huduma ya Yandex.Locator na uteuzi wa data unayohitaji inaweza kusomwa kwenye kiungo: yandex.ru/dev/locator/doc/dg/api/xml-reply-docpage, katika API->XML->sehemu ya Majibu

Hitimisho

Natumaini nyenzo hii itakuwa msaada mzuri kwa watengenezaji. Niko tayari kujibu maswali yako kwenye maoni.

Chanzo: mapenzi.com

Kuongeza maoni