본문 바로가기

분류 전체보기210

아두이노 문자와 문자열-#1 문자와 문자열에 관한 이야기다. 어느정도 경험이 있는 사람들은 이것, 굳이 라고 이야기 할 수 있는 주제이다. 사실 별것 없다. 그래도 처보에게는 아직 경험이 없는 이들에게는 어려운 주제이기도 하다. 말그대로 받아 드리면 쉬운데 어렵게 생각하고 하는 방법을 몰라서 그렇다. 언어에서는 크게 두가지 자료형이 있다. 자료형과 배열이다. 처음에 본인이 공부 할때도 자료형과 배열은 그냥 자료형에 대한 집합개념으로 생각했다. 그런데 배열로 그냥 다른 자료형으로 생각한다. 물론 본인이 어떻게 생각해도 상관 없다. 그냥 개념만 이해하면 되기때문... 항상 이야기 하지만 하는 방법을 배울라고 하지 말기 바란다. 그 개념을 이해해야 한다. 하는 방법은 아주 1차원적이다. 예를 들어 C언어에서 하는 방법을 배웠다. 그래도 .. 2020. 6. 20.
아두이노 이더넷 클라이언트의 시작-#6 좀더 GET을 공부할 필요가 있어서 몇가지만 더 소개하고 GET을 마무리 하고 POST로 넘어 갈까 한다. 구글에서 특정단어를 검색하거나 데이터베이스에 데이터를 삽입 할때도 필요하다. 구글 검색은 쉽게 이해 하겠지만, 데이터베이스 삽입에 대해서는 이해가 필요하다. 원도우에서 C프로그램으로 데이터베이스에 직접 삽입하지 못하고 ODBC나 ADO를 사용한다. 웹에서도 직접 삽입하지 못하고 중간 PHP를 이용해서 삽입한다. 정확하게 이야기 하면 직접 데이터를 삽입 못하는게 아니다. 중간에 삽입해 주는 프로그램을 만들어야 한다. 이런 중간에서 역활을 해주는 프로그램을 미들웨어라고 부르기도 한다. 쉽게 말해서 하나 하나 만들어 주거나 기존에 만들어진 프로그램을 이용해야 한다. 만들어진 프로그램을 이용한다면 그 통신.. 2020. 6. 10.
STM32보드 STM32F103 - #2 부트로드 올리기 아래 아두이노 미지원 보드를 등록하고 설치하자. STM32 stlink-v2 http://dan.drown.org/stm32duino/package_STM32duino_index.json 다른 사이트도 있는데 아무래도 위 사이트가 잘되는것 같다. https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json 보드를 STM32F103C를 선택하고 3가지를 각각 테스트 하였다. 1. 부트로드가 올라가진 상태에서 5pin으로 업로드 2. FTDI로 부트로드 올리기와 시리얼 업로드 3. ST-LINK로 업로드 하나씩 연습해보자. 그리고 STM에 대한 공부 보다는 브링크 예제를 통해서 부트로드 올리는것만 할 것이다. 나.. 2020. 6. 7.
STM32보드 STM32F103 - #1 부트로드 올리기 이번에는 아두이노로 업로드 하는 방법을 이야기 할까 한다. 더 있겠지만, 본인이 찾은 방법은 총 3가지다. 1. ST-LINK V2로 올리기 살때 구입한 별도의 업로드툴이다. 본인이 보기에는 마치 ISP같은 느낌이다. 그렇다고 ISP는 아니다. 2. FTDI로 부터 로드 올리기, 업로드 마치 아두이노가 하는 방식과 거의 흡사하다. 그런데 부트로드도 올리수 있고 바로 프로그램 업로드도 가능하다. 3. 마이크로 5pin으로 업로드 하기 2번의 방법으로 부트로드가 올라있는 상태에서 업로드가 가능하다. 당연하겠지만, 부트로드가 없다면 마이크로 5핀은 불가능 하다. 2020. 6. 7.
나의 첫 STM32보드 STM32F103C8T6 STM32F103까지는 칩하고 관련이 있는것 같은데 C8T6은 아직 뭘 이야기 하는지 모르겠다. 어째던 첫 STM 보드를 공부해 보자. 물리적인 성능은 가격대비 아두이노 ATMEGA328P를 월등히 능가하니 사실 좋은 보드라는것은 인정해야 한다. 그리고 나도 처음 공부하는거라는 오류가 말을것으로 예상한다. 나올떄 마다 고쳐 가면서 공부하는게, 일단 시작하자. 출처 https://www.electronics-lab.com/project/programming-stm32-based-boards-arduino-ide/ http://www.hrrzi.com/2017/11/ada-on-2-ebay-bluepill-board.html 2020. 6. 7.
아두이노 이더넷 클라이언트의 시작-#5 좀 양이 많은것 같아서 다시 작성한다. 3개의 GET 전송방식의 표현은 동일하지만, 재활용과 이해의 측면에서 이게 더 실용적이다. 다시 이야기 하지만 공백하나 줄바꿈 하나 잘못 넣으면 오류가 발생한다. 왜 이렇게 넣어요 하는 질문은 이해 불가의 질문이다. 만든사람이 그렇게 만들어서 어쩔수 없다. 사실 불편하게 짝이 없다. 그래도 이방식으로 고수해서 모두 사용하고 있다. void GET_Page2(EthernetClient& c) { // if you get a connection, report back via serial: #define CITY "1835235" //대전 도시 ID #define HOST "api.openweathermap.org" #define SKEY "1107a6df5ce46cce.. 2020. 6. 7.
아두이노 이더넷 클라이언트의 시작-#4 이제 공부할것은 GET, POST 형식으로 전송하는 항수를 만들어야 한다. 우리는 단순하게 웹브라우즈에 붙여 넣기만 하면 GET이나 POST방식으로 전송된다. 그러나 패키분석기로 패킷을 잡아 보면 실제로 전송되는 문장은 좀 다르다. 미리 이야기 하지만 공백, 줄바꿈 하나라도 더 넣거나 덜 넣거나 하면 문장은 바로 오류를 발생한다. 그래서 정확한 형식을 알아야 한다. 인터넷에 오류가 있는 문장도 많으니 정확한 문장을 찾거나 아래책을 보고 공부해야 한다. 괜히 인터넷에서 찾다가 시간 낭비하지 말기 바란다. 인터넷에 있는 문장중에 틀린게 상당히 있다. http://www.yes24.com/Product/Goods/15894097 이제 GET 방식으로 요청을 할 것이다. 먼저 이야기 하면 GET방식이 POST방.. 2020. 6. 7.
아두이노 이더넷 클라이언트의 시작-#3 우리나라 공공데이터를 제공해 주는곳에 문의 했는데, 본인이 발급받은 서비스키가 작동하지 않는다. 2주 정도 기다려 봤는데, 여전히 되지 않는다. 슬프게도 다음에 작동하면 하기로 하고 openweathermap에서 발급받은 키를 이용해서 데이터를 받아 보자. 형식이나 설명은 사이트에 상세히 있지만 일단 알아야 할것은 아래 한줄이다. api.openweathermap.org/data/2.5/forecast?id=1835235&APPID=1107a6df5ce46cce4179b4a6646xxxxx 여기서 주의 할 것은 두가지다. id=1835235의 번호는 지역번호다. 1835235는 대전 지역번호다. 다른곳을 하고 싶으면 직접 검색하면 나올것이다. 그다음은 발급받은 APPID=1107a6df5ce46cce41.. 2020. 6. 3.
아두이노 이더넷 클라이언트의 시작-#2 앞으로 우리가 해야 할것은 별도의 서버를 만들지 않을것 이다. 기존의 공개 데이터를 제공하는 서버를 활용 할 것이다. 나중에는 우리가 직접 만들어도 보겠지만, 일단은 아두이노 프로그램만 만들고 공공데이터를 활용하는것만 먼저해 보자. 날씨 정보, 버스 정보 이런것을 얻어 오는것을 할 것이다. 일단 회원을 가입하고 계정을 발급 받자. 대충 클릭해 보거나 두개 사이트를 검색해 보면 상세한 설명이 있으니 있단 가입하고 검색해보자. 그리고 가입하고 바로 활용가능하지 않는곳도 있으니 미리해 두자. 본인이 추천하는곳은 아래 두개 이다. 물론 더 있겠지만, 일단 두개 정도에서 연습해 보자. https://www.data.go.kr/index.do https://openweathermap.org/ 2020. 5. 24.