재료

  • Linkit ONE 1개
  • GPS 안테나 1개
  • 3.7V 리튬 배터리 1개
  • SIM 카드 1개
  • GSM 안테나 1개

                 

근래에 사건, 사고들이 많아지면서 엄마들은 항상 불안합니다. 

이런 아이들에게 휴대폰을 구매해 줄 수 있겠지만, 

아이의 위치를 추적해 줄 수 있는 위치 추적기 를 이용한다면 어떨 까요? 


간단한 방법으로 아이의 위치를 핸드폰으로 수신해 위치를 추적해 볼 수 있는 프로젝트를 

insturctables 에서 접해 소개하고자 합니다. 


Step 1. 준비물 


                


- Linkit ONE 

- 3.7 V 리튬 배터리 

- GSM 안테나 

- GPS 안테나 

- SIM 카드 


Step 2. 메이킹 


 안테나 연결하기 


                   


GSM, GPS 안테나를 Linkit ONE 소켓에 연결합니다. 

Linkit ONE 패키지 안을 보면, 노란색의 사각형 모양의 안테나인 GPS가 있고, 

검은색 사각형 모양의 안테나인 GSM/GPRS 안테나가 있습니다. 

* GSM/GPRS 의 경우 패키지의 다른 검은색 부품에 비해 사이즈가 상대적으로 크므로 

쉽게 이 안테나를 구별할 수 있습니다. 


보드의 뒷 편에 안테나 소켓을 확인하고, 

보드에 라벨이 써져 있는 각각의 소켓에 안테나를 연결합니다. 


② 배터리 연결과 SIM 카드 넣기 




이제 배터리와 SIM 카드를 연결합니다. 

먼저 배터리를 보드의 좌측 하단부에 있는 하얀색 색깔의 소켓과 연결합니다. 

BAT 위치에 큰 스위치를 연결하면 보드에 LED 빛이 들어오는 것을 확인할 수 있습니다. 


다음으로 SIM 카드를 보드 하단부에 있는 SD/SIM 콤보 소켓에 넣습니다. 

* SIM 카드의 핀이 잠겨져 있으면 작동하지 않으므로 잠겨져 있지 않은 것을 확인합니다. 


 연결하기 


                         


이제 이 프로젝트의 연결 부분만 남겨 두었습니다. 

마지막 단계는 모든 것들을 테이프를 이용해서 연결하는 것 입니다. 


한 곳에 사용했던 모든 부품을 놓습니다. 

그리고 배터리와 안테나를 가능한 한 작은 사이즈 순서로 배열해 놓습니다. 


테이프를 이용해서 배열해 놓은 것들을 모두 연결합니다. 

보드의 아래 부분에 있는 불필요한 연결 들을 제외 시키기 위해 테이프를 위의 사진과 같이 붙입니다. 


④ 케이스에 넣기 


                             


이 디바이스를 웨어러블 하게 만드는 방법을 결정해야 합니다. 

이 자체로 아이의 주머니에 넣는다면, 연결한 것들이 모두 해체될 위험이 있습니다. 

따라서 이것을 하나의 케이스에 담아야 합니다. 


이 프로젝트의 경우 카메라 파우치를 이용해 주었습니다. 

이것은 부드러운 소재이기 때문에 아이에게 불편함을 주지 않을 것 입니다. 

이외에도 쉽게 아이들이 소지할 수 있는 것을 이용하면 됩니다. 


다른 새로운 아이디어가 있다면 이 디바이스를 좀 더 웨어러블 하게 만들어 볼 수 있습니다. 


 코드 업로드 하기 


                              


Linkit ONE 에 코드를 업로드 합니다. 

처음 Linkit ONE 을 사용하는 경우라면, 다음을 통해 기초 가이드 라인을 잡을 수 있습니다. 


▶ 업로드 이전에 스위치 1,2,3 이 UART, USB, SPI 에 제대로 연결되어 있는지 확인합니다. 


1
2
#include <LGPS.h>
#include <LGSM.h>
cs


▶ GPS 기능과 GSM 기능을 모두 사용하기 위해 < LGPS.h > 와 < LGSM.h > 라는 

라이브러리를 참조합니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void setup() {
Serial.begin(9600);
while(!LSMS.ready())
delay(1000);
Serial.println("SIM ready for work!");
LSMS.beginSMS("0123456789"); // replace the no. to the receiver's no.
LGPS.powerOn();
Serial.println("GPS ready for work!");
}
void loop() {
LGPS.getData(&info);
if(LSMS.available())
{
printGPGGA((char*)info.GPGGA);
delay(5000);
}
}
 
cs


▶ 코드에서 setup ( ) 에 있는 "LSMS.beginSMS("0123456789");"  부분을 

자신이 연락 받을 핸드폰 번호로 바꾸어 줍니다. 


▶ 다음은 전체 코드 입니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <LGPS.h>
#include <LGSM.h>
gpsSentenceInfoStruct info;
const char *nextToken(const char* src, char* buf)
{
int i = 0;
while(src[i] != 0 && src[i] != ',')
i++;
if(buf)
{
strncpy(buf, src, i);
buf[i] = 0;
}
if(src[i])
i++;
return src+i;
}
void printGPGGA(const char* str)
{
char latitude[20];
char longitude[20];
char buf[20];
const char* p = str;
p = nextToken(p, 0); // GGA
p = nextToken(p, 0); // Time
p = nextToken(p, latitude); // Latitude
p = nextToken(p, 0); // N
p = nextToken(p, longitude); // Longitude
p = nextToken(p, 0); // E
p = nextToken(p, buf); // fix quality
if(buf[0] == '1')
{
// GPS fix
p = nextToken(p, buf); // number of satellites
Serial.print("GPS is fixed:");
Serial.print(atoi(buf));
Serial.println(" satellite(s) found!");
Serial.print("Latitude:");
Serial.println(latitude);
Serial.print("Longitude:");
Serial.println(longitude);
LSMS.write("GPS is fixed:");
LSMS.write("Latitude:");
LSMS.write(latitude);
LSMS.write("Longitude:");
LSMS.write(longitude);
LSMS.endSMS();
}
else
{
Serial.println("GPS is not fixed yet.");
}
}
void setup() {
Serial.begin(9600);
while(!LSMS.ready())
delay(1000);
Serial.println("SIM ready for work!");
LSMS.beginSMS("0123456789"); // replace the no. to the receiver's no.
LGPS.powerOn();
Serial.println("GPS ready for work!");
}
void loop() {
LGPS.getData(&info);
if(LSMS.available())
{
printGPGGA((char*)info.GPGGA);
delay(5000);
}
}
 
cs


Step 3. 수행 결과 


                  


이제 완성되었습니다. 

스위치를 켜고, 아이가 항상 이것을 지닐 수 있게 해주세요. 

이제 아이가 위치한 곳을 GPS 를 통해 SMS 로 수신된 위도, 적도 그리고 세부 사항을 

구글 맵에 입력해 넣으면 아이의 위치를 알아낼 수 있습니다. 










 

댓글 0

MADE BY