티스토리 뷰

1. 계획


(1) 출입 로그 관리

RTC모듈을 이용해 마지막으로 문이 열린 시간을 웹/앱에서 확인할 수 있도록 한다.


(2) 케이스 제작

실제 집 문에 부착해야 하므로 별도의 케이스가 필요하다.

열이 발생할 경우를 대비하여 통풍구와 초음파 센서 맞춤 2개의 구멍과

여러 데이터 핀, 전원 공급 핀들이 지나갈 수 있는 구멍이 필요하다!



2. 구현


(1) 출입 로그 관리

이 부분을 구현하면서 기초 예제 게시판에 올려둔 글로 자세한 설명을 생략하겠습니다!

http://cafe.naver.com/arduinoguide/3722 )


웹에서 문자열로 날짜 / 시간으로 구분되어 볼 수 있도록 문자열 처리가 필요하다.

그리고 초음파 센서에 의해 문 열림이 감지될 경우 서버에 시간을 전달하는 방식으로 구현했다.



잘 작동할 때 기분이 정~ 말 좋습니다..

^^___^^


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
 
void timeSetting(){
  char tmp[50= {0}; // 초기화
  msg[0= 0;
 
  if (RTC.read(tm)) {
    itoa(tm.Day,tmp,10); // 날짜
    strcat(msg,tmp);
    strcat(msg," ");
    strcat(msg,monthName[tm.Month-1]); // 달 이름 변환
    strcat(msg,", ");
 
    if(tm.Hour < 10 ) strcat(msg,"0");
    itoa(tm.Hour,tmp,10); // 시간
    strcat(msg,tmp);
    strcat(msg,":");
 
    if(tm.Minute < 10 ) strcat(msg,"0");
    itoa(tm.Minute,tmp,10); // 분
    strcat(msg,tmp);
    strcat(msg,":");
    
    if(tm.Second < 10 ) strcat(msg,"0");
    itoa(tm.Second,tmp,10); // 초
    strcat(msg,tmp);
  }
 
}

cs


 msg[0= 0;

문자열 함수 특성 상 널(null)문자 위치를 이용해 모든 함수가 구동되는 점을 이용하여

0번 index에 널 문자를 넣어줌으로 문자열 전체가 초기화되게끔 했습니다.


위와 같이 구현 후 메인loop에서 Set함수를 사용하였습니다!



(2) 케이스 제작


케이스 제작을 위해 다이소에서 나무로 된 무언가를 2개 샀습니다!

자세한 설명은 사진으로 대체합니다.







찍찍이를 문과 케이스에 부착하여 원할 때마다 탈부착 하여 디버깅할 수 있도록 하였습니다!


케이스 내부에 완충제를 듬뿍넣어서 보드에 손상가지 않도록하였습니다.

그리고 리뷰 때 썼던 내용처럼 MODLINK의 포장 케이스가 너무 이뻐서.. 어떻게 비슷하게 만들려고 노력했습니다!

그래서 위로 열 수 있도록 경첩도 위에 달았구요!

얼추 색감이 비슷해보여서 기분이 좋네요..





3. 마무리


이제 마지막 게시물에서 구동 영상, 코드 리뷰 간단하게하고

총평! 하고 마무리 지어야겠네요..

며칠동안 정~말 고생하면서도 재밌었네요

마지막까지 모두 화이팅~~






댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함