Layanan Lokasi GSM tina modul SIM800x sareng karyana sareng Yandex.Locator API

Layanan Lokasi GSM tina modul SIM800x sareng karyana sareng Yandex.Locator API

Google, hanjakalna keur loba pamaké modul GSM, 2-3 sababaraha bulan kapengker diblokir sarta ditransfer ka dasar dibayar API pikeun nangtukeun lokasi dumasar kana koordinat munara sél katempo modul. Kusabab ieu, on SIM800 modul runtuyan dihasilkeun Leyuran Wireless SIMCom, pungsionalitas paréntah AT + CIPGSMLOC eureun gawé. Dina tulisan ieu kuring bakal nyarioskeun ka anjeun kumaha anjeun tiasa ngabéréskeun masalah ieu nganggo jasa anu sami anu disayogikeun ku Yandex - Yandex.Locator.

Hayu urang skip kumaha Yandex narima koordinat tina munara sél, hal utama nyaéta yén urang bisa ngagunakeun layanan bébas ieu tur meunangkeun data handap: Lintang, Bujur, Altitude, kitu ogé kasalahan perkiraan pikeun tiap parameter. Tujuan utama tulisan nyaéta pikeun masihan tutorial pondok ngeunaan gancang ngalih kana API Yandex, tinimbang jasa anu henteu aya deui ti Google.

Di handap, sabagé conto, urang ngan ukur nunjukkeun lintang sareng bujur lokasi modul.

Ku kituna hayu urang ngamimitian

Mimiti anjeun kedah maca perjanjian pangguna anu aya di: yandex.ru/legal/locator_api. perhatian husus kudu dibayar ka klausa 3.6. perjangjian pamaké ieu, nu nyatakeun yén Yandex ngagaduhan hak pikeun ngarobih/ngalereskeun atanapi ngapdet Yandex.Locator API iraha waé, tanpa aya bewara sateuacanna..

Pindah ka alamat yandex.ru/dev/locator/keys/get sareng tambahkeun akun Yandex anjeun sateuacana ka grup pamekaran. Léngkah ieu bakal ngamungkinkeun anjeun kéngingkeun konci pikeun ngaksés jasa ieu.

Layanan Lokasi GSM tina modul SIM800x sareng karyana sareng Yandex.Locator API
Tulis handap atawa lamun heunteu nyimpen konci anjeun nampi.

Saatos ngalengkepan léngkah-léngkah ieu, anjeun bakal ngagaduhan aksés kana halaman éta yandex.ru/dev/locator/doc/dg/api/geolocation-api-docpage dimana inpormasi dasar ngeunaan mékanisme operasi jasa Yandex.Locator disayogikeun.

Pikeun ngahasilkeun pamundut XML dina format cURL kana jasa Yandex.Locator, anjeun kedah kéngingkeun inpormasi ngeunaan menara sél "katingali" ku modul:

  • kode nagara - kode nagara
  • operatorid - kode jaringan mobile
  • cellid - identifier sél
  • lac - kode lokasi

Inpo ieu tiasa didapet tina modul ku ngirim paréntah 'AT + CNETSCAN'.

Inpormasi anu ditampi tina modul

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>

Kadé dicatet yén engké anjeun bakal kudu ngarobah data ti Cellid na Lac respon modul urang ti hexadecimal mun decimal.

Ayeuna urang kedah ngahasilkeun data XML pikeun ngahubungi server Yandex, anu salajengna bakal digabungkeun kana hiji unsur.

tabél data

data
komentar

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

...
Ieu kedah ngandung konci 88-angka anu ditampi ti Yandex

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

Kode nagara (MCC)

</countrycode><operatorid>
2

Kode operator (MNC)

</operatorid><cellid>
8453

Cellid munara munggaran tina daptar anu ditampi tina modul sareng dirobih tina nomer anu nganggo dasar 16 ka angka anu nganggo dasar 10 (nilai anu ditampi tina modul nyaéta 2105)

</cellid><lac>
7838

Lac tina munara kahiji, ogé dirobah tina basa 16 angka ka base 10 angka (nilai nu narima ti modul nu 1E9E)

</lac></cell>
...

Grup anu dihijikeun ku tag sél tiasa diulang saloba-kali upami diperyogikeun pikeun ningkatkeun réliabilitas lokasi anu khusus.

</gsm_cells>
<ip><address_v4>
10.137.92.60

Alamat IP anu ditugaskeun ka modul ku jaringan saatos muka kontéks GPRS tiasa didapet ku ngirim paréntah 'AT + SAPBR = 2,1' ka modul - tingali di handap

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

Ieu bakal ngahasilkeun pesen XML 1304 karakter salami ieu:

pesen

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>

Pesen ieu dibangkitkeun dumasar kana data dina menara sél operator Megafon, éta tiasa ditambah ku data, kalebet: on munara séjén ditingali ka modul narima maké paréntah 'AT + CNETSCAN' pikeun ngaronjatkeun reliabiliti koordinat dikaluarkeun.

Gawe sareng modul sareng kéngingkeun koordinat ayeuna

AT-log gawé kalawan modul

>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

Ku kituna, urang nampi koordinat ayeuna modul: 60.0330963, 30.2484304.
Nalika jumlah data anu dikirim via menara sél naék, akurasi tekad lokasi bakal ningkat sacara proporsional.

Inpormasi anu langkung rinci ngeunaan eusi réspon tina jasa Yandex.Locator sareng pilihan data anu anjeun peryogikeun tiasa dibaca dina tautan: yandex.ru/dev/locator/doc/dg/api/xml-reply-docpage, dina API-> XML-> bagian Tanggapan

kacindekan

Abdi ngarepkeun bahan ieu bakal janten pitulung anu hadé pikeun pamekar. Abdi siap ngajawab patarosan anjeun dina komentar.

sumber: www.habr.com

Tambahkeun komentar