์ํ๊น๊ฒ๋ Google์ ๋ง์ GSM ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋ชจ๋์ ํ์๋๋ ์
ํ์์ ์ขํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์น๋ฅผ ๊ฒฐ์ ํ๋ API๋ฅผ 2~3๊ฐ์ ์ ์ ์ฐจ๋จํ๊ณ ์ ๋ฃ ๊ธฐ๋ฐ์ผ๋ก ์ด์ ํ์ต๋๋ค. ์ด๋ก ์ธํด SIM800 ์๋ฆฌ์ฆ ๋ชจ๋์์ ์์ฐ
Yandex๊ฐ ์
ํ์์ ์ขํ๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ ๊ฑด๋๋ฐ๊ฒ ์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ์ ์ ์ด ๋ฌด๋ฃ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋, ๊ฒฝ๋, ๊ณ ๋ ๋ฐ ๊ฐ ๋งค๊ฐ๋ณ์์ ๋ํ ๋๋ต์ ์ธ ์ค๋ฅ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ด ๊ธฐ์ฌ์ ์ฃผ์ ๋ชฉ์ ์ Google์์ ๋ ์ด์ ์ฌ์ฉํ ์ ์๋ ์๋น์ค ๋์ Yandex API๋ก ๋น ๋ฅด๊ฒ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ๋จํ ํํ ๋ฆฌ์ผ์ ์ ๊ณตํ๋ ๊ฒ์
๋๋ค.
์๋์์๋ ์๋ฅผ ๋ค์ด ๋ชจ๋ ์์น์ ์๋์ ๊ฒฝ๋๋ง ํ์ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ผ ์์ํด ๋ณผ๊น์
๋จผ์ ๋ค์ ์์น์ ์๋ ์ฌ์ฉ์ ๊ณ์ฝ์ ์ฝ์ด์ผ ํฉ๋๋ค.
์ฃผ์๋ก ์ด๋
๋ฐ์ ํค๋ฅผ ๊ธฐ๋กํ๊ฑฐ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ๋ณด๊ดํ์ญ์์ค.
์ด ๋จ๊ณ๋ฅผ ์๋ฃํ๋ฉด ํ์ด์ง์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
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 ์๋ต ๋ฐ์ดํฐ๋ฅผ XNUMX์ง์์์ XNUMX์ง์๋ก ๋ณํํด์ผ ํ๋ค๋ ์ ์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ด์ 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
๋ชจ๋์์ ๋ฐ์ ๋ชฉ๋ก ์ค ์ฒซ ๋ฒ์งธ ํ์์ ์ ID๋ 16์ง๋ฒ์ ์ซ์์์ 10์ง๋ฒ์ ์ซ์๋ก ๋ณํ๋์์ต๋๋ค(๋ชจ๋์์ ๋ฐ์ ๊ฐ์ 2105์ ๋๋ค).
</cellid><lac>
7838
์ฒซ ๋ฒ์งธ ํ์์ Lac๋ 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>
์ด ๋ฉ์์ง๋ Megafon ์ด์์์ ๊ธฐ์ง๊ตญ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋๋ฉฐ ๋ค์์ ํฌํจํ ๋ฐ์ดํฐ๋ก ๋ณด์๋ ์ ์์ต๋๋ค. ๋ฐํ๋ ์ขํ์ ์ ๋ขฐ์ฑ์ ๋์ด๊ธฐ ์ํด '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 ์๋น์ค์ ์๋ต ๋ด์ฉ๊ณผ ํ์ํ ๋ฐ์ดํฐ ์ ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์ ๋งํฌ์์ ์ฝ์ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
์ด ์๋ฃ๊ฐ ๊ฐ๋ฐ์๋ค์๊ฒ ์ข์ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋๊ธ์ ํตํด ๊ทํ์ ์ง๋ฌธ์ ๋ต๋ณํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
์ถ์ฒ : habr.com