제조공정
| 점퍼 와이어 (일반) | 1세트 |
| 범용 NPN 트랜지스터 | 1개 (진동모터 회로용) |
| 세라믹 커패시터 0.1µF | 1개 (진동모터 회로용) |
| 저항 1k옴 | 1개 (진동모터 회로용) |
| 저항 221옴 | 1개 (RGB LED 회로용) |
| RGB 디퓨즈드 공통 캐소드 LED | 1개 |
| GPS 모듈 GY-NEO6MV2 | 1개 |
| 진동 모터 셀 | 1개 |
| UDOO 2AA 배터리 홀더 (RTC용) | 1개 |
| 아두이노 MKR Fox 1200 | 1개 |
부모는 자녀의 등하교 안전과 정시 도착, 정해진 경로 준수를 항상 걱정합니다. SmartWay는 이 걱정을 덜어줍니다. GPS로 자녀 위치를 실시간 모니터링해 설정된 경로를 벗어나면 즉시 부모에게 이메일 알림을 보내고, 등하교 도착/지각 시에도 알립니다. 부모는 안심하고 커피를 즐길 수 있습니다.

기기 착용 시점부터 귀가까지 지속적으로 위치 모니터링. RGB LED와 진동모터로 아이에게 경로 이탈/지각 경고, 도착 축하 알림 제공.

Sigfox 패킷은 12바이트로 제한되어 압축된 데이터 전송 필요. 기타 변수는 Sigfox 백엔드에서 설정.

아이 착용 기기에서 LED 색상과 진동으로 상태 알림: 등교/귀가(녹색), 지각(주황), 경로 이탈(적색+진동)



주요 코드 발췌 (functions.h)
// Warn System
void setOutputs() { pinMode(R,OUTPUT); pinMode(G,OUTPUT); pinMode(B,OUTPUT); pinMode(motorPin,OUTPUT); }
void vibrateMotor() { digitalWrite(motorPin,HIGH); delay(1000); digitalWrite(motorPin,LOW); }
void ledGreen() { analogWrite(R,0); analogWrite(G,255); analogWrite(B,0); }
void ledOrange() { analogWrite(R,255); analogWrite(G,45); analogWrite(B,0); }
void ledRed() { analogWrite(R,255); analogWrite(G,0); analogWrite(B,0); }
void resetLED() { analogWrite(R,0); analogWrite(G,0); analogWrite(B,0); }
// Get GPS
bool getGPS(int run) {
while(Serial1.available()>0) {
if(gps.encode(Serial1.read())) {
if(run==1) processData(); else if(run==2) synchRTC();
if(gps.location.isValid() && gps.time.isValid() && gps.date.isValid()) return true;
else return false;
}
}
if(millis()>10000 && gps.charsProcessed()<10) { while(1); } // GPS 오류 시 정지
}
// Synch RTC
void synchRTC() {
rtc.begin();
uint16_t year = String(gps.date.year()).substring(2).toInt(); // 2018→18
rtc.setTime(gps.time.hour(), gps.time.minute(), gps.time.second());
rtc.setDate(gps.date.day(), gps.date.month(), year);
}
// Process Location
bool processData() {
if(gps.location.isValid()) {
latitude = gps.location.lat(); longitude = gps.location.lng();
// 테스트용 고정 좌표 (실제 사용 시 주석 해제)
// latitude = 53.355504; longitude = -6.258452;
if(check.isOut() && check.track()) { warn.offTrackLoop(); }
if(check.isHomeTime() && arrivedSchool) {
if(check.isHome()) warn.arrivedHomeLoop(); else warn.lateLoop();
} else if(check.isSchoolTime() && arrivedHome) {
if(check.isSchool()) warn.arrivedSchoolLoop(); else warn.lateLoop();
}
}
}
// Do Actions
struct Do {
void offTrackLoop() { if(offTrackVar) parseData(0); vibrateMotor(); ledRed(); delay(1000); vibrateMotor(); resetLED(); offTrackVar=true; delay(120000); }
void lateLoop() { if(!lateVar) parseData(1); vibrateMotor(); ledOrange(); delay(1000); resetLED(); lateVar=true; }
void arrivedHomeLoop() { lateVar=false; offTrackVar=false; vibrateMotor(); ledGreen(); delay(1000); resetLED(); parseData(2); arrivedHome=true; arrivedSchool=false; }
void arrivedSchoolLoop() { lateVar=false; offTrackVar=false; vibrateMotor(); ledGreen(); delay(1000); resetLED(); parseData(3); arrivedHome=false; arrivedSchool=true; }
};
// Send Package
void parseData(int state) {
SigFox.beginPacket();
if(state==0) SigFox.print("off track");
else if(state==1) SigFox.print("late");
else if(state==2) SigFox.print("at home");
else SigFox.print("at school");
SigFox.endPacket();
}
가이드 이미지 참조하여 설정하세요.

자녀 등교 시 걱정되는 마음, 잘 압니다. SmartWay로 안심하고 아이를 학교에 보내세요.

제조공정
부품 및 소모품 SparkFun 듀얼 H-브리지 모터 드라이버 L298 1개 DC 모터 (일반) 4개 Arduino UNO 1개 LED (일반) 8개 저항 221옴 8개 서보 모터 (Tower Pro MG996R) 1개 초음파 센서 HC-SR04 1개 앱 및 온라인 서비스 Arduino IDE Microsoft Visual Studio 2015 Microsoft Windows 10 IoT Core 프로젝트 소개 여러 실내 로봇을 제작한 후, 험한 지형을 주행할 수 있는 야외 로봇을 만들기로 결
아두이노 튜토리얼 시리즈의 네 번째 튜토리얼입니다. 이 튜토리얼에서는 PWM(펄스 폭 변조)을 사용하여 DC 모터와 서보 모터를 제어하는 방법을 배웁니다. 따라하기 쉬운 단계별 비디오 튜토리얼입니다. 또한 비디오 아래에서 이 튜토리얼에 필요한 부품과 예제의 소스 코드를 찾을 수 있습니다. 첫 번째 예제에 필요한 부품 DC 모터 또는 CPU 팬 DC 모터 9V 배터리 또는 어댑터 (9-12V) 아두이노 보드 브레드보드와 점퍼 와이어 NPN 트랜지스터 포텐셔미터 다이오드 커패시터 - 1uF 저항 - 1k옴 공개: 이 링크