Layanan Lokasi GSM modul SIM800x lan karyane karo Yandex.Locator API

Layanan Lokasi GSM modul SIM800x lan karyane karo Yandex.Locator API

Google, sayangé kanggo akeh pangguna modul GSM, 2-3 sasi kepungkur diblokir lan ditransfer menyang basis mbayar API kanggo nemtokake lokasi adhedhasar koordinat menara sel katon modul. Amarga iki, ing SIM800 seri modul diprodhuksi Solusi Nirkabel SIMCom, fungsi printah AT+CIPGSMLOC mandheg. Ing artikel iki, aku bakal menehi pitutur marang kowe carane sampeyan bisa ngatasi masalah iki kanthi nggunakake layanan sing padha sing diwenehake dening Yandex - Yandex.Locator.

Ayo skip carane Yandex nampa koordinat menara sel, sing utama yaiku kita bisa nggunakake layanan gratis iki lan entuk data ing ngisor iki: Latitude, Longitude, Altitude, uga kesalahan perkiraan kanggo saben parameter. Tujuan utama artikel kasebut yaiku kanggo menehi tutorial singkat babagan cepet ngalih menyang API Yandex, tinimbang layanan sing ora kasedhiya saka Google.

Ing ngisor iki, minangka conto, kita bakal nuduhake mung garis lintang lan bujur lokasi modul.

Dadi ayo miwiti

Pisanan sampeyan kudu maca persetujuan pangguna sing ana ing: yandex.ru/legal/locator_api. Perhatian khusus kudu dibayar kanggo klausa 3.6. persetujuan pangguna iki, sing nyatakake Yandex nduweni hak kanggo ngganti / mbenerake utawa nganyari API Yandex.Locator sawayah-wayah, tanpa kabar sadurunge..

Pindhah menyang alamat yandex.ru/dev/locator/keys/get lan tambahake akun Yandex sing wis digawe sadurunge menyang grup pangembangan. Langkah-langkah iki bakal ngidini sampeyan entuk kunci kanggo ngakses layanan iki.

Layanan Lokasi GSM modul SIM800x lan karyane karo Yandex.Locator API
Tulis utawa simpen kunci sing ditampa.

Sawise ngrampungake langkah-langkah kasebut, sampeyan bakal entuk akses menyang kaca kasebut yandex.ru/dev/locator/doc/dg/api/geolocation-api-docpage ing ngendi informasi dhasar babagan mekanisme operasi layanan Yandex.Locator diwenehake.

Kanggo ngasilake panjalukan XML ing format cURL menyang layanan Yandex.Locator, sampeyan kudu entuk informasi babagan menara sel "katon" dening modul:

  • kode negara – kode negara
  • operatorid – kode jaringan seluler
  • cellid - pengenal sel
  • lac – kode lokasi

Informasi iki bisa dipikolehi saka modul kanthi ngirim printah 'AT + CNETSCAN'.

Informasi sing ditampa saka 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>

Wigati dimangerteni manawa mengko sampeyan kudu ngowahi data saka respon Cellid lan Lac modul saka heksadesimal dadi desimal.

Saiki kita kudu ngasilake data XML kanggo ngubungi server Yandex, sing bakal digabung dadi siji unsur.

tabel data

data
komentar

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

...
Iki kudu ngemot kunci 88 digit sing ditampa saka Yandex

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

Kode negara (MCC)

</countrycode><operatorid>
2

Kode Operator (MNC)

</operatorid><cellid>
8453

Cellid menara pisanan saka dhaptar sing ditampa saka modul lan diowahi saka nomer kanthi basis 16 dadi nomer kanthi basis 10 (nilai sing ditampa saka modul yaiku 2105)

</cellid><lac>
7838

Lac saka menara pisanan, uga diowahi saka basis 16 nomer kanggo basis 10 nomer (nilai ditampa saka modul punika 1E9E)

</lac></cell>
...

Klompok sing digabung karo tag sel bisa diulang kaping pirang-pirang kanggo nambah linuwih lokasi tartamtu

</gsm_cells>
<ip><address_v4>
10.137.92.60

Alamat IP sing diwenehake menyang modul dening jaringan sawise mbukak konteks GPRS bisa dipikolehi kanthi ngirim printah 'AT+SAPBR=2,1' menyang modul - deleng ing ngisor iki

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

Iki bakal ngasilake pesen XML 1304 karakter kaya ing ngisor iki:

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 iki digawe adhedhasar data ing menara sel operator Megafon, bisa ditambah karo data, kalebu: kanggo menara modul-katon liyane ditampa nggunakake printah 'AT + CNETSCAN' kanggo nambah linuwih koordinat ditanggepi.

Nggarap modul lan entuk koordinat saiki

AT-log karya karo 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

Mangkono, kita nampa koordinat modul saiki: 60.0330963, 30.2484304.
Nalika jumlah data sing dikirim liwat menara sel mundhak, akurasi penentuan lokasi bakal saya tambah kanthi proporsional.

Informasi sing luwih rinci babagan isi respon saka layanan Yandex.Locator lan pilihan data sing dibutuhake bisa diwaca ing link: yandex.ru/dev/locator/doc/dg/api/xml-reply-docpage, ing bagean API-> XML-> Response

kesimpulan

Mugi materi iki bakal bantuan apik kanggo pangembang. Aku siap mangsuli pitakon sampeyan ing komentar.

Source: www.habr.com

Add a comment