(326,-326,'',326,0,0,'','','html1','[Linux] gstreamer로 해보는 라즈베리파이 카메라 테스트','<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\"><b style=\"font-size: 14pt; line-height: 1.5;\"><span style=\"font-size: 18pt; color: #000000;\">gstreamer로 해보는 라즈베리파이 카메라 테스트.</span></b></p>\r\n<div style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\">\r\n   <hr style=\"border-right: 0px none black; border-bottom: 0px none black; border-left: 0px none black; border-top-style: solid; border-top-color: black; border-image: initial; height: 1px;\" />\r\n   </div>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\"><b style=\"font-size: 13px; line-height: 20px;\"><span style=\"color: #000000; font-size: 9pt;\">*사용 OS : raspbian(debian wheezy) 2014-12-24 / windows7 64</span></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\"><b style=\"font-size: 13px; line-height: 20px;\"><span style=\"color: #000000; font-size: 9pt;\">*사용 프로그램 : g</span><span style=\"color: #000000; font-size: 9pt;\">streamer1.0</span></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\"><b style=\"font-size: 13px; line-height: 20px;\"><br /></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\"><span class=\"imageblock\" style=\"border: 1px solid rgb(221, 221, 221); padding: 5px; margin: 5px 0px; display: inline-block; width: 630px; font-size: 9pt; line-height: 1.5; text-align: center; height: auto; max-width: 100%;\"><span data-url=\"https://t1.daumcdn.net/cfile/tistory/235B043F54B6F73724?download\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/235B043F54B6F73724\" width=\"630\" filename=\"rpi_carmera_test.jpg\" filemime=\"image/jpeg\" style=\"border: 0px; cursor: pointer; max-width: 100%; height: auto;\" /></span></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\"><br /></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">얼마전 라즈베리파이 카메라&nbsp;모듈을(pi-cam)</span><span style=\"font-size: 10pt; color: #000000;\">&nbsp;구입 하였습니다. 테스트를 해보기위해 인터넷을 검색해&nbsp;</span><a href=\"http://www.doepiccoding.com/blog/?p=212\" target=\"_blank\" class=\"tx-link\" style=\"color: #666666; text-decoration-line: none; font-weight: bold;\"><span style=\"font-size: 10pt; color: #0900ff;\">VLC를 사용한 스트리밍</span></a><span style=\"font-weight: bold; font-size: 10pt; color: #000000;\">,&nbsp;<span style=\"color: #0900ff;\"><a href=\"http://www.rasplay.org/?p=7174\" target=\"_blank\" class=\"tx-link\" style=\"color: #666666; text-decoration-line: none;\"><span style=\"color: #0900ff;\">mjpg-stream을 사용한&nbsp;</span></a></span></span><span style=\"font-size: 10pt; color: #0900ff;\"><a href=\"http://www.rasplay.org/?p=7174\" target=\"_blank\" class=\"tx-link\" style=\"color: #666666; text-decoration-line: none; font-weight: bold;\"><span style=\"color: #0900ff;\">웹스트리밍</span></a><span style=\"color: #000000;\">을&nbsp;</span></span><span style=\"font-size: 10pt; color: #000000;\">수행해 보았습니다. 두가지 자료 모두 정상적으로 카메라 영상을 볼수 있었지만 지연시간이&nbsp;길어서&nbsp;</span><span style=\"font-size: 10pt; line-height: 1.5; color: #000000;\">(상황에 따라 약3~10초 정도 되었었습니다.)</span><span style=\"font-size: 10pt; line-height: 1.5; color: #000000;\">&nbsp;만족스러운 테스트 결과를 얻을수 없었습니다.</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">그러던중&nbsp;<b><a href=\"http://cafe.naver.com/pipc/4585\" target=\"_blank\" class=\"tx-link\" style=\"color: #666666; text-decoration-line: none;\"><span style=\"color: #0900ff;\">gstreamer을 활용한 스트리밍</span></a></b>은 지연</span><span style=\"font-size: 10pt; color: #000000;\">시간이 상당히 짧다는 내용(약 0.2초)&nbsp;</span><span style=\"font-size: 10pt; color: #000000;\">을 검색할수 있었습니다. 테스트를 위해 내용을 수행보려 했지만 검색된 내용은 리눅스에서 영상을 출력하고 있었습니다. 필자는 윈도우에영상출력 테스를 하려고 하였기&nbsp;때문에 몇가지 내용의 검색을 더 수행하였습니다.</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">&nbsp;</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">자료를 검색해 종합하여 정상적인 실행및 테스트를 할수 있었습니다. 또한 매우 짧은 지연시간을&nbsp;</span><span style=\"font-size: 10pt; color: #000000;\">확인할수 있었습니다. 아래 내용은 필자가 수행했던&nbsp;설치 방법및 실행&nbsp;방법을&nbsp; 정리해보았습니다.</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><b><br /></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><b><br /></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><b><span style=\"font-size: 12pt; color: #000000;\">1. 라즈베리파이 카메라 설정.</span></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\"><br /></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">$ sudo raspi-config</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><font color=\"#000000\"><span style=\"font-size: 13px; line-height: 20px;\">* 5 Enable Camera 항목&nbsp;</span></font><span style=\"color: #000000; font-size: 13px; line-height: 20px;\">E</span><span style=\"color: #000000; font-size: 13px; line-height: 20px;\">nter</span><font color=\"#000000\"><span style=\"font-size: 13px; line-height: 20px;\">키 누른후&nbsp;Enable 선택후&nbsp;</span></font><span style=\"color: #000000; font-size: 13px; line-height: 20px;\">E</span><span style=\"color: #000000; font-size: 13px; line-height: 20px;\">nter</span><font color=\"#000000\"><span style=\"font-size: 13px; line-height: 20px;\">키&nbsp;입력.</span></font></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><font color=\"#000000\"><span style=\"font-size: 13px; line-height: 20px;\">* &lt;Finish&gt; 선택하여 Enter키 누른후&nbsp;&lt;Yes&gt;에&nbsp;</span></font><span style=\"color: #000000; font-size: 13px; line-height: 20px;\">E</span><span style=\"color: #000000; font-size: 13px; line-height: 20px;\">nter</span><font color=\"#000000\"><span style=\"font-size: 13px; line-height: 20px;\">키눌러 재부팅.</span></font></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><font color=\"#000000\"><span style=\"font-size: 13px; line-height: 20px;\"><br /></span></font></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><font color=\"#000000\"><span style=\"font-size: 13px; line-height: 20px;\"><br /></span></font></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><b><span style=\"font-size: 12pt; color: #000000;\">2. 라즈베리파이 gstreamer 설치/실행.</span></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"color: #000000; font-size: 10pt; line-height: 1.5;\">$ sudo apt-get update</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">$ sudo apt-get install gstreamer1.0</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; line-height: 1.5; color: #000000;\">(* raspbian 2014-12-14 버전에서는 별도의 저장소 추가 없이 설치가 가능하였습니다.)</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">$raspivid -t 0</span><span style=\"font-size: 10pt; color: #000000;\">&nbsp;-w 800 -h 600 -fps 30 -hf -vf -b 50000000 -o - | gst-launch-1.0 -e -vvvv fdsrc ! h264parse ! rtph264pay pt=96 config-interval=5 ! udpsink host=[타켓 컴퓨터 IP]</span><span style=\"font-size: 10pt; color: #000000;\">&nbsp;port=5000</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><b><span style=\"font-size: 12pt; color: #000000;\">3. 윈도우 gstreamer</span><span style=\"font-size: 12pt; color: #000000;\">&nbsp;설치/실행.</span></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 9pt; line-height: 1.5;\"><br /></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">아래링크에서 사용하고있는&nbsp;윈도우 시스템에 맞는 패키지를 다운 받은후 설치합니다.</span><span style=\"font-size: 10pt; line-height: 20px; color: #333333;\">(complete를 선택하여 &nbsp;설치합니다. Typical 선택시 WARNING: erroneous pipeline: no element \"avdec_h264\" 에러가 발생할수 있습니다.)</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; line-height: 1.5; color: #000000;\">32비트 :&nbsp;</span><a href=\"http://gstreamer.freedesktop.org/data/pkg/windows/1.4.5/gstreamer-1.0-x86-1.4.5.msi\" target=\"_blank\" class=\"tx-link\" style=\"color: #666666; text-decoration-line: none; font-size: 9pt; line-height: 1.5;\"><span style=\"font-size: 9pt;\"><b><span style=\"color: #0900ff;\">http://gstreamer.freedesktop.org/data/pkg/windows/1.4.5/gstreamer-1.0-x86-1.4.5.msi</span></b></span></a></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 9pt; line-height: 1.5;\"><span style=\"font-size: 10pt; color: #000000;\">64비트 :&nbsp;</span><a href=\"http://gstreamer.freedesktop.org/data/pkg/windows/1.4.5/gstreamer-1.0-x86_64-1.4.5.msi\" target=\"_blank\" class=\"tx-link\" style=\"color: #666666; text-decoration-line: none;\"><span style=\"font-size: 9pt;\"><b><span style=\"color: #0900ff;\">http://gstreamer.freedesktop.org/data/pkg/windows/1.4.5/gstreamer-1.0-x86_64-1.4.5.ms</span></b><span style=\"color: #0900ff;\">i</span></span></a></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 9pt; line-height: 1.5;\"><br /></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; line-height: 1.5; color: #000000;\">*&nbsp;시작을 눌러 cmd를 입력후 Enter키를 눌러 cmd창을 열어줍니다.</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">C:\\&gt; cd gstreamer</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">C:\\gstreamer&gt; cd 1.0</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">C:\\gstreamer\\1.0&gt; cd x86_64 [32비트일경우 cd x86]</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">C:\\gstreamer\\1.0\\x86_64&gt; cd bin</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000;\">C:\\gstreamer\\1.0\\x86_64\\bin&gt; gst-launch-1.0 -e -v udpsrc port=5000&nbsp;! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 12pt;\"><b><span style=\"color: #000000;\">* 기타사항</span></b></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><b style=\"font-size: 13px; line-height: 20px;\"><br /></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><b style=\"font-size: 13px; line-height: 20px;\"><span style=\"color: #000000;\">Issue 1&gt;</span><span style=\"color: #000000;\">&nbsp;URL :&nbsp;</span><a href=\"http://pmice.tistory.com/292#comment10104514\" target=\"_blank\" class=\"tx-link\" style=\"color: #666666; text-decoration-line: none;\"><span style=\"color: #0900ff;\">http://pmice.tistory.com/292#comment10104514</span></a></b></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 13px; line-height: 20px; color: #000000; background-color: #ffffff;\">윈도우 gstreamer1.0 1.4.5버전에서는&nbsp;gdpdepay 파이프라인을 선언한 실행이 가능한것을 확인하였습니다.&nbsp;(낮은 버전 사용시&nbsp;</span><span style=\"font-size: 9pt; line-height: 1.5; color: #000000; background-color: #ffffff;\">WARNING: erroneous pipeline: no element \"gdpdepay\" 에러로 인하여 실행을 할수 없었습니다.)</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"color: #000000;\">[ 명령어 예제&nbsp;]</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"text-align: left; background-color: #f9f9f9;\"><span style=\"font-size: 10pt; color: #000000; background-color: #ffffff;\">라즈베리파이 : $&nbsp;</span><span style=\"font-size: 10pt; color: #000000; background-color: #ffffff;\">raspivid -t 0 -h 720 -w 1280 -fps 25 -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=[라즈베리파이IP] port=5000</span></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 10pt; color: #000000; background-color: #ffffff;\">윈도우 :&nbsp;</span><span style=\"font-size: 10pt; color: #000000; background-color: #ffffff;\">C:\\gstreamer\\1.0\\X86_64\\bin&gt;&nbsp;</span><span style=\"font-size: 10pt; line-height: 1.5; color: #000000; background-color: #ffffff;\">gst-launch-1.0 -v tcpclientsrc host=[라즈베리파이IP] port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false</span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><br /></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 12pt;\"><b><span style=\"color: #000000;\">* 참고URL</span></b></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 9pt; line-height: 1.5;\"><br /></span></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"font-size: 9pt; line-height: 1.5; color: #000000;\">1) &nbsp;</span><a href=\"http://robogoby.blogspot.kr/2014/01/raspi-camera-gstreamer-10-w-windows-7.html\" target=\"_blank\" class=\"tx-link\" style=\"color: #666666; text-decoration-line: none;\"><span style=\"color: #0900ff;\">http://robogoby.blogspot.kr/2014/01/raspi-camera-gstreamer-10-w-windows-7.html</span></a></p>\r\n<p style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e; text-align: justify;\"><span style=\"color: #000000;\">2) &nbsp;</span><a href=\"http://www.raspberrypi.org/forums/viewtopic.php?p=491075\" target=\"_blank\" class=\"tx-link\" style=\"color: #666666; text-decoration-line: none;\"><span style=\"color: #0900ff;\">http://www.raspberrypi.org/forums/viewtopic.php?p=491075</span></a></p>\r\n<p><br style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\" /><br style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\" /><span style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\">출처:&nbsp;</span><a href=\"https://pmice.tistory.com/292\" style=\"color: #666666; text-decoration-line: none; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\" target=\"_blank\">https://pmice.tistory.com/292</a><span style=\"color: #666666; font-family: Dotum, Verdana, AppleGothic, sans-serif; background-color: #8e877e;\">&nbsp;[프미케의 낙서장]</span></p>','https://pmice.tistory.com/292','',0,0,3,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:13:04',0,'2019-04-26 15:13:04','210.101.103.92','','','','','','','','','','','',''),(327,-327,'',327,0,0,'','','html1','[Linux] 라즈베리파이 리눅스 활용강좌 : 무선랜 자동 재접속 설정','<p><span style=\"color: #404040; font-family: 굴림;\">라즈베리파이가 이동성, 휴대성을 겸하기에 많은 이들이 무선랜을 사용할 것이다. 하지만, 무선랜이 끊긴 다던가 들고 외출 후, 다시 무선랜에 접속해야 한다면 어떨까?&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Raspbian 기본 설정으로 무선랜을 사용한 경우 무선랜이 한번 끊기면 ifdown/ifup을 수동으로 실행해 주던지 재부팅을 해야 한다. 이를 자동으로 해주는 방법이 없나 찾아보니&nbsp;</span><a href=\"http://www.raspberrypi.org/forums/viewtopic.php?f=91&amp;t=16054&amp;start=25\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://www.raspberrypi.org/forums/viewtopic.php?f=91&amp;t=16054&amp;start=25</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;여기 있었다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">1. audo ifupdown script&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">일반적으로 command line 이든, GUI 든 무선랜을 설정하면 /etc/wpa_supplicant/wpa_supplicant.conf 파일을 수정해서 무선랜을 사용한다. 알려진 무선AP가 이 파일에 등록되어지는 것이다. 이를 ifplugd 데몬이 up/down 시켜 무선랜에 접속한다. 이를 이용하여 무선랜에 계속 접속할 수 있는 것이다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">기본으로는 어떻게 동작하는지, 아래를 설정하기 전에 무선AP를 끄고 무선AP를 켜보자. 무선AP가 다시 켜지더라도 라즈베리파이에는 접속이 되지 않는다. IP Scan Tool로도 검색되지 않는다. 하지만 이는 치명적이다. 필자처럼 무선만 연결되고, 원격으로 작업하는 경우에는 다시 접속할 방법이 없으니 말이다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">아래와 같이 실행하자.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">$ cd /etc/ifplugd/action.d/&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">$ sudo mv ifupdown ifupdown.original&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">$ sudo cp /etc/wpa_supplicant/ifupdown.sh ./ifupdown&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">$ sudo reboot&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">재시동이 끝나면 무선랜이 접속되어 있다. 이상태에서 무선AP를 끄고 잠시뒤에 무선AP를 켜면 라즈베리파이에 다시 접속이 가능한 것을 확인할 수 있다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">동작 방식에 대해서는 정확히 알고있진 않다. 무선AP가 꺼져있을 때에도 ifconfig 상에 IP가 없어지지 않았다. 그러니 어떻게 보면 무선AP가 꺼져있더라도 계속 IP정보를 저장하고 있는 다는 생각도 든다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">어찌됐건, 이제 무선AP와의 접속이 끊길일은 없어졌다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. interfaces 수정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">한가지 더, 이 설정을 하고나니 유선랜이 접속이 되지 않는다. 재부팅을 해도 마찬가지이다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">/etc/network/interfaces 의 첫 줄에 auto lo 항목이 있는데 그 아래에 auto eth0를 추가 하였다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">아래는 필자의 /etc/network/interfaces 파일이다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"mailto:pi@esrc\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\" target=\"_blank\">pi@esrc</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;~ $ cat /etc/network/interfaces&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">auto lo&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">auto eth0&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">iface lo inet loopback&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">iface eth0 inet dhcp&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">auto wlan0&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">allow-hotplug wlan0&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">iface wlan0 inet dhcp&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">pre-up wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">iface default inet dhcp&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">[참고사이트]&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://www.raspberrypi.org/forums/viewtopic.php?f=91&amp;t=16054&amp;start=25\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://www.raspberrypi.org/forums/viewtopic.php?f=91&amp;t=16054&amp;start=25</a></p>','','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:13:26',0,'2019-04-26 15:13:26','210.101.103.92','','','','','','','','','','','',''),(328,-328,'',328,0,0,'','','html1','[Linux] 라즈베리파이 가상AP모드','<table width=\"100%\" cellpadding=\"5\" style=\"font-family: 굴림;\">\r\n   <tbody>\r\n      <tr>\r\n         <td class=\"lh\" height=\"100\" style=\"color: #222222; line-height: 18px; word-break: break-all;\"><span class=\"content\" style=\"color: #404040;\">1. 라즈베리파이를 이용한 무선 메쉬 네트워크(wireless mesh network) 구성&nbsp;<br /><a href=\"http://skylit.tistory.com/180\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40;\">http://skylit.tistory.com/180</a>&nbsp;<br /><br />2. 라즈베리 AP로 사용하기&nbsp;<br /><a href=\"http://cafe.naver.com/openrt/11028\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40;\">http://cafe.naver.com/openrt/11028</a>&nbsp;<br /><br />3. 리눅스 가상IP설정&nbsp;<br /><a href=\"http://blog.daum.net/_blog/BlogTypeView.do?blogid=09ehJ&amp;articleno=18230446&amp;categoryId=766791&amp;regdt=20110919192855\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40;\">http://blog.daum.net/_blog/BlogTypeView.do?blogid=09ehJ&amp;articleno=18230446&amp;categoryId=766791®dt=20110919192855</a></span><a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gnuboard.php&amp;bo_table=Computer&amp;page=4&amp;wr_id=31189\" style=\"text-decoration-line: none; color: #3a4e40;\" target=\"_blank\"></a><a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gnuboard.php&amp;bo_table=Computer&amp;page=4&amp;wr_id=31189\" style=\"text-decoration-line: none; color: #3a4e40;\" target=\"_blank\"></a></td>\r\n         </tr>\r\n      <tr></tr>\r\n      </tbody>\r\n   </table>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:13:38',0,'2019-04-26 15:13:38','210.101.103.92','','','','','','','','','','','',''),(329,-329,'',329,0,0,'','','html1','[Linux] 할당받은IP 확인','<table width=\"100%\" cellpadding=\"5\" style=\"font-family: 굴림;\">\r\n   <tbody>\r\n      <tr>\r\n         <td class=\"tt\" style=\"color: #575757; font-size: 9pt;\">&nbsp;<img src=\"http://geoworld.cafe24.com/gnu3/bbs/skin/board/2basic/icon_link.gif\" align=\"absmiddle\" />&nbsp;<a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gblink.php&amp;bo_table=Computer&amp;wr_id=31190&amp;index=1\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40;\"><span class=\"tt\" style=\"font-size: 9pt; color: #575757;\">http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_IP_%ED%99%95%EC%9D%B8</span></a>, Hit:3</td>\r\n         </tr>\r\n      <tr>\r\n         <td class=\"tt\" style=\"color: #575757; font-size: 9pt;\">&nbsp;<img src=\"http://geoworld.cafe24.com/gnu3/bbs/skin/board/2basic/icon_link.gif\" align=\"absmiddle\" />&nbsp;<a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gblink.php&amp;bo_table=Computer&amp;wr_id=31190&amp;index=2\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40;\"><span class=\"tt\" style=\"font-size: 9pt; color: #575757;\">https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EA%B3%B5%EC%9D%B8_IP_%ED%99%95%EC%9D%B8</span></a>, Hit:1</td>\r\n         </tr>\r\n      <tr>\r\n         <td class=\"lh\" height=\"100\" style=\"color: #222222; line-height: 18px; word-break: break-all;\"><span class=\"content\" style=\"color: #404040;\">ifconfig -a | grep \"inet \" | grep \"Bcast:\" | awk \'{print $2}\' | awk -F: \'{print $2}\'&nbsp;<br />------------&nbsp;<br /><br />공인ip확인하기&nbsp;<br />curl bot.whatismyipaddress.com&nbsp;<br />curl&nbsp;<a href=\"http://ipecho.net/plain\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40;\">http://ipecho.net/plain</a>&nbsp;<br />curl icanhazip.com&nbsp;<br />curl ipv4.icanhazip.com&nbsp;<br />curl ipv4.ipogre.com</span></td>\r\n         </tr>\r\n      </tbody>\r\n   </table>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:13:52',0,'2019-04-26 15:13:52','210.101.103.92','','','','','','','','','','','',''),(330,-330,'',330,0,0,'','','html1','[Linux] 라즈베리파이로-문자열-송신하기파일-입출력','<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><span style=\"font-size: 10pt; color: #212121;\">이전에&nbsp;</span><span style=\"font-size: 10pt; color: #212121;\">아두이노에서 설정한 문자열을 라즈베리파이를 통해 Serial로 연결하여 수신받는 예제를 확인해 보았다. 이번에는 반대로 라즈베리파이에서 텍스트파일을 읽어와 아두이노에 뿌려줄 수 있는</span><span style=\"font-size: 10pt; color: #212121;\">&nbsp;통신을 구축</span><span style=\"font-size: 10pt; color: #212121;\">해보도록 하자. 필자의 경우에는&nbsp;</span><span style=\"font-size: 10pt; color: #212121;\">라즈베리파이에 있는</span><span style=\"font-size: 10pt; color: #212121;\">&nbsp;파일을 아두이노 SD카드에 전송하고자하는 특수한 목적 때문에 본 예제를 활용했을뿐 실상 잘 쓰이는 방법이</span><span style=\"font-size: 10pt; color: #212121;\">&nbsp;아니기 때문에 그냥 이렇게도 가능하구나 정도만 이해하고 넘어가도 될 듯 하다.</span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><br /></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><span style=\"font-size: 10pt; color: #212121;\">예제의 경우 이전과 같은 예제를 활용하였으며 파일을 읽어 아두이노에 전송하기 위해 약간의 수정을 가했다. 따라서 수정된 부분에 대한 설명을 위해 C언어 파일 입출력에 대한 간단한 개념을 기술하였고 이를 통해 아두이노와 직접 통신하는 부분까지 진행해보자.</span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><br /></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><br /></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><span style=\"font-size: 10pt; color: #212121;\"><b>1. 파일 문자열 송신 예제</b></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><br /></p>\r\n<div class=\"colorscripter-code\" style=\"margin: 0px; padding: 0px; color: #010101; overflow: auto; line-height: 2; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important; position: relative !important;\">\r\n   <table class=\"colorscripter-code-table\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin: 0px; padding: 0px; border-width: initial; border-style: none; border-color: initial; background-color: #fafafa; border-radius: 4px;\">\r\n      <tbody>\r\n         <tr>\r\n            <td style=\"margin: 0px; padding: 6px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; color: #7f7f7f; border-right: 2px solid rgb(229, 229, 229);\">\r\n               <div style=\"margin: 0px; padding: 0px; word-break: normal; text-align: right; color: #666666; line-height: 15.6px; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important;\">\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">1</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">2</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">3</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">4</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">5</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">6</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">7</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">8</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">9</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">10</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">11</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">12</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">13</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">14</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">15</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">16</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">17</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">18</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">19</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">20</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">21</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">22</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">23</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">24</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">25</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">26</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">27</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">28</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">29</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">30</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">31</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">32</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">33</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">34</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">35</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">36</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">37</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">38</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">39</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">40</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">41</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">42</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">43</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">44</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">45</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">46</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">47</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">48</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">49</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">50</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">51</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">52</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">53</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">54</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">55</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">56</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">57</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">58</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">59</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">60</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">61</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">62</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">63</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">64</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">65</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">66</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">67</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">68</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">69</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">70</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">71</div>\r\n                  </div>\r\n               </td>\r\n            <td style=\"margin: 0px; padding: 6px 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; color: #7f7f7f;\">\r\n               <div style=\"margin: 0px; padding: 0px; color: #010101; line-height: 15.6px; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important;\">\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0086b3;\">#ifdef</span>&nbsp;RaspberryPi&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0086b3;\">#include</span>&nbsp;<span style=\"color: #ff3399;\">&lt;</span>stdio.h<span style=\"color: #ff3399;\">&gt;</span>&nbsp;<span style=\"color: #999999;\">//for&nbsp;printf</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0086b3;\">#include</span>&nbsp;<span style=\"color: #ff3399;\">&lt;</span>stdint.h<span style=\"color: #ff3399;\">&gt;</span>&nbsp;<span style=\"color: #999999;\">//uint8_t&nbsp;definitions</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0086b3;\">#include</span>&nbsp;<span style=\"color: #ff3399;\">&lt;</span>stdlib.h<span style=\"color: #ff3399;\">&gt;</span>&nbsp;<span style=\"color: #999999;\">//for&nbsp;exit(int);</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0086b3;\">#include</span>&nbsp;<span style=\"color: #ff3399;\">&lt;</span><span style=\"color: #0099cc;\">string</span>.h<span style=\"color: #ff3399;\">&gt;</span>&nbsp;<span style=\"color: #999999;\">//for&nbsp;errno</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0086b3;\">#include</span>&nbsp;<span style=\"color: #ff3399;\">&lt;</span>errno.h<span style=\"color: #ff3399;\">&gt;</span>&nbsp;<span style=\"color: #999999;\">//error&nbsp;output</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0086b3;\">#include</span>&nbsp;<span style=\"color: #ff3399;\">&lt;</span>wiringPi.h<span style=\"color: #ff3399;\">&gt;</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0086b3;\">#include</span>&nbsp;<span style=\"color: #ff3399;\">&lt;</span>wiringSerial.h<span style=\"color: #ff3399;\">&gt;</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0099cc;\">char</span>&nbsp;device[]<span style=\"color: #ff3399;\">=</span>&nbsp;<span style=\"color: #993333;\">\"/dev/ttyACM0\"</span>;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0099cc;\">int</span>&nbsp;fd;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #ff3399;\">unsigned</span>&nbsp;<span style=\"color: #0099cc;\">long</span>&nbsp;baud&nbsp;<span style=\"color: #ff3399;\">=</span>&nbsp;<span style=\"color: #308ce5;\">9600</span>;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #ff3399;\">unsigned</span>&nbsp;<span style=\"color: #0099cc;\">long</span>&nbsp;time<span style=\"color: #ff3399;\">=</span><span style=\"color: #308ce5;\">0</span>;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0099cc;\">char</span>&nbsp;strHello[]&nbsp;<span style=\"color: #ff3399;\">=</span>&nbsp;<span style=\"color: #993333;\">\"HELLO\"</span>;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0099cc;\">char</span>&nbsp;cTemp[<span style=\"color: #308ce5;\">512</span>]&nbsp;<span style=\"color: #ff3399;\">=</span>&nbsp;{<span style=\"color: #308ce5;\">0</span>};</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0099cc;\">int</span>&nbsp;ch;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0099cc;\">char</span>&nbsp;Endc;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #999999;\">//prototypes</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0099cc;\">int</span>&nbsp;main(<span style=\"color: #ff3399;\">void</span>);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #ff3399;\">void</span>&nbsp;loop(<span style=\"color: #ff3399;\">void</span>);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #ff3399;\">void</span>&nbsp;setup(<span style=\"color: #ff3399;\">void</span>);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #ff3399;\">void</span>&nbsp;setup(){</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;<span style=\"color: #0099cc;\">printf</span>(<span style=\"color: #993333;\">\"%s&nbsp;\\n\"</span>,&nbsp;<span style=\"color: #993333;\">\"Raspberry&nbsp;Startup!\"</span>);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;fflush(stdout);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;<span style=\"color: #999999;\">//get&nbsp;filedescriptor</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;<span style=\"color: #ff3399;\">if</span>&nbsp;((fd&nbsp;<span style=\"color: #ff3399;\">=</span>&nbsp;serialOpen&nbsp;(device,&nbsp;baud))&nbsp;<span style=\"color: #ff3399;\">&lt;</span>&nbsp;<span style=\"color: #308ce5;\">0</span>){</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;fprintf&nbsp;(stderr,&nbsp;<span style=\"color: #993333;\">\"Unable&nbsp;to&nbsp;open&nbsp;serial&nbsp;device:&nbsp;%s\\n\"</span>,&nbsp;strerror&nbsp;(errno))&nbsp;;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;exit(<span style=\"color: #308ce5;\">1</span>);&nbsp;<span style=\"color: #999999;\">//error</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;<span style=\"color: #999999;\">//setup&nbsp;GPIO&nbsp;in&nbsp;wiringPi&nbsp;mode</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;<span style=\"color: #ff3399;\">if</span>&nbsp;(wiringPiSetup&nbsp;()&nbsp;<span style=\"color: #ff3399;\">=</span><span style=\"color: #ff3399;\">=</span>&nbsp;<span style=\"color: #ff3399;\">-</span><span style=\"color: #308ce5;\">1</span>){</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;fprintf&nbsp;(stdout,&nbsp;<span style=\"color: #993333;\">\"Unable&nbsp;to&nbsp;start&nbsp;wiringPi:&nbsp;%s\\n\"</span>,&nbsp;strerror&nbsp;(errno))&nbsp;;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;exit(<span style=\"color: #308ce5;\">1</span>);&nbsp;<span style=\"color: #999999;\">//error</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #999999;\">//&nbsp;main&nbsp;function&nbsp;for&nbsp;normal&nbsp;c++&nbsp;programs&nbsp;on&nbsp;Raspberry</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0099cc;\">int</span>&nbsp;main(){</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;setup();</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;FILE&nbsp;<span style=\"color: #ff3399;\">*</span>&nbsp;fp<span style=\"color: #ff3399;\">=</span>fopen(<span style=\"color: #993333;\">\"/home/pi/Desktop/Work/transfer.txt\"</span>,<span style=\"color: #993333;\">\"rt\"</span>);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;<span style=\"color: #ff3399;\">if</span>(fp<span style=\"color: #ff3399;\">=</span><span style=\"color: #ff3399;\">=</span>NULL){</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #0099cc;\">printf</span>(<span style=\"color: #993333;\">\"file&nbsp;open&nbsp;fail\\n\"</span>);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #ff3399;\">return</span>&nbsp;<span style=\"color: #ff3399;\">-</span><span style=\"color: #308ce5;\">1</span>;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">}<span style=\"color: #ff3399;\">else</span>{&nbsp;&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;<span style=\"color: #0099cc;\">printf</span>(<span style=\"color: #993333;\">\"file&nbsp;open&nbsp;success\\n\"</span>);&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;<span style=\"color: #ff3399;\">while</span>(fgets(cTemp,&nbsp;<span style=\"color: #ff3399;\">sizeof</span>(cTemp),fp)&nbsp;<span style=\"color: #ff3399;\">!</span><span style=\"color: #ff3399;\">=</span>&nbsp;NULL){</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serialPuts&nbsp;(fd,&nbsp;cTemp);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #0099cc;\">printf</span>(cTemp);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #ff3399;\">if</span>(feof(fp)&nbsp;<span style=\"color: #ff3399;\">!</span><span style=\"color: #ff3399;\">=</span>&nbsp;<span style=\"color: #308ce5;\">0</span>){</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #0099cc;\">printf</span>(<span style=\"color: #993333;\">\"file&nbsp;upload&nbsp;success\\n\"</span>);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"line-height: 15.6px;\">}</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;<span style=\"color: #ff3399;\">else</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #0099cc;\">printf</span>(<span style=\"color: #993333;\">\"file&nbsp;upload&nbsp;fail\\n\"</span>);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;fclose(fp);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;<span style=\"color: #ff3399;\">return</span>&nbsp;<span style=\"color: #308ce5;\">0</span>;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0086b3;\">#endif</span>&nbsp;<span style=\"color: #999999;\">//#ifdef&nbsp;RaspberryPi</span></div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  </div>\r\n               <div style=\"margin: -13px 5px 0px 0px; padding: 0px; text-align: right; font-size: 9px; font-style: italic;\"><a href=\"http://colorscripter.com/info#e\" target=\"_blank\" style=\"color: #e5e5e5; text-decoration-line: none;\">Colored by Color Scripter</a></div>\r\n               </td>\r\n            <td style=\"margin: 0px; padding: 0px 2px 4px 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; color: #7f7f7f; vertical-align: bottom;\"><a href=\"http://colorscripter.com/info#e\" target=\"_blank\" style=\"color: white; text-decoration-line: none;\"><span style=\"font-size: 9px; word-break: normal; border-radius: 10px; padding: 1px; background-color: #e5e5e5;\">cs</span></a></td>\r\n            </tr>\r\n         </tbody>\r\n      </table>\r\n   <br /></div>\r\n<div class=\"colorscripter-code\" style=\"margin: 0px; padding: 0px; color: #010101; overflow: auto; text-align: justify; line-height: 2; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important; position: relative !important;\"><span style=\"font-size: 10pt; color: #212121;\">예제를 보면 아래 int main() 부분만 다르다는 것을 알 수 있다. 동작 순서를 간단히 언급하자면 설정된 경로의 텍스트 파일을 읽어와 각 줄단위로 읽고 이를&nbsp;아두이노로 전송하며 만약 파일의 끝부분에 도달했을 경우 통신을 마치게 되는 구조이다. 그럼 각 함수에 대해 간단하게 설명하도록 하겠다.</span></div>\r\n<div class=\"colorscripter-code\" style=\"margin: 0px; padding: 0px; color: #010101; overflow: auto; text-align: justify; line-height: 2; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important; position: relative !important;\"><span style=\"font-size: 10pt;\"><br /></span></div>\r\n<div class=\"colorscripter-code\" style=\"margin: 0px; padding: 0px; color: #010101; overflow: auto; text-align: justify; line-height: 2; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important; position: relative !important;\"><span style=\"font-size: 10pt;\"><br /></span></div>\r\n<div class=\"colorscripter-code\" style=\"margin: 0px; padding: 0px; color: #010101; overflow: auto; text-align: justify; line-height: 2; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important; position: relative !important;\"><span style=\"font-size: 10pt; color: #212121;\"><b>2. 코드 설명</b></span></div>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><br /></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\">&nbsp;</p>\r\n<table class=\"txc-table\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"justify\" style=\"color: #7f7f7f; border-width: initial; border-style: none; border-color: initial; font-family: 돋움;\"></table>\r\n<table class=\"txc-table\" width=\"681\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"justify\" style=\"color: #7f7f7f; border-width: initial; border-style: none; border-color: initial; font-family: 돋움; width: 681px;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 680px; height: 38px; border-style: solid; background-color: #ffffff;\">\r\n            <p><span style=\"color: #4c4c4c;\"><b><span style=\"font-size: 10pt; font-family: Dotum, 돋움;\">&nbsp;&nbsp;</span></b></span><b><span style=\"color: #4c4c4c; font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; font-size: 10pt; background-color: #fafafa;\">FILE&nbsp;</span><span style=\"font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; color: #4c4c4c; font-size: 10pt; background-color: #fafafa;\">*</span><span style=\"color: #4c4c4c; font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; font-size: 10pt; background-color: #fafafa;\">&nbsp;fp</span><span style=\"font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; color: #4c4c4c; font-size: 10pt; background-color: #fafafa;\">=</span><span style=\"color: #4c4c4c; font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; font-size: 10pt; background-color: #fafafa;\">fopen(</span><span style=\"font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; color: #4c4c4c; font-size: 10pt; background-color: #fafafa;\">\"transfer.txt\"</span><span style=\"color: #4c4c4c; font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; font-size: 10pt; background-color: #fafafa;\">,</span><span style=\"font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; color: #4c4c4c; font-size: 10pt; background-color: #fafafa;\">\"rt\"</span><span style=\"color: #4c4c4c; font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; font-size: 10pt; background-color: #fafafa;\">)</span></b></p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p><br style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\" /></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\">&nbsp;</p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><span style=\"font-size: 10pt; color: #212121;\">C언어 프로그램상에서 파일에 저장되어 있는 데이터를 읽기 위해서는 데이터가 이동할 수 있는 다리 역할을 할 수 있는 스트림을 형성해야 한다. 쉽게 말해 파일로</span><span style=\"font-size: 10pt; color: #212121;\">부터 데이터를 읽을 수 있는 최소한의 준비를 해주는 과정이라고 생각하면 된다. &nbsp;따라서 위 fopen 함수는 스트림 형성을 요청하는 호출문 역할을 하며 괄호 안에 첫번째 인자의 경우 읽어들일 파일의 경로를 뜻하고 두번째 인자는 형성할 스트림의 종류를 뜻하며 입력스트림과 출력스트림 이렇게 2가지 형태가 존재한다. 위 코드는 \"rt\" 로 설정하였으므로 입력스트림을 뜻하며 파일의 데이터를 읽을 수 있는 반면에 쓰지는 못하기 때문에 만약 데이터를 쓰기 원한다면 별도로 출력스트림을 다시 형성해야 한다. C언어에서는 이러한 개념을 바탕으로 총 6가지 스트림으로 세분화 할 수 있다.</span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><br /></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\">&nbsp;</p>\r\n<table class=\"txc-table\" width=\"681\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"color: #7f7f7f; border-width: initial; border-style: none; border-color: initial; font-family: 돋움; width: 681px;\">\r\n   <tbody>\r\n      <tr>\r\n         <td rowspan=\"1\" style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 136px; height: 24px; border-style: solid; background-color: #eaeaea;\">\r\n            <p style=\"text-align: center;\"><span style=\"color: #212121;\">&nbsp;모드</span></p>\r\n            </td>\r\n         <td rowspan=\"1\" style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 544px; height: 24px; border-bottom-style: solid; border-right-style: solid; border-top-style: solid; background-color: #eaeaea;\">\r\n            <p style=\"text-align: center;\"><span style=\"color: #212121;\">내용</span></p>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 136px; height: 24px; border-style: solid; background-color: #ffffff;\">\r\n            <p style=\"text-align: center;\"><span style=\"color: #212121;\">r&nbsp;</span></p>\r\n            </td>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 544px; height: 24px; border-bottom-style: solid; border-right-style: solid; border-top-style: solid; background-color: #ffffff;\">\r\n            <p><span style=\"color: #212121;\">&nbsp; &nbsp;오직 읽기만 가능</span></p>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 136px; height: 62px; border-bottom-style: solid; border-right-style: solid; border-left-style: solid; background-color: #ffffff;\">\r\n            <p style=\"text-align: center;\"><span style=\"color: #212121;\">w</span></p>\r\n            </td>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 544px; height: 62px; border-bottom-style: solid; border-right-style: solid; background-color: #ffffff;\">\r\n            <p><span style=\"color: #212121;\">&nbsp; &nbsp;오직 쓰기만 가능</span></p>\r\n            <p><span style=\"line-height: 1.5; color: #212121;\">&nbsp; &nbsp;만약 파일이 존재하지 않으면 새로운 파일을 생성해서 데이터 쓰기</span></p>\r\n            <p><span style=\"line-height: 1.5; color: #212121;\">&nbsp; &nbsp;만약 파일이 존재하면 기존의 데이터를 지우고 데이터&nbsp;쓰기&nbsp;</span></p>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 136px; height: 24px; border-bottom-style: solid; border-right-style: solid; border-left-style: solid; background-color: #ffffff;\">\r\n            <p style=\"text-align: center;\"><span style=\"color: #212121;\">a</span></p>\r\n            </td>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 544px; height: 24px; border-bottom-style: solid; border-right-style: solid; background-color: #ffffff;\">\r\n            <p><span style=\"color: #212121;\">&nbsp; &nbsp;w 모드와 달리 파일이 존재하면 파일 끝에 덧붙여 데이터 추가</span></p>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 136px; height: 41px; border-bottom-style: solid; border-right-style: solid; border-left-style: solid; background-color: #ffffff;\">\r\n            <p style=\"text-align: center;\"><span style=\"color: #212121;\">r+&nbsp;</span></p>\r\n            </td>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 544px; height: 41px; border-bottom-style: solid; border-right-style: solid; background-color: #ffffff;\">\r\n            <p><span style=\"color: #212121;\">&nbsp; &nbsp;읽기와 쓰기 가능</span></p>\r\n            <p><span style=\"color: #212121;\">&nbsp; &nbsp;만약 파일이 존재하면 기존의 데이터를 지우지 않고 데이터 덮어 쓰기</span></p>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 136px; height: 41px; border-bottom-style: solid; border-right-style: solid; border-left-style: solid; background-color: #ffffff;\">\r\n            <p style=\"text-align: center;\"><span style=\"color: #212121;\">w+</span></p>\r\n            </td>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 544px; height: 41px; border-bottom-style: solid; border-right-style: solid; background-color: #ffffff;\">\r\n            <p><span style=\"color: #212121;\">&nbsp; &nbsp;읽기와 쓰기 가능</span></p>\r\n            <p><span style=\"color: #212121;\">&nbsp; &nbsp;만약 파일이 존재하면 기존의 데이터를 지우고 데이터 쓰기</span></p>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 136px; height: 24px; border-bottom-style: solid; border-right-style: solid; border-left-style: solid; background-color: #ffffff;\">\r\n            <p style=\"text-align: center;\"><span style=\"color: #212121;\">a+</span></p>\r\n            </td>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 544px; height: 24px; border-bottom-style: solid; border-right-style: solid; background-color: #ffffff;\">\r\n            <p><span style=\"color: #212121;\">&nbsp; &nbsp;읽기와 쓰기&nbsp;가능 (쓰기의 경우 a 모드와 특징이 같다.)</span></p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\">&nbsp;</p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><span style=\"font-size: 10pt;\"><br /></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><span style=\"font-size: 10pt; color: #212121;\">&nbsp;</span><span style=\"line-height: 21px;\"><span style=\"font-size: 10pt; color: #212121;\">\"rt\" 에서 뒤의 t는 텍스트모드를 뜻하며 t의 텍스트모드와 b의 바이너리모드가 있다고</span><span style=\"font-size: 10pt; color: #212121;\">만 이해하고 넘어가자.&nbsp;</span></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><br /></p>\r\n<table class=\"txc-table\" width=\"645\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"color: #7f7f7f; border-width: initial; border-style: none; border-color: initial; font-family: 돋움;\"></table>\r\n<table class=\"txc-table\" width=\"681\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"color: #7f7f7f; border-width: initial; border-style: none; border-color: initial; font-family: 돋움; width: 681px;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 680px; height: 38px; border-style: solid; background-color: #ffffff;\">\r\n            <p><span style=\"color: #4c4c4c;\"><b><span style=\"font-size: 10pt; font-family: Dotum, 돋움;\">&nbsp; char *</span></b></span><b><span style=\"color: #4c4c4c; font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; font-size: 10pt; background-color: #fafafa;\">fgets(char *string,&nbsp;</span><span style=\"font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; color: #4c4c4c; font-size: 10pt; background-color: #fafafa;\">sizeof</span><span style=\"color: #4c4c4c; font-family: Dotum, 돋움; line-height: 15.6px; white-space: pre; font-size: 10pt; background-color: #fafafa;\">(*string), File *stream)</span></b></p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><br /></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><span style=\"font-size: 10pt; color: #212121; line-height: 2;\">위 함수는 텍스트 파일에 저장된 문자를 줄 단위로 읽어들어와 반환하는 함수로서 첫번째 인자인 *string은 입력 받은 문자열을 저장할 포인터(읽은 데이터를 잠시 저장하는 공간이라고만 생각하자)를 뜻하고 두번째 인자인 sizeof()는 입력 받을 문자의 수를 설정하는 것이며 세번째 인자인 파일 포인터는 형성한 스트림의 이름을 뜻한다. &nbsp;</span><span style=\"color: #212121; font-size: 13.3333px; line-height: 20px;\">이 함수는 읽어드린 문자열에 대한 포인터를 반환하며 파일의 끝에 도달하거나 오류가 발생할 경우 NULL을 반환한다.</span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><br /></p>\r\n<table class=\"txc-table\" width=\"645\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"color: #7f7f7f; border-width: initial; border-style: none; border-color: initial; font-family: 돋움;\"></table>\r\n<table class=\"txc-table\" width=\"681\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"color: #7f7f7f; border-width: initial; border-style: none; border-color: initial; font-family: 돋움; width: 681px;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"margin: 0px; padding: 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; width: 680px; height: 38px; border-style: solid; background-color: #ffffff;\">\r\n            <p><span style=\"color: #4c4c4c;\"><b><span style=\"font-size: 10pt; font-family: Dotum, 돋움;\">&nbsp;&nbsp;</span></b></span><strong style=\"border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; overflow-wrap: break-word; color: #444444; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; font-size: 15.96px; line-height: 23.94px; text-align: justify; background: rgb(252, 252, 252);\"><span style=\"font-size: 10pt; color: #4c4c4c; font-family: Dotum, 돋움;\">void&nbsp;</span><span style=\"font-size: 10pt; color: #4c4c4c; font-family: Dotum, 돋움;\">serialPuts (int fd, char *s)&nbsp;</span></strong></p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><span style=\"font-size: 10pt;\"><br /></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2; text-align: justify;\"><font color=\"#212121\"><span style=\"font-size: 10pt;\">위 함수는 wiringPi의 입출력 함수중 하나로 쉽게 설명하자면 fgets로 저장한 문자열을 fd(여기서 fd는 시리얼 통신할 디바이스라고 생각해두자)로 전송하게 된다. 사실 위&nbsp;함수만 제대로 활용해도 아두이노로 문자열을 송신할 수 있지만 여기서는 파일입출력까지 같이 응용하여 예제를 만들어 보았다.&nbsp;wiringPi가 지원하는 함수에 대해 보다&nbsp;자세히 알고싶다면&nbsp;공식 홈페이지를 참고하도록 하자.</span></font></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><br /></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><span style=\"font-size: 13.3333px; line-height: 20px; color: #212121;\"><a href=\"http://wiringpi.com/reference/serial-library/\" target=\"_blank\" class=\"tx-link\" style=\"color: #959595; text-decoration-line: none; font-size: 13.3333px; line-height: 20px;\">http://wiringpi.com/reference/serial-library</a></span><span style=\"font-size: 13.3333px; line-height: 20px; color: #212121;\">&nbsp;</span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><br /></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2; text-align: justify;\"><span style=\"font-size: 10pt; color: #212121;\">마지막으로&nbsp;fopen을 통해 파일을 개방하였다면 fclose 함수를 통해 파일을 꼭 닫아주어야 한다. 그 이유는 스트림을 형성하기 위해서는 시스템에서 메모리를 할당해야 하는데 파일을 닫아주지 않으면 메모리가 할당된 채로 유지되면서 손실이 일어나기 때문이다. 쉽게 말해 메모리가 유출되는 것을 막기 위한 것으로 이해하면 된다.</span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><span style=\"font-size: 10pt;\"><br /></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\"><span style=\"font-size: 10pt;\"><br /></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\"><span style=\"font-size: 10pt; color: #212121;\"><b>3. 아두이노 코드</b></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\"><span style=\"font-size: 10pt;\"><br /></span></p>\r\n<div class=\"colorscripter-code\" style=\"margin: 0px; padding: 0px; color: #010101; overflow: auto; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important; position: relative !important;\">\r\n   <table class=\"colorscripter-code-table\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin: 0px; padding: 0px; border-width: initial; border-style: none; border-color: initial; background-color: #fafafa; border-radius: 4px;\">\r\n      <tbody>\r\n         <tr>\r\n            <td style=\"margin: 0px; padding: 6px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; color: #7f7f7f; border-right: 2px solid rgb(229, 229, 229);\">\r\n               <div style=\"margin: 0px; padding: 0px; word-break: normal; text-align: right; color: #666666; line-height: 15.6px; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important;\">\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">1</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">2</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">3</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">4</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">5</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">6</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">7</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">8</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">9</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">10</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">11</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">12</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">13</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">14</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">15</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">16</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">17</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">18</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">19</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">20</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">21</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">22</div>\r\n                  <div style=\"margin: 0px; padding: 0px; line-height: 15.6px;\">23</div>\r\n                  </div>\r\n               </td>\r\n            <td style=\"margin: 0px; padding: 6px 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; color: #7f7f7f;\">\r\n               <div style=\"margin: 0px; padding: 0px; color: #010101; line-height: 15.6px; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important;\">\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #0099cc;\">char</span>&nbsp;cTemp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">String&nbsp;sReal&nbsp;<span style=\"color: #ff3399;\">=</span>&nbsp;<span style=\"color: #993333;\">\"\"</span>;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #ff3399;\">void</span>&nbsp;setup()</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">{</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;Serial.<span style=\"color: #0099cc;\">begin</span>(<span style=\"color: #308ce5;\">9600</span>);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\"><span style=\"color: #ff3399;\">void</span>&nbsp;loop()</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">{</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #ff3399;\">while</span>(Serial.available()){</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cTemp&nbsp;<span style=\"color: #ff3399;\">=</span>&nbsp;Serial.read();</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sReal.concat(cTemp);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #ff3399;\">if</span>(cTemp<span style=\"color: #ff3399;\">=</span><span style=\"color: #ff3399;\">=</span><span style=\"color: #993333;\">\'\\n\'</span>)</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(sReal);</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sReal<span style=\"color: #ff3399;\">=</span><span style=\"color: #993333;\">\"\"</span>;</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;&nbsp;&nbsp;&nbsp;}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">}</div>\r\n                  <div style=\"margin: 0px; padding: 0px 6px; white-space: pre; line-height: 15.6px;\">&nbsp;</div>\r\n                  </div>\r\n               <div style=\"margin: -13px 5px 0px 0px; padding: 0px; text-align: right; font-size: 9px; font-style: italic;\"><a href=\"http://colorscripter.com/info#e\" target=\"_blank\" style=\"color: #e5e5e5; text-decoration-line: none;\">Colored by Color Scripter</a></div>\r\n               </td>\r\n            <td style=\"margin: 0px; padding: 0px 2px 4px 0px; line-height: 18px; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; color: #7f7f7f; vertical-align: bottom;\"><a href=\"http://colorscripter.com/info#e\" target=\"_blank\" style=\"color: white; text-decoration-line: none;\"><span style=\"font-size: 9px; word-break: normal; border-radius: 10px; padding: 1px; background-color: #e5e5e5;\">cs</span></a></td>\r\n            </tr>\r\n         </tbody>\r\n      </table>\r\n   </div>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><span style=\"font-size: 10pt;\"><br /></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><span style=\"font-size: 10pt; color: #212121;\">아두이노 소스코드는 간단하게 구현해보았는데 여기서 유의해야할 것이 Serial.read() 함수이다. 라즈베리파이의 경우 문자를 한 줄로 읽거나 쓰는 것이 가능한데 아두이노는 한 글자씩 밖에 읽기가 불가능하다. 때문에 이러한 문제점을 해결하기위해 필자의 경우에는 while문을 활용하여 라즈베리파이를 통해 송신된 문자열을 각 문자 단위로 읽고 이를 concat 함수 (문자와 문자를 이어주는 역할을 한다.)를 사용하여 한 문장으로 만든 뒤에 해당 문자열의 끝을 나타내는 개행문자가 입력으로 들어올 시 문자열을 출력하고 문자열 변수를 초기화 하는 형태로 코드를 구현해보았다. 나름대로 구현이 잘 되긴 했지만 완성도면에서 미흡하다고 생각하기 때문에 후에 더 나은 방향으로 수정이 필요해 보인다.</span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><span style=\"font-size: 13.3333px; line-height: 20px; color: #212121;\"><br /></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; text-align: justify; line-height: 2;\"><span style=\"font-size: 13.3333px; line-height: 20px; color: #212121;\"><br /></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif; line-height: 2;\"><span style=\"font-size: 13.3333px; line-height: 20px; color: #212121;\"><b>4. 결과 확인</b></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\"><span style=\"font-size: 13.3333px; line-height: 20px; color: #212121;\"><br /></span></p>\r\n<p style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\"><font color=\"#212121\"><span style=\"font-size: 13.3333px; line-height: 20px;\">컴파일 방법은 기존과 동일하며 읽어올 파일을 형성하고 그 경로를 지정하여 예제 코드에 반영해주자.</span></font></p>\r\n<p><span style=\"color: #7f7f7f; font-family: Dotum, 돋움;\"></span><br style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\" /><br style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\" /><span style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\">출처:&nbsp;</span><a href=\"https://creamp.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4%EB%A1%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%86%A1%EC%8B%A0%ED%95%98%EA%B8%B0%ED%8C%8C%EC%9D%BC-%EC%9E%85%EC%B6%9C%EB%A0%A5\" style=\"color: #959595; text-decoration-line: none; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\" target=\"_blank\">https://creamp.tistory.com/entry/라즈베리파이로-문자열-송신하기파일-입출력</a><span style=\"color: #7f7f7f; font-family: &quot;Nanum Gothic&quot;, 돋움, Tahoma, AppleGothic, sans-serif;\">&nbsp;[CreAmp]</span></p>','https://creamp.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4%EB%A1%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%86%A1%EC%8B%A0%ED%95%98%EA%B8%B0%ED%8C%8C%EC%9D%BC-%EC%9E%85%EC%B6%9C%EB%A0%A5','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:14:17',0,'2019-04-26 15:14:17','210.101.103.92','','','','','','','','','','','',''),(331,-331,'',331,0,0,'','','html1','[Linux] static ip 설정후에도 resolv.conf가 초기화 되는문제','<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">eth0를 수동 설정하고 나면 dns서버설정이 없어진다.</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">웹서핑을 해보면&nbsp; resolv.conf를 수정해서 dns서버를 입력하라는 이야기들이 많은데</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">결론만 말하면 삽질이다,</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">네트워크가 재시작되는 순간 덮어쎠져버려서 설정이 날라가니까...</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">그렇게 될꺼라는 설명도 사실은 resolv.conf파일에 잘 되어있다.</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<table class=\"txc-table\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"627\" style=\"margin: 0px; padding: 0px; border-width: initial; border-style: none; border-color: initial; line-height: 1.5; font-family: 돋움; color: #717171; background-color: #ffffff;\">\r\n   <tbody style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif;\">\r\n      <tr style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\">\r\n         <td style=\"margin: 0px; padding: 0px; border-style: solid; line-height: 1.5;\"># Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\"><span style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; color: #ff0000;\">DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN</span></b><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<p><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff; text-align: center; clear: none; float: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; padding: 0px; border: none; line-height: 1.5; display: inline-block; width: 644px; height: auto; max-width: 100%;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/1440BE4350420CEE21\" width=\"644\" filename=\"resolv_conf.jpg\" filemime=\"image/jpeg\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.5; max-width: 100%; height: auto;\" /></span></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">웹서핑을 하다보니 resolv.conf파일에 쓰기권한을 없애서..(혹은 링크를 이용해 비슷한 효과로)&nbsp;<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">해결을 하는 경우도 있지만 그 또한 일반적인 방법은 아닌듯 하다.<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">그럼 해결을 해보자.</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">ip정적설정을 했던 interfaces파일을 다시 수정하자.</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<table class=\"txc-table\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"627\" style=\"margin: 0px; padding: 0px; border-width: initial; border-style: none; border-color: initial; line-height: 1.5; font-family: 돋움; color: #717171; background-color: #ffffff;\">\r\n   <tbody style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif;\">\r\n      <tr style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\">\r\n         <td style=\"margin: 0px; padding: 0px; border-style: solid; line-height: 1.5;\">sudo nano /etc/network/interfaces</td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<table class=\"txc-table\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"627\" style=\"margin: 0px; padding: 0px; border-width: initial; border-style: none; border-color: initial; line-height: 1.5; font-family: 돋움; color: #717171; background-color: #ffffff;\">\r\n   <tbody style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif;\">\r\n      <tr style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\">\r\n         <td style=\"margin: 0px; padding: 0px; border-style: solid; line-height: 1.5;\">&nbsp;This file describes the network interfaces available on your system<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /># and how to activate them. For more information, see interfaces(5).<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /># The loopback network interface<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />auto lo<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />iface lo inet loopback<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /># The primary network interface<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />#auto eth0<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />#iface eth0 inet dhcp<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />\r\n            <p style=\"padding: 0px; border: none; line-height: 1.5;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n            <p style=\"padding: 0px; border: none; line-height: 1.5;\">auto eth0<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />iface eth0 inet static<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />&nbsp; address 192.168.0.254<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />&nbsp; netmask 255.255.255.0<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />&nbsp; netwrok 192.168.0.0<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />&nbsp; broadcast 192.168.0.255<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />&nbsp; gateway 192.168.0.1<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />&nbsp;&nbsp;<b style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\"><span style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; color: #ff0000;\">dns-nameservers 168.192.63.1 168.192.63.2 8.8.8.8</span></b><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />&nbsp; mtu 9000<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" />&nbsp;</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">interfaces파일에 dns서버를 적용하면 끝..</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">참고로<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">168.192.63.1</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">168.192.63.2</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">는 KT DNS이고..</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">8.8.8.8</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">8.8.4.4<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">는 구글의 공개 DNS이다.</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">이제 네트워크를 재시작한다</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<table class=\"txc-table\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"627\" style=\"margin: 0px; padding: 0px; border-width: initial; border-style: none; border-color: initial; line-height: 1.5; font-family: 돋움; color: #717171; background-color: #ffffff;\">\r\n   <tbody style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif;\">\r\n      <tr style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\">\r\n         <td style=\"margin: 0px; padding: 0px; border-style: solid; line-height: 1.5;\">\r\n            <p style=\"padding: 0px; border: none; line-height: 1.5;\">sudo /etc/init.d/networking restart<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">host명령을 사용하여 테스트해본다.</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<table class=\"txc-table\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"627\" style=\"margin: 0px; padding: 0px; border-width: initial; border-style: none; border-color: initial; line-height: 1.5; font-family: 돋움; color: #717171; background-color: #ffffff;\">\r\n   <tbody style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif;\">\r\n      <tr style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\">\r\n         <td style=\"margin: 0px; padding: 0px; border-style: solid; line-height: 1.5;\">\r\n            <p style=\"padding: 0px; border: none; line-height: 1.5;\">host ubuntu.com&nbsp;<br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\"><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5;\" /></p>\r\n<p style=\"padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\">host에 해당하는 ip주소를 반환하면 성공.</p>\r\n<p><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\" /><br style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; color: #717171; background-color: #ffffff;\" /><span style=\"color: #717171; font-family: dotum, sans-serif; background-color: #ffffff;\">출처:&nbsp;</span><a href=\"https://realizm.tistory.com/67\" style=\"margin: 0px; padding: 0px; border: none; line-height: 1.5; font-family: dotum, sans-serif; text-decoration-line: none; background-color: #ffffff;\" target=\"_blank\">https://realizm.tistory.com/67</a><span style=\"color: #717171; font-family: dotum, sans-serif; background-color: #ffffff;\">&nbsp;[잡동사니]</span></p>','https://realizm.tistory.com/67','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:14:45',0,'2019-04-26 15:14:45','210.101.103.92','','','','','','','','','','','',''),(332,-332,'',332,0,0,'','','html1','[Linux] 라즈베리파이 사용자 추가 및 설정사항','<p><span style=\"color: #404040; font-family: 굴림;\">1. 사용자 추가방법&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">adduser 추가ID&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. sudo, adm 그룹에 추가&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">sudo adduser 추가ID sudo&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3. 카메라 사용권환 추가&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">sudo usermod -a -G video 추가ID</span></p>','','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:15:10',0,'2019-04-26 15:15:10','210.101.103.92','','','','','','','','','','','',''),(333,-333,'',333,0,0,'','','html1','[Linux] 라즈베리파이 watchdog으로 자동 재부팅하기','<p><span style=\"color: #404040; font-family: 굴림;\">라즈베리파이가 사용중 먹통(프리즈 freez)현상으로 동작이 이상이 있을때&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">watchdog 을 이용하여 자동으로 재부팅하기 위한 방법.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">1. 커널에 라즈베리파이 모듈을 추가&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; sudo modrpobe bcm2835_wdt&nbsp; //이전버전 sudo modprobe bcm2708_wdog&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. /etc/modules에 칩셋 모듈 이름을 등록 (vi로 직접 에디터 해도 무방)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; sudo echo \"bcm2835_wdt\" &gt;&gt; /etc/modules&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3. watchdog, chkconfig 설치&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; sudo apt-get install watchdog chkconfig&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">4. 부팅시 시작하도록 등옥&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; sudo chkconfig watchdog on&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">5. watchdog 설정파일을 수정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; sudo vi /etc/watchdog.conf&nbsp; //아래 라인 주석# 삭제&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; 10 line:&nbsp; &nbsp; max-load-1&nbsp; &nbsp; = 24&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; 23 line:&nbsp; &nbsp; watchdog-device = /dev/watchdog&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">6. watchdog을 실행&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; sudo service watchdog start</span></p>','https://blog.acidpop.kr/182','https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=100594',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:15:32',0,'2019-04-26 15:15:32','210.101.103.92','','','','','','','','','','','',''),(334,-334,'',334,0,0,'','','html1','[Linux] gstreamer를 이용한 영상 중계','<table width=\"100%\" cellpadding=\"5\" style=\"font-family: 굴림;\">\r\n   <tbody>\r\n      <tr>\r\n         <td class=\"lh\" height=\"100\" style=\"color: #222222; line-height: 18px; word-break: break-all;\"><span class=\"content\" style=\"color: #404040;\">*gst-launch-1.0 명령어 구조&nbsp;<br />gst-launch-1.0 보내려는 영상 또는 음성의 위치 | 보내는 방식 | 받는 곳의 위치&nbsp;<br />(1) 보내는쪽 : gst-launch-1.0 소스 위치 | 전송 방식 | 전송 목적지IP&nbsp; &lt;-- tcp/udp 모두 사용가능&nbsp;<br />&nbsp; &nbsp; 받는쪽&nbsp; : gst-launch-1.0 자기IP | 전송 방식 | autovideosink&nbsp;<br />&nbsp; &nbsp;&nbsp;<br />tcp ex) 보내는쪽 : gst-launch-1.0 보내는 영상 | 전송 방식 | tcpclientsink host=전송 목적지IP&nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; 받는쪽&nbsp; : gst-launch-1.0 tcpserversrc | 전송 방식 | audovideosink&nbsp;<br />udp ex) 보내는쪽 : gst-launch-1.0 보내는 영상 | 전송 방식 | udpsink host=전송 목적지IP&nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; 받는쪽&nbsp; : gst-launch-1.0 udpsrc host=필요없슴 | 전송 방식 | audovideosink&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br /><br />(2) 보내는쪽 : gst-launch-1.0 소스 위치 | 전송 방식 | 전송하는 자신IP &lt;-- 이경우 보내는쪽이 스트리밍 서버가 됨/tcp만 사용가능&nbsp;<br />&nbsp; &nbsp; 받는쪽&nbsp; : gst-launch-1.0 전송 소스쪽IP | 전송 방식 | autovideosink&nbsp;<br />tcp ex) 보내는쪽 : gst-launch-1.0 보내는 영상 | 전송 방식 | tcpserversink host=전송하는 자신IP&nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; 받는쪽&nbsp; : gst-launch-1.0 tcpclientsrc host=전송 소스쪽IP | 전송 방식 | audovideosink&nbsp;<br /><br />*udp source / host=받는 컴퓨터IP&nbsp;<br />*받는 컴퓨터IP를 지정해서 영상을 스트리밍&nbsp;<br />raspivid -n -t 0 -w 1280 -h 720 -fps 30 -hf -vf -b 50000000 -o - | gst-launch-1.0 -e -vvvv fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=119.70.223.88 port=8250&nbsp;<br /><br />*tcp source / host=보내는 컴퓨터IP&nbsp;<br />*보내는 컴퓨터(라즈베리파이 등)가 스트리밍 서버가 되어 접속을 대기&nbsp;<br />raspivid -n -t 0 -w 1280 -h 720 -fps 30 -hf -vf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=192.168.15.191 port=5000&nbsp;<br /><br />*udp get viewer&nbsp;<br />gst-launch-1.0 -e -v udpsrc port=5000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false&nbsp;<br /><br />*tcp get viewer&nbsp;<br />gst-launch-1.0 -v tcpclientsrc host=119.70.223.88 port=8255 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false&nbsp;<br /><br />*중계용 udp&nbsp;<br />gst-launch-1.0 -v udpsrc port=8250 ! application/x-rtp ! rtph264depay ! h264parse ! rtph264pay config-interval=1 pt=96 ! tcpserversink host=192.168.219.200 port=8255&nbsp;<br /><br />---------------------------------------------------------------&nbsp;<br /><br />*중계서버 총정리&nbsp;<br />1) 보내는 원 소스쪽 라즈베리파이(udp로 집의 고정IP아래 포트포워딩 라즈베리파이로 영상 push)&nbsp;<br />raspivid -n -t 0 -w 1280 -h 720 -fps 30 -hf -vf -b 50000000 -o - | gst-launch-1.0 -e -vvvv fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=119.70.223.88 port=8250&nbsp;<br /><br />2) 중계 라즈베리파이(8250포트로 들어오는 udp영상을 8255포트로 tcp로 스트리밍서버 개설)&nbsp;<br />gst-launch-1.0 -v udpsrc port=8250 ! application/x-rtp ! rtph264depay ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=192.168.219.200 port=8255&nbsp;<br /><br />3) 보는쪽 장치(중계 라즈베리 파이쪽의 8255포트에 접속하여 영상보기)&nbsp;<br />gst-launch-1.0 -v tcpclientsrc host=119.70.223.88 port=8255 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false</span><a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gnuboard.php&amp;bo_table=Computer&amp;page=4&amp;wr_id=31195\" style=\"text-decoration-line: none; color: #3a4e40;\" target=\"_blank\"></a><a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gnuboard.php&amp;bo_table=Computer&amp;page=4&amp;wr_id=31195\" style=\"text-decoration-line: none; color: #3a4e40;\" target=\"_blank\"></a></td>\r\n         </tr>\r\n      <tr></tr>\r\n      </tbody>\r\n   </table>','','',0,0,3,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:15:43',0,'2019-04-26 15:15:43','210.101.103.92','','','','','','','','','','','',''),(335,-335,'',335,0,0,'','','html1','[Linux] rc.local문제','<h3 class=\"post-title entry-title\" itemprop=\"name\" style=\"margin: 0.75em 0px 0px; position: relative; font-variant-numeric: normal; font-variant-east-asian: normal; font-weight: normal; font-stretch: normal; font-size: 22px; line-height: normal; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #222222; background-color: #ffffff;\">라즈베리 파이에서 systemd를 사용해 부팅시 프로그램을 자동 실행 (Execute script on boot using systemd)</h3>\r\n<div class=\"post-header\" style=\"line-height: 1.6; margin: 0px 0px 1.5em; font-size: 10.8px; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; background-color: #ffffff;\">\r\n   <div class=\"post-header-line-1\">&nbsp;</div>\r\n   </div>\r\n<div class=\"post-body entry-content\" id=\"post-body-945932860221867045\" itemprop=\"description articleBody\" style=\"width: 700px; font-size: 13.2px; line-height: 1.4; position: relative; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; background-color: #ffffff;\">\r\n   <div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"https://1.bp.blogspot.com/-DODaOXicO_g/VzU9nl0YPWI/AAAAAAAAE_4/rxezyFiuFfskuBGaX693LNznX9QBud_jQCLcB/s1600/EB729FC7-D8ED-4317-8611-9BCBD9CEB8C4.png\" imageanchor=\"1\" style=\"text-decoration-line: none; color: #7c93a1; margin-left: 1em; margin-right: 1em;\" target=\"_blank\"><img border=\"0\" height=\"306\" src=\"https://1.bp.blogspot.com/-DODaOXicO_g/VzU9nl0YPWI/AAAAAAAAE_4/rxezyFiuFfskuBGaX693LNznX9QBud_jQCLcB/s640/EB729FC7-D8ED-4317-8611-9BCBD9CEB8C4.png\" width=\"640\" style=\"border: 1px solid rgb(238, 238, 238); position: relative; padding: 5px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; box-shadow: rgba(0, 0, 0, 0.1) 1px 1px 5px;\" /></a></div>\r\n   <br /><br /><br />\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">Raspbian 최신버젼이 릴리즈 되면서 cron이나 rc.local을 사용해 파이선 스크립트를 부팅시 자동실행 시키는 데서 고생하기 시작하였다. Raspbian의 부트 순서가 변경되어 이 프로세스들이 다른 시점에서 실행되기 때문인 것으로 보인다. 이것이 얼마나 문제가 되는지는 실행할 파이선 스크립트가 어떤 일을 하고 어떤 리소스를 필요로 하는가에 따라 치명적일 수도 있고 별 문제가 되지 않을 수도 있다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">부팅시 실행될 파이선 스크립트가 실행 시점에서 어떤 시스템 기능을 필요로 한다면 이 문제는 매우 치명적이다. 일반적으로 다음과 같은 것들이 포함된다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">&nbsp;</div>\r\n   <ul style=\"padding: 0px 2.5em; margin: 0.5em 0px; line-height: 1.4; font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">\r\n      <li style=\"padding: 0px; margin: 0px 0px 0.25em;\">네트웍이 연결되어 있어야 함</li>\r\n      <li style=\"padding: 0px; margin: 0px 0px 0.25em;\">/home/pi 디렉토리가 마운트 되어 읽을 수 있어야 함</li>\r\n      <li style=\"padding: 0px; margin: 0px 0px 0.25em;\">시스템의 시간이 NTP로 업데이트 되어야 함</li>\r\n      </ul>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">&nbsp;</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">그래서 커스텀 기능을 실행시키는데 권자오디는 방법이라 여려 리눅스 패키지에서 적용하고 있는 ’systemd’를 사용하기로 했다. systemd는 리눅스 시스템의 설정을 관리하기 위한 소프트웨어 툴로 이전에 동일한 목적으로 사용되던 여러 툴들을 대체하기 위한 목적으로 만들어 졌다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">systemd는 각자의 수준에 따라 매우 쉽거나 또는 매우 공포스러울 수 있다. 여기서는 최소한의 수고로 단지 스크립트 하나를 실행되도록 하는것이 목표이다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;;\"><span style=\"font-size: large;\">Step 1 - 파이선 스크립트</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">&nbsp;</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">여기서 사용할 예제 스크립트는 /home/pi 디렉토리에 저장되어 있고 이름은 ‘myscript.py’이다. &nbsp;</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;;\"><span style=\"font-size: large;\">Step 2 - Unit 파일 만들기</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">&nbsp;</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">다음으로 해야 할 일은 설정 파일(aka Unit file)을 만들어 systemd에게 언제 무엇을 해야 하는지 알려줘야 한다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">$&nbsp;<b>sudo vi /lib/systemd/system/myscript.service</b></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">에디터를 실행한 다음 아래의 내용을 입력한다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">[Unit] Description=My Script Service</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">After=multi-user.target</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\"><br /></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">[Service]</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">Type=idle</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">ExecStart=/usr/bin/python /home/pi/myscript.py</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\"><br /></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">[Install]</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">WantedBy=multi-user.target</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">위의 파일은 “My Script Service”라는 이름의 새 서비스를 정의하고, ‘multi-user’ 환경이 사용 가능해 졌을 때 서비스를 한번만 실행하도록 요구한다. “ExecStart” 파라미터는 실행하길 원하는 명령어를 지정한다. “Type”은 모든 것이 다 로드 된 후에만 ExecStart 명령이 실행되는걸 보장하기 위해 ‘idle’로 설정한다. 예제에 사용한 GPIO 기반의 스크립트는 디폴트인 ‘simple’에서는 동작하지 않는다.&nbsp;</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">파일의 패스는 절대주소여야 하고 스크립트의 위치 뿐 아니고 파이선의 위치까지도 완전히 지정해 줘야만 한다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">스크립트의 텍스트 출력을 로그파일에 저장하고 싶으면 ExecStart 라인을 다음과 같이 바꾸면 된다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">ExecStart=/usr/bin/python /home/pi/myscript.py &gt; /home/pi/myscript.log 2&gt;&amp;1</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">Unit 파일의 퍼미션은 644로 설정해야 한다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">$&nbsp;<b>sudo chmod 644 /lib/systemd/system/myscript.service</b></span></div>\r\n   <div style=\"font-size: 14px;\"><span style=\"font-family: &quot;Helvetica Neue&quot;, Arial, Helvetica, sans-serif;\"><br /></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-size: large;\"><span style=\"font-family: &quot;Helvetica Neue&quot;, Arial, Helvetica, sans-serif;\">Step 3 - systemd 설정</span></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">&nbsp;</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">unit파일이 정의되었으므로 systemd에게 부팅시 이것을 사용하도록 알려줘야 한다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">$&nbsp;<b>sudo systemctl daemon-reload</b></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">$&nbsp;<b>sudo systemctl enable myscript.service</b></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">이제 시스템을 리부트 시키면 myscript.py가 자동으로 실행될 것이다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">$&nbsp;<b>sudo reboot</b></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;;\"><span style=\"font-size: large;\">Step 4 - 서비스 상태 확인</span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">&nbsp;</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">서버스의 상태는 다음 명령으로 확인해 볼 수 있다.</div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><br /></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\">$&nbsp;<b>sudo systemctl status myscript.service</b></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\"><b>====================================================================================================</b></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\"><span style=\"font-family: &quot;Courier New&quot;;\"><b>&nbsp;</b></span></div>\r\n   <div style=\"font-family: &quot;Helvetica Neue&quot;; font-size: 14px;\">\r\n      <h3 class=\"post-title entry-title\" itemprop=\"name\" style=\"margin: 0.75em 0px 0px; position: relative; font-variant-numeric: normal; font-variant-east-asian: normal; font-weight: normal; font-stretch: normal; font-size: 22px; line-height: normal; font-family: &quot;Trebuchet MS&quot;, Trebuchet, Verdana, sans-serif; color: #666666;\">(raspberry pi) rc.local에 자동 실행되는 프로그램을 등록해도 실행이 안될때</h3>\r\n      <div class=\"post-header\" style=\"line-height: 1.6; margin: 0px 0px 1.5em; font-size: 10.8px; color: #666666; font-family: &quot;Trebuchet MS&quot;, Trebuchet, Verdana, sans-serif;\">\r\n         <div class=\"post-header-line-1\">&nbsp;</div>\r\n         </div>\r\n      <div class=\"post-body entry-content\" id=\"post-body-5645034669634187954\" itemprop=\"description articleBody\" style=\"width: 546px; font-size: 13.2px; line-height: 1.4; position: relative; color: #666666; font-family: &quot;Trebuchet MS&quot;, Trebuchet, Verdana, sans-serif;\">증상: 제가 만들었던 프로그램은 db에 연결해서 1분마다 db데이터를 체크하는 프로그램이었습니다. 이 프로그램을 rc.local에 등록해서 라즈베리파이가 부팅될 때 실행되고, 해당 프로그램은 while문으로 무한반복되는 구조였습니다. 그런데 rc.local에 등록해도 백그라운드로 실행되지 않는 문제가 발생했습니다.<br /><br />해결: rc.local에 추가한 프로그램이 작동되는지 여부를 확인하기 위해 test.py 프로그램을 작성해서 입력했습니다.<br />- test.py<br /><br />import time<br />while True:<br />&nbsp; &nbsp; &nbsp; &nbsp;time.sleep(60)<br /><br />-rc.local에 추가한 사항<br />&nbsp; &nbsp; python /var/www/html/test.py &amp;<br /><br /><br />확인결과, 정상작동 했습니다. 일단, rc.local에 등록된 프로그램은 실행된다는 것이었고, sleep 60초를 걸어놓은 무한루프 프로그램도 잘 동작한다는 결과를 도출했습니다.<br />그래서 문제의 원인이 뭔지를 고민하던 차에, raspberry pi를 재부팅하고 웹페이지를 요청할 때, html 코드는 정상적으로 출력되지만, mysql db에 연결해서 데이터 로드하는 부분은 \'mysql이 연결되지 않았습니다\' 와 같은 메시지가 출력되는것에 착안해서, mysql에 연결해서 로드하는 부분을 try 부분에 넣고 except 부분에는 time.sleep(60)을 넣고, else 부분은 return을 넣고 무한루프를 돌렸습니다.<br />mysql를 연결 및 데이터 로드를 시도해보고, 오류 발생시 sleep 60초가 실행되고 60초 후에 다시 시도합니다. 그리고 연결 및 데이터 로드가 완료되면, return되어 db 데이터 로드 로직이 완료됩니다.<br /><br />-get.py(예제)<br /><br />import MySQLdb<br />import time<br /><br />def getTimetable():<br />&nbsp; &nbsp; while True:<br />&nbsp; &nbsp; &nbsp; &nbsp; try:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; db 연결 및 데이터 로드 로직<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; db_record = 로드된 db 데이터<br />&nbsp; &nbsp; &nbsp; &nbsp; except:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; time.sleep(60)<br />&nbsp; &nbsp; &nbsp; &nbsp; else:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return db_record</div>\r\n      <span style=\"font-family: &quot;Courier New&quot;;\"></span></div>\r\n   </div>','https://arsviator.blogspot.com/2016/05/systemd-execute-script-on-boot-using.html','http://seungmun.blogspot.com/2016/05/raspberry-pi-rclocal.html',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:16:33',0,'2019-04-26 15:16:33','210.101.103.92','','','','','','','','','','','',''),(336,-336,'',336,0,0,'','','html1','[Linux] 라즈베리파이 개론 - HDMI 출력을 RGB(D-SUB)로','<p><span style=\"color: #404040; font-family: 굴림;\">1. 라즈비안 MicroSD를 PC에 연결&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. /boot/config.txt 수정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; hdmi_force_hotplug의 값을 1로 바꾼다.&nbsp; //주석이 있으면 제거</span></p>','https://nogada-lab.tistory.com/16','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:16:53',0,'2019-04-26 15:16:53','210.101.103.92','','','','','','','','','','','',''),(337,-337,'',337,0,0,'','','html1','[ETC] [앱인벤터][아두이노] 초음파센서 값 모니터링','<p><span style=\"color: #404040; font-family: 굴림;\">int echo = 3;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">int trig = 2; // 회로를 보여드리지 않아도 각 핀이 연결된곳을 알 수 있습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void setup() {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.begin(9600); //시리얼통신에 baud rate를 9600으로 지정하였습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; pinMode(trig,OUTPUT);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; pinMode(echo,INPUT);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void loop() {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; float duration,distance;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; char str[5];&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; digitalWrite(trig,HIGH);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; delay(10);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; int upper,lower; //결국 정수부와 소수부를 나누어서 저장하는 것입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; digitalWrite(trig,LOW);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; duration = pulseIn(echo,HIGH);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; distance = duration/29/2; // 여기까지는 기본적인 초음파 센서 수신회로 입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; if(distance&gt;100){ distance = 99.99;} // 이러한 설정을 해둔것은&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; upper = distance; //upper은 정수형이기 때문에 실수형의 distance의 정수부분만 남기고 소숫점 아래의 값은 저장이 되지 않습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; lower = ((float)distance*100); //실수형에서 100을 곱하여 소숫점 아래의 값을 정수부로 끌어올립니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; lower = lower%100; //거기서 100의 나머지를 구하여 본래 소숫점 아래의 값만을 남깁니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; sprintf(str,\"%02d.%02d\",upper,lower);//그리고 sprintf를 통하여 각 2자리의 값 사이에 임의로 소숫점을 넣어 실수값을 속이도록 합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(str); // 문자열로 저장된 초음파센서의 값을 출력합니다.(참고로 자동으로 내려쓰기가 되는 println은 사용하시면 내려쓰기 또한 문자로 취급됩니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; delay(500);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}</span></p>','https://cafe.naver.com/iotstory/158','',0,0,3,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:17:24',2,'2019-04-26 15:17:24','210.101.103.92','','','','','','','','','','','',''),(338,-338,'',338,0,0,'','','html1','[ETC] 멀티미터로 전류측정하기','<p><span style=\"color: #404040; font-family: 굴림;\">참조 사이트 &gt;&gt;&nbsp;</span><a href=\"http://m.blog.naver.com/dyd9999/70030400193\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://m.blog.naver.com/dyd9999/70030400193</a></p>','https://kin.naver.com/qna/detail.nhn?d1id=11&dirId=1118&docId=60268678','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:17:52',1,'2019-04-26 15:17:52','210.101.103.92','','','','','','','','','','','',''),(339,-339,'',339,0,0,'','','html1','[ETC] 커패시터 용량읽는법','<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><strong>각종 콘덴서 용량 읽는 방법</strong></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">전자부품 소자중 콘덴서의 용량을 읽는 방법입니다.&nbsp; 우선 콘덴서는 원하는 주파수대만 취할수</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">있는 회로를 구성하거나 능동소자의 증폭된 신호를 다음 단계로 넘기는 일 또는 안정적인 전압을</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">구성하는 일등 다양한 기능을 구성하기에 따라 하게 됩니다.</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; display: inline-block; width: 283px; height: auto; max-width: 100%;\"><span data-url=\"https://t1.daumcdn.net/cfile/tistory/224CA53853944BD012?download\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/224CA53853944BD012\" width=\"283\" filename=\"콘덴서용량읽는법_01.png\" filemime=\"image/jpeg\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; cursor: pointer; max-width: 100%; height: auto;\" /></span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">콘덴서 용량의 단위는 F(패러드,㎌,㎋,㎊) 이며 기호는 \'C\'로 표시합니다.</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">콘덴서는 두개의 전극이 마주보는 구조로 일정한 전하를 저장할 수 있습니다. 마주보는 전극이</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">넓을수록, 가까울수록 콘덴서의 용량이 증가합니다.</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">콘덴서는 교류만 통과시키고 직류는 차단하게 됩니다. 콘덴서를 통과한 전류는 위상이</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">전압보다 90도 앞서게 됩니다.</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\"></span>&nbsp;</p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">콘덴서의 종류입니다.</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; display: inline-block; width: 683px; height: auto; max-width: 100%;\"><span data-url=\"https://t1.daumcdn.net/cfile/tistory/251C023E539458C00C?download\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/251C023E539458C00C\" width=\"683\" filename=\"콘덴서용량읽는법_06.png\" filemime=\"image/jpeg\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; cursor: pointer; max-width: 100%; height: auto;\" /></span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\"></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; display: inline-block; width: 470px; height: auto; max-width: 100%;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/227A90335394504D1B\" width=\"470\" filename=\"콘덴서용량읽는법_02.png\" filemime=\"image/jpeg\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; max-width: 100%; height: auto;\" /></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">용량 읽는법</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">위의 좌측 그림 세자리 숫자중 첫째자리 둘째자리가 값이고 세번째 자리 숫자가 승수를 의미합니다.</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">기본단위는 ㎊입니다.100㎊이하 콘덴서 용량은 그대로 표시합니다.</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">154=&gt;15*10^4㎊=150,000㎊=0.15㎌</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">102=&gt;10*10^2㎊=1,000㎊=0.001㎌</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span style=\"font-size: 11pt;\">103=&gt;10*10^3㎊=10,000㎊=0.01㎌</span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">104=&gt;10*10^4㎊=100,000㎊=0.1㎌</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">105=&gt;10*10^5㎊=1,000,000㎊=1㎌</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">106=&gt;10*10^6㎊=10,000,000㎊=10㎌</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">223=&gt;22*10^3㎊=22,000㎊=0.022㎌</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">224=&gt;22*10^4㎊=220,000㎊=0.22㎌</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">473=&gt;47*10^3㎊=47,000㎊=0.047㎌</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\"><span style=\"font-size: 11pt;\"></span></span></span>&nbsp;</p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">세자리 다음에는&nbsp;<strong>알파벳 문자가&nbsp;</strong>있습니다. 이것은 콘덴서의 오차 등급을 말합니다.</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">10㎊이상의 콘덴서에서는 오차를 %로 나타내며, 10㎊이하에서는 ㎊로 표시합니다.</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">아래 도표는 콘덴서의 기호별로 오차를 나타낸 표입니다.</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; display: inline-block; width: 683px; height: auto; max-width: 100%;\"><span data-url=\"https://t1.daumcdn.net/cfile/tistory/2242B136539453572A?download\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/2242B136539453572A\" width=\"683\" filename=\"콘덴서용량읽는법_03.png\" filemime=\"image/jpeg\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; cursor: pointer; max-width: 100%; height: auto;\" /></span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">전해콘덴서 같은 경우에는 용량을 콘덴서 표면에 있는 값을 그대로 읽으면 되고 여기서 유의할점은</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">콘덴서의 내압입니다. 콘덴서의 내압은 표면에 용량과 함께25V 60V 이렇게 쉽게 씌여저 있으며</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">숫자와 알파벳의 조합으로 내압을 나타낸 것도 있습니다.</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">아래 도표에서 예를 들면 표기가 \'1E\'이면 25V, \'2C\'이면 160V 이렇게 읽으면 됩니다.</span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; float: none; text-align: center; clear: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; display: inline-block; width: 683px; height: auto; max-width: 100%;\"><span data-url=\"https://t1.daumcdn.net/cfile/tistory/254E633A5394545519?download\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/254E633A5394545519\" width=\"683\" filename=\"콘덴서용량읽는법_04.png\" filemime=\"image/jpeg\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; cursor: pointer; max-width: 100%; height: auto;\" /></span></span></p>\r\n<p style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8; text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 11pt;\">또 전해 콘덴서는 온도등급이 있습니다. 대게 85도와 105도 입니다.</span></span></p>\r\n<p><br style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\" /><br style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\" /><span style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">출처:&nbsp;</span><a href=\"https://juke.tistory.com/168\" style=\"text-decoration-line: none; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\" target=\"_blank\">https://juke.tistory.com/168</a><span style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">&nbsp;[Basic]</span></p>','https://juke.tistory.com/168','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:18:13',0,'2019-04-26 15:18:13','210.101.103.92','','','','','','','','','','','',''),(340,-340,'',340,0,0,'','','html1','[ETC] SMD 저항용량 읽는법','<table cellspacing=\"0\" cellpadding=\"3\" width=\"95%\" bgcolor=\"efefef\" height=\"100\" style=\"font-family: 굴림; table-layout: fixed;\">\r\n   <tbody>\r\n      <tr bgcolor=\"white\">\r\n         <td style=\"font-size: 9pt; line-height: 16.8px; word-break: break-all; padding: 10px;\"><img src=\"http://skeng.ivyro.net/skeng/data/sk44/1372504857/chip.jpg\" border=\"0\" name=\"zb_target_resize\" style=\"cursor: pointer;\" /><br />\r\n            <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" style=\"table-layout: fixed;\"><colgroup><col width=\"100%\" /></colgroup>\r\n               <tbody>\r\n                  <tr>\r\n                     <td valign=\"top\" style=\"font-size: 9pt; line-height: 16.8px;\">[샘플 사진 입니다.]<br />[위 샘플 수치]<br />470 = 470 옴<br />103 = 10 K옴<br />473 = 47 K 옴<br /><br />그리고 크기도 저의 경우로 도수가 아주 높은 돗보기를 이용하여야만 겨우 보일 만큼 아주 작게 쓰여저 있습니다. ^.^<br /><br />정밀한 mm 자 를 놓고 같이 촬영 하였으니 크기를 비교하여 보시기 바랍니다.<br />이런 칩 저항을 SMD 저항 이라고 도 하며 크기 에 대한 규격 이 있습니다.<br /><br />크게 두가지 이며 칩의 크기를 인치 로 표현 하는 것과 미리 로 표기 하는 것이 있습니다.<br /><br />단위(inch)&nbsp;&nbsp;단위(mm단위&nbsp;<br />0402&nbsp;&nbsp;1005&nbsp;<br />0603&nbsp;&nbsp;1608&nbsp;<br />0805&nbsp;&nbsp;2012&nbsp;<br />1206&nbsp;&nbsp;3216&nbsp;<br />1210&nbsp;&nbsp;3225&nbsp;<br />1812&nbsp;&nbsp;4532&nbsp;<br />2010&nbsp;&nbsp;5025&nbsp;<br />1512&nbsp;&nbsp;6432&nbsp;<br />mm 단위에서 저항크기에 따른 표기 는 대략 다음 과 같이 사용 되는것으로 알고 있습니다.<br />(인치 단위는 위표로 비교하여 보시면 될 것 입니다.)<br /><br />1005(1/16W) : 1.0×0.5<br />1608(1/10W,1/16W) : 1.6×0.8<br />2012(1/8W,1/10W) : 2.0×1.25<br />3216(1/4W,1/8W) : 3.2×1.6<br />3225(1/4W) : 3.5×2.5<br />4516<br />4532<br />5025(1/2W) : 5.0×2.5<br />6432(1W) : 6.4×3.2<br /><br />그리고 부품에 마킹되어있는 저항값 을 읽는 방법 입니다.<br />위의 샘플 사진을 보시면 돗보기 아니곤 볼수없는 글자가 부품에 인쇄되어 있답니다.<br />101, 102, 103, 104, 105 ... ^.^<br />Marking 해석방법&nbsp;<br />3자리 marking : 103 = 10 X 103 = 10000 = 10㏀&nbsp;<br />R22 = 0.22&nbsp;<br />4자리 marking : 5621 = 562 X 101 = 5620 = 5.62㏀&nbsp;<br />3R48 = 3.48&nbsp;&nbsp;&nbsp;&nbsp;(\'R\'은 \'Round\'를 의미 → 소수점)&nbsp;<br />[샘플 사진 입니다.]<br />[위 샘플 수치]<br /><br />470 = 470 옴<br />103 = 10 K옴<br />473 = 47 K 옴</td>\r\n                     </tr>\r\n                  </tbody>\r\n               </table>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>','http://skeng.ivyro.net/skeng/zboard.php?id=sk44&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=hit&desc=asc&no=24','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:18:38',0,'2019-04-26 15:18:38','210.101.103.92','','','','','','','','','','','',''),(341,-341,'',341,0,0,'','','html1','[Arduino] L293D 모터드라이브쉴드 회로도','<p><a href=\"https://learn.adafruit.com/adafruit-motor-shield?view=all#overview\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://learn.adafruit.com/adafruit-motor-shield?view=all#overview</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://mechasolution.com/shop/goods/goods_view.php?goodsno=8370&amp;category=045\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://mechasolution.com/shop/goods/goods_view.php?goodsno=8370&amp;category=045</a></p>','','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:19:07',1,'2019-04-26 15:19:07','210.101.103.92','','','','','','','','','','','',''),(342,-342,'',342,0,0,'','','html1','[Arduino] L298N 모터드라이버 회로','<p><a href=\"https://www.sunfounder.com/wiki/index.php?title=Motor_Driver_Module-L298N\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://www.sunfounder.com/wiki/index.php?title=Motor_Driver_Module-L298N</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">참고 블로그&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://deneb21.tistory.com/281\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://deneb21.tistory.com/281</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://blog.daum.net/rockjjy99/1933\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://blog.daum.net/rockjjy99/1933</a></p>','','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:19:30',1,'2019-04-26 15:19:30','210.101.103.92','','','','','','','','','','','',''),(343,-343,'',343,0,0,'','','html1','[ETC] Adafruit 8-Channel PWM or Servo','<p>...</p>','https://learn.adafruit.com/adafruit-8-channel-pwm-or-servo-featherwing?view=all','http://arduinolearning.com/code/arduino-pca9685-example.php',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:20:24',2,'2019-04-26 15:20:24','210.101.103.92','','','','','','','','','','','',''),(344,-344,'',344,0,0,'','','html1','[ETC] SPX3819 Regulator','<p><span style=\"color: #404040; font-family: 굴림;\">1. 3.3V output&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://eleparts.co.kr/EPXH8KCR\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://eleparts.co.kr/EPXH8KCR</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. 5.0V outpu&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://eleparts.co.kr/EPXHP4C9\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://eleparts.co.kr/EPXHP4C9</a></p>','https://cdn-learn.adafruit.com/assets/assets/000/028/445/original/microcomputers_feathershc.png?1446678127','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:21:02',2,'2019-04-26 15:21:02','210.101.103.92','','','','','','','','','','','',''),(345,-345,'',345,0,0,'','','html1','[ETC] HC-06 자동 설정 장치 만들어보기! [출처] HC-06 자동 설정 장치 만들어보기','<p><span style=\"color: #404040; font-family: 굴림;\">HC-06자동 설정장치를 만들게 된이유는 간혹 상품이 주문될때 HC06 두개를 슬레이브와 마스터로 짝을 맞추어 설정해달라는 요청이 오는데 적은 수량은 하나하나 명령어를 넣어 주어서 해줄 수 있으나, 300개 단위로 요청이 들어오면 도무지 손으로 하기에는 어려운 수량이 되어버립니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">그래서 급한대로 장치를 만들어 보게 되었습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">만능기판에 바로 납땜해서 보드형으로 사용할 수 있도록 해보았습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">노란버튼 -&gt; 마스터로 설정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">초록버튼 -&gt; 슬레이브로 설정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">파란버튼 -&gt; 장치 번호 1씩 추가&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">이런식으로 기능을 설정하고 만들어보았습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">------------------------------------------------------------------&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">#include &lt;SoftwareSerial.h&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">SoftwareSerial btseri(2, 3);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">int button[] = {4,5,6};&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">int count = 0;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void setup() {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.begin(9600);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; btseri.begin(9600);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; for(int i = 0;i&lt;3;i++){&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; pinMode(button[i],INPUT_PULLUP);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; }&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void loop() {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; switch(ReadButton()){&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; case 0://set Master&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; Serial.println(\"set Master\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; PrintReq(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT+ROLE=M\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; PrintReq(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT+NAMEBT\"+String(count));&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; PrintReq(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT+RESET\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; PrintReq(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT+RESET\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; delay(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; PrintReq(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; break;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; case 1://set Slave&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; PrintReq(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT+ROLE=S\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; PrintReq(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT+NAMEBT\"+String(count));&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; PrintReq(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT+RESET\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; delay(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; SendAT(\"AT\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; PrintReq(1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; break;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; case 2://add count&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; count++;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; Serial.println(count);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; break;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; }&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">int ReadButton(){&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; for(int i = 0;i&lt;3;i++){&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; if(digitalRead(button[i]) == LOW){&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; delay(500);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; return i;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; }&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; }&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; return -1;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void SendAT(String str){&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.println(str);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; btseri.print(str);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; //btseri.print(\"\\n\\r\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void PrintReq(unsigned long t){&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; unsigned long last = millis();&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; while(millis() - last &lt; t){&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; while(btseri.available() &gt; 0){&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; Serial.write(btseri.read());&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; }&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; }&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.println(\".\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">[출처] HC-06 자동 설정 장치 만들어보기!|작성자 오픈랩</span></p>','https://blog.naver.com/roboholic84/220934980612?proxyReferer=http%3A%2F%2Fgeoworld.cafe24.com%2Fgnu3%2F%3Fdoc%3Dbbs%2Fgblink.php%26bo_table%3DComputer%26wr_id%3D31206%26index%3D1','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:21:44',2,'2019-04-26 15:21:44','210.101.103.92','','','','','','','','','','','',''),(346,-346,'',346,0,0,'','','html1','[Android] 안드로이드 스튜디오에서 타이틀바 제거','<p><span style=\"color: #404040; font-family: 굴림;\">&lt;resources&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &lt;!-- Base application theme. --&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &lt;style name=\"AppTheme\" parent=\"Theme.AppCompat.Light.DarkActionBar\"&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- Customize your theme here. --&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;item name=\"colorPrimary\"&gt;@color/colorPrimary&lt;/item&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;item name=\"colorPrimaryDark\"&gt;@color/colorDarkBlue&lt;/item&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;item name=\"colorAccent\"&gt;@color/colorAccent&lt;/item&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- No Title Bar--&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;item name=\"windowActionBar\"&gt;false&lt;/item&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;item name=\"windowNoTitle\"&gt;true&lt;/item&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &lt;/style&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&lt;/resources&gt;&nbsp;</span></p>','https://commin.tistory.com/63','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:22:10',0,'2019-04-26 15:22:10','210.101.103.92','','','','','','','','','','','',''),(347,-347,'',347,0,0,'','','html1','[Android] 안드로이드 스튜이도에서 resouce위치','<table width=\"100%\" cellpadding=\"5\" style=\"font-family: 굴림;\">\r\n   <tbody>\r\n      <tr>\r\n         <td class=\"lh\" height=\"100\" style=\"color: #222222; line-height: 18px; word-break: break-all;\"><span class=\"content\" style=\"color: #404040;\">앱파일폴더 &gt; app &gt; src&nbsp;&gt; main &gt;res</span><a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gnuboard.php&amp;bo_table=Computer&amp;page=3&amp;wr_id=31208\" style=\"text-decoration-line: none; color: #3a4e40;\" target=\"_blank\"></a><a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gnuboard.php&amp;bo_table=Computer&amp;page=3&amp;wr_id=31208\" style=\"text-decoration-line: none; color: #3a4e40;\" target=\"_blank\"></a></td>\r\n         </tr>\r\n      <tr></tr>\r\n      </tbody>\r\n   </table>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:22:21',0,'2019-04-26 15:22:21','210.101.103.92','','','','','','','','','','','',''),(348,-348,'',348,0,0,'','','html1','[Android] 안드로이드 스튜디오에서 shouldOverrideUrlLoading 사용','<p><span style=\"color: #404040; font-family: 굴림;\">private class myweb extends WebViewClient {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; view.loadUrl(request.getUrl().toString());&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">//&nbsp; &nbsp; &nbsp; &nbsp; public boolean shouldOverringUrlLoading(WebView view, String url) {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; view.loadUrl(url);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">//&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; }</span></p>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:22:31',0,'2019-04-26 15:22:31','210.101.103.92','','','','','','','','','','','',''),(349,-349,'',349,0,0,'','','html1','[Android] 안드로이드 스튜디오에서 deprecated된 HttpClient 사용하기 [출처] 안드로이드 스튜디오에서 deprecated된 HttpClient 사용하기','<p><span style=\"color: #404040; font-family: 굴림;\">HttpClient를 계속 사용하려면 gradle 파일을 편집해야 하는데요,&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">프로젝트 폴더\\app\\build.gradle로 이동합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">android 블록 안 아무 곳에&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">useLibrary \'org.apache.http.legacy\'&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">를 입력합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">그렇게 하면 아래와 같이 HttpClient와 관련된 클래스들이 인식되는 것을 볼 수 있습니다.&nbsp;</span></p>','https://blog.naver.com/eominsuk55/220742600852','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:22:59',1,'2019-04-26 15:22:59','210.101.103.92','','','','','','','','','','','',''),(350,-350,'',350,0,0,'','','html1','[Linux] 라즈베리파이 아두이노 시리얼연결(74HC4050D 이용)','<p><span style=\"color: #404040; font-family: 굴림;\">*라즈베리파이 3일경우,&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">1. /boot/config.txt 에 아래사항 추가&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">dtoverlay=pi3-disable-bt&nbsp; //블루투스 비활성화&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">core_freq=250&nbsp; //코어 주파수를 고정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">enable_uart=1&nbsp; //시리얼 콘솔은 활성화&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">참고 &gt;&gt;&nbsp;</span><a href=\"http://arsviator.blogspot.kr/2016/08/3-raspberry-pi-3-uartbluetooth-problem.html\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://arsviator.blogspot.kr/2016/08/3-raspberry-pi-3-uartbluetooth-problem.html</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><a href=\"http://hinco.tistory.com/4\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://hinco.tistory.com/4</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. /boot/cmdline.txt 수정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;console=serial0,115200 부분 삭제</span></p>','','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:23:11',0,'2019-04-26 15:23:11','210.101.103.92','','','','','','','','','','','',''),(351,-351,'',351,0,0,'','','html1','[Arduino] 부트로더 업로드시 에러발생 조치사항','<p><span style=\"color: #404040; font-family: 굴림;\">아두이노 1.6.5 이상에서 부트로더 업로드시 아래 에러 발생.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;***failed;&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">avrdude: WARNING: invalid value for unused bits in fuse \"efuse\", should be set to 1 according to datasheet&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">This behaviour is deprecated and will result in an error in future version&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">You probably want to use 0xfd instead of 0x05 (double check with your datasheet first).&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">---&gt; 아두이노폴더 &gt; hardware &gt; arduino &gt; avr &gt; boards.txt 에서&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">uno.bootloader.extended_fuses=0x05 --- &gt; 0xFD로 수정</span></p>','https://forum.arduino.cc/index.php?topic=425675.0','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:23:30',0,'2019-04-26 15:23:30','210.101.103.92','','','','','','','','','','','',''),(352,-352,'',352,0,0,'','','html1','[ETC] 12V 연납 축전지 충전시간, 방전시간','<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong><font size=\"4\">2. 연(鉛)축전지(=납축전지) + 충전기 + 전압계</font></strong></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>연(鉛)축전지(=납축전지 Lead Storage Battery)</strong></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">연축전지를 겁없이 사긴 했지만 자동차 밧데리 말고는 구경해본적이 없어 나같은&nbsp;<strong>전기맹(電氣盲)</strong>에게는 관리하기가 정말 어려운 놈이라는 걸 깨달았습니다. 12AH - 12V 밧데리 사놓고 보니 무턱대고 막 쓰다보면<strong>(과방전, 과충전)</strong>&nbsp;배터리 끝장난다고 합니다.<strong>&nbsp;&nbsp;</strong>또한 잘못하면&nbsp;<strong>폭발</strong>할 수 있고, 황산이 누출 되어&nbsp;<strong>화상</strong>을 입는다거나 하는 무시무시한 경고메세지가 있습니다. 아 이거 골치아픈 놈입니다.&nbsp; 중학교, 고등학교 때 과학시간에 배운 전기지식만 있어도 이렇게 막막하지 않았을 터인데 세월이 흐르다 보니 전기에 대해 아무것도 모르는 자신을 발견합니다. 하지만 좌절만 하고 있을 순 없는 지라 인터넷의 도움을 받아 좀 공부해보기로 마음 먹었습니다. 무보수밀폐형이고 생각보다 그리 위험하지는 않다는 걸 깨달았습니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\"><strong>ES Battery (Electrolyte Suspention Lead-acid Battery) 중 12AH-12V 형 알아보기</strong></font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong><img src=\"http://www.trucker.co.kr/tau/ludens/autocamping/battery.jpg\" width=\"314\" height=\"264\" align=\"left\" /></strong></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">* 부동충전(Floating) 수명 3년 / Cycle 충전 수명은 600회</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">* 크기 : 151mm(L) * 95mm(W) * 94mm(H)&nbsp;&nbsp;&nbsp;&nbsp;</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">* 무게 : 4Kg</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">내부에는 과산화연판<strong>(Pbo₂)</strong>, 묽은 황산<strong>(2H₂So₄)</strong>, 연판<strong>(Pb)</strong>이 들어있습니다.&nbsp; 얘네들이 화학반응을 일으키면서 물이 생기고 전기가 발생된다고 합니다.&nbsp; 충전하면 원상태로 복구되는&nbsp;<strong>가역(可逆)반응</strong>이 일어납니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 화학 반응식</strong></p>\r\n<table width=\"605\" border=\"0\" style=\"font-family: &quot;Malgun Gothic&quot;;\">\r\n   <tbody>\r\n      <tr>\r\n         <td width=\"119\">\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td width=\"116\">\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td width=\"64\">\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td width=\"41\">\r\n            <div align=\"center\"><font color=\"#FF0000\" size=\"2\"><strong>방전</strong></font></div>\r\n            </td>\r\n         <td width=\"67\">\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td width=\"76\">\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td width=\"76\">\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font color=\"#FF0000\">→</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong>Pbo₂</strong></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><strong>+ 2H₂So₄</strong></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><strong>+ Pb</strong></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font color=\"#FF0000\"></font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><strong>PbSo₄</strong></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><strong>+2H₂O</strong></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><strong>+PbSo₄</strong></div>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font color=\"#0000FF\">←</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><br /></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font color=\"#0000FF\" size=\"2\"><strong>충전</strong></font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">&nbsp;</div>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">양극(과산화연판)</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\"><strong>전해질(묽은황산)</strong><br /></font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">음극(연판)</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\"></font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">양극판</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\"><strong>전해액</strong></font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">음극판</font></div>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 충전 방식 안내</strong></p>\r\n<table width=\"606\" height=\"87\" border=\"1\" style=\"font-family: &quot;Malgun Gothic&quot;;\">\r\n   <tbody>\r\n      <tr bgcolor=\"#999999\">\r\n         <td width=\"148\">\r\n            <div align=\"center\">TYPE</div>\r\n            </td>\r\n         <td width=\"166\">\r\n            <div align=\"center\">VOLTAGE&nbsp;<br />REGULATION</div>\r\n            </td>\r\n         <td width=\"264\">\r\n            <div align=\"center\">INITIAL<br />CURRENT</div>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\">STAND-BY USE</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">13.32 V</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">NO Limit</div>\r\n            </td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\">CYCLIC USE</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">14.4 V</div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\">3.0A Max.</div>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong><font size=\"2\">* STAND-BY USE</font></strong><font size=\"2\">&nbsp;: 트리클 충전(Trickle Charge)이나 부동충전(Floating Charge)에 의하여 정전같은 불시의 사용에 대비하여 항상 충전 상태를 유지하는 상시 대기 충전 방식의 총칭입니다. 온수보일러용으로 쓰일 때는 관계 없는 방식입니다. 충전기가 13.32V를 유지하면 전류세기는 큰 문제가 없다는 뜻입니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\"><strong>* CYCLIC USE</strong>&nbsp;: 충전/방전을 주기적으로 하는 사용환경의 충전방식입니다. 온수보일러용으로 사용하는 방식과 맞는 충전 방식입니다.&nbsp;<strong>방전종지전압(10.5V)</strong>까지 이르지 않게 조심하면서 방전시키고 다시 충전하고 방전하고 충전하고 방전하고.....충전 시에&nbsp;<strong>14.4V</strong>, 전류는<strong>&nbsp;3A</strong>를 넘지 않게 해야 연축전지에 무리가 없습니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 충전 시간 계산 : [정격용량(AH) ÷ 충전전류(A)] * 1.2(충전여유지수)</strong></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong><font size=\"2\">예)&nbsp;</font></strong><font size=\"2\">12AH-12V 연축전지를 13.5V-2A 충전기로 충전 할 때 필요한 시간은?</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">→ 12AH ÷ 2A * 1.2 = 7.2 시간(H) / 납축전지의 Cell당 완충전압은&nbsp;<strong>2.4 V&nbsp;</strong>라 하고 직렬로 6개가 연결되어 있어&nbsp;<strong>완충전압(滿충전)</strong>은 2.4 V * 6 개 =&nbsp;<strong>14.4 V&nbsp;</strong>나옵니다. 즉 충전하면서 전압계로 찍어보았을 때 14.4V가 넘어가면&nbsp;<strong>과충전</strong>&nbsp;위험이 있으니&nbsp;<strong>13.5V&nbsp;</strong>정도 나올 때 충전을 멈추면 배터리 수명을 오래 가져갈 수 있을 거 같습니다. 참고로 충전 시 적당한 전류는 정격용량의 1/10 ~ 1/20 정도가 좋다고 합니다. 정격용량이 12AH인 연축전지는 1.2 ~ 0.6 A로 충전해야 된다는 이야기인데 제 충전기가 2 A 짜리인데..음..뭐 3A Max라고 쓰여있으니 상관없겠지요.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\"><strong>과충전:</strong>&nbsp;과충전은 연축전지의 수명을 단축시킵니다. 과충전시 화학반응은 .......</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 사용 시간 계산 : 정격용량(AH) ÷ 전류(A) * 0.8(과방전 방지를 위한 80% 사용률)</strong></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong><font size=\"2\">예 1)</font></strong><font size=\"2\">&nbsp;DWP-370C 모터가 12V, 250mA 사용할 때, 12V-12AH 연축전지로 몇 시간이나 돌릴 수 있을까?</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">→ 12AH ÷ 0.25A * 0.8 = 38.4 시간(H) / 납축전지의 Cell당&nbsp;<strong>방전종지전압</strong>은&nbsp;<strong>1.75 V</strong>&nbsp;라고 하고 직렬로 6개가 연결되어 있어 1.75 V * 6 개 =&nbsp;<strong>10.5 V</strong>&nbsp;나옵니다. 즉 방전하면서 전압계로 찍어보았을 때 10.5V 밑으로 떨어지면&nbsp;<strong>과방전</strong>&nbsp;위험이 있으니&nbsp;<strong>11 V&nbsp;</strong>정도를 마지노선으로 정해 사용을 멈추고 바로 충전해야 배터리 수명을 오래 가져갈 수 있습니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\"><strong>예 2)</strong>&nbsp;9W 랜턴을 12V-7AH 축전지에 연결해서 사용하면 몇 시간이나 불을 밝힐 수 있을까?</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">→ 전압(V) * 전류(A) = 전력(W), 그래서 12V * χA = 9 W , 따라서 전류는 0.75 A , 그렇다면 사용시간은 7AH ÷ 0.75A * 0.8 ≒ 7.5 H(시간)</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong><font size=\"2\">과방전 :</font></strong><font size=\"2\">&nbsp;과방전은 연축전지의 수명을 단축시킵니다. 과방전시 화학반응은.........</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 방전용량의 변수인 방전률과 온도</strong></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">이론적인 것 외에 현실적으로 연축전지의 사용 가능 시간을 결정짓는 중요한 변수가 있습니다. 바로&nbsp;<strong>방전률</strong>과&nbsp;<strong>전해질온도</strong>입니다. 자세히 살펴보도록 하겠습니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong><font size=\"2\">납축전지의 방전용량(Discharge Capability of Lead-Acid Battery)</font></strong></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong><font size=\"2\">20시간율 방전 용량 :&nbsp;</font></strong><font size=\"2\">납축전지의&nbsp;<strong>정격용량(AH)</strong>은 보통&nbsp;<strong>20시간율</strong>을 기준으로 합니다. 12AH&nbsp;<strong>÷</strong>&nbsp;χA = 20 H ∴ χ=0.6</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">즉 0.6A 저율 방전시키면서 20시간을 지속적으로 사용하면 12AH의 정격용량을&nbsp;<strong>100%&nbsp;</strong>사용할 수 있습니다. 0.6A 이상 고율 전류로 방전할 수록 사용가능 용량은 저하됩니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><img src=\"http://www.trucker.co.kr/tau/ludens/autocamping/c_rate.jpg\" width=\"582\" height=\"189\" /></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">위에 표는 완전충전된 연축전지의 정격용량을 방전종지전압(Cell당 1.75V, 6개 직렬연결되어 있는 12V-12AH 형 축전지라면 10.5V)까지 100% 다 사용할 수 있는&nbsp;<strong>20시간율기준</strong>&nbsp;대비 시간율별 사용가능 용량(AH)을 나타내고 있습니다.&nbsp;<strong>10시간율</strong>을 살펴보면 11.2AH&nbsp;<strong>÷</strong>&nbsp;χA= 10H ∴ χ=1.12 A 즉 1.12A의 전류로 방전시키면서 10시간을 지속적으로 사용하면 방전종지전압(Cell당 1.75V)까지 11.2AH의 용량을 사용할 수 있으며 정격용량 12AH에 비해 약 93%만 사용가능하게 된다는 뜻입니다. 그럼 짧고 굵게 7.8 A 고율전류로 방전종지압(Cell당 1.6V)까지&nbsp;<strong>1시간율</strong>을 살펴보면 7.8AH의 용량을 사용할 수 있는데 정격용량 12AH의 65% 밖에 사용하지 못하는 것을 표로 알 수 있습니다. 결론적으로 납축전지의 주어진 정격용량을 다 사용하려면 가늘고 길게 빼써야 된다는 이야기인데 이런 현상이 왜 이러날까요? 상대적으로 대전류 방전에 취약한 연축전지의 경우 고율방전에서는 극판내에 전해액 확산속도가 느리고 활물질 미세공 내의&nbsp;<strong>H₂So₄</strong>량이 감소하여 전압강하가 급속히 발생하여 방전율에 따른 용량이 현저히 감소하기 때문이라고 합니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><img src=\"http://www.trucker.co.kr/tau/ludens/autocamping/c_rate2.jpg\" width=\"533\" height=\"222\" /></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>참고 ) 자기방전 (Self Discharge)<font size=\"2\">&nbsp;:</font></strong><font size=\"2\">&nbsp;전지에 축적되어 있던 전기가 저절로 없어지는 현상을 말하며, 충,방전 중은 물론&nbsp;<strong>개로</strong>의 상태에서도 자기방전이 이루어집니다.&nbsp; 이 자기방전의 원인에는 전기적 원인과 화학적 원인으로 구분되며, 전기적인 원인에 의한 것은 내부단락을 의미하고, 일반적인 자기방전은 화학적인 원인에 의하여 일어나는 것을 말합니다.&nbsp;</font><font size=\"2\"></font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>온도(전해질온도)에 따른 방전 용량</strong></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><img src=\"http://www.trucker.co.kr/tau/ludens/autocamping/temperature.jpg\" /></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">저율 전압 방전 기준으로 27°C에서 정격용량 100% 나오고 0°C에서는 약 80%, -20°C에서는 약 60%로 용량이 떨어지는 것을 알 수 있습니다. 즉 추운 겨울 밖에 영하의 날씨에 노출 된 연축전지는 상온(常溫)보다 훨씬 빨리 닳아버리는 것을 알 수 있습니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 연(鉛)축전지 (=납축전지, Lead Storage Battery) :</strong><font size=\"2\">&nbsp;이온화도가 다른 두 개의 전극으로 이루어진 회로를 전해액을 통하도록 구성하면 이온화도가 큰 쪽의 전극으로부터 반대쪽 전극으로 전자가 이동하게 된다. 1800년 이탈리아의 볼타는 이러한 현상을 이용하여 은판과 아연판을 이용한 최초의 1차전지인 볼타전지를 발명하였다. 납축전지는 볼타전지와 같은 전기화학반응을 이용하는 2차전지로 1859년 프랑스의 플랑테가 발명하였다. 과산화납을 양극(陽極)으로, 납을 음극으로 사용하고 전해액(電解液)으로는 비중 약 1.2의 묽은 황산을 쓰며 전류가 흐를 때 각각의 전극에서는 화학반응이 일어난다. 방전이 진행되면 양극과 음극은 모두 회백색의 황산납으로 변화하여 반응속도가 줄어들고 부산물로 물이 생성되어 전해액의 농도가 낮아지게 된다. 화학반응이 가역적(可逆的)이어서 외부에서 전류를 공급하면 다시 원래 상태로 돌아갈 수 있으므로 방전과 충전의 반복사용이 가능하다. 높은 전류량을 얻기 위해서는 전극의 면적을 크게 하여야 하므로 실제의 축전지에서는 여러 개의 전극을 병렬로 연결한다. 셀당 기전력은 크기에 관계없이 약 2V 로 일정하며 높은 전압을 얻기 위해서는 여러 개의 셀을 직렬로 연결하는 방법을 사용한다. 예를 들어 자동차용 축전지의 경우 12V 의 기전력을 얻기 위해 6셀의 축전지를 사용한다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 암페어시(Ampere-Hour) :</strong><font size=\"2\"><strong>&nbsp;</strong>1A의 전류가 1시간 동안 흘렀을 때의 전기량이고 기호는&nbsp;<strong>AH</strong>를 사용한다. 1A의 전류가 1초 동안 흐르는 전기량이 1C(쿨롱)이므로 1AH는 3600C(쿨롱)에 해당한다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 단전지(單電池, Cell) :</strong><font size=\"2\">&nbsp;축전지를 구성하는 개개의 전지를 말하며, 단전지의&nbsp;<strong>공칭전압</strong>은 연축전지의 경우&nbsp;<strong>2.0V</strong>, 12V 연축전지는 6개의&nbsp;<strong>단전지(Cell)</strong>가 들어있습니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 공칭전압 [公稱電壓, Nominal Voltage] :</strong><font size=\"2\">&nbsp;전력 계통에서, 주어진 전압 계통을 부르기 위한 호칭 전압값. 실제의 선로 전압은 측정 장소나 부하 조건 때문에 변하므로 일치하지 않는다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 기전력 [起電力, Electromotive Force] :</strong><font size=\"2\">&nbsp;기전력은 전위차와 마찬가지로 볼트(V)라는 단위로 측정한다. 전지, 발전기 등은 다른 형태의 에너지를 전기에너지로 바꿈으로써 지속적으로 기전력을 얻을 수 있도록 고안되어 있으며, 회로를 열었을 때의 단자(端子) 사이의 전위차로 정의한다. 기전력장치에는 이상적인 기전력장치와 실제 기전력장치가 있다. 이상적인 기전력 장치란 내부저항이 없는 장치이다. 이 경우에 기전력장치의 양끝 사이의 퍼텐셜차가 기전력이다. 예를 들면, 기전력이 1.5V인 전지의 양끝에는 1.5V의 퍼텐셜차가 있다. 전지와 같은 실제 기전력장치에는 내부저항이 존재한다. 기전력장치가 회로에 연결되어 있지 않을 때는 전하의 흐름이 없으므로 양끝의 퍼텐셜차는 기전력과 같다. 그러나 전류가 흐르게 되면 양끝의 퍼텐셜차가 기전력과 달라진다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 충전방식 :</strong></p>\r\n<table width=\"600\" border=\"1\" style=\"font-family: &quot;Malgun Gothic&quot;;\">\r\n   <tbody>\r\n      <tr>\r\n         <td width=\"15%\">\r\n            <div align=\"center\"><strong><font size=\"2\">충전</font></strong></div>\r\n            </td>\r\n         <td width=\"85%\"><font size=\"2\">축전지에 외부전원에서 전류를 공급하여 극판활물질을 화학변화시켜 축전지 내에 전기에너지를 화학에너지로 축적하는 조작.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">초충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">미충전 축전지의 최초의 충전을 말한다. 전해액주입후 비교적 소전류로 장시간통전하여 활물질을 충분히 활성화할 것.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">회복충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">방전한 축전지를 차회의 방전에 대비해 용량이 충분히 회복할 때까지 충전할 것.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">보충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">주로 자기방전을 보충하기 위해 충전. 연축전지로는 장기간 보존하는 경우 하절기에는 1개월에 1회, 동절기에는 2∼3개월에 1회정도 하는 것이 보통이다.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">균등충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">여러개의 축전지를 1조로 하여 장기간 사용하는 경우, 자기방전 등으로 발생하는 충전상태의 보충이 아니고 충전상태를 균일하게 하기 위해서 하는 일종의 과충전, 보통 충전전류의 1/2정도의 전류로 30∼50시간하는 방법이다</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">과충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">완전방전상태에 도달한 후의 충전을 말한다. 가스발생에 의해 전해액이 급속히 감소한다. 연 축전지에는 과전류가 계속되면 수명이 짧게 된다.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">급속충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">응급적으로 용량을 약간 회복시키기 위해 대전류로서 단시간에 충전하는 방법. 상시하여서는 안된다. 일반적으로 급속충전기를 사용한다.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">정전류충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">일정한 전류로서 하는 충전. 5∼10시간율의 일정전류가 흐르는 방법.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">정전압충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">일정한 전압으로서 충전. 초기의 충전전류가 매우 크게되어 비경제적으로 일반적으로 사용하지 않는다. 전기 1개당 2.3∼2.5V의 일정전압을 가하는 방법.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">전전류<br />정전압충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">충전개시 시는 일정한 전류로 충전하고 충전이 진행되어 축전지의 충전전압이 설정전압에 도달한 이후 그 일정한 전압으로 충전하는 방법. 설정전압은 가스발생전위보다 약간 높은 것이 보통이다.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">트리클충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">축전지의 자기방전을 보충하기 위해 부하에서 끊어버린 상태로 늘 미소전류로 충전하여 놓는 것. 정전류법과 정전압법이 있다.</font></td>\r\n         </tr>\r\n      <tr>\r\n         <td>\r\n            <div align=\"center\"><strong><font size=\"2\">부동충전</font></strong></div>\r\n            </td>\r\n         <td><font size=\"2\">정류기에 축전지와 부하와의 병렬로 접속하고 항상 축전지에 정전압을 가해 이것을 충전상태에 놓아서 정전시 또는 부하변동시에 무순단으로 축전지에서 부하에 전력을 공급하는 방식. 부동전압은 전지 1개당 2.15∼2.20V로 있으므로 전압에 의해 개수결정을 할때 주의가 필요하다.</font></td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong><font size=\"4\">충전기</font></strong></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><img src=\"http://www.trucker.co.kr/tau/ludens/autocamping/charger.jpg\" width=\"341\" height=\"326\" align=\"left\" /><font size=\"2\">연축전지는&nbsp;<strong>과충전</strong>&nbsp;방지를 위해서 전용 충전기를 사용해서 충전해줘야 하는데 전용 충전기라 함은 과충전 방지 회로가 들어있는 충전기를 말합니다. 연축전지가 과충전되면 내부에서 위험할 수도 있는 화학반응(산소, 수소, 열 발생)이 일어나는데 연축전지 수명을 단축시킬 뿐만 아니라 심하면 폭발 위험도 있을 수 있다고 합니다. 과충전시 화학반응 내용은 자료부족으로 생략하기로 하겠습니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">보통 충전 전류은 정격용량의 1/10 이 적정하다고 합니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">예) 12AH 연축전지의 적정 충전 전류는?</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"2\">12AH 의 1/10A 는&nbsp;&nbsp;&nbsp;&nbsp;<strong>1.2A</strong></font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><font size=\"4\"><strong>전압계</strong></font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><img src=\"http://www.trucker.co.kr/tau/ludens/autocamping/voltmeter.jpg\" width=\"238\" height=\"376\" align=\"left\" /><font size=\"2\">전압계는 과충전 과방전을 막을 수 있어 연축전지의 관리상 반드시 필요한 도구입니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 방전종지전압&nbsp;</strong>-<font size=\"2\">&nbsp;연축전지 사용 시에 더 이상 내려가면 안되는 전압 수로 셀 당&nbsp;<strong>1.75 V</strong>&nbsp;가 마지노선입니다. 공칭전압 12V를 내기 위해서 축전지 안에 6개의 셀이 들어있으니 1.75 * 6 = 10.5 V&nbsp; 즉&nbsp;<strong>10.5V</strong>&nbsp;미만으로 떨어지면 과방전 화학반응이 일어나 연축전지의 수명이 짧아집니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 과충전 전압&nbsp;</strong>-<font size=\"2\">&nbsp;연축전지 충전 시에 더 이상 올라가면 안되는 전압 수로 셀 당&nbsp;<strong>2.4 V</strong>&nbsp;가 마지노선입니다. 2.4 * 6 = 14.4 V 즉&nbsp;<strong>14.4 V</strong>&nbsp;이상으로 올라가면 과충전 화학반응이 일어나 연축전지 수명이 짧아집니다.</font></p>\r\n<p style=\"font-family: &quot;Malgun Gothic&quot;; font-size: medium;\"><strong>* 전압 별 충전량</strong></p>\r\n<table width=\"301\" height=\"189\" border=\"1\" style=\"font-family: &quot;Malgun Gothic&quot;;\">\r\n   <tbody>\r\n      <tr bgcolor=\"#999999\">\r\n         <td width=\"140\">\r\n            <div align=\"center\"><strong>Voltage</strong></div>\r\n            </td>\r\n         <td width=\"146\">\r\n            <div align=\"center\"><strong>State of Charger</strong></div>\r\n            </td>\r\n         </tr>\r\n      <tr bgcolor=\"#FFFF00\">\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">12.7 V</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">100%</font></div>\r\n            </td>\r\n         </tr>\r\n      <tr bgcolor=\"#FFFF00\">\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">12.6 V</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">75%</font></div>\r\n            </td>\r\n         </tr>\r\n      <tr bgcolor=\"#FFFF00\">\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">12.3 V</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">50%</font></div>\r\n            </td>\r\n         </tr>\r\n      <tr bgcolor=\"#FFFF00\">\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">12.0 V</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">25%</font></div>\r\n            </td>\r\n         </tr>\r\n      <tr bgcolor=\"#FFFF00\">\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">11.8 V</font></div>\r\n            </td>\r\n         <td>\r\n            <div align=\"center\"><font size=\"2\">0%</font></div>\r\n            <p><font size=\"2\"><br /></font></p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>','http://trucker.co.kr/tau/ludens/autocamping/boiler.htm','',1,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:24:10',0,'2019-04-26 15:24:10','210.101.103.92','','','','','','','','','','','',''),(353,-353,'',353,0,0,'','','html1','[Arduino] ESP12E Wemos 보드 핀맵','<p><span style=\"color: #404040; font-family: 굴림;\">ESP12E Wemos&nbsp; &nbsp; &nbsp; Arduino&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO4&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D2&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D0&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D4&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D5&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D15&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D13&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO6&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D12&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO5&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D14&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D16&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">A0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; A0</span></p>','http://www.electronicwings.com/nodemcu/nodemcu-gpio-with-arduino-ide','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:24:53',2,'2019-04-26 15:24:53','210.101.103.92','','','','','','','','','','','',''),(354,-354,'',354,0,0,'','','html1','[ETC] 3축 가속도 센서의 중력값','<p><span style=\"color: #404040; font-family: 굴림;\">참고 ADXL 335 3축 가속도센서 모듈제품&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://mechasolution.com/shop/goods/goods_view.php?goodsno=10914&amp;category=049002\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://mechasolution.com/shop/goods/goods_view.php?goodsno=10914&amp;category=049002</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://mechasolution.com/shop/goods/goods_view.php?goodsno=5&amp;category=129014\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://mechasolution.com/shop/goods/goods_view.php?goodsno=5&amp;category=129014</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">똑바로 놓은 상태에서 움직임이 전혀 없을때 z축 라인에서 중력가속도 값이 나옵니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">x y는 0이 나오구요. 움직임이 없는 상태에서 기울어진 상태면 각 라인에 중력 가속도 값이 벡터로 분해된 정도로 출력됩니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">움직이면 해당 가속도 만큼이 +/- 되서 들어옵니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">[출처] 가속도 센서와 중력가속도 센서값을 계산하는법 (아두이노 스토리) |작성자 HolyRay&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">------------------------------------------------------------------------------------------&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">[ LSB/g 이 개념 ]&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">1. 가속도 센서의 감도는 mV/g 단위를 사용해서 표시합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">가속도센서는 기본적으로 전압을 출력하는 센서이기때문에 아두이노의 아날로그 핀을 사용해서 읽습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">일반적으로 가속도센서의 감도는 250mV/g 등과 같이&nbsp; mV/g 단위 ( 밀리볼트/중력가속도 )로 표시합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">예를들면, 가속도센서의 감도가 250mV/g 일경우,&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">아두이노의 ADC핀으로 측정한 센서의 전압값이 500mV라면, 이 경우의 중력가속도 값을 구하면 2g입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">* 측정값/센서감도 = 500 / 250 = 2g (&nbsp; 즉, 측정전압 / sensitivity = 중력가속도 가 됩니다. )&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">마찬가지로,&nbsp; 감도 250mV/g 인 가속도센서의 측정전압이 750mV라면 측정값은 3g 가 됩니다.&nbsp; ( 750/250 = 3 )&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. 그런데, 센서의 감도를 mV/g로 표시하면 불편한 경우가 많습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">센서값을 mV/g 로 표시하면 이해하기 쉽지만 실제로 사용할 경우는 매우 불편합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">왜냐하면, 같은 가속도 센서라고 할지라도 Aref 값에 따라서 측정값과 Sensitivity가 달라지기 때문입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">즉, 아두이노의 아날로그 측정기능 ( ADC기능) 을 사용할 경우, 측정값은 ADC회로의 기준전압 즉 Aref 값에 따라 달라집니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">아두이노에서 Aref 값은 5V를 사용하는 경우가 많지만, 항상 5V인 것은 아닙니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">따라서, 사용자의 Aref값이 다르면 센서의 측정값과 감도도 달라지게 됩니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">예를 들면,&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Aref가 5V 이고, 이때 감도가 250mV/g인 가속도 센서를&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Aref를 1V로 바꿀 경우,&nbsp; 감도는 50mV/g 가 되고 센서의 측정전압도 1/5로 작아집니다.&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">즉, 같은 센서의 감도가 경우에 따라 달라지므로 혼동되기 쉬우므로 불편합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3. mV/g 단위의 불편함을 해소한 단위가 LSB/g 입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">LSB가 뭐의 약자인지는 잘 모르겠지만 아마도 Least Scale of Bandwidth 즉 최소눈금의 갯수를 의미합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">예를 들면, 측정범위가 -2g ~ +2g 인 가속도 센서가 있다면 최대측정폭( Bandwidth )는 4g 입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">이 센서를 아두이노의 아날로그 핀으로 측정했을&nbsp; 측정값(ADC값)의 범위는 0 ~1023 입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">즉, ADC값이 0이면 -2g 이고 1023이면 +2g 입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">이를 감도로 표시하려면, 1023 최소눈금/4g 이므로&nbsp; 약255 LSB/g 가 되는겁니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">이를 바꿔말하면, ADC측정값 1이 증가할 때마다&nbsp; 1/255g 가 커지는 겁니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">바꾸말하면, 감도가 250 LSB/g 란 뜻은&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">10비트 ADC회로를 사용할 때 ( 아두이노의 경우 )&nbsp; ADC값이 250 이면 1g라는 뜻입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">[출처] LSB/g 이 개념 설명 좀 부탁드립니다 ㅜㅜ (아두이노 스토리) |작성자 inkni</span></p>','https://cafe.naver.com/arduinostory/73086','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:25:15',0,'2019-04-26 15:25:15','210.101.103.92','','','','','','','','','','','',''),(355,-355,'',355,0,0,'','','html1','[Linux] 라즈베리파이 MQTT 활용','<p><span style=\"color: #404040; font-family: 굴림;\">1. python pip설치&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&gt; sudo apt-get install python-pip&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. python mqtt 라이브러리 설치&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&gt; pip install paho-mqtt&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">참고 &gt;&gt;&nbsp;</span><a href=\"http://www.hardcopyworld.com/ngine/aduino/index.php/archives/2725\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://www.hardcopyworld.com/ngine/aduino/index.php/archives/2725</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><a href=\"https://www.eclipse.org/paho/clients/python/\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://www.eclipse.org/paho/clients/python/</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3. python mqtt - cloudmqtt연결&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">참고 &gt;&gt;&nbsp;</span><a href=\"https://github.com/kiranshashiny/python-cloudmqtt-example-rpi/blob/master/app.py\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://github.com/kiranshashiny/python-cloudmqtt-example-rpi/blob/master/app.py</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">import paho.mqtt.client as mqtt , os, urlparse&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">import RPi.GPIO as GPIO&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">relay = 2&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">user = \"mqttid\"&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">pw = \"mqttpw\"&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">def on_connect(mosq, obj, rc):&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; print(\"rc: \" + str(rc))&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">def on_message(mosq, obj, msg):&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; #print(\"on_message:\" + msg.topic + \" \" + str(msg.qos) + \" \" + str(msg.payload))&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; print(\"on_message:\" + msg.topic + \"-\" + str(msg.payload))&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; if(msg.payload == \"on\"):&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; print \"relay on\"&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; GPIO.output(relay, GPIO.HIGH)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; #client.publish( \"relayonoff\", \"on\")&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; else:&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; print \"relay off\"&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; GPIO.output(relay, GPIO.LOW)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; #client.publish( \"relayonoff\", \"off\")&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">def on_publish(mosq, obj, mid):&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; print(\"mid: \" + str(mid))&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">def on_subscribe(mosq, obj, mid, granted_qos):&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; print(\"Subscribed: \" + str(mid) + \" \" + str(granted_qos))&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">client = mqtt.Client()&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\"># Assign event callbacks&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">client.on_message = on_message&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">client.on_connect = on_connect&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">client.on_publish = on_publish&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">client.on_subscribe = on_subscribe&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">client.username_pw_set(user, pw)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">client.connect(\'m12.cloudmqtt.com\', 11960, 60)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">client.loop_start()&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">client.subscribe (\"relayonoff\" ,0)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO.setmode(GPIO.BCM)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO.setwarnings(False)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">GPIO.setup(2,GPIO.OUT)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">try:&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; while True:&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; client.loop_start()&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">except KeyboardInterrupt:&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; GPIO.cleanup()</span></p>','','',0,0,6,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:25:29',0,'2019-04-26 15:25:29','210.101.103.92','','','','','','','','','','','',''),(356,-356,'',356,0,0,'','','html1','[Linux] 오렌지파이 python gpio 제어','<p><span style=\"color: #404040; font-family: 굴림;\">1. sudo apt-get install python-dev&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; *sudo apt-get install python-dev python-setuptools swig&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. git clone --recursive&nbsp;</span><a href=\"https://github.com/duxingkei33/orangepi_PC_gpio_pyH3\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://github.com/duxingkei33/orangepi_PC_gpio_pyH3</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3. cd orangepi_PC_gpio_pyH3&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; sudo python setup.py install</span></p>','https://github.com/duxingkei33/orangepi_PC_gpio_pyH3','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:26:03',1,'2019-04-26 15:26:03','210.101.103.92','','','','','','','','','','','',''),(357,-357,'',357,0,0,'','','html1','[ETC] 가속도센서 거리값','<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">ADXL 은 3g 가속도 센서이다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">3g 는 3-axis 라는 얘기는 아니다....... 쓸데없는 얘기군......</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">가속도 센서의 1g 는 중력 가속도인 9.8m/s<span style=\"font-size: 11pt;\">²&nbsp;</span>이다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">그래서 나는 ADC 에서 나오는 값을 받아서 이&nbsp;9.8m/s<span style=\"font-size: 11pt;\">²&nbsp;<span style=\"font-size: 9pt;\">을 이용했다.</span></span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><span style=\"font-size: 11pt;\"><span style=\"font-size: 9pt;\"><br /></span></span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><span style=\"font-size: 11pt;\"><span style=\"font-size: 9pt;\">일단 ADC 에서 나오는 값을 대략 10개를 받아서 10으로 나눈다.</span></span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><span style=\"font-size: 11pt;\"><span style=\"font-size: 9pt;\">소스상으론 11 로 나눠야지 값이 잘 나오는 듯 하다.</span></span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><span style=\"font-size: 11pt;\"><span style=\"font-size: 9pt;\"><br /></span></span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><span style=\"font-size: 11pt;\"><span style=\"font-size: 9pt;\">물론 이 값들은 전압값으로 환산을 한다.</span></span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><span style=\"font-size: 11pt;\"><span style=\"font-size: 9pt;\">현재 MCP3208 이용 아날로그 값을 받아오므로</span></span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><span style=\"font-size: 11pt;\"><span style=\"font-size: 9pt;\"><br /></span></span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">accel_X = read_mcp3208*Vref/4095&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">로 하면 되겠다. Vref 는 기준전압. 4095 는 mcp3208 이 12bit 이므로 4095의 분해능을 갖는다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">이상의 공식으로 전압값을 산출 한다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">그리고 ADXL335 의 데이터 시트를 보면 공급전압 Vs = 3.6V 일 때 sensitivity는 0.36V 로 되어있다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">이를 내가 공급한 공급전압에 맞춰 비례식에 넣으면</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">3.6V : 0.36V = 3.3V : x</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">이렇게 하면 x = 0.33V 가 나오게 된다. 즉 현재 나의 기준에서 sensitivity 는 0.33V 인 것이다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">이제 이 0.33V 를 이용해서 가속도 값을 산출 해 낸다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">accel_X = accel_X*9.8/0.33</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">이 과정을 통하면 센서의 X 축을 땅으로 향하게 했을때 약 9.8XXX 의 값들이 나오게 된다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">내 생각엔 1g의 값이 나온다고 본다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">이제 속도값을 구한다. 속도와 거리 모두 시간에 비례하거나 반비례한다. 즉 시간 이용해야 정확한 값을 구해 낼 수 있는 것이다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">속도 = 거리/시간</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">거리 = 속도 * 시간</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">이것은 어렸을 때 배운다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">물론 ADC 의 sampling rate 를 이용해서 값을 구해 내는 것이 더 정확할 수 있을것이다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">하지만 일단 1초 단위로 끊어서 계산을 해 보겠다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">1초로 계산을 하려면 timing/count 를 써야한다.&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">알아서 쓰길 바랍니다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">속도와 가속도의 관계는 가속도가 일정하거나 (+) 방향으로 증가할때 속도는 증가하고</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">가속도가 (-)방향으로 증가한다면 감소하게 된다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">그리고 가속도가 0 이라면 속도는 등속도가 된다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><span style=\"background-color: #ffef00;\">그리고 가장 중요한 가속도를 적분하면 속도이고, 속도를 적분하면 거리이다.</span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">그렇다면 가속도가&nbsp;&nbsp;9.8m/s<span style=\"font-size: 11pt;\">²&nbsp;<span style=\"font-size: 9pt;\">﻿이라면 3초후의 속도는 얼마일까?</span></span></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">만약 가속도가 일정하게&nbsp;9.8m/s<span style=\"font-size: 11pt;\">²<span style=\"font-size: 9pt;\">﻿</span></span>&nbsp;3초 후의 속도는 9.8*3 m/s 가 될 것이다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">즉 29.4m/s 가 되는 것이다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">이제 거리계산이다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">거리는 매 1초 마다의 속도값을 더하면 된다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">소스로는 아래와 같다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; velocityx[1] = (acceleration_x[0] + ((acceleration_x[2] - acceleration_x[0])/2))*vel_count[1]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //속도 구간 계산.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">velocityy[1] = acceleration_y[0] + ((acceleration_y[2] - acceleration_y[0])/2);</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">velocityz[1] = acceleration_z[0] + ((acceleration_z[2] - acceleration_z[0])/2);</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;diff_distance_x = velocityx[0]+((velocityx[1] - velocityx[0])/2);</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;diff_distance_y = velocityy[0]+((velocityy[1] - velocityy[0])/2);</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;diff_distance_z = velocityz[0]+((velocityz[1] - velocityz[0])/2);</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if((diff_distance_x &gt; -0.001) &amp;&amp; (diff_distance_x &lt;0.001))diff_distance_x=0;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if((diff_distance_y &gt; -0.001) &amp;&amp; (diff_distance_y &lt;0.001))diff_distance_y=0;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if((diff_distance_z &gt; -0.001) &amp;&amp; (diff_distance_z &lt;0.001))diff_distance_z=0;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(vel_count[1] - vel_count[0] != 0)</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;distance_x[1] = distance_x[0] + diff_distance_x; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //거리 계산.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;distance_y[1] = distance_y[0] + diff_distance_y; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;distance_z[1] = distance_z[0] + diff_distance_z; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #8a837e; font-family: 돋움; text-align: justify; background-color: #ffffff;\"><span style=\"font-size: 11pt;\"><span style=\"font-size: 9pt;\">틀릴 수도 있다. 점차 보완 해 나갈 것이다.</span></span></p>\r\n<p>\r\n   <p>&nbsp;</p>\r\n   </p>\r\n<div class=\"autosourcing-stub-extra\" style=\"line-height: 1.5; zoom: 1; opacity: 1;\">\r\n   <p style=\"margin: 11px 0px 7px; padding: 0px; line-height: 1.5; font-size: 12px; font-family: Dotum; font-style: normal; font-weight: normal;\"><strong style=\"padding: 0px 7px 0px 0px;\">[출처]</strong><span>&nbsp;</span><a href=\"http://blog.naver.com/kwsiye/120169673988\" target=\"_blank\" style=\"text-decoration: none;\">가속도 센서 ADXL335 거리값 구하기.</a><span style=\"padding: 0px 7px 0px 5px;\">|</span><strong style=\"padding: 0px 7px 0px 0px;\">작성자</strong><span>&nbsp;</span><a href=\"http://blog.naver.com/kwsiye\" target=\"_blank\" style=\"text-decoration: none;\">해비치cafe</a></p>\r\n   </div>','https://mechaworld.tistory.com/11','http://blog.naver.com/PostView.nhn?blogId=kwsiye&logNo=120169673988',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:26:31',0,'2019-04-26 15:26:31','210.101.103.92','','','','','','','','','','','',''),(358,-358,'',358,0,0,'','','html1','[Arduino] Mpu-9250센서를 이용한 자세제어 알고리즘 설계','<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">본 프로젝트에서는 아두이노 우노와 MPU-9250센서를 이용해 센서의 운동상태를 파악하고, 나아가 BLDC모터를 이용해 센서의자세를 제어하는 단계까지 진행하고자 합니다.</p>\r\n<h2 style=\"margin: 30px 0px 10px; color: #222222; font-family: Helvetica, Arial, sans-serif; background-color: #ffffff;\">1. MPU-9250의 raw data 받아오기</h2>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">MPU-9250센서는 가속도 센서, 자이로 센서, 지자기 센서 세 가지가 결합되어 있는 센서입니다. 3차원 공간에서 센서의 가속도, 각속도, 그리고 주위의 지자기를 측정하여 벡터형태로 값을 나타내게 됩니다.&nbsp;<br /><img src=\"http://kr.bluesink.io/uploads/default/original/1X/801db627589f51b274b18f416a7a4f38a7412277.jpg\" width=\"228\" height=\"228\" style=\"border: 0px; vertical-align: middle; max-width: 690px; max-height: 500px;\" /></p>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">가장 먼저, 본 센서의 raw data를 받아오기 위하여 아두이노 우노와 아래 그림과 같이 연결합니다.</p>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\"><img src=\"http://kr.bluesink.io/uploads/default/original/1X/852aadc0f03338e86bad0b2e4deda739997bfa93.jpg\" width=\"380\" height=\"238\" style=\"border: 0px; vertical-align: middle; max-width: 690px; max-height: 500px;\" /></p>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">아두이노와 MPU-9250센서는 각각 마스터와 슬레이브가 되어 I2C통신을 하게 됩니다. 이 때 아두이노 우노의 경우, 아두이노에서 자체적으로 I2C통신을 위해 아날로그 4, 5번 핀을 각각 SDA, SCL pin으로 지정하여 사용가능하게 하였습니다.</p>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">&nbsp;</p>\r\n<pre style=\"overflow: auto; font-family: Consolas, Menlo, Monaco, &quot;Lucida Console&quot;, &quot;Liberation Mono&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, monospace; font-size: 14px; color: #222222; background-color: #ffffff;\">\r\n   <code class=\"hljs php\" style=\"font-family: Consolas, Menlo, Monaco, &quot;Lucida Console&quot;, &quot;Liberation Mono&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; overflow: auto; tab-size: 4; color: #333333; background: rgb(249, 249, 249); overflow-wrap: normal; display: block; padding: 0.5em; max-height: 500px;\"><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">#include \"MPU9250.h\"</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">#define AHRS true         // Set to false for basic data read</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">#define SerialDebug true  // Set to true to get Serial output for debugging</span>\r\n    MPU9250 myIMU;\r\n    void setup() {\r\n	Wire.begin();\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">//I2C통신 준비</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// TWBR = 12;  // 400 kbit/sec I2C speed</span>\r\n	Serial.begin(<span class=\"hljs-number\" style=\"color: #009999;\">38400</span>);\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">//38400 bits/s</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Read the WHO_AM_I register, this is a good test of communication</span>\r\n	byte c = myIMU.readByte(MPU9250_ADDRESS, WHO_AM_I_MPU9250);\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"MPU9250 \"</span>);\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"I AM \"</span>);\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(c, HEX);\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\" I should be \"</span>);\r\n	Serial.println(<span class=\"hljs-number\" style=\"color: #009999;\">0x71</span>, HEX);\r\n	<span class=\"hljs-keyword\" style=\"font-weight: bold;\">if</span> (c == <span class=\"hljs-number\" style=\"color: #009999;\">0x71</span>) <span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// WHO_AM_I should always be 0x71 {</span>\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"MPU9250 is online...\"</span>);\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Start by performing self test and reporting values</span>\r\n		myIMU.MPU9250SelfTest(myIMU.SelfTest);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"x-axis self test: acceleration trim within : \"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(myIMU.SelfTest[<span class=\"hljs-number\" style=\"color: #009999;\">0</span>],<span class=\"hljs-number\" style=\"color: #009999;\">1</span>);\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"% of factory value\"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"y-axis self test: acceleration trim within : \"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(myIMU.SelfTest[<span class=\"hljs-number\" style=\"color: #009999;\">1</span>],<span class=\"hljs-number\" style=\"color: #009999;\">1</span>);\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"% of factory value\"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"z-axis self test: acceleration trim within : \"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(myIMU.SelfTest[<span class=\"hljs-number\" style=\"color: #009999;\">2</span>],<span class=\"hljs-number\" style=\"color: #009999;\">1</span>);\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"% of factory value\"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"x-axis self test: gyration trim within : \"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(myIMU.SelfTest[<span class=\"hljs-number\" style=\"color: #009999;\">3</span>],<span class=\"hljs-number\" style=\"color: #009999;\">1</span>);\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"% of factory value\"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"y-axis self test: gyration trim within : \"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(myIMU.SelfTest[<span class=\"hljs-number\" style=\"color: #009999;\">4</span>],<span class=\"hljs-number\" style=\"color: #009999;\">1</span>);\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"% of factory value\"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"z-axis self test: gyration trim within : \"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(myIMU.SelfTest[<span class=\"hljs-number\" style=\"color: #009999;\">5</span>],<span class=\"hljs-number\" style=\"color: #009999;\">1</span>);\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"% of factory value\"</span>);\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Calibrate gyro and accelerometers, load biases in bias registers</span>\r\n		myIMU.calibrateMPU9250(myIMU.gyroBias, myIMU.accelBias);\r\n		myIMU.initMPU9250();\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Initialize device for active mode read of acclerometer, gyroscope, and</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// temperature</span>\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"MPU9250 initialized for active data mode....\"</span>);\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Read the WHO_AM_I register of the magnetometer, this is a good test of</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// communication</span>\r\n		byte d = myIMU.readByte(AK8963_ADDRESS, WHO_AM_I_AK8963);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"AK8963 \"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"I AM \"</span>);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(d, HEX);\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\" I should be \"</span>);\r\n		Serial.println(<span class=\"hljs-number\" style=\"color: #009999;\">0x48</span>, HEX);\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Get magnetometer calibration from AK8963 ROM</span>\r\n		myIMU.initAK8963(myIMU.factoryMagCalibration);\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Initialize device for active mode read of magnetometer</span>\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"AK8963 initialized for active data mode....\"</span>);\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Get sensor resolutions, only need to do this once</span>\r\n		myIMU.getAres();\r\n		myIMU.getGres();\r\n		myIMU.getMres();\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// The next call delays for 4 seconds, and then records about 15 seconds of</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// data to calculate bias and scale.</span>\r\n		myIMU.magCalMPU9250(myIMU.magBias, myIMU.magScale);\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"AK8963 mag biases (mG)\"</span>);\r\n		Serial.println(myIMU.magBias[<span class=\"hljs-number\" style=\"color: #009999;\">0</span>]);\r\n		Serial.println(myIMU.magBias[<span class=\"hljs-number\" style=\"color: #009999;\">1</span>]);\r\n		Serial.println(myIMU.magBias[<span class=\"hljs-number\" style=\"color: #009999;\">2</span>]);\r\n		Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"AK8963 mag scale (mG)\"</span>);\r\n		Serial.println(myIMU.magScale[<span class=\"hljs-number\" style=\"color: #009999;\">0</span>]);\r\n		Serial.println(myIMU.magScale[<span class=\"hljs-number\" style=\"color: #009999;\">1</span>]);\r\n		Serial.println(myIMU.magScale[<span class=\"hljs-number\" style=\"color: #009999;\">2</span>]);\r\n		delay(<span class=\"hljs-number\" style=\"color: #009999;\">2000</span>);\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Add delay to see results before serial spew of data</span>\r\n	}\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// if (c == 0x71) </span><span class=\"hljs-keyword\" style=\"font-weight: bold;\">else</span> {\r\n		Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"Could not connect to MPU9250: 0x\"</span>);\r\n		Serial.println(c, HEX);\r\n		<span class=\"hljs-keyword\" style=\"font-weight: bold;\">while</span>(<span class=\"hljs-number\" style=\"color: #009999;\">1</span>) ;\r\n		<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Loop forever if communication doesn\'t happen</span>\r\n	}\r\n}\r\nvoid loop() {\r\n	myIMU.readAccelData(myIMU.accelCount);\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Read the x/y/z adc values</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Now we\'ll calculate the accleration value into actual g\'s</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// This depends on scale being set</span>\r\n	myIMU.ax = (float)myIMU.accelCount[<span class=\"hljs-number\" style=\"color: #009999;\">0</span>] * myIMU.aRes;\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// - myIMU.accelBias[0];</span>\r\n	myIMU.ay = (float)myIMU.accelCount[<span class=\"hljs-number\" style=\"color: #009999;\">1</span>] * myIMU.aRes;\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// - myIMU.accelBias[1];</span>\r\n	myIMU.az = (float)myIMU.accelCount[<span class=\"hljs-number\" style=\"color: #009999;\">2</span>] * myIMU.aRes;\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// - myIMU.accelBias[2];</span>\r\n	myIMU.readGyroData(myIMU.gyroCount);\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Read the x/y/z adc values</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Calculate the gyro value into actual degrees per second</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// This depends on scale being set</span>\r\n	myIMU.gx = (float)myIMU.gyroCount[<span class=\"hljs-number\" style=\"color: #009999;\">0</span>] * myIMU.gRes;\r\n	myIMU.gy = (float)myIMU.gyroCount[<span class=\"hljs-number\" style=\"color: #009999;\">1</span>] * myIMU.gRes;\r\n	myIMU.gz = (float)myIMU.gyroCount[<span class=\"hljs-number\" style=\"color: #009999;\">2</span>] * myIMU.gRes;\r\n	myIMU.readMagData(myIMU.magCount);\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Read the x/y/z adc values</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Calculate the magnetometer values in milliGauss</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Include factory calibration per data sheet and user environmental</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// corrections</span><span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Get actual magnetometer value, this depends on scale being set</span>\r\n	myIMU.mx = (float)myIMU.magCount[<span class=\"hljs-number\" style=\"color: #009999;\">0</span>] * myIMU.mRes\r\n	               * myIMU.factoryMagCalibration[<span class=\"hljs-number\" style=\"color: #009999;\">0</span>] - myIMU.magBias[<span class=\"hljs-number\" style=\"color: #009999;\">0</span>];\r\n	myIMU.my = (float)myIMU.magCount[<span class=\"hljs-number\" style=\"color: #009999;\">1</span>] * myIMU.mRes\r\n	               * myIMU.factoryMagCalibration[<span class=\"hljs-number\" style=\"color: #009999;\">1</span>] - myIMU.magBias[<span class=\"hljs-number\" style=\"color: #009999;\">1</span>];\r\n	myIMU.mz = (float)myIMU.magCount[<span class=\"hljs-number\" style=\"color: #009999;\">2</span>] * myIMU.mRes\r\n	               * myIMU.factoryMagCalibration[<span class=\"hljs-number\" style=\"color: #009999;\">2</span>] - myIMU.magBias[<span class=\"hljs-number\" style=\"color: #009999;\">2</span>];\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\"ax = \"</span>);\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>((int)<span class=\"hljs-number\" style=\"color: #009999;\">1000</span> * myIMU.ax);\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\" ay = \"</span>);\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>((int)<span class=\"hljs-number\" style=\"color: #009999;\">1000</span> * myIMU.ay);\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>(<span class=\"hljs-string\" style=\"color: #dd1144;\">\" az = \"</span>);\r\n	Serial.<span class=\"hljs-keyword\" style=\"font-weight: bold;\">print</span>((int)<span class=\"hljs-number\" style=\"color: #009999;\">1000</span> * myIMU.az);\r\n	Serial.println(<span class=\"hljs-string\" style=\"color: #dd1144;\">\" mg\"</span>);\r\n	<span class=\"hljs-comment\" style=\"color: #999988; font-style: italic;\">// Must be called before updating quaternions!</span>\r\n	myIMU.updateTime();\r\n}</code>\r\n   </pre>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">소스코드는&nbsp;<a href=\"https://github.com/sparkfun/SparkFun_MPU-9250_Breakout_Arduino_Library\" rel=\"nofollow noopener\" style=\"background: transparent; color: #0088cc; text-decoration-line: none; cursor: pointer; overflow-wrap: break-word;\" target=\"_blank\">https://github.com/sparkfun/SparkFun_MPU-9250_Breakout_Arduino_Library<span class=\"badge badge-notification clicks\" title=\"544번 클릭\" style=\"display: inline-block; white-space: nowrap; border-radius: 10px; padding: 4px 5px 2px; vertical-align: middle; color: #919191; font-size: 11px; line-height: 1; text-align: center; background-color: #e9e9e9; top: -1px; position: relative; margin-left: 2px; border: none;\">544</span></a>&nbsp;에서 참고하여 간소화 한 것입니다. 이를 아두이노IDE에서 컴파일하여 실행하면 시리얼 모니터에서 아래와 같은 결과를 확인할 수 있습니다.</p>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">&nbsp;</p>\r\n<div class=\"lightbox-wrapper\" style=\"display: inline-block; outline: 0px; color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\"><a data-download-href=\"//kr.bluesink.io/uploads/default/98aef49a581fa4240778c84db259d9d0c085e5d0\" href=\"http://kr.bluesink.io/uploads/default/original/1X/98aef49a581fa4240778c84db259d9d0c085e5d0.png\" class=\"lightbox\" title=\"게시된 이미지\" style=\"background: transparent; color: #0088cc; text-decoration-line: none; cursor: pointer; position: relative; display: inline-block; outline: 0px; overflow-wrap: break-word;\" target=\"_blank\"><img src=\"http://kr.bluesink.io/uploads/default/optimized/1X/98aef49a581fa4240778c84db259d9d0c085e5d0_1_690x418.png\" width=\"690\" height=\"418\" style=\"border: 0px; vertical-align: middle; outline: 0px; max-width: 690px; max-height: 500px;\" />\r\n      <div class=\"meta\" style=\"outline: 0px; position: absolute; bottom: 0px; width: 690px; color: #999999; background: rgb(34, 34, 34); opacity: 0; transition: opacity 0.2s ease 0s; font-weight: bold;\"><span class=\"filename\" style=\"outline: 0px; float: left; margin: 5px; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;\">게시된 이미지</span><span class=\"informations\" style=\"outline: 0px; float: left; margin: 6px; padding-right: 20px; color: #b6b6b6; font-size: 1em;\">903x548 35.4 KB</span><span class=\"expand\" style=\"outline: 0px; float: left; position: absolute; bottom: 4px; right: 7px;\"></span></div>\r\n      </a></div>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">회로가 제대로 연결되어 통신을 시작할 준비가 완료되었다는 표시가 뜨고,</p>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">&nbsp;</p>\r\n<div class=\"lightbox-wrapper\" style=\"display: inline-block; outline: 0px; color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\"><a data-download-href=\"//kr.bluesink.io/uploads/default/3241f06ddae9c4bd99a1f741556b2f82691cb18b\" href=\"http://kr.bluesink.io/uploads/default/original/1X/3241f06ddae9c4bd99a1f741556b2f82691cb18b.png\" class=\"lightbox\" title=\"게시된 이미지\" style=\"background: transparent; color: #0088cc; text-decoration-line: none; cursor: pointer; position: relative; display: inline-block; outline: 0px; overflow-wrap: break-word;\" target=\"_blank\"><img src=\"http://kr.bluesink.io/uploads/default/optimized/1X/3241f06ddae9c4bd99a1f741556b2f82691cb18b_1_690x416.png\" width=\"690\" height=\"416\" style=\"border: 0px; vertical-align: middle; outline: 0px; max-width: 690px; max-height: 500px;\" />\r\n      <div class=\"meta\" style=\"outline: 0px; position: absolute; bottom: 0px; width: 690px; color: #999999; background: rgb(34, 34, 34); opacity: 0; transition: opacity 0.2s ease 0s; font-weight: bold;\"><span class=\"filename\" style=\"outline: 0px; float: left; margin: 5px; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;\">게시된 이미지</span><span class=\"informations\" style=\"outline: 0px; float: left; margin: 6px; padding-right: 20px; color: #b6b6b6; font-size: 1em;\">906x547 31.6 KB</span><span class=\"expand\" style=\"outline: 0px; float: left; position: absolute; bottom: 4px; right: 7px;\"></span></div>\r\n      </a></div>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"color: #222222; font-family: Helvetica, Arial, sans-serif; font-size: 14px; background-color: #ffffff;\">몇초 후 위와 같이 MPU-9250이 raw data를 받아오는 것을 확인할 수 있습니다.</p>','http://kr.bluesink.io/t/mpu-9250/36','',3,0,8,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:27:01',0,'2019-04-26 15:27:01','210.101.103.92','','','','','','','','','','','',''),(359,-359,'',359,0,0,'','','html1','[Linux] curl 명령어로, php 페이지 파일 POST 전송','<p><span style=\"color: #404040; font-family: 굴림;\">1. 서버 php 스크립트 설정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\"># cat &gt; imsi.php&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&lt;?php&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">$uploaddir = realpath(\'./upload\') . \'/\';&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">$uploadfile = $uploaddir . basename($_FILES[\'file_contents\'][\'name\']);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">echo \'&lt;pre&gt;\';&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; if (move_uploaded_file($_FILES[\'file_contents\'][\'tmp_name\'], $uploadfile)) {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo \"File is valid, and was successfully uploaded.\\n\";&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo \"Possible file upload attack!\\n\";&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; echo \'Here is some more debugging info:\';&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; print_r($_FILES);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; echo \"\\n&lt;hr /&gt;\\n\";&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; print_r($_POST);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">print \"&lt;/pr\" . \"e&gt;\\n\";&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">?&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. 서버 파일생성&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\"># mkdir uploads&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\"># chmod 777 uploads&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3. 클라이언트 파일 업로드&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\"># curl -i -X POST -F \"file_contents=@전송할파일명\"&nbsp; http://사이트명/imsi.php&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">ex)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\"># curl -i -X POST -F \"file_contents=@1.tar.gz\"&nbsp; http://사이트명/imsi.php&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">[출처]&nbsp;</span><a href=\"http://ibluekr.blogspot.kr/2016/11/curl-php-post.html\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://ibluekr.blogspot.kr/2016/11/curl-php-post.html</a></p>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:27:17',0,'2019-04-26 15:27:17','210.101.103.92','','','','','','','','','','','',''),(360,-360,'',360,0,0,'','','html1','[Arduino] 아두이노 시리얼 출력 데이터 엑셀연동','<p><span style=\"color: #404040; font-family: 굴림;\">1. PLX-DAQ 내려받기 :&nbsp;</span><a href=\"https://www.parallax.com/downloads/plx-daq\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://www.parallax.com/downloads/plx-daq</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. 아두이노 코드에서 아래와 같이 하면 엑셀연동 가능&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void setup() {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.begin(38400);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.println(\"LABEL, Time, X, Y, Z\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void loop() {&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; Serial.print(\"DATA,TIME,\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; Serial.print(x); Serial.print(\",\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; Serial.print(y); Serial.print(\",\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; Serial.print(z);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; Serial.println();&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}</span></p>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:27:34',1,'2019-04-26 15:27:34','210.101.103.92','','','','','','','','','','','',''),(361,-361,'',361,0,0,'','','html1','[ETC] LoRa Security 인증절차','<p class=\"se_textarea\" style=\"padding: 0px; width: 500px; height: 573px; outline: 0px; border: none; background: 0px 0px rgb(255, 255, 255); font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; line-height: inherit; color: #333333; text-decoration-line: inherit; resize: none; overflow-wrap: break-word; word-break: break-all;\"><span lang=\"EN-US\" style=\"background-color: inherit; color: black;\">LoRaWAN<sup>TM</sup>&nbsp;Specification R1.0</span><span style=\"background-color: inherit; color: black;\">과</span><span lang=\"EN-US\" style=\"background-color: inherit; color: black;\">&nbsp;Semtech LoRaWAN Server Release 2.0.2&nbsp;</span><span style=\"background-color: inherit; color: black;\">규격을</span><span style=\"background-color: inherit; color: black;\">&nbsp;</span><span style=\"background-color: inherit; color: black;\">기반<br /></span><span style=\"background-color: inherit; color: black;\"><br /></span><span style=\"background-color: inherit; color: black;\">ㅇ 기지국 연동<br /></span><span style=\"background-color: inherit; color: black;\">-&nbsp;<span style=\"background-color: inherit;\">기지국은</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;NW&nbsp;</span><span style=\"background-color: inherit;\">서버와</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;UDP&nbsp;</span><span style=\"background-color: inherit;\">기반의</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;GWMP&nbsp;</span><span style=\"background-color: inherit;\">프로토콜 통신</span><br /></span><span style=\"background-color: inherit; color: black;\"><span style=\"background-color: inherit;\"></span><br /></span><span style=\"background-color: inherit; color: black;\"><span style=\"background-color: inherit;\">ㅇ 기지국 인증</span><br /></span><span style=\"background-color: inherit; color: black;\"><span style=\"background-color: inherit;\"><span style=\"background-color: inherit;\">기지국으로부터</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">수신된</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;PULL_DATA</span><span style=\"background-color: inherit;\">를</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">수신하게</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">되면</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;NW&nbsp;</span><span style=\"background-color: inherit;\">서버는</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">해당</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">메시지를</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">전송한</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">기지국을</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">지칭하는</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;GwEUI</span><span style=\"background-color: inherit;\">에</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">대하여</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">인증을</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">기능을</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">수행</span></span><br /></span><span style=\"background-color: inherit; color: black;\"><span style=\"background-color: inherit;\"></span><br /></span><span style=\"background-color: inherit; color: black;\"><span style=\"background-color: inherit;\">ㅇDevice Activation</span><br /></span><span style=\"background-color: inherit; color: black;\"><span style=\"background-color: inherit;\">-&nbsp;</span></span><span style=\"background-color: inherit; color: #00a350;\"><span style=\"background-color: inherit; color: black;\"><span style=\"background-color: inherit; color: #00a350;\">디바이스는</span><span lang=\"EN-US\" style=\"background-color: inherit; color: #00a350;\">&nbsp;Join-Req&nbsp;</span><span style=\"background-color: inherit; color: #00a350;\">메시지를</span><span style=\"background-color: inherit; color: #00a350;\">&nbsp;</span><span style=\"background-color: inherit; color: #00a350;\">통하여</span><span lang=\"EN-US\" style=\"background-color: inherit; color: #00a350;\">&nbsp;DevEUI, AppEUI, DevNonce</span><span style=\"background-color: inherit; color: #00a350;\">를</span><span style=\"background-color: inherit; color: #00a350;\">&nbsp;</span><span style=\"background-color: inherit; color: #00a350;\">암호화하지</span><span style=\"background-color: inherit; color: #00a350;\">&nbsp;</span><span style=\"background-color: inherit; color: #00a350;\">않은</span><span style=\"background-color: inherit; color: #00a350;\">&nbsp;</span><span style=\"background-color: inherit; color: #00a350;\">상태로</span><span lang=\"EN-US\" style=\"background-color: inherit; color: #00a350;\">&nbsp;NW&nbsp;</span><span style=\"background-color: inherit; color: #00a350;\">서버로</span><span style=\"background-color: inherit; color: #00a350;\">&nbsp;</span><span style=\"background-color: inherit; color: #00a350;\">전달</span></span></span><span style=\"background-color: inherit; color: black;\"><span style=\"background-color: inherit;\"><span style=\"background-color: inherit;\">합니다</span><span lang=\"EN-US\" style=\"background-color: inherit;\">.<span style=\"background-color: inherit;\">&nbsp;&nbsp;</span></span><span style=\"background-color: inherit;\">이때</span><span lang=\"EN-US\" style=\"background-color: inherit;\">,&nbsp;</span><span style=\"background-color: inherit;\">디바이스는</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;AppKey</span><span style=\"background-color: inherit;\">라는</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;Cyper Key</span><span style=\"background-color: inherit;\">를</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">내부적으로</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">가지고</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">있는</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">상태입니다</span><span lang=\"EN-US\" style=\"background-color: inherit;\">.</span><br /></span><span style=\"background-color: inherit;\"><span lang=\"EN-US\" style=\"background-color: inherit;\">-&nbsp;<span lang=\"EN-US\" style=\"background-color: inherit;\">Join-Req&nbsp;</span><span style=\"background-color: inherit;\">수신한</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;</span></span></span></span><span style=\"background-color: inherit; color: #00a350;\"><span style=\"background-color: inherit; color: black;\"><span lang=\"EN-US\" style=\"background-color: inherit;\"><span lang=\"EN-US\" style=\"background-color: inherit; color: #00a350;\"><span lang=\"EN-US\" style=\"background-color: inherit;\">NW&nbsp;</span><span style=\"background-color: inherit;\">서버는</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;DevEUI&nbsp;</span><span style=\"background-color: inherit;\">및</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;AppEUI로</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">등록된</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">가입자임을</span><span style=\"background-color: inherit;\">&nbsp;</span><span style=\"background-color: inherit;\">확인</span><br /></span></span></span></span><span style=\"background-color: inherit; color: black;\"><span style=\"background-color: inherit;\"><span lang=\"EN-US\" style=\"background-color: inherit;\"></span><span lang=\"EN-US\" style=\"background-color: inherit;\"><span style=\"background-color: inherit;\">-&nbsp;<span style=\"background-color: inherit;\">이후</span><span lang=\"EN-US\" style=\"background-color: inherit;\">, AppNonce, NetID, DevAddr, DLSetting, RxDelay, ChanFreqList (Optional)&nbsp;</span><span style=\"background-color: inherit;\">를</span>&nbsp;<span lang=\"EN-US\" style=\"background-color: inherit;\">Join-Accept&nbsp;</span><span style=\"background-color: inherit;\">메시지를</span>&nbsp;<span style=\"background-color: inherit;\">이용하여전달합니다</span><span lang=\"EN-US\" style=\"background-color: inherit;\">.<span style=\"background-color: inherit;\">&nbsp;&nbsp;</span>Join-Accept&nbsp;</span><span style=\"background-color: inherit;\">메시지는</span><span lang=\"EN-US\" style=\"background-color: inherit;\">&nbsp;AppKey</span><span style=\"background-color: inherit;\">로</span>&nbsp;<span style=\"background-color: inherit;\">암호화되어</span>&nbsp;<span style=\"background-color: inherit;\">디바이스로</span>&nbsp;<span style=\"background-color: inherit;\">전달합니다</span><span lang=\"EN-US\" style=\"background-color: inherit;\">.</span><br /></span></span></span></span></p>\r\n<p style=\"padding: 0px; color: #333333; font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff;\">- 디바이스는&nbsp;<span lang=\"EN-US\">Join-Accept&nbsp;</span>메시지를&nbsp;수신하여<span lang=\"EN-US\">&nbsp;AppKey</span>로&nbsp;복호화한&nbsp;후<span lang=\"EN-US\">AppNonce</span>와<span lang=\"EN-US\">&nbsp;NetID, DevNonce&nbsp;</span>를&nbsp;이용하여<span lang=\"EN-US\">&nbsp;</span><span lang=\"EN-US\" style=\"color: #00a350;\">NetSKey</span><span style=\"color: #00a350;\">와</span><span lang=\"EN-US\" style=\"color: #00a350;\">&nbsp;AppSKey</span><span style=\"color: #00a350;\">를</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">생성</span>합니다<span lang=\"EN-US\">.</span><br /></p>\r\n<p><span lang=\"EN-US\" style=\"font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff;\">-&nbsp;</span><span style=\"font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff; color: #00a350;\"><span style=\"color: black;\"><span lang=\"EN-US\"><span lang=\"EN-US\"><span lang=\"EN-US\" style=\"color: #00a350;\">NetSKey</span><span style=\"color: #00a350;\">와</span><span lang=\"EN-US\" style=\"color: #00a350;\">&nbsp;AppSKey</span><span style=\"color: #00a350;\">는</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">이후</span><span lang=\"EN-US\" style=\"color: #00a350;\">&nbsp;MAC Command</span><span style=\"color: #00a350;\">와</span><span lang=\"EN-US\" style=\"color: #00a350;\">&nbsp;Application Data</span><span style=\"color: #00a350;\">를</span><span style=\"color: #00a350;\"></span><span style=\"color: #00a350;\">암호화</span><span lang=\"EN-US\" style=\"color: #00a350;\">/</span><span style=\"color: #00a350;\">복호화하는데</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">사용</span></span></span></span></span><span style=\"font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff;\"><span lang=\"EN-US\"><br /><br />ㅇ&nbsp;<span lang=\"EN-US\">Activation</span>에&nbsp;따른&nbsp;망<span lang=\"EN-US\">&nbsp;Profile&nbsp;</span>전송</span></span></p>\r\n<p style=\"padding: 0px;\">디바이스&nbsp;제조사에서&nbsp;디바이스에&nbsp;설정한&nbsp;데이터는&nbsp;저전력<span lang=\"EN-US\">&nbsp;IoT&nbsp;</span>네트워크에접속하기&nbsp;위한&nbsp;기본&nbsp;설정값임<br /></p>\r\n<p style=\"padding: 0px;\">이러한&nbsp;여러가지&nbsp;망을&nbsp;최적화하기&nbsp;위한<span lang=\"EN-US\">&nbsp;Profile</span>은<span lang=\"EN-US\">&nbsp;Join&nbsp;</span>절차에&nbsp;모두&nbsp;전달되어질&nbsp;수&nbsp;없음.&nbsp;따라서<span lang=\"EN-US\">,&nbsp;</span><span lang=\"EN-US\" style=\"color: #00a350;\">Join&nbsp;</span><span style=\"color: #00a350;\">이후</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">최초</span><span lang=\"EN-US\" style=\"color: #00a350;\">&nbsp;UL&nbsp;</span><span style=\"color: #00a350;\">데이터가</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">올라왔을</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">때</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">전달</span></p>\r\n<p><span style=\"font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff;\"><span lang=\"EN-US\"><br />ㅇ 디바이스&nbsp;상태&nbsp;조회<br /></span></span></p>\r\n<p style=\"padding: 0px;\">&nbsp;</p>\r\n<p style=\"padding: 0px;\"><span lang=\"EN-US\">- DevStatusReq</span>는&nbsp;디바이스&nbsp;상태&nbsp;조회를&nbsp;수행하는<span lang=\"EN-US\">&nbsp;MAC Command</span><br /></p>\r\n<p style=\"padding: 0px;\">- 이<span lang=\"EN-US\">&nbsp;Command</span>를&nbsp;이용하여<span lang=\"EN-US\">&nbsp;NW&nbsp;</span>서버는&nbsp;디바이스의&nbsp;배터리&nbsp;잔여량&nbsp;및<span lang=\"EN-US\">DevStatusReq</span>를&nbsp;수신했을&nbsp;때의<span lang=\"EN-US\">&nbsp;SNR</span>을&nbsp;조회<br /></p>\r\n<p style=\"padding: 0px;\"><span lang=\"EN-US\">- DevStatusReq</span>는<span lang=\"EN-US\">&nbsp;NW 서버</span>에서<span lang=\"EN-US\">&nbsp;Trigger</span>하며<span lang=\"EN-US\">,&nbsp;</span><span lang=\"EN-US\" style=\"color: #00a350;\">Trigger&nbsp;</span><span style=\"color: #00a350;\">주기는</span><span lang=\"EN-US\" style=\"color: #00a350;\">&nbsp;AppEUI</span><span style=\"color: #00a350;\">를</span><span style=\"color: #00a350;\"></span><span style=\"color: #00a350;\">등록할</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">때</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">주기를</span><span style=\"color: #00a350;\">&nbsp;</span><span style=\"color: #00a350;\">설정</span><br /></p>\r\n<p><span style=\"font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff;\"><span lang=\"EN-US\">- 주기가&nbsp;설정되어&nbsp;있더라도&nbsp;항상&nbsp;해당&nbsp;주기마다&nbsp;상태를&nbsp;조회할&nbsp;수&nbsp;있는&nbsp;것은&nbsp;아니며<span lang=\"EN-US\">, Class-A&nbsp;</span>디바이스인&nbsp;경우&nbsp;디바이스가<span lang=\"EN-US\">&nbsp;UL&nbsp;</span>데이터를&nbsp;올리는&nbsp;주기가&nbsp;길&nbsp;경우&nbsp;해당&nbsp;주기마다&nbsp;전송<br /></span></span><span style=\"font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff;\"><br /></span><span style=\"font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff;\">ㅇ<span lang=\"EN-US\">&nbsp;AppKey&nbsp;: Join-Ans&nbsp;</span>에&nbsp;대하여&nbsp;복호화&nbsp;시&nbsp;사용하는&nbsp;복호화<span lang=\"EN-US\">&nbsp;Key<br /></span>ㅇ<span lang=\"EN-US\">&nbsp;DevEUI&nbsp;: EUI64&nbsp;</span>포맷의<span lang=\"EN-US\">&nbsp;Global Unique ID</span>이며<span lang=\"EN-US\">&nbsp;MAC Address</span>에&nbsp;비유<span lang=\"EN-US\"><br /></span>ㅇ<span lang=\"EN-US\">&nbsp;AppEUI&nbsp;:&nbsp;</span>디바이스에&nbsp;설치된<span lang=\"EN-US\">&nbsp;Application&nbsp;</span>식별자이며<span lang=\"EN-US\">&nbsp;EUI64&nbsp;</span>포멧<span lang=\"EN-US\"><br /></span>ㅇ<span lang=\"EN-US\">&nbsp;Default Channel List&nbsp;: NW&nbsp;</span>서버에서<span lang=\"EN-US\">&nbsp;Channel&nbsp;</span>변경&nbsp;요구&nbsp;전까지&nbsp;사용하게&nbsp;될<span lang=\"EN-US\">&nbsp;Frequency<br /></span>ㅇ<span lang=\"EN-US\">&nbsp;Rx Param&nbsp;: Rx1 DR, RX2 DR&amp;Freq, PingSlot DR&amp;Freq. ,Beacon DR.....</span></span><span style=\"font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff;\"></span></p>\r\n<p><span style=\"font-family: 나눔고딕, nanumgothic, se_NanumGothic, AppleSDGothicNeo, sans-serif, simhei; font-size: 16px; background-color: #ffffff;\"><span lang=\"EN-US\"><br /></span></span></p>\r\n<div class=\"autosourcing-stub-extra\" style=\"zoom: 1; opacity: 1;\">\r\n   <p style=\"margin: 11px 0px 7px; padding: 0px; font-size: 12px; font-family: Dotum; font-style: normal; font-weight: normal;\"><strong style=\"font-weight: 600; padding: 0px 7px 0px 0px;\">[출처]</strong><span>&nbsp;</span><a href=\"https://blog.naver.com/tnseo444/220963703933\" target=\"_blank\" style=\"color: #608cba !important; text-decoration: underline;\">LoRa 기본 Call Flow</a><span style=\"padding: 0px 7px 0px 5px;\">|</span><strong style=\"font-weight: 600; padding: 0px 7px 0px 0px;\">작성자</strong><span>&nbsp;</span><a href=\"https://blog.naver.com/tnseo444\" target=\"_blank\" style=\"color: #608cba !important; text-decoration: underline;\">순대</a></p>\r\n   </div>','https://blog.naver.com/tnseo444/220963703933','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:27:53',0,'2019-04-26 15:27:53','210.101.103.92','','','','','','','','','','','',''),(362,-362,'',362,0,0,'','','html1','[Eagle] Eagle 이글캐드에서 다층기판(4층) 작업하기','<p><span style=\"color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; font-size: 14px; background-color: #ffffff;\">Eagle CAD는 기본이 2층이라서 4층이상의 PCB설계시 설정변경이 필요하다. 아래그림과 같이 DRC메뉴의&nbsp;</span></p>\r\n<p><span style=\"color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; font-size: 14px; background-color: #ffffff;\">Layers에서 Setup항목의 설정을&nbsp;</span></p>\r\n<p><span style=\"color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; font-size: 14px; background-color: #ffffff;\">(1*16)에서 [2:(1*(2*3)*16):3]으로 변경을 한다.&nbsp; 그러면 레이어가 추가가 된다.</span></p>','https://blog.naver.com/wararat/220777465341','',1,0,4,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:28:20',1,'2019-04-26 15:28:20','210.101.103.92','','','','','','','','','','','',''),(363,-363,'',363,0,0,'','','html1','[ETC] 카카오톡과 LoRa 기술을 이용한 Pet Feeder','<h1 id=\"카카오톡과-lora-기술을-이용한-pet-feeder\" style=\"font-size: 2.2em; margin: 0px 0px 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both;\">카카오톡과 LoRa 기술을 이용한 Pet Feeder</h1>\r\n<h2 id=\"구현-아이디어-및-요약\" style=\"font-size: 1.8em; margin: 1.275em 0px 0.85em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both; border-bottom: 1px solid rgb(230, 230, 230);\"><a name=\"구현-아이디어-및-요약\" href=\"https://kaizen8501.tistory.com/130#%EA%B5%AC%ED%98%84-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4-%EB%B0%8F-%EC%9A%94%EC%95%BD\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>구현 아이디어 및 요약</h2>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">최근 사물인터넷(Internet of Things, IoT)은 차세대 이동통신 서비스의 생태계 구축을 위해 가장 중요한 역할을 수행 할 것으로 예측되고 있으며, 사물인터넷을 위한 LPWAN(Low-Power Wide-Area Network)에 대한 관심이 증가하고 있다.<br style=\"clear: both;\" />국내 통신사에서도 LPWAN 기술 및 IoT에 지속적으로 관심을 가지고 있으며, 국내 3사 통신사 중 SKT는 LoRa, LG와 KT는 NB-IoT를 주력 IoT 서비스로 내세우고 있다.</p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">본 프로젝트에서는 SKT의 LoRa 서비스를 이용해 애완동물의 먹이를 원격에서 줄 수 있는 Pet Feeder를 구현 할 예정이며, Pet Feeder Service를 구성하는 컨트롤러 보드, LoRa 모니터링 서버, 스마트폰 구현 방법에 대해 설명한다.</p>\r\n<h2 id=\"프로젝트-목표\" style=\"font-size: 1.8em; margin: 1.275em 0px 0.85em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both; border-bottom: 1px solid rgb(230, 230, 230);\"><a name=\"프로젝트-목표\" href=\"https://kaizen8501.tistory.com/130#%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%AA%A9%ED%91%9C\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>프로젝트 목표</h2>\r\n<ul style=\"margin: 0px; padding: 0px; list-style: none; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px;\">\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">카카오톡을 이용한 먹이 주기 명령 수행</li>\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">컨트롤러 보드에서 온/습도 정보를 측정해서 LoRa 모니터링 서버에서 모니터링 하기</li>\r\n   </ul>\r\n<h2 id=\"프로젝트-구성도\" style=\"font-size: 1.8em; margin: 1.275em 0px 0.85em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both; border-bottom: 1px solid rgb(230, 230, 230);\"><a name=\"프로젝트-구성도\" href=\"https://kaizen8501.tistory.com/130#%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B5%AC%EC%84%B1%EB%8F%84\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>프로젝트 구성도</h2>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">프로젝트는 아래 그림과 같이 컨트롤러, SKT LoRa Network, LoRa 모니터링 서버, 카카오톡 서버로 구성된다.<br style=\"clear: both;\" />컨트롤러에서 온/습도 데이터를 측정해서 LoRa로 데이터를 송신하면, SKT의 G/W(Gateway)와 N/W(Network)서버를 통해 ThingPlug에 데이터를 전달한다. ThingPlug는 전달 받은 데이터를 LoRa 모니터링 서버에게 다시 전달하고, LoRa 모니터링 서버는 수신한 데이터를 자신의 DB(Database)에 저장한다.</p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">참고로, ThingPlug에 전달된 데이터는 ThingPlug에 DB에 임시적으로 저장되지만, 저장된 데이터는 2일 후에 삭제 된다. 때문에 본 프로젝트와 같이 사용자가 직접 구현한 서버에서 ThingPlug의 데이터를 가져 오는 작업을 해야 한다. ThingPlug에서 데이터를 가져오는 방법은 해당 링크를 참고 하기 바란다.<a href=\"http://docs.thingplug.apiary.io/#reference/data-management\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a><a href=\"http://docs.thingplug.apiary.io/#reference/data-management\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\">http://docs.thingplug.apiary.io/#reference/data-management</a></p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">추가로 카카오톡 서버에서는 발생하는 이벤트를 LoRa 모니터링 서버로 Redirection 해서, 사용자가 카카오톡을 이용하여 먹이 주기를 수행 할 수 있는 구조로 설계 하였다.</p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/35012805370/in/dateposted-public/\" title=\"Contest1\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4283/35012805370_c9608ef691_c.jpg\" width=\"800\" height=\"379\" alt=\"Contest1\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<h2 id=\"컨트롤러\" style=\"font-size: 1.8em; margin: 1.275em 0px 0.85em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both; border-bottom: 1px solid rgb(230, 230, 230);\"><a name=\"컨트롤러\" href=\"https://kaizen8501.tistory.com/130#%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>컨트롤러</h2>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">컨트롤러의 역할은 온/습도 정보를 측정하여 SKT LoRa Network로 전달하는 기능과 카카오톡으로 부터 먹이 주기 명령을 받으면 내부에 있는 스크류를 동작 시켜 애완동물의 먹이를 밖으로 배출한다.</p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">컨트롤러의 구성요소는 아래와 같다.</p>\r\n<ul style=\"margin: 0px; padding: 0px; list-style: none; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px;\">\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">T자형 PVC와 내부 스크류</li>\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">Continuous Rotation Servo ( Parallax )</li>\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">WizArduino Mega Wifi ( WIZnet )</li>\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">LoRa Kit ( WIZnet )</li>\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">LoRa 모듈 (TLT01CS1, 솔루엠)</li>\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">온습도 센서 ( DHT11 )</li>\r\n   </ul>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">컨트롤러는 아래와 같은 단계로 제작 되었다.</p>\r\n<ol style=\"margin: 0px; padding: 0px; list-style-position: initial; list-style-image: initial; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px;\">\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">Thingiverse에서 해당 프로젝트에서 사용할 수 있는 3D 모델링 파일들을 검색하고, 이를 3D 프린터로 출력. (모델링 파일의 원본 주소:&nbsp;<a href=\"https://www.thingiverse.com/thing:34100\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\">https://www.thingiverse.com/thing:34100</a>&nbsp;)</li>\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">출력된 스크류와 서보 모터를 연결하고, 이를 50파이 짜리 T자형 PVC에 장착</li>\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">WizArduino MEGA WIFI와 Wiznet Lora Kit 연결 ( WizArduino와 LoRa Kit간에는 Software UART(RX:10,TX:11)를 사용 함 )</li>\r\n   <li style=\"margin: 0px; padding: 0px; line-height: 1.4em;\">WizArduino의 9번 핀을 이용하여 Servo Motor 제어</li>\r\n   </ol>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/35012805020/in/dateposted-public/\" title=\"Contest4\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4274/35012805020_9159f8f2ce_c.jpg\" width=\"800\" height=\"491\" alt=\"Contest4\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">본 프로젝트를 위해 SoluM 모듈을 Arduino 에서 사용 할 수 있도록 라이브러리 작업을 진행 하였으며, 해당 라이브러리는 아래 주소에서 다운 받을 수 있다.<br style=\"clear: both;\" /><a href=\"https://github.com/kaizen8501/solum_lora_library\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a><a href=\"https://github.com/kaizen8501/solum_lora_library\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\">https://github.com/kaizen8501/solum_lora_library</a></p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">컨트롤러 역할을 하는 아두이노 보드의 코드는 아래와 같다.</p>\r\n<pre style=\"overflow: auto; font-size: 14px; border-radius: 3px; overflow-wrap: break-word; border: 1px solid rgb(204, 204, 204); padding: 0.5em; color: #657b83; background: rgb(253, 246, 227);\">\r\n   <code class=\"cpp\" data-origin=\"<pre><code class=&quot;cpp&quot;>#include &quot;Arduino.h&quot;\r\n#include &lt;SKT_LoRa.h&gt;\r\n#include &lt;SoftwareSerial.h&gt;\r\n#include &lt;Servo.h&gt;\r\nSoftwareSerial LoRaSerial(10, 11); // RX, TX\r\nServo servo;\r\nint servoPin = 9;\r\nvoid setup()\r\n{\r\n    servo.attach(servoPin);\r\n    servo.write(90);\r\n    Serial.begin(38400);\r\n    LoRaSerial.begin(38400);\r\n    LoRa.init(&amp;amp;LoRaSerial);\r\n    LoRa.begin();\r\n}\r\nvoid loop()\r\n{\r\n    char str[100];\r\n    if( LoRa.available() )\r\n    {\r\n        LoRa.read((uint8_t*)str,100);\r\n        if( strcmp(str,&quot;1000\\r\\n&quot;) == 0 )\r\n        {\r\n            Serial.println(&quot;Start Feed&quot;);\r\n            servo.write(120);\r\n            delay(5000);\r\n            servo.write(90);\r\n        }\r\n    }\r\n}\r\n</code></pre>\" style=\"display: block; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 3px; overflow-wrap: break-word; border: 1px solid rgb(204, 204, 204); padding: 0px 5px; margin: 0px 2px; font-size: 1em; letter-spacing: -1px; font-weight: bold;\"><span class=\"hljs-preprocessor\" style=\"color: #cb4b16;\">#<span class=\"hljs-keyword\">include</span> \"Arduino.h\"</span><span class=\"hljs-preprocessor\" style=\"color: #cb4b16;\">#<span class=\"hljs-keyword\">include</span> &lt;SKT_LoRa.h&gt;</span><span class=\"hljs-preprocessor\" style=\"color: #cb4b16;\">#<span class=\"hljs-keyword\">include</span> &lt;SoftwareSerial.h&gt;</span><span class=\"hljs-preprocessor\" style=\"color: #cb4b16;\">#<span class=\"hljs-keyword\">include</span> &lt;Servo.h&gt;</span><span class=\"hljs-function\">SoftwareSerial <span class=\"hljs-title\" style=\"color: #268bd2;\">LoRaSerial</span><span class=\"hljs-params\">(10, 11)</span></span>; <span class=\"hljs-comment\" style=\"color: #93a1a1;\">// RX, TX</span>\r\nServo servo;\r\n<span class=\"hljs-keyword\" style=\"color: #859900;\">int</span> servoPin = <span class=\"hljs-number\" style=\"color: #2aa198;\">9</span>;\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\" style=\"color: #859900;\">void</span><span class=\"hljs-title\" style=\"color: #268bd2;\">setup</span><span class=\"hljs-params\">()</span></span>{\r\n    servo.attach(servoPin);\r\n    servo.write(<span class=\"hljs-number\" style=\"color: #2aa198;\">90</span>);\r\n    Serial.begin(<span class=\"hljs-number\" style=\"color: #2aa198;\">38400</span>);\r\n    LoRaSerial.begin(<span class=\"hljs-number\" style=\"color: #2aa198;\">38400</span>);\r\n    LoRa.init(&amp;LoRaSerial);\r\n    LoRa.begin();\r\n}\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\" style=\"color: #859900;\">void</span><span class=\"hljs-title\" style=\"color: #268bd2;\">loop</span><span class=\"hljs-params\">()</span></span>{\r\n    <span class=\"hljs-keyword\" style=\"color: #859900;\">char</span> str[<span class=\"hljs-number\" style=\"color: #2aa198;\">100</span>];\r\n    <span class=\"hljs-keyword\" style=\"color: #859900;\">if</span>( LoRa.available() )\r\n    {\r\n        LoRa.read((<span class=\"hljs-keyword\" style=\"color: #859900;\">uint8_t</span>*)str,<span class=\"hljs-number\" style=\"color: #2aa198;\">100</span>);\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">if</span>( <span class=\"hljs-built_in\" style=\"color: #268bd2;\">strcmp</span>(str,<span class=\"hljs-string\" style=\"color: #2aa198;\">\"1000\\r\\n\"</span>) == <span class=\"hljs-number\" style=\"color: #2aa198;\">0</span> )\r\n        {\r\n            Serial.println(<span class=\"hljs-string\" style=\"color: #2aa198;\">\"Start Feed\"</span>);\r\n            servo.write(<span class=\"hljs-number\" style=\"color: #2aa198;\">120</span>);\r\n            delay(<span class=\"hljs-number\" style=\"color: #2aa198;\">5000</span>);\r\n            servo.write(<span class=\"hljs-number\" style=\"color: #2aa198;\">90</span>);\r\n        }\r\n    }\r\n}\r\n</code>\r\n   </pre>\r\n<h2 id=\"lora-모니터링-서버\" style=\"font-size: 1.8em; margin: 1.275em 0px 0.85em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both; border-bottom: 1px solid rgb(230, 230, 230);\"><a name=\"lora-모니터링-서버\" href=\"https://kaizen8501.tistory.com/130#lora-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EC%84%9C%EB%B2%84\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>LoRa 모니터링 서버</h2>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">로라 모니터링 서버는 Django 플랫폼을 이용하여 구현 하였으며, 컨트롤러와 같이 SKT LoRa Network에 연결되어 있는 디바이스들의 정보를 모니터링 하거나 제어 할 수 있는 기능을 가지고 있다. 또한 본 프로젝트를 위한 용도 이외에 SKT LoRa를 위한 범용 웹 서버로 사용 가능 하다.</p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/35012804930/in/dateposted-public/\" title=\"Contest5\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4210/35012804930_860bc6ac7d_c.jpg\" width=\"800\" height=\"195\" alt=\"Contest5\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><span style=\"font-size: 1.6em; font-weight: bold;\">카카오톡 플러스 친구 설정 및 연동 방법</span></p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">카카오톡 플러스 친구를 설정하기 위해서는&nbsp;<a href=\"https://center-pf.kakao.com/\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a><a href=\"https://center-pf.kakao.com/\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\">https://center-pf.kakao.com/</a>에 접속하고 아래와 같은 절차를 수행 해야 한다.</p>\r\n<h3 id=\"새-플러스-친구-만들기-버튼-클릭-후-정보-기입\" style=\"font-size: 1.6em; margin: 1.125em 0px 0.75em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both;\"><a name=\"새-플러스-친구-만들기-버튼-클릭-후-정보-기입\" href=\"https://kaizen8501.tistory.com/130#%EC%83%88-%ED%94%8C%EB%9F%AC%EC%8A%A4-%EC%B9%9C%EA%B5%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EB%B2%84%ED%8A%BC-%ED%81%B4%EB%A6%AD-%ED%9B%84-%EC%A0%95%EB%B3%B4-%EA%B8%B0%EC%9E%85\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>새 플러스 친구 만들기 버튼 클릭 후 정보 기입</h3>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/34590471353/in/dateposted-public/\" title=\"Contest6-0\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4259/34590471353_dd46360fa7_c.jpg\" width=\"800\" height=\"240\" alt=\"Contest6-0\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/34590471253/in/dateposted-public/\" title=\"Contest6-1\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4196/34590471253_2d1404a9df_z.jpg\" width=\"640\" height=\"588\" alt=\"Contest6-1\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<h3 id=\"스마트-채팅-설정\" style=\"font-size: 1.6em; margin: 1.125em 0px 0.75em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both;\"><a name=\"스마트-채팅-설정\" href=\"https://kaizen8501.tistory.com/130#%EC%8A%A4%EB%A7%88%ED%8A%B8-%EC%B1%84%ED%8C%85-%EC%84%A4%EC%A0%95\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>스마트 채팅 설정</h3>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">아래 그림과 같이 스마트 채팅 탭을 클릭하고 API형에 대한 설정 버튼을 눌러 API에 대한 설정을 진행 한다.<br style=\"clear: both;\" />자동응답형은 노출되는 버튼을 선택해서 제어 하는 방식으로 사용 할 수 있으며, 본 프로젝트는 대화형으로 제어 명령을 보내기 위해 API 형을 사용 하였다.</p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/35399712465/in/dateposted-public/\" title=\"Contest6\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4253/35399712465_4c15a66006_z.jpg\" width=\"640\" height=\"478\" alt=\"Contest6\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<h3 id=\"api형-설정\" style=\"font-size: 1.6em; margin: 1.125em 0px 0.75em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both;\"><a name=\"api형-설정\" href=\"https://kaizen8501.tistory.com/130#api%ED%98%95-%EC%84%A4%EC%A0%95\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>API형 설정</h3>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">API형 설정에서 가장 중요한 부분은 앱 URL 이다. 앱 URL에 기입 란에 LoRa 모니터링 서버의 URL 혹은 IP 주소를 입력하고 카카오톡을 위한 keyboard와 message가 구현되어 있는 URL 주소를 입력한다.<br style=\"clear: both;\" />본 프로젝트는 아래와 같이&nbsp;<a href=\"http://xn--ip-cb5ju9v/thingplug/device/kakao\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\">http://IP주소/thingplug/device/kakao</a>&nbsp;로 설정되어 있다.</p>\r\n<pre style=\"overflow: auto; color: #333333; font-size: 14px; border-radius: 3px; overflow-wrap: break-word; border: 1px solid rgb(204, 204, 204); padding: 0.5em;\">\r\n   <code data-origin=\"<pre><code>urlpatterns = [\r\n    url(r\'^device/kakao/keyboard/\', views.pet_feeder_kakao_keyboard),\r\n    url(r\'^device/kakao/message\', views.pet_feeder_kakao_message),\r\n    ]\r\n</code></pre>\" style=\"display: block; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 3px; overflow-wrap: break-word; border: 1px solid rgb(204, 204, 204); padding: 0px 5px; margin: 0px 2px; font-size: 1em; letter-spacing: -1px; font-weight: bold;\">urlpatterns = [\r\n    url(r\'^device/kakao/keyboard/\', views.pet_feeder_kakao_keyboard),\r\n    url(r\'^device/kakao/message\', views.pet_feeder_kakao_message),\r\n    ]\r\n</code>\r\n   </pre>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/34590471173/in/dateposted-public/\" title=\"Contest7\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4240/34590471173_16c7fce505_z.jpg\" width=\"640\" height=\"539\" alt=\"Contest7\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">카카오톡 연동을 위한 설정이 정상적으로 완료 되었다면, API 테스트 버튼을 눌렀을 때 아래와 같이 keyboard OK 응답을 받아야 한다.</p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/35012804410/in/dateposted-public/\" title=\"Contest8\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4257/35012804410_9f4690b8fc_z.jpg\" width=\"640\" height=\"553\" alt=\"Contest8\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">카카오톡 연동을 위한 Python 코드는 아래와 같다.</p>\r\n<pre style=\"overflow: auto; font-size: 14px; border-radius: 3px; overflow-wrap: break-word; border: 1px solid rgb(204, 204, 204); padding: 0.5em; color: #657b83; background: rgb(253, 246, 227);\">\r\n   <code class=\"python\" data-origin=\"<pre><code class=&quot;python&quot;>def pet_feeder_kakao_keyboard(request):\r\n    return JsonResponse({\r\n            \'type\':\'text\',\r\n            })\r\nkakao_user = \'\'\r\nkakao_device = \'\'\r\n@csrf_exempt\r\ndef pet_feeder_kakao_message(request):\r\n    global  kakao_user\r\n    global  kakao_device\r\n    json_str = ((request.body).decode(\'utf-8\'))\r\n    received_json_data = json.loads(json_str)\r\n    command = received_json_data[\'content\']\r\n    user_obj = User.objects.all()\r\n    user_info = \'\'\r\n    if command.find(\'계정\') != -1:\r\n        for user in user_obj:\r\n            user_info += \'- \' + user.username + \'\\r\\n\'\r\n        return JsonResponse({\r\n            \'message\':{\r\n                \'text\': \'등록된 계정은 아래와 같습니다.\\r\\n\' + user_info\r\n            },\r\n        })\r\n    elif command.find(\'헬프\') != -1 or command.find(\'help\') != -1:\r\n        return JsonResponse({\r\n            \'message\': {\r\n                \'text\': \'명령어 리스트\\r\\n\' +\r\n                        \'- 계정\\r\\n\' +\r\n                        \'- 장치 리스트\\r\\n\' +\r\n                        \'- 밥줘\\r\\n\'\r\n            },\r\n        })\r\n    elif command.find(\'재접속\') != -1:\r\n        pass\r\n    elif command.find(\'장치리스트\') != -1 or command.find(\'장치 리스트\') != -1:\r\n        command_list = command.split(\' \')\r\n        for command in command_list:\r\n            for user in user_obj:\r\n                if command.find(user.username) != -1:\r\n                    kakao_user = user.username\r\n                    #device_info = \'\'\r\n                    device_list = []\r\n                    tp_info_obj = ThingplugInfo.objects.get(user=user)\r\n                    dev_obj = DeviceInfo.objects.filter(thingpluginfo=tp_info_obj)\r\n                    for device in dev_obj:\r\n                        #device_info += device.device_id + &quot;\\r\\n&quot;\r\n                        device_list.append(device.device_id+\' 장치 등록\')\r\n                    return JsonResponse({\r\n                        \'message\':{\r\n                            #\'text\': \'등록된 장치는 아래와 같습니다.\\r\\n\' + device_info\r\n                            \'text\': \'등록된 장치는 아래와 같습니다.\'\r\n                        },\r\n                        \'keyboard\':{\r\n                            \'type\': \'buttons\',\r\n                            \'buttons\':device_list\r\n                        }\r\n                    })\r\n        return JsonResponse({\r\n            \'message\':{\r\n                \'text\': \'계정 정보를 포함해서 질문 해 주세요.\'\r\n            }\r\n        })\r\n    elif command.find(\'장치 등록\') != -1:\r\n        try:\r\n            user = User.objects.get(username=kakao_user)\r\n        except User.DoesNotExist:\r\n            return JsonResponse({\r\n                \'message\': {\r\n                    \'text\': \'[장치 리스트]를 요청해 주세요.\'\r\n                }\r\n            })\r\n        try:\r\n            tp_info_obj = ThingplugInfo.objects.get(user=user)\r\n            dev_obj = DeviceInfo.objects.filter(thingpluginfo=tp_info_obj)\r\n        except:\r\n            return JsonResponse({\r\n                \'message\': {\r\n                    \'text\': \'ThingPlug 정보 확인 바람\'\r\n                }\r\n            })\r\n        command_list = command.split(\' \')\r\n        for command in command_list:\r\n            for device in dev_obj:\r\n                if command.find(device.device_id) != -1:\r\n                    kakao_device = device.device_id\r\n                    return JsonResponse({\r\n                        \'message\': {\r\n                            \'text\': kakao_device + \' 등록 완료\'\r\n                        }\r\n                    })\r\n        return JsonResponse({\r\n            \'message\': {\r\n                \'text\': \'디바이스 정보가 없습니다.\'\r\n            }\r\n        })\r\n    elif command.find(\'밥\') != -1:\r\n        node_id = kakao_device\r\n        mgmt_cmd = \'1000\'\r\n        result, cmd_inst = g_thingplug.createMgmtInstance(node_id, &quot;extDevMgmt&quot;, mgmt_cmd)\r\n        time.sleep(3)\r\n        result, exe_status, exe_result = g_thingplug.retrieveMgmtResult(node_id, &quot;extDevMgmt&quot;, cmd_inst)\r\n        if result == True:\r\n            message = node_id + \' 동작 성공\'\r\n        else:\r\n            message = node_id + \' 동작 실패\'\r\n        return JsonResponse({\r\n            \'message\': {\r\n                \'text\': message\r\n            },\r\n        })\r\n    return JsonResponse({\r\n        \'message\': {\r\n            \'text\': \'명령이 없습니다.\'\r\n        },\r\n    })\r\n</code></pre>\" style=\"display: block; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 3px; overflow-wrap: break-word; border: 1px solid rgb(204, 204, 204); padding: 0px 5px; margin: 0px 2px; font-size: 1em; letter-spacing: -1px; font-weight: bold;\"><span class=\"hljs-function\"><span class=\"hljs-keyword\" style=\"color: #859900;\">def</span><span class=\"hljs-title\" style=\"color: #268bd2;\">pet_feeder_kakao_keyboard</span><span class=\"hljs-params\">(request)</span>:</span><span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'type\'</span>:<span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>,\r\n            })\r\nkakao_user = <span class=\"hljs-string\" style=\"color: #2aa198;\">\'\'</span>\r\nkakao_device = <span class=\"hljs-string\" style=\"color: #2aa198;\">\'\'</span><span class=\"hljs-decorator\" style=\"color: #268bd2;\">@csrf_exempt</span><span class=\"hljs-function\"><span class=\"hljs-keyword\" style=\"color: #859900;\">def</span><span class=\"hljs-title\" style=\"color: #268bd2;\">pet_feeder_kakao_message</span><span class=\"hljs-params\">(request)</span>:</span><span class=\"hljs-keyword\" style=\"color: #859900;\">global</span>  kakao_user\r\n    <span class=\"hljs-keyword\" style=\"color: #859900;\">global</span>  kakao_device\r\n    json_str = ((request.body).decode(<span class=\"hljs-string\" style=\"color: #2aa198;\">\'utf-8\'</span>))\r\n    received_json_data = json.loads(json_str)\r\n    command = received_json_data[<span class=\"hljs-string\" style=\"color: #2aa198;\">\'content\'</span>]\r\n    user_obj = User.objects.all()\r\n    user_info = <span class=\"hljs-string\" style=\"color: #2aa198;\">\'\'</span><span class=\"hljs-keyword\" style=\"color: #859900;\">if</span> command.find(<span class=\"hljs-string\" style=\"color: #2aa198;\">\'계정\'</span>) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span>:\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">for</span> user <span class=\"hljs-keyword\" style=\"color: #859900;\">in</span> user_obj:\r\n            user_info += <span class=\"hljs-string\" style=\"color: #2aa198;\">\'- \'</span> + user.username + <span class=\"hljs-string\" style=\"color: #2aa198;\">\'\\r\\n\'</span><span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>:{\r\n                <span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: <span class=\"hljs-string\" style=\"color: #2aa198;\">\'등록된 계정은 아래와 같습니다.\\r\\n\'</span> + user_info\r\n            },\r\n        })\r\n    <span class=\"hljs-keyword\" style=\"color: #859900;\">elif</span> command.find(<span class=\"hljs-string\" style=\"color: #2aa198;\">\'헬프\'</span>) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span><span class=\"hljs-keyword\" style=\"color: #859900;\">or</span> command.find(<span class=\"hljs-string\" style=\"color: #2aa198;\">\'help\'</span>) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span>:\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>: {\r\n                <span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: <span class=\"hljs-string\" style=\"color: #2aa198;\">\'명령어 리스트\\r\\n\'</span> +\r\n                        <span class=\"hljs-string\" style=\"color: #2aa198;\">\'- 계정\\r\\n\'</span> +\r\n                        <span class=\"hljs-string\" style=\"color: #2aa198;\">\'- 장치 리스트\\r\\n\'</span> +\r\n                        <span class=\"hljs-string\" style=\"color: #2aa198;\">\'- 밥줘\\r\\n\'</span>\r\n            },\r\n        })\r\n    <span class=\"hljs-keyword\" style=\"color: #859900;\">elif</span> command.find(<span class=\"hljs-string\" style=\"color: #2aa198;\">\'재접속\'</span>) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span>:\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">pass</span><span class=\"hljs-keyword\" style=\"color: #859900;\">elif</span> command.find(<span class=\"hljs-string\" style=\"color: #2aa198;\">\'장치리스트\'</span>) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span><span class=\"hljs-keyword\" style=\"color: #859900;\">or</span> command.find(<span class=\"hljs-string\" style=\"color: #2aa198;\">\'장치 리스트\'</span>) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span>:\r\n        command_list = command.split(<span class=\"hljs-string\" style=\"color: #2aa198;\">\' \'</span>)\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">for</span> command <span class=\"hljs-keyword\" style=\"color: #859900;\">in</span> command_list:\r\n            <span class=\"hljs-keyword\" style=\"color: #859900;\">for</span> user <span class=\"hljs-keyword\" style=\"color: #859900;\">in</span> user_obj:\r\n                <span class=\"hljs-keyword\" style=\"color: #859900;\">if</span> command.find(user.username) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span>:\r\n                    kakao_user = user.username\r\n                    <span class=\"hljs-comment\" style=\"color: #93a1a1;\">#device_info = \'\'</span>\r\n                    device_list = []\r\n                    tp_info_obj = ThingplugInfo.objects.get(user=user)\r\n                    dev_obj = DeviceInfo.objects.filter(thingpluginfo=tp_info_obj)\r\n                    <span class=\"hljs-keyword\" style=\"color: #859900;\">for</span> device <span class=\"hljs-keyword\" style=\"color: #859900;\">in</span> dev_obj:\r\n                        <span class=\"hljs-comment\" style=\"color: #93a1a1;\">#device_info += device.device_id + \"\\r\\n\"</span>\r\n                        device_list.append(device.device_id+<span class=\"hljs-string\" style=\"color: #2aa198;\">\' 장치 등록\'</span>)\r\n                    <span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n                        <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>:{\r\n                            <span class=\"hljs-comment\" style=\"color: #93a1a1;\">#\'text\': \'등록된 장치는 아래와 같습니다.\\r\\n\' + device_info</span><span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: <span class=\"hljs-string\" style=\"color: #2aa198;\">\'등록된 장치는 아래와 같습니다.\'</span>\r\n                        },\r\n                        <span class=\"hljs-string\" style=\"color: #2aa198;\">\'keyboard\'</span>:{\r\n                            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'type\'</span>: <span class=\"hljs-string\" style=\"color: #2aa198;\">\'buttons\'</span>,\r\n                            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'buttons\'</span>:device_list\r\n                        }\r\n                    })\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>:{\r\n                <span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: <span class=\"hljs-string\" style=\"color: #2aa198;\">\'계정 정보를 포함해서 질문 해 주세요.\'</span>\r\n            }\r\n        })\r\n    <span class=\"hljs-keyword\" style=\"color: #859900;\">elif</span> command.find(<span class=\"hljs-string\" style=\"color: #2aa198;\">\'장치 등록\'</span>) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span>:\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">try</span>:\r\n            user = User.objects.get(username=kakao_user)\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">except</span> User.DoesNotExist:\r\n            <span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n                <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>: {\r\n                    <span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: <span class=\"hljs-string\" style=\"color: #2aa198;\">\'[장치 리스트]를 요청해 주세요.\'</span>\r\n                }\r\n            })\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">try</span>:\r\n            tp_info_obj = ThingplugInfo.objects.get(user=user)\r\n            dev_obj = DeviceInfo.objects.filter(thingpluginfo=tp_info_obj)\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">except</span>:\r\n            <span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n                <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>: {\r\n                    <span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: <span class=\"hljs-string\" style=\"color: #2aa198;\">\'ThingPlug 정보 확인 바람\'</span>\r\n                }\r\n            })\r\n        command_list = command.split(<span class=\"hljs-string\" style=\"color: #2aa198;\">\' \'</span>)\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">for</span> command <span class=\"hljs-keyword\" style=\"color: #859900;\">in</span> command_list:\r\n            <span class=\"hljs-keyword\" style=\"color: #859900;\">for</span> device <span class=\"hljs-keyword\" style=\"color: #859900;\">in</span> dev_obj:\r\n                <span class=\"hljs-keyword\" style=\"color: #859900;\">if</span> command.find(device.device_id) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span>:\r\n                    kakao_device = device.device_id\r\n                    <span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n                        <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>: {\r\n                            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: kakao_device + <span class=\"hljs-string\" style=\"color: #2aa198;\">\' 등록 완료\'</span>\r\n                        }\r\n                    })\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>: {\r\n                <span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: <span class=\"hljs-string\" style=\"color: #2aa198;\">\'디바이스 정보가 없습니다.\'</span>\r\n            }\r\n        })\r\n    <span class=\"hljs-keyword\" style=\"color: #859900;\">elif</span> command.find(<span class=\"hljs-string\" style=\"color: #2aa198;\">\'밥\'</span>) != -<span class=\"hljs-number\" style=\"color: #2aa198;\">1</span>:\r\n        node_id = kakao_device\r\n        mgmt_cmd = <span class=\"hljs-string\" style=\"color: #2aa198;\">\'1000\'</span>\r\n        result, cmd_inst = g_thingplug.createMgmtInstance(node_id, <span class=\"hljs-string\" style=\"color: #2aa198;\">\"extDevMgmt\"</span>, mgmt_cmd)\r\n        time.sleep(<span class=\"hljs-number\" style=\"color: #2aa198;\">3</span>)\r\n        result, exe_status, exe_result = g_thingplug.retrieveMgmtResult(node_id, <span class=\"hljs-string\" style=\"color: #2aa198;\">\"extDevMgmt\"</span>, cmd_inst)\r\n        <span class=\"hljs-keyword\" style=\"color: #859900;\">if</span> result == <span class=\"hljs-keyword\" style=\"color: #859900;\">True</span>:\r\n            message = node_id + <span class=\"hljs-string\" style=\"color: #2aa198;\">\' 동작 성공\'</span><span class=\"hljs-keyword\" style=\"color: #859900;\">else</span>:\r\n            message = node_id + <span class=\"hljs-string\" style=\"color: #2aa198;\">\' 동작 실패\'</span><span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>: {\r\n                <span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: message\r\n            },\r\n        })\r\n    <span class=\"hljs-keyword\" style=\"color: #859900;\">return</span> JsonResponse({\r\n        <span class=\"hljs-string\" style=\"color: #2aa198;\">\'message\'</span>: {\r\n            <span class=\"hljs-string\" style=\"color: #2aa198;\">\'text\'</span>: <span class=\"hljs-string\" style=\"color: #2aa198;\">\'명령이 없습니다.\'</span>\r\n        },\r\n    })\r\n</code>\r\n   </pre>\r\n<h3 id=\"카카오톡-데모\" style=\"font-size: 1.6em; margin: 1.125em 0px 0.75em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both;\"><a name=\"카카오톡-데모\" href=\"https://kaizen8501.tistory.com/130#%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EB%8D%B0%EB%AA%A8\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>카카오톡 데모</h3>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">스마트폰에서 카카오톡 플러스 친구를 추가 하고, 아래 그림과 같이 명령을 수행하면 컨트롤러를 제어 할 수 있다.</p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/35012804310/in/dateposted-public/\" title=\"Contest9\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4273/35012804310_f218a405b6_z.jpg\" width=\"640\" height=\"322\" alt=\"Contest9\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<h3 id=\"웹페이지-데모\" style=\"font-size: 1.6em; margin: 1.125em 0px 0.75em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both;\"><a name=\"웹페이지-데모\" href=\"https://kaizen8501.tistory.com/130#%EC%9B%B9%ED%8E%98%EC%9D%B4%EC%A7%80-%EB%8D%B0%EB%AA%A8\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>웹페이지 데모</h3>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\">LoRa 모니터링 서버에서는 웹 서버 기능도 지원하고 있으며, 아래와 같은 페이지를 이용하여 컨트롤러에게 제어를 내리거나 컨트롤러가 송신하는 데이터를 로그 및 차트 형태로 확인 할 수 있다.</p>\r\n<p style=\"margin-top: 1em; margin-bottom: 1em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px; overflow-wrap: break-word;\"><a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/129944648@N04/35012804240/in/dateposted-public/\" title=\"Contest10\" style=\"color: #3269a0; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"><img src=\"https://c1.staticflickr.com/5/4282/35012804240_540c4316b1_z.jpg\" width=\"640\" height=\"388\" alt=\"Contest10\" style=\"display: block; border: 0px; max-width: 100%;\" /></a></p>\r\n<h2 id=\"동작-데모\" style=\"font-size: 1.8em; margin: 1.275em 0px 0.85em; padding: 0px; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; clear: both; border-bottom: 1px solid rgb(230, 230, 230);\"><a name=\"동작-데모\" href=\"https://kaizen8501.tistory.com/130#%EB%8F%99%EC%9E%91-%EB%8D%B0%EB%AA%A8\" style=\"color: #3269a0; font-weight: normal; text-decoration-line: none; vertical-align: baseline;\" target=\"_blank\"></a>동작 데모</h2>\r\n<p><iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/06L_qdEGjJs\" frameborder=\"0\" allowfullscreen=\"\" style=\"overflow: hidden; margin: 0px; padding: 0px; border-width: 0px; border-style: initial; color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px;\"></iframe><br style=\"color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px;\" /><br style=\"color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px;\" /><span style=\"color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px;\">출처:&nbsp;</span><a href=\"https://kaizen8501.tistory.com/130\" style=\"color: #666666; text-decoration-line: none; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px;\" target=\"_blank\">https://kaizen8501.tistory.com/130</a><span style=\"color: #333333; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, Dotum, 돋움, &quot;Noto Sans KR&quot;, &quot;Nanum Gothic&quot;, Lato, Helvetica, sans-serif; font-size: 14px;\">&nbsp;[Life4IoT]</span></p>','https://kaizen8501.tistory.com/130','',0,0,3,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:28:56',0,'2019-04-26 15:28:56','210.101.103.92','','','','','','','','','','','',''),(364,-364,'',364,0,0,'','','html1','[Arduino] 레오나르도 소프트웨어 시리얼','<p><span style=\"color: #404040; font-family: 굴림;\">Leonardo 지원의 모든 핀이 인터럽트를 변경하는 것은 아니기 때문에 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI)의 RX에만 사용할 수 있습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://forum.arduino.cc/index.php?topic=244000.0\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://forum.arduino.cc/index.php?topic=244000.0</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"https://www.arduino.cc/en/Reference/SoftwareSerial\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://www.arduino.cc/en/Reference/SoftwareSerial</a></p>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:29:22',0,'2019-04-26 15:29:22','210.101.103.92','','','','','','','','','','','',''),(365,-365,'',365,0,0,'','','html1','[Arduino] 2.2inch SPI TFT LCD 사용법','<p><span style=\"color: #404040; font-family: 굴림;\">*판매처 링크&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">1.&nbsp;</span><a href=\"https://www.ic114.com/AJAXWWW/SITE/sc/00V0.aspx?ID_P=P0080706\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://www.ic114.com/AJAXWWW/SITE/sc/00V0.aspx?ID_P=P0080706</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2.&nbsp;</span><a href=\"http://storefarm.naver.com/ic11401/products/635260113\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://storefarm.naver.com/ic11401/products/635260113</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">*해당 라이브러리 링크&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"https://github.com/Nkawu/TFT_22_ILI9225\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://github.com/Nkawu/TFT_22_ILI9225</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">*사용방법&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">본 제품은 SPI 인터페이스를 가진 2.2인치의 TFT LCD 모듈입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">SPI 인터페이스를 가지고 있어, 많은 I/O핀이 필요없어 쉽게 MCU와 연결이 가능합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">ILI9225 LCD 컨트롤러를 탑재하였으며, Nokia 5110 디스플레이 모듈을 대치하여 사용할 수 있습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">176x220 RGB 해상도를 가졌으며, 뒷면에는 SD카드 슬롯을 장착하였습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3.3V / 5V 전압 및 로직으로 동작하여 Arduino Pro Mini 3.3V 및 라즈베리 파이, UNO , MEGA2560 등과 잘 동작합니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Adafruit ILI9225 라이브러리 및 커뮤니티 아두이노 라이브러리인 UTFT 라이브러리 등과 호환됩니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">결선은 다음과 같습니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">1. UNO 결선&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">LCD Pin&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Arduino Pin&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">-------&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -----------&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;1&nbsp; Vcc&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Vcc&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;2&nbsp; Gnd&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Gnd&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;3&nbsp; Gnd&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Gnd or N/C (Not Connection)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;4&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; N/C&nbsp; &nbsp; (Not Connection)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;5&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; N/C&nbsp; &nbsp; (Not Connection)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;6&nbsp; LED (backlight)&nbsp; D3&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;7&nbsp; CLK&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D13 (SCK)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;8&nbsp; SDI&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D11 (MOSI)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;9&nbsp; RS&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D9&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">10&nbsp; RST&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D8&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">11&nbsp; CS&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D10&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2. MEGA 결선&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">LCD Pin&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Arduino Pin&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mega&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">-------&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -----------&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ----&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">1&nbsp; Vcc&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Vcc&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2&nbsp; Gnd&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Gnd&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3&nbsp; Gnd&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Gnd or N/C(Not Connection)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">4&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; N/C&nbsp; (Not Connection)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">5&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; N/C&nbsp; (Not Connection)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">6&nbsp; LED (backlight)&nbsp; D3&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">7&nbsp; CLK&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D13 (SCK)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 52&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">8&nbsp; SDI&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D11 (MOSI)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 51&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">9&nbsp; RS&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D9&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">10&nbsp; RST&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D8&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">11&nbsp; CS&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; D10 (SS)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 53&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">==========================================================&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">*참고&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">tft.setOrientation(i);&nbsp; // i가 0 ~ 3 에 따라 LCD출력방향 회전&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">tft.setFont(Terminal12x16);&nbsp; //해당 폰트기준, tft.setOrientation(1);&nbsp; 가로방향일때&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">-가로축 끝은 210, 세로축 끝은 162&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">-가로(x축) 으로는 12씩 띄어야 간격이 일정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">-세로(y축) 으로는 12씩 띄어야 간격이 일정</span></p>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:29:31',0,'2019-04-26 15:29:31','210.101.103.92','','','','','','','','','','','',''),(366,-366,'',366,0,0,'','','html1','[ETC] 윈도우10 정품인증','<p>...</p>','','',0,0,5,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:30:03',1,'2019-04-26 15:30:03','210.101.103.92','','','','','','','','','','','',''),(367,-367,'',367,0,0,'','','html1','[Linux] gstreamer 설치','<p>~$ wget http://gstreamer.freedesktop.org/src/gst-rtsp/gst-rtsp-0.10.8.tar.bz2</p>\r\n<p>~$ bzip2 -d gst-rtsp-0.10.8.tar.bz2</p>\r\n<p>~$ tar xvf gst-rtsp-0.10.8.tar</p>\r\n<p>~$ cd /gst-rtsp-0.10.8/</p>\r\n<p><br /></p>\r\n<p><strike>~$ sudo apt-get install libglib2.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev gstreamer-tools gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly</strike></p>\r\n<p>&nbsp;</p>\r\n<p>~$ sudo apt-get install libglib2.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev gstreamer-tools gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly</p>\r\n<p>&nbsp;</p>\r\n<p>~$ ./configure</p>\r\n<p>~$ make</p>\r\n<p><br /></p>\r\n<p>~$ cd examples</p>\r\n<p>~$ raspivid -t 0 -h 720 -w 1280 -fps 25 -b 2000000 -vf -hf -n -o - | gst-launch -v fdsrc ! h264parse ! gdppay ! tcpserversink host=127.0.0.1 port=5000 | ./test-launch \"( tcpclientsrc host=127.0.0.1 port=5000 ! gdpdepay ! avdec_h264 ! rtph264pay name=pay0 pt=96 )\"</p>\r\n<p><br /></p>\r\n<p>rtsp://192.168.1.12:8554/test</p>\r\n<p>&nbsp;</p>','','',0,0,7,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:30:25',0,'2019-04-26 15:30:25','210.101.103.92','','','','','','','','','','','',''),(368,-368,'',368,0,0,'','','html1','[ETC] usb메모리 write protection 에러 날때 해결법','<p>...</p>','http://blog.daum.net/revoice/6994303','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:31:00',0,'2019-04-26 15:31:00','210.101.103.92','','','','','','','','','','','',''),(369,-369,'',369,0,0,'','','html1','[Arduino] (TIP) 5V 아두이노(우노)에 3.3V 모듈 간단 연결','<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><b style=\"color: #666666; font-size: 9pt; line-height: 1.5;\"><span style=\"background-color: red; font-size: 12pt;\"><span style=\"color: white;\">&nbsp;블루투스 모듈 HC-06의 경우&nbsp;</span></span></b></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체; font-size: 9pt; line-height: 1.5;\">저렴하고 성능 좋아 많이 쓰이는 블루투스모듈 HC-06은 3.3V 입니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">잘 팔리는 모델은 아래 사진처럼 만지작거리기 편하도록 Pin Connector를 덧 붙여 다시 보드위에 조립한 형태입니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">그정도로는 왠지 허전 했던지 전원쪽에 조그만 레귤레이터를 붙여 입력 전원 범위를 3.6V - 6V 로 넓혀 놓았습니다만&nbsp;</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">시그널쪽은 그대로 입니다. &nbsp;<b>3.3V !!!</b></span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\"><b><br /></b></span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\">&nbsp;</div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\">\r\n   <div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"https://3.bp.blogspot.com/-ACNLffeqMfY/VyfzcRGMcII/AAAAAAAAAI8/2UHhlYoIv-wvcdUfI91CT8tdUI3VWUE9gCLcB/s1600/1.jpg\" imageanchor=\"1\" style=\"text-decoration-line: none; color: #888888; margin-left: 1em; margin-right: 1em;\" target=\"_blank\"><img border=\"0\" src=\"https://3.bp.blogspot.com/-ACNLffeqMfY/VyfzcRGMcII/AAAAAAAAAI8/2UHhlYoIv-wvcdUfI91CT8tdUI3VWUE9gCLcB/s1600/1.jpg\" style=\"border: 1px solid rgb(238, 238, 238); position: relative; padding: 5px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; box-shadow: rgba(0, 0, 0, 0.1) 1px 1px 5px;\" /></a></div>\r\n   <br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체; font-size: 9pt; line-height: 1.5;\">3.3V 입력에 5V 출력을 연결하면 안됩니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">잠깐 쓰는 것 정도는 문제 없을지 몰라도 아까운 부품이 오래 오래 장수하길 기대하기는 곤란합니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">그러나 3.3V 출력을 5V 입력에 연결하는 것은 전혀 문제 없습니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">우노 VCC는 +5V, 따라서 IO 도 모두 +5V 입니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">HC-06 Rx 측에 1K + 2K 저항 2개 가지고 분압하여 5V to 3.3V level shift 해 줍니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">Tx측은 그대로 연결하여도 됩니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\">\r\n   <div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"https://4.bp.blogspot.com/-XiEFH0aFpvY/VyfzvO5cVjI/AAAAAAAAAJA/6mbIYWW4yZsaWlWhWqQUAzJZG4cDqRO4gCLcB/s1600/2.png\" imageanchor=\"1\" style=\"text-decoration-line: none; color: #888888; margin-left: 1em; margin-right: 1em;\" target=\"_blank\"><img border=\"0\" height=\"208\" src=\"https://4.bp.blogspot.com/-XiEFH0aFpvY/VyfzvO5cVjI/AAAAAAAAAJA/6mbIYWW4yZsaWlWhWqQUAzJZG4cDqRO4gCLcB/s320/2.png\" width=\"320\" style=\"border: 1px solid rgb(238, 238, 238); position: relative; padding: 5px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; box-shadow: rgba(0, 0, 0, 0.1) 1px 1px 5px;\" /></a></div>\r\n   <br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">0402(1015) &nbsp;저항을 connector pin사이에 붙입니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">작업이 간단하고 왠만해선 눈에 띄이지도 않아 미관상 좋으나 좀 허약해 보이는 게 단점이죠.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\">\r\n   <div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"https://3.bp.blogspot.com/-mzCGeo1Cno4/Vyfz0nIKfyI/AAAAAAAAAJE/ocEWyu6JKMIyHcaqkTECmX_IflM9JsWFwCLcB/s1600/3.jpg\" imageanchor=\"1\" style=\"text-decoration-line: none; color: #888888; margin-left: 1em; margin-right: 1em;\" target=\"_blank\"><img border=\"0\" height=\"150\" src=\"https://3.bp.blogspot.com/-mzCGeo1Cno4/Vyfz0nIKfyI/AAAAAAAAAJE/ocEWyu6JKMIyHcaqkTECmX_IflM9JsWFwCLcB/s320/3.jpg\" width=\"320\" style=\"border: 1px solid rgb(238, 238, 238); position: relative; padding: 5px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; box-shadow: rgba(0, 0, 0, 0.1) 1px 1px 5px;\" /></a></div>\r\n   <br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\"><br /></span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><b style=\"color: #666666; font-size: 9pt; line-height: 1.5;\"><span style=\"background-color: red; font-size: 12pt;\"><span style=\"color: white;\">&nbsp;3축 가속도 센서 MMA8452의 경우&nbsp;</span></span></b></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\"><br /></span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체; font-size: 9pt; line-height: 1.5;\">IIC로 연결되기 때문에 양방향입니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">SDA, SCL은 MMA8452Q Breakout Board 내에서 10K 로 3.3V에 pull-up 되어 있습니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\"><a href=\"https://cdn.sparkfun.com/datasheets/Sensors/Accelerometers/MMA8452Q_Breakout-v10.pdf\" target=\"_blank\" style=\"text-decoration-line: none; color: #888888;\">https://cdn.sparkfun.com/datasheets/Sensors/Accelerometers/MMA8452Q_Breakout-v10.pdf</a></span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">단순히 저항가지고 분압할 수 있는 게 아닙니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">통상은 대략 난감한 경우이나&nbsp;</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">SDA, SCL에 330 저항 직렬로 삽입하는 걸로 간단히 처리하는 군요.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\">\r\n   <div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"https://3.bp.blogspot.com/-Li8xKGg4DuQ/Vyfz3O54HZI/AAAAAAAAAJI/1b3Oke5c_SwMrl0bop4U57f8SBliOC3lACLcB/s1600/4.png\" imageanchor=\"1\" style=\"text-decoration-line: none; color: #888888; margin-left: 1em; margin-right: 1em;\" target=\"_blank\"><img border=\"0\" height=\"203\" src=\"https://3.bp.blogspot.com/-Li8xKGg4DuQ/Vyfz3O54HZI/AAAAAAAAAJI/1b3Oke5c_SwMrl0bop4U57f8SBliOC3lACLcB/s320/4.png\" width=\"320\" style=\"border: 1px solid rgb(238, 238, 238); position: relative; padding: 5px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; box-shadow: rgba(0, 0, 0, 0.1) 1px 1px 5px;\" /></a></div>\r\n   <br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">역시 0402(1015) &nbsp;저항으로 connector pin사이를 연결합니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\">\r\n   <div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"https://1.bp.blogspot.com/-L0kP8DhTQfk/Vyfz5-99jWI/AAAAAAAAAJM/9z6yPrVnyB43FeB8fx6Jv9a19Qt_li1IACLcB/s1600/5.jpg\" imageanchor=\"1\" style=\"text-decoration-line: none; color: #888888; margin-left: 1em; margin-right: 1em;\" target=\"_blank\"><img border=\"0\" height=\"320\" src=\"https://1.bp.blogspot.com/-L0kP8DhTQfk/Vyfz5-99jWI/AAAAAAAAAJM/9z6yPrVnyB43FeB8fx6Jv9a19Qt_li1IACLcB/s320/5.jpg\" width=\"301\" style=\"border: 1px solid rgb(238, 238, 238); position: relative; padding: 5px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; box-shadow: rgba(0, 0, 0, 0.1) 1px 1px 5px;\" /></a></div>\r\n   <br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">Sparkfun 측에서는 이 팁에 대해 이렇게 설명합니다.</span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\"><span style=\"color: #3a32c3;\">\"MMA8452Q 내에서 SDA, SCL에 ESD(Electro Static Discharge) diode가 걸려있어 &nbsp;3.3V 이상 올라가지 못한다.</span></span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\"><span style=\"color: #3a32c3;\">&nbsp;더해서 Arduino 측 SDA, SCL은 ATmega 내부에서 5V pull-up 되었으나 이 저항이 3.3V 로 pull-up 하는 10K 보다&nbsp;</span></span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\"><span style=\"color: #3a32c3;\">&nbsp;상당히 큰 값이어서 3.3V가 유지된다. \"&nbsp;</span></span></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><br /></div>\r\n<div style=\"background-color: #ffffff; color: #333333; font-family: 돋움, dotum, Helvetica, sans-serif; line-height: 16.8px; list-style: none; margin: 0px; padding: 0px;\"><span style=\"font-family: 굴림체;\">그렇군요. 실제 테스터로 측정해 보면 확인이 됩니다.</span></div>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:31:19',0,'2019-04-26 15:31:19','210.101.103.92','','','','','','','','','','','',''),(370,-370,'',370,0,0,'','','html1','[ETC] 크롬 브라우저 쓸때 유독 구글이나 유튭느릴때','<p><span style=\"color: #404040; font-family: 굴림;\">주소창에서 chrome://flags/ 를 입력&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">찾기 눌러서 QUIC입력하면 아래화면같이 나오고 파란색 줄에 보이는대로&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">아래 설정을 Default 에서 Disabled 로 바꿈</span></p>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:31:41',1,'2019-04-26 15:31:41','210.101.103.92','','','','','','','','','','','',''),(371,-371,'',371,0,0,'','','html1','[ETC] 윈도우 기능기 기능','<p><span style=\"color: #404040; font-family: 굴림;\">F&nbsp; 기능키&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F1-선택한 항목의 도움말을 출력한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F2-선택한 파일아니 폴더의 이름을 바꾼다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F3-\"파일 또는 폴더\"검색창을 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F4-탐색기나 인터넷 익스슾포러에서 주소창을 드롭 다운한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F5-새로고침을 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F6-주소창을 선택한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F7-탐색기나 인터넷 익스플로러의 메뉴를 선택한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F8-전체창으로 전환힌다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">window + 키&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">D: 열려있는 창들을 최소화하고 바탕화면을 표시한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">E: 윈도우 탐색기를 연다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F: :파일 또는 폴더: 검색창을 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Ctrl+F ;\"컴퓨터\" 검색창을 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">L: 로그오프한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">M: 열려진 모든창을 최호화한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">shift+M:최소하된 모든창을 원래대로 되돌린다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">R:\"실행\"창을 연다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Tab: 작업표시줄의 열린창을 순서대로 선택한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Pause/Break: \"시스템 등록 정보\"창을 연다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Alt+키&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">d: 주소창을 선택한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Tab: 열려있는 특정 창을 선택한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Esc: 창들을 순서대로 선택한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">SPACE:\"메뉴\"를 선택한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">SPACE+R: \"이전크기로\"를 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">SPACE+M: \"이동\'을 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">SPACE+S: \"크기조정\"을 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">SPACE+N:\"최소화\"를 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">SPACE+X:\"최대화\"를 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Print Screen : 선택한 창을 캡쳐한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F4: 선택한 창을 닫는다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Enter(더블클릭): 선택한 파을 또는 폴더에 대한 등록정보를 본다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">ctrl +키&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">A:모든 항목을 선택한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">B:즐겨찾기 구성 창을 연다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">C:선택물을 저장한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">D:왼쪽에 탐색창을 연다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">E:검색창을 연다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">F:편집 내용을 저장한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">S:저장한 내용을 붙여넣는다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">V:현재 열려있는 창을 종료한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">W:선택물을 잘라낸다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Z:앞서한 결과의 실행을 취소한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Y: 실행 취소한것을 재 실행한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Esc: 시작메뉴를 부른다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Tab:주소창을 선택한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Alt+Del: 작업관리자를 부른다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">D&amp;D: 파일과 폴더를 복사한다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Shift+D&amp;D: 파일과 폴더의 바로가기를 만든다.</span></p>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:32:03',0,'2019-04-26 15:32:03','210.101.103.92','','','','','','','','','','','',''),(372,-372,'',372,0,0,'','','html1','[ETC] 2x3W 클래스D 미니 오디오 앰프 -PAM8403','<table width=\"100%\" cellpadding=\"5\" style=\"font-family: 굴림;\">\r\n   <tbody>\r\n      <tr>\r\n         <td class=\"lh\" height=\"100\" style=\"color: #222222; line-height: 18px; word-break: break-all;\">\r\n            <p><span class=\"content\" style=\"color: #404040;\">2x3W 클래스D 미니 오디오 앰프 -PAM8403, 5V(2x3W Class D Mini Audio Amplifier Board -PAM8403, 5V)</span><a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gnuboard.php&amp;bo_table=Computer&amp;page=2&amp;wr_id=31236\" style=\"text-decoration-line: none; color: #3a4e40;\" target=\"_blank\"></a><a href=\"http://geoworld.cafe24.com/gnu3/?doc=bbs/gnuboard.php&amp;bo_table=Computer&amp;page=2&amp;wr_id=31236\" style=\"text-decoration-line: none; color: #3a4e40;\" target=\"_blank\"></a></p>\r\n            </td>\r\n         </tr>\r\n      <tr></tr>\r\n      </tbody>\r\n   </table>','http://vctec.co.kr/product/detail.html?product_no=5232&cate_no=164&display_group=1','https://www.aliexpress.com/item/PAM8403-Super-mini-digital-amplifier-board-2-3W-Class-D-digital-amplifier-board-efficient-2-5/32727815821.html?spm=2114.search0104.3.1.82mBsw&ws_ab_test=searchweb0_0,searchweb201602_2_10152_10065_10151_10068_10344_10345_10342_10343_10340_10341_10307_10060_10155_10154_10056_10055_10054_10537_10059_10536_10534_10533_10532_100031_10099_10338_10103_10102_5590020_10052_10053_10142_10107_10050_10051_10084_10083_5370020_10080_10082_10081_5610020_10110_10175_10111_10112_10113_10114_10312_10313_10314_10078_10079_10073,searchweb201603_25,ppcSwitch_5&btsid=fb8ba18b-f7d5-40eb-b076-8d7e72d77478&algo_expid=e7fa39f2-a09c-4199-be42-296ed6155d71-0&algo_pvid=e7fa39f2-a09c-4199-be42-296ed6155d71',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:32:33',1,'2019-04-26 15:32:33','210.101.103.92','','','','','','','','','','','',''),(373,-373,'',373,0,0,'','','html1','[Eagle] Eagle CAD에서 DXF 파일 불러오기','<h3 style=\"padding: 0px; margin: 1em 0px; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s; font-size: 1.5em; color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; background-color: #ffffff;\">DXF파일 불러오기</h3>\r\n<p style=\"padding: 0px; margin-top: 1.3em; margin-bottom: 1.3em; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s; color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; font-size: 14px; background-color: #ffffff;\">Eagle CAD에서 보드의 외곽을 그릴 때 20 Dimension 레이어에서 Width 0으로 외곽선을 그린다. 일반적으로 보드가 사각형이면 그리는데 어려움은 없는데, 보드에 곡선이 있으면 쉽지 않다. 기구 설계하는 쪽에서 보드 외곽을 만들어 논 것이 있으면 이것을 &nbsp;DXF 파일로 변환하고, 이것을 Eagle CAD에서 불러와서 그대로 사용이 가능한다. Eagle CAD에서 바로 이 기능을 지원하는 것은 아니고 import-dxf 라는 ulp를 받아서 사용하면 된다. &nbsp;이 파일은&nbsp;<a href=\"http://www.cadsoftusa.com/downloads/ulps\" target=\"_blank\" style=\"padding: 0px; margin: 0px; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s; text-decoration-line: none; color: #0098cb;\">http://www.cadsoftusa.com/downloads/ulps</a>&nbsp;에서 import-dxf를 검색하면&nbsp;import-dxf-1_6.ulp를 받을 수 있다.</p>\r\n<p style=\"padding: 0px; margin-top: 1.3em; margin-bottom: 1.3em; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s; color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; font-size: 14px; background-color: #ffffff;\">ulp를 실행한 후 dxf파일을 선택하고 Metric, Scale을 설정하면 된다.&nbsp;단 DXF파일은 도면 형태가 아니고, 보드의 외곽만 있어야 제대로 import가 된다.</p>\r\n<p style=\"padding: 0px; margin-top: 1.3em; margin-bottom: 1.3em; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s; color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; font-size: 14px; background-color: #ffffff;\"><img class=\"alignnone\" src=\"http://openmicrolab.cdn2.cafe24.com/import_dxf.png\" alt=\"\" width=\"546\" style=\"padding: 0px; margin: 0px; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s; border: 0px; vertical-align: middle; height: auto; max-width: 100%;\" /></p>\r\n<h3 style=\"padding: 0px; margin: 1em 0px; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s; font-size: 1.5em; color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; background-color: #ffffff;\">보드의 원점 바꾸기</h3>\r\n<p style=\"padding: 0px; margin-top: 1.3em; margin-bottom: 1.3em; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s; color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; font-size: 14px; background-color: #ffffff;\">Import한 보드의 외곽이 원점(origin)에 위치하게 하는 방법은 보드의 외곽을 전체 선택하고 마우스로 옮길 수도 있지만 이 방법 보다는 다음의 명령어를 사용하는 것이 한번에 정확하게 된다. 여기서 dX dY는 옮길 위치의 좌표</p>\r\n<blockquote style=\"padding: 0px 0px 0px 1.5em; margin: 0px; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s; border-left: 2px solid rgb(38, 201, 255); font-size: 16.8px; font-style: italic; color: #222222; font-family: &quot;Nanum Gothic&quot;, sans-serif; background-color: #ffffff;\">\r\n   <p style=\"padding: 0px; margin-top: 1.3em; margin-bottom: 1.3em; outline: none; box-sizing: border-box; transition-property: background-color, border-color, color, opacity; transition-timing-function: linear; transition-duration: 0.15s;\">move (&gt;0 0) (dX dY)</p>\r\n   </blockquote>','https://openmicrolab.com/eagle-cad%EC%97%90%EC%84%9C-dxf-%ED%8C%8C%EC%9D%BC-%EB%B6%88%EB%9F%AC%EC%98%A4%EA%B8%B0/','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:33:00',1,'2019-04-26 15:33:00','210.101.103.92','','','','','','','','','','','',''),(374,-374,'',374,0,0,'','','html1','[Eagle] Eagle CAD에서 grid속성 적용하기','<p><font color=\"#404040\" face=\"굴림\"><strike>C:\\Users\\geoworld\\Documents\\EAGLE\\scripts</strike></font><span style=\"color: #404040; font-family: 굴림;\"><strike>&nbsp;아래 eagle.scr</strike>&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" />C:\\Users\\bk940\\OneDrive\\문서\\EAGLE\\scripts<br />===============================================================<br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">BRD:&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Grid mm 1.0 alt mm 0.5;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">SCH:&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">MENU \'[designlink22.png] Search and order {\\&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; General : Run designlink-order.ulp -general; |\\&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Schematic : Run designlink-order.ulp; \\&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }\';&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">#Grid Default;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Grid mm 1.27;</span></p>','','',0,0,21,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:33:24',0,'2019-04-26 15:33:24','210.101.103.92','','','','','','','','','','','',''),(375,-375,'',375,0,0,'','','html1','[Eagle] Eagle CAD에서 3D활용하기','<p style=\"padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">Eagle CAD에는 많은 ULP(User Language Program)이 존재한다. 일종의 C-like 프로그램으로 Eagle CAD의 데이터를 가지고 어떤 작업을 할 수 있게 해준다. 예를 들면 BOM를 뽑아주는 ULP 등...</p>\r\n<p style=\"padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">Eagle 홈페이지에 사용자가 자신이 작업한 ULP를 올릴 수 도 있다.&nbsp;</p>\r\n<p style=\"padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\"><a href=\"http://www.cadsoftusa.com/downloads/ulps?language=en\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; text-decoration-line: none;\" target=\"_blank\">http://www.cadsoftusa.com/downloads/ulps?language=en</a></p>\r\n<p style=\"padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\"><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\" /></p>\r\n<p style=\"padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">스위스의&nbsp;<a href=\"http://eagleup.wordpress.com/about/\" target=\"_blank\" class=\"tx-link\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; text-decoration-line: none;\">Jerome Lamy</a>&nbsp;라는 엔지니어는 &nbsp;Eagle CAD에서 작업한 PCB를 3D로 모델링해 주는 ULP를 만들었다.</p>\r\n<p style=\"padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">이것을 하기위해서는 다음과 같은 s/w가 필요하다.</p>\r\n<ul style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">\r\n   <li style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\">Eagle CAD : 당연히 이게 필요하고....</li>\r\n   <li style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\">Google Sketchup:&nbsp;<a href=\"http://sketchup.google.com/intl/en/download/\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; text-decoration-line: none;\" target=\"_blank\">http://sketchup.google.com/intl/en/download/</a></li>\r\n   <li style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\">ImageMagic:&nbsp;<a href=\"http://www.imagemagick.org/script/index.php\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; text-decoration-line: none;\" target=\"_blank\">http://www.imagemagick.org/script/index.php</a>&nbsp;여기에서 Binary Releases에서 OS에 맞는 것을 설치</li>\r\n   <li style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\">Eagleup ULP:&nbsp;<a href=\"https://sites.google.com/site/eagleupwarehouse/eagleUp4.3.zip?attredirects=0&amp;d=1\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; text-decoration-line: none;\" target=\"_blank\">https://sites.google.com/site/eagleupwarehouse/eagleUp4.3.zip?attredirects=0&amp;d=1</a>&nbsp;</li>\r\n   </ul>\r\n<div style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">위 s/w를 다운로드하고 인스톨한다.</div>\r\n<div style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">Eagleup ULP 압축 파일을 풀면 아래 그림의 폴더와 같다.</div>\r\n<div style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3; text-align: center; clear: none; float: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; padding: 0px; border: 0px; line-height: 1.3; display: inline-block; width: 173px; height: auto; max-width: 100%;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/185C1A344F97756406\" width=\"173\" filename=\"eagleup.PNG\" filemime=\"image/jpeg\" \"\"=\"\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; max-width: 100%; height: auto;\" /></span></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-. Eagle ULP 폴더에 있는&nbsp;eagleUp_export.ulp 파일을 Eagle이 설치된 폴더\\ulp\\ 에 copy한다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-.&nbsp;models 폴더를 통채로&nbsp;&nbsp;Eagle이 설치된 폴더\\ 아래에 copy한다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-. Sketchup Plugin 폴더에 있는&nbsp;eagleUp_import.rb 파일을 Google Sketchup이 설치된 폴더\\Plugins\\ 에 copy한다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\"><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\" /></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-. demo files에 있는 demo3.brd 파일을 Eagle CAD에서 연다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-. 이 파일을 열면 copper가 깔려있지 않은데, Tools&gt;Ratsnest를 실행해서 copper를 깐다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\"><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\" /></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3; text-align: center; clear: none; float: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; padding: 0px; border: 0px; line-height: 1.3; display: inline-block; width: 400px; height: auto; max-width: 100%;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/16508A464F9777BA06\" width=\"400\" filename=\"eagleup2.png\" filemime=\"image/jpeg\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; cursor: pointer; max-width: 100%; height: auto;\" /></span></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\"><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\" /></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-. File &gt; Run... 을 실행하여 \"eagleUp_export.ulp\"를 선택한다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-. 처음 실행시에는 path를 설정을 하는데, &nbsp;\"set for Windows\" 또는 \"set for OS X\"를 한후 자신의 툴이 깔린 위치를 확인하고 틀리면 맞게 수정을 한다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\"><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\" /></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3; text-align: center; clear: none; float: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; padding: 0px; border: 0px; line-height: 1.3; display: inline-block; width: 531px; height: auto; max-width: 100%;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/181017394F97786816\" width=\"531\" filename=\"eagleup3.png\" filemime=\"image/jpeg\" \"\"=\"\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; max-width: 100%; height: auto;\" /></span></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">&nbsp;</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-. 다음 나오는 창에서는 수정할 것이 없고, 그냥 OK 버튼을 누른다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-. demo3d.sch 파일이 있는 폴더 아래 \"eagleUp\" 폴더가 생기고, 그 안에 여러 파일들이 생성이 되었는데, 이중 확장자가 \"eup\"인 파일이 Google SketchUp에서 필요한 파일이다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-.&nbsp;Google SketchUp을 실행하고, \"Choose Template\"에서 \"Engineering -Meters\"를 선택을 한다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\"><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\" /></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3; text-align: center; clear: none; float: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; padding: 0px; border: 0px; line-height: 1.3; display: inline-block; width: 666px; height: auto; max-width: 100%;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/16798C3D4F977A5B1E\" width=\"666\" filename=\"eagleup4.png\" filemime=\"image/jpeg\" \"\"=\"\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; max-width: 100%; height: auto;\" /></span></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\"><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\" /></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">-. Plugins &gt; &nbsp;Import eagleUp v4.3 을 선택하여 eup 파일을 오픈한다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3; text-align: center; clear: none; float: none;\"><span class=\"imageblock\" style=\"margin: 5px 0px; padding: 0px; border: 0px; line-height: 1.3; display: inline-block; width: 683px; height: auto; max-width: 100%;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/180A6C424F977A6919\" width=\"683\" filename=\"eagleup6.png\" filemime=\"image/jpeg\" \"\"=\"\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; max-width: 100%; height: auto;\" /></span></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\"><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3;\" /></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">실제 PCB상에 부품이 어떻게 배치가 되고 서로 간섭은 없는지 기구적으로 살펴볼때 유용할 것 같다.</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">하지만 사용된 부품의 모델이 존재해야 이것도 가능하다는...</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">How to model 페이지 참고:&nbsp;<a href=\"http://eagleup.wordpress.com/how-to-model/\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; text-decoration-line: none;\" target=\"_blank\">http://eagleup.wordpress.com/how-to-model/</a></p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">부품의 모델들이 쌓이면 그 다음 부터는 수월할 듯...</p>\r\n   <p style=\"padding: 0px; border: 0px; line-height: 1.3;\">관련 정보:&nbsp;<a href=\"http://eagleup.wordpress.com/\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; text-decoration-line: none;\" target=\"_blank\">http://eagleup.wordpress.com/</a></p>\r\n   </div>\r\n<p><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\" /><br style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\" /><span style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">출처:&nbsp;</span><a href=\"https://liketheocean.tistory.com/entry/Eagle-CAD-3D-%EB%AA%A8%EB%8D%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0\" style=\"margin: 0px; padding: 0px; border: 0px; line-height: 1.3; font-family: 돋움, Dotum, AppleGothic, sans-serif; text-decoration-line: none; background-color: #e8e8e8;\" target=\"_blank\">https://liketheocean.tistory.com/entry/Eagle-CAD-3D-모델-만들기</a><span style=\"font-family: 돋움, Dotum, AppleGothic, sans-serif; background-color: #e8e8e8;\">&nbsp;[Smart &amp; Fusion]</span></p>','','',0,0,3,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:33:41',0,'2019-04-26 15:33:41','210.101.103.92','','','','','','','','','','','',''),(376,-376,'',376,0,0,'','','html1','[ETC] 중국카메라 셋팅','<p><span style=\"color: #404040; font-family: 굴림;\">* 위 제품의 경우 랜선을 아래와 같이 연결함&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">1 --- not&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2 --- TX+ / 흰녹&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3 --- TX- / 녹&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">4 --- not&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">5 --- RX+ / 흰주&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">6 --- RX- / 주&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">* RJ-45잭은 아래 제품을 사용, 연결함&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><a href=\"http://eleparts.co.kr/EPX33MNK\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">http://eleparts.co.kr/EPX33MNK</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">1 --- 흰녹&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2 --- 녹&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">3 --- 흰주&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">4/5 --- not&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">6 --- 주&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">7/8 --- not</span></p>','https://cafe.naver.com/carroty/289510','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:34:49',2,'2019-04-26 15:34:49','210.101.103.92','','','','','','','','','','','',''),(377,-377,'',377,0,0,'','','html1','[ETC] 5V 승압회로','<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\">자료출처 :&nbsp;<a href=\"http://blog.naver.com/digitaltech?Redirect=Log&amp;logNo=100035532413\" target=\"_blank\" class=\"con_link\" style=\"text-decoration-line: none; overflow-wrap: break-word;\">http://blog.naver.com/digitaltech?Redirect=Log&amp;logNo=100035532413</a></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\">&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\">위 링크의 자료를 바탕으로 회로도 작성.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\"><img src=\"http://cafefiles.naver.net/20140208_4/thumbdown_1391840182998OvyjA_PNG/1.png\" width=\"733\" height=\"321\" id=\"20140208_4/thumbdown_1391840182998OvyjA_PNG/1.png\" alt=\"\" style=\"border: none rgb(0, 0, 0); cursor: pointer;\" />&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\">며칠 전 제작한 보드가 출력이 승압은 커녕, 입력보다 0.1-0.2V 낮은 전압이 나와서, 이리저리 디버깅을 해봤지만 제작상의 문제점을 찾지 못하고, 시간만 버렸다고 생각했었다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\">오늘 책상에 앉아 모니터에 프린트해서 붙혀놓은 회로도를 멍하니 쳐다보다가 \"앗!\" 하고 떠오르는 것이 있었다. 부랴부랴 부품통을 뒤지고 뒤져서 세라믹102 하나를 찾아들고, 보드를 꺼냈다. 회로도에 1000pF를 1nF이 아니라 1uF로 착각하고 105를 달았던 것을 뒤늦게 오늘에야 생각해낸 것이다. 교체작업을 끝내고 측정해보니, 리튬이온 베터리 1Cell 입력으로 최대 5.5-5.6V 출력이 나온다.</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\">&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\">인증샷... 아, 입력 베터리가 LCD에 가려 사진에서 안보인다.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;이제 리튬이온 베터리가 보인다. 3.7V → 5V Step Up 동작 인증완료~<br /><img src=\"http://cafefiles.naver.net/20131130_52/thumbdown_1385807331585LQ1CV_JPEG/20131130_183717.jpg\" width=\"370\" height=\"208\" id=\"20131130_52/thumbdown_1385807331585LQ1CV_JPEG/20131130_183717.jpg\" alt=\"\" style=\"border: none rgb(0, 0, 0); cursor: pointer;\" /><img src=\"http://cafefiles.naver.net/20131130_243/thumbdown_1385807331782fJLJX_JPEG/20131130_183742.jpg\" width=\"370\" height=\"208\" id=\"20131130_243/thumbdown_1385807331782fJLJX_JPEG/20131130_183742.jpg\" alt=\"\" style=\"border: none rgb(0, 0, 0); cursor: pointer;\" /></p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\">&nbsp;</p>\r\n<p style=\"padding: 0px; line-height: 1.5; color: #333333; font-family: 돋움; text-align: justify; background-color: #ebebeb;\"><br /></p>','http://blog.naver.com/PostView.nhn?blogId=thumbdown&logNo=130185774502&redirect=Dlog&widgetTypeCall=true','',2,0,3,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:35:19',0,'2019-04-26 15:35:19','210.101.103.92','','','','','','','','','','','',''),(378,-378,'',378,0,0,'','','html1','[Arduino] DS1302 RTC 예제','<p><span style=\"color: #404040; font-family: 굴림;\">#include &lt;DS1302.h&gt;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">DS1302 rtc(7, 6, 5); //CE pin, I/O pin, SCLK pin&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Time t;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void setup()&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">{&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; //RTC 동작설정&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; rtc.halt(false);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; rtc.writeProtect(false);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.begin(9600);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; rtc.setDOW(WEDNESDAY);&nbsp; &nbsp; // Set Day-of-Week to WEDNESDAY&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; rtc.setTime(21, 54, 0);&nbsp; &nbsp; // Set the time to 21:45:00 (24hr format)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; rtc.setDate(20, 1, 2016);&nbsp; // Set the date to January 20th, 2016&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">void loop()&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">{&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; t = rtc.getTime(); //RTC에 저장된 시간을 들고옴&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(t.date, DEC);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(\".\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(rtc.getMonthStr());&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(\".\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(t.year, DEC);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.println(\".\");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(t.dow, DEC);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.println(\". week \");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(t.hour, DEC);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(\" : \");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(t.min, DEC);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.print(\" : \");&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; Serial.println(t.sec, DEC);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp; delay (1000);&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">}</span></p>','https://pawns.tistory.com/entry/%EC%8B%9C%EA%B0%84%EC%97%90-%EB%94%B0%EB%A5%B8-%EC%95%8C%EB%A6%BC%EB%93%B1-%EB%A7%8C%EB%93%A4%EA%B8%B0-2','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:35:39',0,'2019-04-26 15:35:39','210.101.103.92','','','','','','','','','','','',''),(379,-379,'',379,0,0,'','','html1','[ETC] Gravity Current 전류센서','<p><span style=\"color: #404040; font-family: 굴림;\">&gt;SPECIFICATION&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Module&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Operating Voltage: 3.3V - 5.5V&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Analog Output Voltage: 0.2V - 2.8V (DC)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">AC Signal Input Range: 0 - 1V (AC)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Relative Error: + 3%&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Interface: PH2.0-3P&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Dimensions: 32 * 27 mm/1.26 * 1.06 inches&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">AC Current Sensor Probe&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">AC Measurement Range: 0 - 20A&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">AC Signal Output: 0 - 1V AC map onto 0-20 A&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Non-linearity: ±3% (10% ~ 120% of the rated input current)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">lead length: 1.5 meters&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Opening and closing times: &gt;= 1000 times&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Working temperature: -25℃ to +70℃&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Dimensions: 13 * 13mm/ 0.51 * 0.51 inches</span></p>','https://www.dfrobot.com/product-1486.html','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:36:15',2,'2019-04-26 15:36:15','210.101.103.92','','','','','','','','','','','',''),(380,-380,'',380,0,0,'','','html1','[ETC] Bluetooth HID (HC-06에 RN42 펌웨어 올리기)','<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\">아두이노를 만지다가 갑자기 집에 고장난 유선셀카봉이 보여서 블루투스 무선셀카봉을 만들고싶다는 생각에 꽃혀무작정 도전해봤다. 그런데 문제는 무선셀카봉을 구현하려면 카메라를 찍기위해 볼륨을 줄이는 신호를 핸드폰에 줘야하는데,</p>\r\n<p><img src=\"https://cafeptthumb-phinf.pstatic.net/MjAxNzEyMTBfMjk2/MDAxNTEyOTEyMjQ1NzEz.ReSIm4sjcq2WZ3ZADbbE9gMx7oHA0gZ38BfmzOysAVMg.XLU8jBmmnsSiP-CTkG-_dIGLaCjjOMXDO083t3p4EfIg.JPEG.pgh268400/61RwNwc8P9L._SY463_.jpg?type=w740\" id=\"userImg3401645\" name=\"cafeuserimg\" style=\"border: none; color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; width: 463px; height: 463px;\" /><br style=\"color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\" /></p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\">집에있던 2달러 짜리 HC-06으론 이것이 불가능했다.<br />검색해보니 핸드폰에 특정 신호를 주기위해선&nbsp;<br /><br />블루투스 모듈이 HID(Human interface device)를 지원해야만 가능한일..<br /><br />+ 조이스틱도 마찬가지다<br /><br /><br />하지만 HID를 지원하는 블루투스 모듈은 가격대가 기본 삼만원대라서..<br /><br />HC-06(SPP)과는 비교가 안되는 금액이라 포기했었다.<br /><br /><br /><br />저번에 HID를 지원하지않는 우노보드의 부트로더를 플래싱하여 HID형태로 변경한 기억이있었는데<br /><br /><br /><br />혹시몰라 구글링을 해보다가 HID를 지원하는 Rn-42이 HC-06과 동일한 칩셋을 사용했다고해 펌웨어를<br /><br />플래싱하면 RN42처럼 쓸수있다는 말을 찾았다.<br /><br /><br /><br />마침 RN-42도 있었고 가격이부담 되 잘 사용하지않았던 터라<br /><br />마침 잘됬다고 생각하여 삽질을 시작했다...<br /><br /><br /><br />참고한곳 (</p>\r\n<p><a href=\"https://mitxela.com/projects/bluetooth_hid_gamepad)\" target=\"_blank\" id=\"4831663\" style=\"text-decoration-line: none; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\">https://mitxela.com/projects/bluetooth_hid_gamepad)</a><br style=\"color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\" /><img src=\"https://cafeptthumb-phinf.pstatic.net/MjAxNzEyMTBfMjg1/MDAxNTEyOTEyNDgzNjQ2.rKiz8P15U7lhT88pJRL7x9MtsHN2I4gL5TuHRgIJfj4g.U1B6A9iFFppnCaHIcXc_CPlUNbgIiSdItA7RwLsIzF8g.JPEG.pgh268400/20171210_211419.jpg?type=w740\" id=\"userImg8027678\" name=\"cafeuserimg\" style=\"border: none; color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; width: 740px; height: 986px;\" /><br style=\"color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\" /></p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\"><br /><br /><br /><br />SPI 핀에 엑세스 하기위해서 4핀을 모두 납땜했다. 보통 집게로도 많이 만드는데 귀찮아서..</p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\">사실상 여기가 펌웨어 입히기 작업중 가장 어려운 작업이라고 할 수 있겠다.<br /><br /><br />집에 5천원짜리 인두기로 하느라 여기서 포기 많이하고&nbsp;<br />몇달만에 다시 시도했는데 성공함..<br />한 2-3개 태워먹은건 안비밀</p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\"><br /></p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\">(...)--- 하지만 이제 칼팁도 생겼고 온도조절인두기도 생겼으니..</p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\">마음껏 작업을!!!</p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\"><br /><br /><br /><br /><br /><br /></p>\r\n<p><img src=\"https://cafeptthumb-phinf.pstatic.net/MjAxNzEyMTBfMjc3/MDAxNTEyOTEyMzM1NTI3.yTp_kMW7V5eo64baCOeiS3Qfnyb06QyvIY1RCU-c0x8g.-N56dU9W0bqqRCG4RtbiRG3Eey_KOMlbVCE5pqfqNcEg.PNG.pgh268400/RN.png?type=w740\" id=\"userImg8233189\" name=\"cafeuserimg\" style=\"border: none; color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; width: 740px; height: 539px;\" /><br style=\"color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\" /><img src=\"https://cafeptthumb-phinf.pstatic.net/MjAxNzEyMTBfOTUg/MDAxNTEyOTEyMzM1NzY1.G_hPm2KCY6MZbZgx_2o8nQOrvauPMygXAuTJKY2rjKog.sO0pJq_nzdYDXrGMI7rBYKQuccAJZWZTo2iO6aWJP9sg.PNG.pgh268400/%ED%8D%84%ED%8D%84.png?type=w740\" id=\"userImg4532654\" name=\"cafeuserimg\" style=\"border: none; color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; width: 740px; height: 416px;\" /><br style=\"color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\" /></p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\"><br /><br /><br /><br />가지고있던 RN42를 덤프한뒤<br />HC06에 올렸다.<br /><br /><br /><br /></p>\r\n<p><img src=\"https://cafeptthumb-phinf.pstatic.net/MjAxNzEyMTBfMTEy/MDAxNTEyOTEyNDgzODAw.qE1H08twKzsXFWOg44SaHcYVrw3U-sMjiezp7S6uO_Qg.izWY44QYJA1cJnTp0lVT_E191uTHczuYhWhfcaiTOI4g.JPEG.pgh268400/20171210_211903.jpg?type=w740\" id=\"userImg6179681\" name=\"cafeuserimg\" style=\"border: none; color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; width: 740px; height: 986px;\" /><br style=\"color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\" /></p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\"><br />HID 펌웨어를 올리게되면 기존에는 빨강 LED와 파랑 LED 가 마구 점멸하던것이,<br /><br />파랑 LED가 쭉 켜져있는 형태로 바뀌게된다.<br /><br /><br /><br /><br /></p>\r\n<p><img src=\"https://cafeptthumb-phinf.pstatic.net/MjAxNzEyMTBfMTE1/MDAxNTEyOTEyMzM1Mzg3.OjsAy35TMtIdTxlN0-t-SjlurOPa1Y5YumPSJwvZNQ4g.c-T6bBxOwhkOGZWqm5Apyy_fC_5no05UBrDXWB66SFIg.PNG.pgh268400/hidmodE.png?type=w740\" id=\"userImg3648679\" name=\"cafeuserimg\" style=\"border: none; color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; width: 740px; height: 347px;\" /><br style=\"color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\" /></p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\"><br /><br />RN42 펌웨어가 올려졌으니 RN42를 사용하듯 사용하면된다.<br /><br />이글에서는 키보드로 설정하였다.<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></p>\r\n<p><iframe frameborder=\"0\" scrolling=\"no\" name=\"mplayer\" title=\"플레이어\" width=\"720\" height=\"405\" src=\"https://serviceapi.nmv.naver.com/view/ugcPlayer.nhn?vid=F2273A9CDA1CE3A84AA616C493A59A6EDF77&amp;inKey=V1293fb789c5e0c66d17e6c3e2824c81854d0af148b67ade27b0bb0c4f9736e27df866c3e2824c81854d0&amp;wmode=opaque&amp;hasLink=1&amp;autoPlay=false&amp;beginTime=0\" allowfullscreen=\"allowfullscreen\" style=\"color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\"></iframe><br style=\"color: #222222; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif;\" /></p>\r\n<p style=\"list-style: none; padding: 0px; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; color: #222222;\"><br /><br />폰에서 연결하고나니 블루투스 키보드로 인식하고 잘 된다 ^^.</p>\r\n<p>\r\n   <p>&nbsp;</p>\r\n   </p>\r\n<div class=\"autosourcing-stub\" style=\"font-family: inherit; font-size: inherit; list-style: none; margin: 0px; padding: 0px; position: absolute; opacity: 0;\">\r\n   <p style=\"list-style: none; margin: 20px 0px 30px; padding: 0px; font-size: 12px; font-family: dotum;\"><strong style=\"padding: 0px 7px 0px 0px;\">[출처]</strong><span>&nbsp;</span><a href=\"https://cafe.naver.com/arduinostory/92850\" target=\"_blank\" style=\"text-decoration: none;\">블루투스 모듈(HC-06)에 RN42 펌웨어 입히기 성공!!(HIDFIRMWARE) (아두이노 스토리)</a><span>&nbsp;</span><span style=\"padding: 0px 7px 0px 5px;\">|</span><strong style=\"padding: 0px 7px 0px 0px;\">작성자</strong><span>&nbsp;</span><a href=\"https://cafe.naver.com/arduinostory.cafe?iframe_url=/CafeMemberNetworkView.nhn%3Fm=view%26memberid=pgh268400\" target=\"_blank\" style=\"text-decoration: none;\">파일씨</a></p>\r\n   </div>','https://cafe.naver.com/arduinostory/92850','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:36:46',0,'2019-04-26 15:36:46','210.101.103.92','','','','','','','','','','','',''),(381,-381,'',381,0,0,'','','html1','[Eagle] Eagle cad 라이브러리에 그린 패드 크기보다 PCB에디터에서는 크게 나올때','...','http://blog.naver.com/PostView.nhn?blogId=wararat&logNo=220927518542&categoryNo=0&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView','',2,0,15,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:37:22',1,'2019-04-26 15:37:22','210.101.103.92','','','','','','','','','','','',''),(382,-382,'',382,0,0,'','','html1','[ETC] ESP8266 WifiManager 사용','<p><span style=\"color: #404040; font-family: 굴림;\">ESP8266 WIFIMANAGER 라이브러리 사용하기&nbsp; IOT 개발&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">2017. 7. 16. 3:20&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">복사</span><a href=\"https://blog.naver.com/k4264639/221052354115\" target=\"_new\" style=\"text-decoration-line: none; color: #3a4e40; font-family: 굴림;\">https://blog.naver.com/k4264639/221052354115</a><span style=\"color: #404040; font-family: 굴림;\">&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">번역하기&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">전용뷰어 보기&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">&nbsp;&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">ESP8266 모듈을 이용하여 WIFI를 이용한 인터넷 접속을 할 경우&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">가장 쉽게 접속하는 방법은 공유기의 SSID와 PASSWORD를 소스코드에 입력하는 방식입니다.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">[출처] ESP8266 WIFIMANAGER 라이브러리 사용하기|작성자 도두가이</span></p>','https://blog.naver.com/k4264639/221052354115','https://blog.naver.com/damtaja/221168645246',3,2,4,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:38:10',1,'2019-04-26 15:38:10','210.101.103.92','','','','','','','','','','','',''),(383,-383,'',383,0,0,'','','html1','[ETC] MCP73831 Li-Po Charge','<p><span style=\"color: #404040; font-family: 굴림;\">There are two LEDs on each MicroLipo charger.&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Red - this means the chip has detected a cell and is charging it (충전중)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Green - this means the chip has completed the charge cycle and the battery is ready to go (충전완료)&nbsp;</span><br style=\"color: #404040; font-family: 굴림;\" /><span style=\"color: #404040; font-family: 굴림;\">Both - this means the battery is damaged or isn\'t plugged in. (배터리X / 손상됨)</span></p>','https://learn.adafruit.com/adafruit-microlipo-and-minilipo-battery-chargers?view=all','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2019-04-26 15:38:42',2,'2019-04-26 15:38:42','210.101.103.92','','','','','','','','','','','','');
