본문 바로가기

아두이노123

아두이노를 이용한 데이터 저장 -#11 이전에 구조체를 이해 했기를 바라면서, 알아도 되고 몰라도 되는 부분이지만, 알면 얼청난 위력을 발휘하는게 구조체와 포인터 이다. 오늘은 간단하게 함수 두개만 공부하고 넘어가자. 구지 설명이 필요 없을수도 있지만, 설명을 하는것으로 하자. 온도센서에서 온도를 읽기 위한 함수 void read_temp(Info& _info); 초보들이 보면 많은 의문이 있겠지만, 왜 전역변수를 구지 인자로 넘겨서 처리 했을까? 이것은 함수의 재활용성에 있다. 이 함수를 여기에서만 사용한다면 ? 그렇수도 있다. 만약 전역변수가 아니라면 ? 여러가지 이유로 습관적으로 인자로 넘긴다. 그리고 디버깅의 관점에서도 용의 할수도 있다. 많은 이유를 설명으로 하기는 어렵지만 전역변수는 필요악으로 보는게 좋다. 최대한 사용하지 않는 습.. 2020. 9. 27.
아두이노를 이용한 데이터 저장 -#10 오늘부터 이전 소스코드도 공부하면서 C/C++ 언어 복습도 하자. 이번에 공부할것은 구조체 하나 이다. 처음하는 초보들은 구조체에 대해서 알지못하는것 보다, 더 어려운게 어디에 사용하지 ? 왜 사용하지 이다. 사실 C언어 이전에는 잘 없었다. C언어 이전에 포트란까지는 없었다. 파스칼 부터 구조체가 등장했다고 생각하면 쉬울것이다. 그렇다고 포트란에 없느냐 ? 그것도 아니다. 포트란 77까지는 없었지만 포트란 90으로 오면서 생겨 났다.심지어는 C언어의 포인트까지 있다. 어쨰던 C언어에서 공부해야 할것은 두가지가 있다. 구조체와 포인트이다. 본인이 학생들가르칠때는 구조체 포인트 쓰지 말라고 한다. 둘다 쉬운게 아니기 떄문이다. 모른다고 프로그램 못만드는것도 아니다. 다만 삽질을 많이 해야 한다. 포크레인 .. 2020. 9. 15.
아두이노를 이용한 데이터 저장 -#9 여기서 저장된 데이터를 보자. 1초에 한줄을 기록한다. 약 59에서 62정도 글자이다. 곧 62바이트 이다. 그러면 1시간에 3600*62 바이트다. 한시간 217 k바이트 기록한다고 볼수 있다. 파일 하나당 1024K바이트 기록한다고 했으니까 그냥 대충잡아서 4시간에 파일 하나 기록한다. 하루는 24시간이니까 6개 파일을 기록한다는 계산이 나온다. 이전 소스코드는 파일을 천개만든다고 했으니, 몇달은 데이터가 삭제 되지 않고 기록 될것이다. ​ 그리그 6번째 줄에 다시 시작했다. 4에서 0으로... 이것은 강제 재부팅, 아두이노를 강제로 다시 on/off 했다. 쉽게 말해서 전원이 나갔다가 들어 오면 그다음에 다시 기록하는것으로 했다. 제일 좋은것은 시계 모듈을 달아서 데이터가 저장되는 시점을 기록하는것.. 2020. 9. 15.
아두이노를 이용한 데이터 저장 -#7 좀 오래된것 같아서 한가지 복습을하고 가자. SD 카드에 몇바이트를 기록하는것은 print 문장이나 write 문장이다. 물론 아스키냐 바이러니냐 차이는 있겠지만, 근본적으로는 같다. 그러면 write 문장으로 기록한다고 보면 무엇일까 ? 자금까지 자주 언급한 내용이다. 지난번 블루투스 통신, 유선 시리얼 통신, 와이파이, 모든 통신에서 나왔다. 결국은 우리는 다 통신을 하고 있다. 그것이 아두이노와 아두이노, 아두이노와 SD카드모듈, 아두이노와 블루투스, 아두이노와 와아파이모듈.... 결국 모두의 개념은 통신의 개념과 같다. 그것은 이전에 이야기 했던 모든것은 파일이라는 개념과도 같다. 그것을 통신으로 부를지, 파일이라고 부를지 선택은 아무것이나 해도 좋다. 결국은 정보를 주고받는 개념이다. 여기까지 .. 2020. 9. 13.
아두이노를 이용한 데이터 저장 -#6 오늘은 조금 더 실질적인 값을 기록해 보자. 딱히 저번것하고 다른것은 없지만 그래도 측정한 데이터 값을 기록하는데 있어서 다르다. TM35온도계 5개의 온도를 측정해서 기록하는것으로 하자. 연결하는것은 A0 ~ A4번까지 물론 6개 열결 할 수도 있지만, 가진 TM35온도계가 5개 뿐이다. 한개 연결한것과 5개 연결한것은 크게 차이가 없으니 하나로 테스트해도 무방하다. 온도를 읽는 추가된 코드 void read_temp(Info& _info) { for(int i =0; i 2020. 9. 5.
아두이노를 이용한 데이터 저장 -#4 SD 카드에 파일을 저장하겠지만. 파일에 대한 개념과 이론을 좀 더 공부해 보자. 컴퓨터에는 입력장치와 출력장치 두개만 존재 한다. 예를 들어 대표적인 출력장치는 모니터, 프린터이다. 입력장치는 키보드, 마우스 등이 있다. 그러면 나머지는 ? CPU입장에서는 하드디스크는 입출력 장치다. 메모리도 입출력장치다. 이런식으로 생각하면 대부분 입출력 장치이다. 그러면 좀더 추상화 해보자. 컴퓨터에 존재하는 모든 입출력 장치는 파일이다. 약간 이상하게 들리겠지만, 모든 입출력장치를 파일이라고 생각하면 모든것이 만족한다. 쉽게 말해서 모니터라는 파일에 출력을 하면 화면에 나온다. 키보드라는 파일에서 읽으면 키보드 입력을 읽을수가 있다. 결국 모든 입출력장치를 파일이라고 생각하고 접근하면 모든것에 접근을 할 수가 있.. 2020. 9. 3.
아두이노를 이용한 데이터 저장 -#3 앞에서도 언급했지만, CardInfo, FILE, READWRITE 3가지 정도는 소스코드까지 공부하기 바란다. C언어정도 공부 했다면 20분 정도면 다 알수 있을것 같다. 그냥 여기까지 공부하고 끝내면 좀 심심한것 같으니 좀 더 공부하자. 나는 아두이노를 이용하여 데이터를 취득해서 저장 할 것이다. 여기서 중요한것이 등장한다. 얼마나? 너는 1년 365일 주고 장창 데이터를 저장 할 것이다. 중간에 아두이노가 재부팅되어 다시 시작해도 연속해서 저장하고 싶다. 여기서 중요한 변수는 끝이없이 저장하는데 있다. 컴퓨터에서 원도우 프로그램이라면 날짜별로 폴더를 만들어서 시간으로 파일명을 만들어 저장할것 같다. 그러면 컴퓨터가 재부팅을 하던, 뭐가 어찌 되던지 데이터가 썩이지 않고 저장 될것이다. 아두이노라면 .. 2020. 9. 1.
아두이노를 이용한 데이터 저장 -#2 SD메모리에 저장하기 위해서는 준비물이 필요하다. 1. 마이크로 SD 16기가 2. SD 카드 저장모듈 SD메모리는 많은 용량필요 없으니 저용량이 딱 공부하기 좋다. 그리고 SD카드 저장모듈은 왠만한 키트에는 다 있는것 같다. 본인도 중고로 구입한 키드에 여러개 구했다. 그리고 연결도 6선만 연결하면 되니 큰 어려움은 없다. CS선을 4핀에 연결한 소스코드와 10핀에 연결한 소스코드 두개가 있으니 연결만 주의 있게 하면 될것이다. 그리고 소스코드는 인터넷에 있는 소스코드보다는 아두이노 기본 예제에 있는 소스코드를 이용하자. 인터넷에 있는 소스가 약간 구형이라서 그런지 오류가 조금 있다. 그렇다고 안된다기 보다는 최신소스가 제일 정확하다. https://dronebotworkshop.com/sd-card-.. 2020. 9. 1.
아두이노를 이용한 데이터 저장 -#1 아두이노나 무언가를 이용해서 데이터를 습득한다면 그냥 버리는 방법이 제일 간단한다. 대표적인 경우가 알람이다. 기스가 누출한다거나 온도가 일정이상 올라가면 신호만 준다면 그것으로 끝이다. 반데로 습득한 데이터를 저장한다면 어떻게 해야 할까? 통신을 이용하여 다른곳으로 보내는 방법과 통신을 이용하지 않고 자체 저장하는 방식 두가지로 나누어 생각하자. 통신을 이용한다면 다른 컴퓨터나 장비로 보낼수 있다. 데이터를 받은 장비에서 처리하면 간단하게 해결 할 수도 있다. 예를 들어 보자. 1. TCP/IP를 이용하여 데이터베이스에 저장 2. 유선 시리얼통신을 이용하여 저장 3. 무선 블루투스를 이용하여 저장 1번을 제외한 2,3번은 유사하지만 장치에서 별도의 프로그램으로 저장해야 한다. 그러면 아두이노 저체적으로.. 2020. 9. 1.