SIM800x මොඩියුලවල GSM ස්ථාන සේවාව සහ Yandex.Locator API සමඟ එහි වැඩ

SIM800x මොඩියුලවල GSM ස්ථාන සේවාව සහ Yandex.Locator API සමඟ එහි වැඩ

Google, අවාසනාවන්ත ලෙස GSM මොඩියුල භාවිතා කරන බොහෝ පරිශීලකයින් සඳහා, මාස 2-3 කට පෙර මොඩියුලයට පෙනෙන සෛල කුළුණු වල ඛණ්ඩාංක මත පදනම්ව ස්ථානය තීරණය කිරීම සඳහා API අවහිර කර ගෙවන පදනමකට මාරු කරන ලදී. මේ නිසා, SIM800 ශ්‍රේණියේ මොඩියුල නිෂ්පාදනය කරන ලදී SIMCom රැහැන් රහිත විසඳුම්, AT+CIPGSMLOC විධානයේ ක්‍රියාකාරීත්වය ක්‍රියා කිරීම නතර විය. Yandex විසින් සපයනු ලබන සමාන සේවාවක් භාවිතා කිරීමෙන් ඔබට මෙම ගැටළුව විසඳා ගත හැකි ආකාරය මෙම ලිපියෙන් මම ඔබට කියමි - Yandex.Locator.

Yandex ජංගම දුරකථන කුළුණු ඛණ්ඩාංක ලබා ගන්නේ කෙසේද යන්න මඟ හරින්න, ප්රධාන දෙය නම් අපට මෙම නොමිලේ සේවාව භාවිතා කර පහත දත්ත ලබා ගත හැකිය: අක්ෂාංශ, දේශාංශ, උන්නතාංශය මෙන්ම එක් එක් පරාමිතිය සඳහා ආසන්න දෝෂය. ලිපියේ ප්‍රධාන අරමුණ වන්නේ Google වෙතින් තවදුරටත් ලබා ගත නොහැකි සේවාව වෙනුවට Yandex API වෙත ඉක්මනින් මාරු වීම පිළිබඳ කෙටි නිබන්ධනයක් ලබා දීමයි.

පහත, උදාහරණයක් ලෙස, අපි මොඩියුලයේ පිහිටීමෙහි අක්ෂාංශ සහ දේශාංශ පමණක් පෙන්වමු.

එහෙනම් අපි පටන් ගනිමු

පළමුව ඔබ පහත සඳහන් පරිශීලක ගිවිසුම කියවිය යුතුය: yandex.ru/legal/locator_api. 3.6 වගන්තියට විශේෂ අවධානය යොමු කළ යුතුය. බව සඳහන් කරන මෙම පරිශීලක ගිවිසුම පූර්ව දැනුම්දීමකින් තොරව ඕනෑම වේලාවක Yandex.Locator API වෙනස් කිරීමට/නිවැරදි කිරීමට හෝ යාවත්කාලීන කිරීමට Yandex හට අයිතිය ඇත..

ලිපිනය වෙත යන්න yandex.ru/dev/locator/keys/get සහ ඔබ කලින් නිර්මාණය කළ Yandex ගිණුම සංවර්ධන කණ්ඩායමට එක් කරන්න. මෙම පියවර ඔබට මෙම සේවාව වෙත ප්‍රවේශ වීමට යතුරක් ලබා ගැනීමට ඉඩ සලසයි.

SIM800x මොඩියුලවල GSM ස්ථාන සේවාව සහ Yandex.Locator API සමඟ එහි වැඩ
ඔබට ලැබෙන යතුර ලියන්න හෝ වෙනත් ආකාරයකින් ගබඩා කරන්න.

මෙම පියවරයන් සම්පූර්ණ කිරීමෙන් පසු, ඔබට පිටුවට ප්රවේශය ලැබෙනු ඇත yandex.ru/dev/locator/doc/dg/api/geolocation-api-docpage Yandex.Locator සේවාව ක්රියාත්මක කිරීමේ යාන්ත්රණය පිළිබඳ මූලික තොරතුරු සපයනු ලැබේ.

Yandex.Locator සේවා වෙත cURL ආකෘතියෙන් XML ඉල්ලීමක් උත්පාදනය කිරීමට, ඔබට මොඩියුලය මගින් "දෘශ්‍ය" සෛල කුළුණු පිළිබඳ තොරතුරු ලබා ගැනීමට අවශ්‍ය වනු ඇත:

  • රටේ කේතය - රටේ කේතය
  • operatorid - ජංගම ජාල කේතය
  • cellid - සෛල හඳුනාගැනීම
  • lac - ස්ථාන කේතය

'AT+CNETSCAN' විධානය යැවීමෙන් මෙම තොරතුරු මොඩියුලයෙන් ලබාගත හැක.

මොඩියුලයෙන් ලැබුණු තොරතුරු

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>

පසුව ඔබට මොඩියුලයේ Cellid සහ Lac ප්‍රතිචාරයේ දත්ත ෂඩාස්‍ර දශමයේ සිට දශමයට පරිවර්තනය කිරීමට අවශ්‍ය වනු ඇති බව සැලකිල්ලට ගැනීම වැදගත්ය.

දැන් අපි Yandex සේවාදායකය හා සම්බන්ධ වීමට XML දත්ත උත්පාදනය කළ යුතු අතර, එය පසුව එක් මූලද්රව්යයකට ඒකාබද්ධ වේ.

දත්ත වගුව

දත්ත
අදහස්

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

...
Yandex වෙතින් ලැබුණු ඉලක්කම් 88 ක යතුර මෙහි අඩංගු විය යුතුය

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

රටේ කේතය (MCC)

</countrycode><operatorid>
2

ක්‍රියාකරු කේතය (MNC)

</operatorid><cellid>
8453

මොඩියුලයෙන් ලැබුණු ලැයිස්තුවෙන් පළමු කුළුණේ සෛලය සහ 16 පාදයේ අංකයකින් 10 පාදය සහිත අංකයකට පරිවර්තනය කරන ලදී (මොඩියුලයෙන් ලැබුණු අගය 2105)

</cellid><lac>
7838

පළමු කුළුණේ ලක්ෂය, 16 පාදයේ සිට 10 පාදයේ අංකයට ද පරිවර්තනය කර ඇත (මොඩියුලයෙන් ලැබෙන අගය 1E9E වේ)

</lac></cell>
...

නිශ්චිත ස්ථානයක විශ්වසනීයත්වය වැඩි කිරීම සඳහා සෛල ටැගය මගින් එක්සත් කරන ලද කණ්ඩායමක් අවශ්‍ය තරම් වාර ගණනක් නැවත නැවතත් කළ හැක.

</gsm_cells>
<ip><address_v4>
10.137.92.60

GPRS සන්දර්භය විවෘත කිරීමෙන් පසු ජාලය විසින් මොඩියුලයට පවරා ඇති IP ලිපිනය 'AT+SAPBR=2,1' විධානය මොඩියුලයට යැවීමෙන් ලබා ගත හැක - පහත බලන්න

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

මෙය පහත පරිදි අක්ෂර 1304කින් යුත් XML පණිවිඩයක් ජනනය කරයි:

ඔබේ පණිවුඩය

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>

මෙම පණිවිඩය ජනනය කර ඇත්තේ මෙගාෆොන් ක්‍රියාකරුගේ සෛල කුළුණු වල දත්ත මත පදනම්ව, එය ඇතුළුව දත්ත සමඟ අතිරේක කළ හැකිය: නිකුත් කරන ලද ඛණ්ඩාංකවල විශ්වසනීයත්වය වැඩි කිරීම සඳහා 'AT+CNETSCAN' විධානය භාවිතයෙන් ලැබුණු මොඩියුලයට පෙනෙන අනෙකුත් කුළුණු මත.

මොඩියුලය සමඟ වැඩ කිරීම සහ වත්මන් ඛණ්ඩාංක ලබා ගැනීම

මොඩියුලය සමඟ වැඩ කිරීමේ AT-ලොග්

>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

මේ අනුව, අපට මොඩියුලයේ වත්මන් ඛණ්ඩාංක ලැබුණි: 60.0330963, 30.2484304.
සෛල කුළුණු හරහා යවන දත්ත ප්‍රමාණය වැඩි වන විට, ස්ථාන නිර්ණය කිරීමේ නිරවද්‍යතාවය සමානුපාතිකව වැඩි වේ.

Yandex.Locator සේවාවෙන් ලැබෙන ප්‍රතිචාරයේ අන්තර්ගතය සහ ඔබට අවශ්‍ය දත්ත තෝරා ගැනීම පිළිබඳ වඩාත් සවිස්තරාත්මක තොරතුරු සබැඳියෙන් කියවිය හැකිය: yandex.ru/dev/locator/doc/dg/api/xml-reply-docpage, API->XML->ප්‍රතිචාර කොටසේ

නිගමනය

මෙම ද්රව්ය සංවර්ධකයින්ට හොඳ උපකාරයක් වනු ඇතැයි මම බලාපොරොත්තු වෙමි. අදහස් දැක්වීමේදී ඔබේ ප්‍රශ්නවලට පිළිතුරු දීමට මම සූදානම්.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න