본문 바로가기

전체 글215

나의 첫 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.
아두이노 이더넷 클라이언트의 시작-#1 무엇을 해볼까? 뭘 공부 할까 고민 하다가... 이전해 했던것 한번 더 정리하고 다시해 보기로 했다. 이전에는 아두이노 이더넷 서버라면 이번은 아두이노 클라이언트다. 저번에는 서버는 서비스를 제공하는 입장이고 클라이언트는 서비스를 제공받는 입장이다. 이것은 개념적인 이야기지, 서버가 서비스를 제공하면서 다른 서버로 부터 수시로 서비스를 요청을 할 수가 있다. 즉 서버가 클라이언트고 서버 라는것이다. 딱기 그 구분과 경계를 정의하기 어려운 입장이 있다. 그러나 초보 입장에서는 그 경계를 명확히 하는게 프로그램 개발이 편리하다. 기본은 그렇게 배우고 응용하기 바란다. 응용 먼저하고 기본을 배우지 않는다면 나중에 혼란만 올 뿐이다. 그리고 이번 부터 하는것은 개념이나 소스는 그데로 ESP8266이나 무선에 적.. 2020. 5. 23.
아두이노 이더넷 웹서버 만들기 -#18 최근 2,3주 동안 이더넷 쉴드로 아이피를 할당 받고, 여러가지 웹서비스, 웹서버를 만들어 봤다. 원리는 간단하고 공부해야 할 것은 HTML, 자바스크립트 문법이다. 그래도 간단한 버턴, 입력창 정도는 쉽게 만들수 있으니 만들어 보기 바란다. 사실 서버가 중요한개 아니고 본인이 무슨 서버의 서비스를 할지가 중요하다. 데이더베이스 서버, 웹서버, FTP서버 등등.. 항상 중요한것은 문법 하나 하나가 중요한게 아니다. 개념을 이해하고 넘어 가야 한다. 여유가 된다면 이것도 공부하시기 바란다. 우노의 2k 바이트는 너무한것 같다. const char message [27][200] PROGMEM = { {"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">.. 2020. 5. 20.
아두이노 이더넷 웹서버 만들기 -#17 이제 최종소스를 만들면 된다. 그런데 슬프게도 큰 문제점이 있다. ESP8266을 할떄 하고는 다르게 아두이노 우노의 2k의 메모리가 부족하다. 문장을 만들기에는 부족하다. 이전 소스 그데로 아두이노 메가로 변경하면 문제 없다. 그러나 지금 보드 바꾸고 할라고 하니 귀찮다. 그래서 이것저것 줄일것 모두 줄여도 부족하다. 이제 생각나는 방법은 하나 뿐 PROGMEM 이다. 예) const char message [27][200] PROGMEM 이것에 대해서는 다음에 공부하기로 하고 일단 넘어가자. 그리고 전체적인 소스코드도 약간 변경 있으니 차근 차근 공부 하자. /*Web Server*/ #include #include #include #include // Enter a MAC address and IP.. 2020. 5. 20.
아두이노 이더넷 웹서버 만들기 -#16 최종완성된 함수 형태이다. 특별히 어려운것은 없지만, 아무래도 아래문장만 조심해서 만들면 된다. 그냥 C/C++같으면 %f로 만들면 되지만 아두이노는 지원 하지 않는다. 그래서 String을 사용해야 한다. p+=sprintf(p,\" center: new google.maps.LatLng(%s, %s),\n"", String(y,1).c_str(), String(x,1).c_str()); Colored by Color Scripter x,y에 본인이 넣고 싶은 GPS좌표만 넣으면 된다. 아두이노에서 GPS를 연결해도 좋지만 일단 연습이나 아무거나 넣자. 36.4251083, 127.389638은 본인이 자주가는 커피전문점 좌표이다. 구글에 검색하면 주소를 좌표로 바꾸어 주는 서비스도 있다. void w.. 2020. 5. 19.