SIM800x modullarının GSM Yerləşdirmə xidməti və onun Yandex.Locator API ilə işləməsi

SIM800x modullarının GSM Yerləşdirmə xidməti və onun Yandex.Locator API ilə işləməsi

Google, təəssüf ki, bir çox GSM modul istifadəçiləri üçün 2-3 ay əvvəl modul tərəfindən görünən mobil qüllələrin koordinatları ilə yeri müəyyən etmək üçün API-ni blokladı və ödənişli əsaslara köçürdü. Buna görə də, SIM800 seriyasının modullarında istehsal olunur SIMCom Simsiz Həllər, AT+CIPGSMLOC əmrinin funksionallığı fəaliyyətini dayandırdı. Bu yazıda sizə Yandex tərəfindən təqdim olunan oxşar xidmətdən istifadə edərək bu problemi necə həll edə biləcəyinizi söyləyəcəyəm - Yandex.Locator.

Yandex-in hüceyrə qüllələrinin koordinatlarını necə əldə etdiyini atlayaq, əsas odur ki, biz bu pulsuz xidmətdən istifadə edə bilərik və aşağıdakı məlumatları əldə edə bilərik: Enlem, Boylam, Hündürlük, həmçinin hər bir parametr üçün təxmini səhv. Məqalənin əsas məqsədi Google-dan artıq mövcud olmayan xidmət əvəzinə Yandex-dən API-yə necə tez keçmək barədə kiçik bir təlimat verməkdir.

Aşağıda, nümunə olaraq, yalnız modulun yerləşdiyi yerin eni və uzunluğu əldə ediləcəkdir.

Beləliklə, başlayaq

Əvvəlcə aşağıdakı ünvanda yerləşən istifadəçi müqaviləsini oxumalısınız: yandex.ru/legal/locator_api. 3.6-cı bəndə xüsusi diqqət yetirilməlidir. bu istifadəçi müqaviləsinin, hansı ki, bildirir Yandex istənilən vaxt əvvəlcədən xəbərdarlıq etmədən Yandex.Locator API-ni dəyişmək/düzəltmək və ya yeniləmək hüququnu özündə saxlayır..

Ünvana gedin yandex.ru/dev/locator/keys/get və əvvəllər yaradılmış Yandex hesabınızı developer qrupuna əlavə edin. Bu addımlar sizə bu xidmətə daxil olmaq üçün açar əldə etməyə imkan verəcək.

SIM800x modullarının GSM Yerləşdirmə xidməti və onun Yandex.Locator API ilə işləməsi
Qəbul edilmiş açarı yazın və ya başqa şəkildə yadda saxlayın.

Bu addımları tamamladıqdan sonra səhifəyə giriş əldə olunacaq. yandex.ru/dev/locator/doc/dg/api/geolocation-api-docpage Yandex.Locator xidmətinin mexanizmi haqqında əsas məlumatları təqdim edir.

Yandex.Locator xidmətlərinə cURL formatında XML sorğusu yaratmaq üçün modul tərəfindən “görünən” mobil qüllələr haqqında məlumat əldə etməlisiniz:

  • ölkə kodu - ölkə kodu
  • operatorid - mobil şəbəkə kodu
  • cellid - hüceyrə identifikatoru
  • lac - yer kodu

Bu məlumatı moduldan 'AT+CNETSCAN' əmrini göndərməklə əldə etmək olar.

Moduldan alınan məlumatlar

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>

Qeyd etmək vacibdir ki, gələcəkdə modulun Cellid və Lac haqqında cavabından verilənləri onaltılıq rəqəmdən onluq formata çevirmək lazım gələcək.

İndi Yandex serverinə daxil olmaq üçün XML məlumatları yaratmalıyıq ki, bu da daha sonra bir elementdə birləşdiriləcəkdir.

məlumat cədvəli

Məlumat
Qeyd

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

...
Bu Yandex-dən alınan 88 rəqəmli açarı ehtiva etməlidir

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

Ölkə Kodu (MCC)

</countrycode><operatorid>
2

Operator Kodu (MNC)

</operatorid><cellid>
8453

Siyahıdakı birinci qüllənin hüceyrəsi moduldan alınmış və bazası 16 olan nömrədən 10 əsaslı rəqəmə çevrilmişdir (moduldan alınan dəyər 2105-dir)

</cellid><lac>
7838

Birinci qüllənin lakı, həmçinin 16 əsaslı nömrədən 10 əsaslı nömrəyə çevrildi (moduldan alınan dəyər 1E9E-dir)

</lac></cell>
...

Hüceyrə etiketi ilə birləşdirilən qrup, müəyyən bir yerin etibarlılığını artırmaq üçün lazım olan qədər təkrarlana bilər.

</gsm_cells>
<ip><address_v4>
10.137.92.60

GPRS kontekstini açdıqdan sonra şəbəkə tərəfindən modula təyin edilmiş IP ünvanı modula 'AT+SAPBR=2,1' əmrini göndərməklə əldə edilə bilər – aşağıya baxın

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

Beləliklə, aşağıdakı formada 1304 simvol uzunluğunda XML mesajı yaradılacaq:

İsmarıc

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>

Bu mesaj Megafon operatorunun mobil qüllələrinin məlumat bazasında yaradılıb, o, daxil olmaqla məlumatlarla əlavə edilə bilər. çıxış koordinatlarının etibarlılığını artırmaq üçün 'AT + CNETSCAN' əmri ilə qəbul edilən modula görünən digər qüllələrdə.

Modulla işləmək və cari koordinatları əldə etmək

Modulla işin AT-loqu

>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

Beləliklə, modulun cari koordinatlarını əldə etdik: 60.0330963, 30.2484304.
Hüceyrə qüllələri tərəfindən göndərilən məlumatların sayının artması ilə yerləşdirmənin dəqiqliyi mütənasib olaraq artacaq.

Yandex.Locator xidmətindən verilən cavabın məzmunu və sizə lazım olan məlumatların seçilməsi haqqında daha ətraflı məlumatı linkdə tapa bilərsiniz: yandex.ru/dev/locator/doc/dg/api/xml-reply-docpage, API-> XML-> Cavab altında

Nəticə

Ümid edirəm ki, bu material tərtibatçılara yaxşı kömək olacaq. Şərhlərdə suallarınıza cavab verməyə hazırsınız.

Mənbə: www.habr.com

Добавить комментарий