전체 글215 아두이노를 이용한 데이터 저장 -#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. 아두이노를 이용한 데이터 저장 -#5 이전에 공부했던것을 잠시 복습하고 가자. 하지않고 가면 섭섭한 사람도 있을것 같아서 조금 다시 볻다면, 실제로 SD카드를 초기화 하고 파일에 쓰는 문장은 몇줄 되지 않는다. 파일을 열고, 파일에 쓰고, 파일을 닫고 이런식인데 이것은 모든 언어 공통이라고 이해하는것이 좋을것 같다. 우리도 일기를 적는다고 한다면 읽기장을 열고, 글을쓰고, 읽기장을 닫는다는 개념과 유사하다. 어렵게 생각해도 실제로 하는것은 단순하다. 물론 기본이라서 단순 할 수가 있지만, 실제로 단순하다. 그리고 단순하게 접근해야 한다. 만약 어렵게 접근하면 멀티 프로세스, 멀티 쓰레드같은 다중환경에서 100% 오류가 발생한다. 단순한 코딩이 최고의 코딩이다. #include #include File myFile; volatile unsig.. 2020. 9. 3. 아두이노를 이용한 데이터 저장 -#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. 아두이노 2대를 이용한 정수와 실수 전송-#7(최종) 사실 지금까지 할 것은 다 했다. 오늘 소스코드는 생각보다 아주 간단하게 변경되었다. 지금까지 교육을 목적으로 길게 표현했지만, 결국 한 문장으로 압축된다. 보내는 것도 한문자 받는 것도 한 문장이다. 결국 데이터를 주고받고는 한문 장로 끝나는 것이다. 이것이 시리얼통신이던 블루투스이던 와이파이던 다른 무선 통인이던 모두 동일하다. 결국 한 문장으로 데이터를 주고받는다. 사실 소프트웨어 하는 사람은 주고받고는 관심 없다. 단지 주기만 주면 되고 받기만 받으면 된다. 실제 주고받는 것은 하드웨어 블루투스, 와이파이, 로라 등등 다른 하드웨어가 하는 일이지, 코딩 소프트웨어가 하는 일은 아니다. 단지 주의할 것은 정수가 아두이노에서는 2바이트인데, 윈도에서는 4바이트다. 사실 본인은 귀찮아서 정수도 실수에 .. 2020. 8. 7. 아두이노 2대를 이용한 정수와 실수 전송-#6 마지막으로 응용이다. 전체 코드를 구현해서 잘 작동하는지 확인이다. 사실 안될 것이 없는 코드라서 잘된다. 그리고 변수를 추가하거나 빼더라도 전체 코드의 수정은 없다. 단지 구조체만 변경될 뿐이다. 보내는쪽 #include typedef struct _Info { int heartrate; int servo_degree; double temp1; double temp2; char str[25]; _Info() { } }Info; SoftwareSerial sSerial= SoftwareSerial(2, 3); //HardwareSerial& sSerial = Serial2; Info a; volatile unsigned long previousMillis; void setup() { Serial.begi.. 2020. 8. 5. 이전 1 ··· 10 11 12 13 14 15 16 ··· 24 다음