GSM Location Service vun SIM800x Moduler a seng Aarbecht mat der Yandex.Locator API

GSM Location Service vun SIM800x Moduler a seng Aarbecht mat der Yandex.Locator API

Google, leider fir vill Benotzer vun GSM Moduler, virun 2-3 Méint blockéiert an op eng bezuelten Basis transferéiert der API fir Bestëmmung Standuert baséiert op der Koordinaten vun Zell Tierm siichtbar fir de Modul. Well vun dëser, op SIM800 Serie Moduler produzéiert SIMCom Wireless Léisunge, d'Funktionalitéit vum AT+CIPGSMLOC Kommando huet opgehalen ze schaffen. An dësem Artikel wäert ech Iech soen wéi Dir dëse Problem léise kënnt andeems Dir en ähnlechen Service vun Yandex benotzt - Yandex.Locator.

Loosst eis iwwersprangen wéi Yandex d'Koordinaten vun Zelltuerm kritt, den Haapt Saach ass datt mir dëse gratis Service benotze kënnen an déi folgend Donnéeën kréien: Breedegrad, Längt, Héicht, souwéi de geschätzte Feeler fir all Parameter. Den Haaptziel vum Artikel ass e kuerzen Tutorial ze ginn fir séier op d'Yandex API ze wiesselen, amplaz vum net méi verfügbare Service vu Google.

Drënner, als Beispill, wäerte mir nëmmen d'Breet an Längt vun der Modul Plaz weisen.

Also loosst eis ufänken

Als éischt musst Dir de Benotzervertrag liesen deen op: yandex.ru/legal/locator_api. Besonnesch Opmierksamkeet sollt op d'Klausel 3.6 bezuelt ginn. dësem Benotzer Accord, déi seet, datt Yandex behält sech d'Recht d'Yandex.Locator API zu all Moment z'änneren/korrigéieren oder ze aktualiséieren, ouni Préavis..

Gitt op d'Adress yandex.ru/dev/locator/keys/get a füügt Äre virdrun erstallte Yandex Kont an d'Entwécklungsgrupp. Dës Schrëtt erlaben Iech e Schlëssel fir Zougang zu dësem Service ze kréien.

GSM Location Service vun SIM800x Moduler a seng Aarbecht mat der Yandex.Locator API
Schreift de Schlëssel deen Dir kritt oder soss späichert.

Nodeems Dir dës Schrëtt ofgeschloss hutt, hutt Dir Zougang zu der Säit yandex.ru/dev/locator/doc/dg/api/geolocation-api-docpage wou Basis Informatiounen iwwert de Mechanismus vun Operatioun vun der Yandex.Locator Service gëtt.

Fir eng XML-Ufro am cURL-Format op Yandex.Locator Servicer ze generéieren, musst Dir Informatioun iwwer Zelltuerm "siichtbar" vum Modul kréien:

  • countrycode - Land Code
  • operatorid - Handy Netzwierk Code
  • cellid - Zell Identifizéierer
  • lac - Standuert Code

Dës Informatioun kann aus dem Modul kritt ginn andeems Dir de Kommando 'AT + CNETSCAN' schéckt.

Informatioun kritt vum 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>

Et ass wichteg ze bemierken datt spéider musst Dir d'Donnéeën vum Modul Cellid a Lac Äntwert vun Hexadezimal op Dezimal konvertéieren.

Elo musse mir XML Daten generéieren fir de Yandex Server ze kontaktéieren, deen duerno an een Element kombinéiert gëtt.

daten Dësch

Donnéeën
Commentaire

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

...
Dëst sollt den 88-Zifferen Schlëssel enthalen, dee vum Yandex kritt gëtt

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

Land Code (MCC)

</countrycode><operatorid>
2

Operator Code (MNC)

</operatorid><cellid>
8453

Cellid vum éischten Tuerm aus der Lëscht kritt vum Modul an ëmgewandelt vun enger Nummer mat der Basis 16 op eng Nummer mat der Basis 10 (de Wäert kritt vum Modul ass 2105)

</cellid><lac>
7838

Lac vum éischten Tuerm, och ëmgewandelt vun enger Basis 16 Nummer op eng Basis 10 Nummer (de Wäert kritt vum Modul ass 1E9E)

</lac></cell>
...

Eng Grupp vereenegt vun der Zell Tag kann esou oft widderholl ginn wéi néideg fir d'Zouverlässegkeet vun enger spezifescher Plaz ze erhéijen

</gsm_cells>
<ip><address_v4>
10.137.92.60

D'IP Adress, déi dem Modul vum Netz zougewisen ass nodeems de GPRS Kontext opgemaach gouf, kann kritt ginn andeems Dir de Kommando 'AT+SAPBR=2,1' an de Modul schéckt - kuckt hei ënnendrënner

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

Dëst generéiert en XML Message 1304 Zeechen laang wéi follegt:

Сообщение

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>

Dëse Message gëtt op Basis vun Daten iwwer Zelltuerm vum Megafon Bedreiwer generéiert, et kann mat Daten ergänzt ginn, dorënner: op aner Tierm siichtbar fir de Modul kritt mat dem 'AT + CNETSCAN' Kommando fir d'Zouverlässegkeet vun den erausginn Koordinaten ze erhéijen.

Schafft mam Modul a kritt aktuell Koordinaten

AT-Logbuch vun der Aarbecht mam 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

Sou krute mir déi aktuell Koordinate vum Modul: 60.0330963, 30.2484304.
Wéi d'Zuel vun den Daten, déi iwwer Zelltuerm geschéckt ginn, eropgeet, wäert d'Genauegkeet vun der Standuertbestëmmung proportional eropgoen.

Méi detailléiert Informatiounen iwwer den Inhalt vun der Äntwert vum Yandex.Locator Service an d'Auswiel vun den Donnéeën déi Dir braucht, kënnt Dir um Link liesen: yandex.ru/dev/locator/doc/dg/api/xml-reply-docpage, an der API->XML->Äntwert Sektioun

Konklusioun

Ech hoffen, datt dëst Material eng gutt Hëllef fir Entwéckler gëtt. Ech si prett Är Froen an de Kommentaren ze beäntweren.

Source: will.com

Setzt e Commentaire