INSERT INTO `g5_write_tech` VALUES (574,-573,'',574,0,0,'','','html1','[ETC] 윈도우10/11 폰트 맥처럼 고치기','<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">안녕하세요! 윈도우를 고해상도 모니터에서 사용하다 보면 폰트 랜더링과 굴림체 때문에 굉장히 눈이 썩고 가독성이 안좋아지는 경험을 다들 하셨을거라 생각합니다.&nbsp;</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">이번에 제가 연구 끝에 완성한 윈도우의 폰트 랜더링을 맥처럼 완전히 뜯어 고치는 방법을 공유해 드리고자 합니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">아래의 모든 과정을 적용했을때 완성샷 입니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><img class=\"fr-dib fr-fil\" src=\"https://cdn.clien.net/web/api/file/F01/12149272/1de96bf0d802a6.png?w=780&amp;h=30000\" data-role=\"attach-image\" data-gif=\"false\" data-file-sn=\"12149272\" data-img-width=\"1152\" data-img-height=\"522\" alt=\"?? ?? 2021-10-25 203741.png\" style=\"text-size-adjust: none; box-sizing: border-box; border-radius: 2px; border: 0px; cursor: pointer; display: initial; margin: 0px auto 5px; text-align: inherit; height: auto !important; max-width: 780px !important;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><img class=\"fr-dib fr-fil\" src=\"https://cdn.clien.net/web/api/file/F01/12149273/1de96d958ad7a8.png?w=780&amp;h=30000\" data-role=\"attach-image\" data-gif=\"false\" data-file-sn=\"12149273\" data-img-width=\"1836\" data-img-height=\"1366\" alt=\"?? ?? 2021-10-25 205551.png\" style=\"text-size-adjust: none; box-sizing: border-box; border-radius: 2px; border: 0px; cursor: pointer; display: initial; margin: 0px auto 5px; text-align: inherit; height: auto !important; max-width: 780px !important;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><img class=\"fr-dib fr-fil\" src=\"https://cdn.clien.net/web/api/file/F01/12149274/1deb05fa84d69f.png?w=780&amp;h=30000\" data-role=\"attach-image\" data-gif=\"false\" data-file-sn=\"12149274\" data-img-width=\"2788\" data-img-height=\"1860\" alt=\"?? ?? 2021-10-25 210209.png\" style=\"text-size-adjust: none; box-sizing: border-box; border-radius: 2px; border: 0px; cursor: pointer; display: initial; margin: 0px auto 5px; text-align: inherit; height: auto !important; max-width: 780px !important;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">먼저 강좌의 세팅 기준은</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">윈도우 11</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">4K 27인치 모니터</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">산돌고딕네오 사용(애플 기기가 쓰는 그 폰트)</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">기준으로 설명합니다.&nbsp;</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">폰트는 저작권상 공유가 어렵기에 구매하는등 알아서 구하셔야 할거 같습니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">1. 보안부팅 비활성화</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">각자의 PC 메인보드 바이오스 메뉴에 진입해서 &nbsp;보안 부팅(Secure Boot) 를 비활성화 해야합니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">후술할 MacType 적용을 위해 필요합니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">2. 폰트 설치</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">적용할 폰트를 그냥 우클릭해서 설치하면 됩니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><img class=\"fr-dib fr-fil\" src=\"https://cdn.clien.net/web/api/file/F01/12149206/1dea0facc61fae.png?w=780&amp;h=30000\" data-role=\"attach-image\" data-gif=\"false\" data-file-sn=\"12149206\" data-img-width=\"690\" data-img-height=\"246\" alt=\"?? ?? 2021-10-25 204502.png\" style=\"text-size-adjust: none; box-sizing: border-box; border-radius: 2px; border: 0px; cursor: pointer; display: initial; margin: 0px auto 5px; text-align: inherit; height: auto !important; max-width: 780px !important;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">3-1. 일반 폰트 변경</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><a href=\"https://drive.google.com/file/d/1czBTqjRBDNnfgyprrMvsxC0V4cCDOxNx/view?usp=sharing\" rel=\"noopener noreferrer\" target=\"_blank\" ori-url=\"https://drive.google.com/file/d/1czBTqjRBDNnfgyprrMvsxC0V4cCDOxNx/view?usp=sharing\" style=\"text-size-adjust: none; box-sizing: border-box; color: #1e90ff; text-decoration-line: none; cursor: pointer; word-break: break-all;\">폰트 변경 프로그램 다운</a>&nbsp;</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">해당 파일을 다운받아 자신이 원하는 폰트로 시스템 폰트를 전부 변경해주세요.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><img class=\"fr-dib fr-fil\" src=\"https://cdn.clien.net/web/api/file/F01/12149235/1deab085932db5.png?w=780&amp;h=30000\" data-role=\"attach-image\" data-gif=\"false\" data-file-sn=\"12149235\" data-img-width=\"1156\" data-img-height=\"860\" alt=\"?? ?? 2021-10-25 205647.png\" style=\"text-size-adjust: none; box-sizing: border-box; border-radius: 2px; border: 0px; cursor: pointer; display: initial; margin: 0px auto 5px; text-align: inherit; height: auto !important; max-width: 780px !important;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">3-2 UWP 폰트 변경</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">위의 작업으로는 UWP와 일부 지정 폰트가 변경이 되지 않습니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">그래서 UWP와 굴림체등을 원하는 폰트로 강제 변경하는 레지스트리 적용 작업을 해야합니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><a href=\"https://drive.google.com/file/d/1oX1-pBNsDCyLG95QywxQ_jKXJErV-Nm_/view?usp=sharing\" rel=\"noopener noreferrer\" target=\"_blank\" ori-url=\"https://drive.google.com/file/d/1oX1-pBNsDCyLG95QywxQ_jKXJErV-Nm_/view?usp=sharing\" style=\"text-size-adjust: none; box-sizing: border-box; color: #1e90ff; text-decoration-line: none; cursor: pointer; word-break: break-all;\">폰트 레지스트리 다운</a></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">해당 레지스트리를 텍스트 에디터(메모장 등)으로 열어서 본인이 적용할 폰트의 정확한 이름을 적습니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">폰트의 정확한 이름은 3-1의 폰트 변경 프로그램에서 확인이 가능합니다. 그대로 적으면 됩니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">그 다음 저장하고 레지스트리를 적용합니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">기본은 \"애플SD 고딕 네오1\" 으로 적혀 있습니다. 해당 폰트로 하실 경우 그냥 적용하시면 됩니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">4. MacType 적용</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">3-2까지 끝내셨으면 이제 시스템의 모든 폰트가 원하는 폰트로 출력될 겁니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">이제 폰트 랜더링 방식을 변경해야합니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><a href=\"https://www.mactype.net/\" rel=\"noopener noreferrer\" target=\"_blank\" ori-url=\"https://www.mactype.net/\" style=\"text-size-adjust: none; box-sizing: border-box; color: #1e90ff; text-decoration-line: none; cursor: pointer; word-break: break-all;\">맥타입 다운</a></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">해당 공식 홈페이지 링크에서 맥타입을 다운로드하고 설치합니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><img class=\"fr-dib fr-fil\" src=\"https://cdn.clien.net/web/api/file/F01/12149245/1de92adac7e54a.png?w=780&amp;h=30000\" data-role=\"attach-image\" data-gif=\"false\" data-file-sn=\"12149245\" data-img-width=\"1614\" data-img-height=\"1046\" alt=\"?? ?? 2021-10-25 205750.png\" style=\"text-size-adjust: none; box-sizing: border-box; border-radius: 2px; border: 0px; cursor: pointer; display: initial; margin: 0px auto 5px; text-align: inherit; height: auto !important; max-width: 780px !important;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">레지스트리 모드의 설명쪽 부분을 눌러서 선택후 다음을 눌러 넘어갑니다.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">이후 원하는 프로파일을 지정해서 적용합니다. 그러면 끝입니다!</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">4-2 프로파일 지정(고해상도 모니터만 해당)</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><a href=\"https://drive.google.com/file/d/1BIGFQr1lf5gKQdYtPtWynr4ualdO2mIS/view?usp=sharing\" rel=\"noopener noreferrer\" target=\"_blank\" ori-url=\"https://drive.google.com/file/d/1BIGFQr1lf5gKQdYtPtWynr4ualdO2mIS/view?usp=sharing\" style=\"text-size-adjust: none; box-sizing: border-box; color: #1e90ff; text-decoration-line: none; cursor: pointer; word-break: break-all;\">프로파일</a></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">해당 프로파일은 고해상도 환경을 생각하고 제가 직접 만든 프로파일 입니다.&nbsp;</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">맥에서 조차도 폰트 보정을 전부 끈 최대한의 원본 글자 그대로를 보여주기에&nbsp;</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">ppi가 높지 않으면 흐리게 보일 가능성이 매우 높습니다. 본인의 ppi를 고려해서 사용해주세요.</p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; margin-bottom: 5px; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\"><br style=\"text-size-adjust: none; box-sizing: border-box;\" /></p>\r\n<p style=\"text-size-adjust: none; box-sizing: border-box; font-family: Roboto, &quot;Noto Sans KR&quot;, 나눔고딕, &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, 맑은고딕, 굴림, 돋움, Dotum, sans-serif; color: #e0e0e0; font-size: 14px; background-color: #222222; line-height: 1.5 !important;\">해당 프로파일을 다운받아 맥타입의 프로파일 선택 단계에서 지정해서 적용하시면 됩니다!</p>','https://www.clien.net/service/board/lecture/16627323','',12,0,21,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-09-09 20:57:58',2,'2022-09-09 20:57:58','192.168.219.116','','','','','','','','','','','',''),(575,-574,'',575,0,0,'','','html1','[Arduino] Arduino ide 2.0 libraries path','<p>1. libraries path 설정</p>\r\n<p>&gt;File &gt; Preferences &gt; Sketchbook location: // 이 아래에 libraries</p>\r\n<p>&nbsp;</p>\r\n<p>2. VS Code 스타일로 ctrl + shift + p 를 누르면 세부 설정메뉴가 나옴</p>\r\n<p>ex&gt;&nbsp;<span style=\"background-color: #f9f9f9; color: #222222; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; font-size: 15.008px;\">Preferences: Open Settings (UI)</span></p>','https://forum.arduino.cc/t/library-folder-location/959152/4','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-09-16 14:04:47',0,'2022-09-16 14:04:47','112.222.138.202','','','','','','','','','','','',''),(576,-575,'',576,0,0,'','','html1','[Linux] Arduino CLI - 리눅스 터미널에서 아두이노 개발','<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">아두이노에서 기본으로 제공하는 IDE를 사용하면 코드 작성, 컴파일, 업로드, 시리얼 디버깅을 한 곳에서 할 수 있습니다. 하지만 IDE없이 리눅스 터미널 만으로도 코드 작성, 컴파일, 업로드, 시리얼 디버깅을 할 수 있는 방법이 있습니다. 여기에서는 터미널 명령어 만으로 아두이노 코드를 컴파일, 업로드할 수 있는 Arduino CLI를 소개하고 방법을 설명합니다.</p>\r\n<h1 id=\"arduino-cli\" class=\"\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1.2; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 1.563em; transition: all 0.2s ease-in-out 0s; padding-top: 2em; padding-bottom: 0.5em; color: #3d4144; background-color: #ffffff;\">Arduino CLI<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#arduino-cli\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h1>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">간단한 코드를 작성하는 경우라면 아두이노의 기본 IDE만으로도 충분합니다만, 소스 코드가 커지면 소스코드 내비게이션이 없어서 불편함을 많이 느낍니다. 소스코드 작성은 선호하는 에디터로 하고, 컴파일, 업로드, 시리얼 디버깅은 IDE를 이용할 수도 있습니다. 하지만&nbsp;<a href=\"https://github.com/arduino/arduino-cli\" style=\"box-sizing: border-box; color: #2f7d95; transition: all 0.2s ease-in-out 0s; text-decoration-line: none;\" target=\"_blank\">Arduino CLI</a>를 이용하면 이 모든 것을 터미널에서 명령어로 작업할 수 있습니다.</p>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\"><img src=\"https://ukayzm.github.io/assets/img/posts/CLI_Logo_small.png\" alt=\"arduino-cli-logo\" style=\"box-sizing: border-box; max-width: 100%; height: auto; vertical-align: middle; border: 0px; transition: all 0.2s ease-in-out 0s;\" /></p>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">Arduino CLI는 글을 쓰는 2020년 5월 현재 Github에서 개발이 진행중이고, GPL v3 라이센스로 코드가 공개되어 있고, 누구나 설치하고 사용할 수 있습니다. ARM CPU도 지원하여, 라즈베리 파이에서도 실행할 수도 있다고 합니다.</p>\r\n<h1 id=\"ardunio-cli-설치하기\" class=\"\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1.2; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 1.563em; transition: all 0.2s ease-in-out 0s; padding-top: 2em; padding-bottom: 0.5em; color: #3d4144; background-color: #ffffff;\">Ardunio CLI 설치하기<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#ardunio-cli-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h1>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">Arduino CLI는 설치 스크립트를 다운받아서 실행하는 방식으로 설치가 가능합니다. 아래 첫번째 명령은 디폴트로&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">~/bin</code>\r\n   &nbsp;디렉토리에 설치하는 것이고, 두번째 명령과 같이 BINDIR을 지정하여 설치 디렉토리를 변경할 수도 있으니, 둘 중 하나를 실행하세요.</p>\r\n<div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n   <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n      <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 825px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n         <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>curl <span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">-fsSL</span> https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh\r\n<span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>curl <span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">-fsSL</span> https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">BINDIR</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>~/local/bin sh\r\n</code>\r\n         </pre>\r\n      </div>\r\n   </div>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">아두이노는 시리얼 포트를 이용해서 호스트와 통신합니다. 유저에게 시리얼 포트의 접근 권한을 주기 위해서, 아래와 같이 유저를 dialout 그룹에 추가합니다. 그룹 추가 후에는 로그인을 다시 하거나 호스트 PC를 재부팅 합니다.</p>\r\n<div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n   <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n      <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 825px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n         <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span><span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">sudo </span>usermod <span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">-a</span><span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">-G</span> dialout <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$USER</span><span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># add this user to dialout group</span><span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># You need to reopen the terminal or reboot the computer</span><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span><span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">id</span><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$USER</span><span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># check that you have 20(dialout)</span><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">uid</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>1000<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>rostude<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">gid</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>1000<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>rostude<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">groups</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>1000<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>rostude<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,4<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>adm<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,20<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>dialout<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,24<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>cdrom<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,27<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span><span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">sudo</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,30<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>dip<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,46<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>plugdev<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,116<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>lpadmin<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,122<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>sambashare<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span></code>\r\n         </pre>\r\n      </div>\r\n   </div>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">설치가 완료되면 다음과 같이 초기 설정을 해 주어야 합니다.</p>\r\n<div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n   <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n      <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 825px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n         <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli config init\r\nConfig file written to: /home/rostude/.arduino15/arduino-cli.yaml\r\n<span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli core update-index\r\nUpdating index: package_index.json downloaded\r\n</code>\r\n         </pre>\r\n      </div>\r\n   </div>\r\n<h1 id=\"아두이노-보드-설정\" class=\"\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1.2; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 1.563em; transition: all 0.2s ease-in-out 0s; padding-top: 2em; padding-bottom: 0.5em; color: #3d4144; background-color: #ffffff;\">아두이노 보드 설정<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EB%B3%B4%EB%93%9C-%EC%84%A4%EC%A0%95\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h1>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">다음으로 아두이노 종류에 맞는 설정을 합니다. 아두이노는 우노, 나노 등의 종류도 있지만 값싼 중국산 클론도 있습니다. 보드에 맞는 정확한&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">FQBN</code>\r\n   을 알아야 합니다.</p>\r\n<h2 id=\"아두이노-정품-보드\" class=\"\" style=\"box-sizing: border-box; margin: 2em 0px 0.5em; line-height: 1.2; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 1.25em; transition: all 0.2s ease-in-out 0s; padding-bottom: 0.5em; border-bottom: 1px solid rgb(242, 243, 243); color: #3d4144; background-color: #ffffff;\">아두이노 정품 보드<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EC%A0%95%ED%92%88-%EB%B3%B4%EB%93%9C\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h2>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">아두이노 보드를 USB에 꽂고 dmesg 명령을 내리면 자기가 가지고 있는 아두이노 보드의 종류를 알아내기 위한 힌트를 얻을 수 있습니다. 아래 화면은 아두이노 우노 보드 정품의 경우 입니다. Manufacturer가 Arduino이고 시리얼 포트인 ttyACM0를 볼 수 있습니다.</p>\r\n<div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n   <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n      <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 825px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n         <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>dmesg\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3021.890686] usb 1-5: new full-speed USB device number 3 using xhci_hcd\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.044856] usb 1-5: New USB device found, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">idVendor</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>2341, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">idProduct</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>0043, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">bcdDevice</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span> 0.01\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.044859] usb 1-5: New USB device strings: <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">Mfr</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>1, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">Product</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>2, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">SerialNumber</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>220\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.044861] usb 1-5: Manufacturer: Arduino <span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>www.arduino.cc<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.044863] usb 1-5: SerialNumber: 8563233323635130E152\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.114039] cdc_acm 1-5:1.0: ttyACM0: USB ACM device\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.114287] usbcore: registered new interface driver cdc_acm\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.114288] cdc_acm: USB Abstract Control Model driver <span class=\"k\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #c792ea;\">for </span>USB modems and ISDN adapters\r\n</code>\r\n         </pre>\r\n      </div>\r\n   </div>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">정품 우노 보드의 경우에는 auduino-cli가 자동으로 인식합니다.&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli board list</code>\r\n   &nbsp;명령을 내리면 아래와 같이 시리얼포트는&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">/dev/ttyACM0</code>\r\n   이고 fqbn은&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino:avr:uno</code>\r\n   로 인식되었음을 알 수 있습니다.</p>\r\n<div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n   <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n      <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 825px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n         <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli board list\r\nPort         Type              Board Name  FQBN            Core\r\n/dev/ttyACM0 Serial Port <span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>USB<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span> Arduino Uno arduino:avr:uno arduino:avr\r\n</code>\r\n         </pre>\r\n      </div>\r\n   </div>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">이제,&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli core install arduino:avr</code>\r\n   &nbsp;명령으로 정품 보드용 코어를 설치하고,&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli board listall</code>\r\n   &nbsp;명령으로 설치된 코어를 확인합니다.</p>\r\n<div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n   <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n      <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 825px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n         <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli core <span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">install </span>arduino:avr      <span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># Install Arduino:avr core</span>\r\nDownloading packages...\r\narduino:avr-gcc@7.3.0-atmel3.6.1-arduino5 downloaded\r\narduino:avrdude@6.3.0-arduino17 downloaded\r\narduino:arduinoOTA@1.3.0 downloaded\r\narduino:avr@1.8.2 downloaded\r\nInstalling arduino:avr-gcc@7.3.0-atmel3.6.1-arduino5...\r\narduino:avr-gcc@7.3.0-atmel3.6.1-arduino5 installed\r\nInstalling arduino:avrdude@6.3.0-arduino17...\r\narduino:avrdude@6.3.0-arduino17 installed\r\nInstalling arduino:arduinoOTA@1.3.0...\r\narduino:arduinoOTA@1.3.0 installed\r\nInstalling arduino:avr@1.8.2...\r\narduino:avr@1.8.2 installed\r\n<span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli board listall                 <span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># Confirm the installation</span>\r\nBoard Name                          FQBN\r\nAdafruit Circuit Playground         arduino:avr:circuitplay32u4cat\r\nArduino BT                          arduino:avr:bt\r\nArduino Duemilanove or Diecimila    arduino:avr:diecimila\r\nArduino Esplora                     arduino:avr:esplora\r\nArduino Ethernet                    arduino:avr:ethernet\r\nArduino Fio                         arduino:avr:fio\r\nArduino Gemma                       arduino:avr:gemma\r\nArduino Industrial 101              arduino:avr:chiwawa\r\nArduino Leonardo                    arduino:avr:leonardo\r\nArduino Leonardo ETH                arduino:avr:leonardoeth\r\nArduino Mega ADK                    arduino:avr:megaADK\r\nArduino Mega or Mega 2560           arduino:avr:mega\r\nArduino Micro                       arduino:avr:micro\r\nArduino Mini                        arduino:avr:mini\r\nArduino NG or older                 arduino:avr:atmegang\r\nArduino Nano                        arduino:avr:nano\r\nArduino Pro or Pro Mini             arduino:avr:pro\r\nArduino Robot Control               arduino:avr:robotControl\r\nArduino Robot Motor                 arduino:avr:robotMotor\r\nArduino Uno                         arduino:avr:uno\r\nArduino Uno WiFi                    arduino:avr:unowifi\r\nArduino Yún                         arduino:avr:yun\r\nArduino Yún Mini                    arduino:avr:yunmini\r\nLilyPad Arduino                     arduino:avr:lilypad\r\nLilyPad Arduino USB                 arduino:avr:LilyPadUSB\r\nLinino One                          arduino:avr:one\r\n</code>\r\n         </pre>\r\n      </div>\r\n   </div>\r\n<h2 id=\"아두이노-클론-보드\" class=\"\" style=\"box-sizing: border-box; margin: 2em 0px 0.5em; line-height: 1.2; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 1.25em; transition: all 0.2s ease-in-out 0s; padding-bottom: 0.5em; border-bottom: 1px solid rgb(242, 243, 243); color: #3d4144; background-color: #ffffff;\">아두이노 클론 보드<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%ED%81%B4%EB%A1%A0-%EB%B3%B4%EB%93%9C\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h2>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">중국산 클론의 경우는 자동 인식이 안됩니다. 클론 보드를 USB에 꽂은 다음&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">dmesg</code>\r\n   &nbsp;명령으로 커널 로그를 보면, 아래와 같이 Arduino 글자가 보이지 않고, 저가형 시리얼 칩인 ch341 글자가 보입니다.&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli board list</code>\r\n   를 해 보면 board name이 unknown으로 나오지요.</p>\r\n<div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n   <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n      <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 825px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n         <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>dmesg\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3059.826341] usbcore: registered new interface driver ch341\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3059.827087] usbserial: USB Serial support registered <span class=\"k\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #c792ea;\">for </span>ch341-uart\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3059.828153] ch341 1-1:1.0: ch341-uart converter detected\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3059.828944] usb 1-1: ch341-uart converter now attached to ttyUSB0\r\n<span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli board list      <span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># Check the connection to the board</span>\r\nPort         Type              Board Name              FQBN                 Core\r\n/dev/ttyUSB0 Serial Port <span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>USB<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span> Unknown\r\n</code>\r\n         </pre>\r\n      </div>\r\n   </div>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">자동 인식이 안된다고 해서 사용을 못하는 것은 아니니, 걱정할 필요는 없습니다. ch340/ch341의 시리얼 포트는&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">/dev/ttyUSB0</code>\r\n   &nbsp;또는&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">/dev/ttyUSB1</code>\r\n   &nbsp;입니다. 그리고, 코어는 정품과 같습니다. 따라서, 정품의 경우와 동일하게&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli core install arduino:avr</code>\r\n   &nbsp;명령으로 정품 보드용 코어를 설치하고,&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli board listall</code>\r\n   &nbsp;명령으로 설치된 코어를 확인합니다.</p>\r\n<h1 id=\"보드의-fqbn-알아내기\" class=\"\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1.2; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 1.563em; transition: all 0.2s ease-in-out 0s; padding-top: 2em; padding-bottom: 0.5em; color: #3d4144; background-color: #ffffff;\">보드의 FQBN 알아내기<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#%EB%B3%B4%EB%93%9C%EC%9D%98-fqbn-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h1>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">위에서, 중국산 클론 보드를 위해서는&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">FQBN</code>\r\n   을 지정해 주어야 한다고 했는데요. 내가 가지고 있는 보드의 fqbn 값을 어떻게 알아낼까요? 아두이노 기본 IDE를 이용하여 알아낼 수 있는 방법이 있습니다.</p>\r\n<ol style=\"box-sizing: border-box; orphans: 3; widows: 3; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 18px; background-color: #ffffff;\">\r\n   <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">보드를 PC에 연결하고 아두이노 기본 IDE를 실행합니다.</li>\r\n   <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">파일 &gt; 환경설정 &gt; 다음 동작중 자세한 출력 보이기 &gt; 컴파일을 체크합니다.</li>\r\n   <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">툴 &gt; 보드 메뉴에서 보드를 지정합니다.</li>\r\n   <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">필요시 툴 &gt; 프로세서에서 프로세서를 지정합니다. 필자가 가지고 있는 아두이노 나노 보드는 ATmeta328P (Old Bootloader)로 했습니다.</li>\r\n   <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">스케치 &gt; 확인/컴파일을 합니다.</li>\r\n   </ol>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">컴파일이 끝나면, 검은 바탕 컴파일 화면의 스크롤을 올려 맨 윗줄을 봅니다.</p>\r\n<div class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n   <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n      <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 825px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n         <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\">C:\\Program Files (x86)\\Arduino\\arduino-builder -dump-prefs -logger=machine -hardware C:\\Program Files (x86)\\Arduino\\hardware -tools C:\\Program Files (x86)\\Arduino\\tools-builder -tools C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -built-in-libraries C:\\Program Files (x86)\\Arduino\\libraries -libraries D:\\Users\\kjeom\\Documents\\Arduino\\libraries -fqbn=arduino:avr:nano:cpu=atmega328old -vid-pid=1A86_7523 -ide-version=10812 -build-path C:\\Users\\kjeom\\AppData\\Local\\Temp\\arduino_build_337148 -warnings=none -build-cache C:\\Users\\kjeom\\AppData\\Local\\Temp\\arduino_cache_981687 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.avrdude.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.arduinoOTA.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -verbose D:\\temp\\sketch_apr17a\\sketch_apr17a.ino\r\n</code>\r\n         </pre>\r\n      </div>\r\n   </div>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">위와 같이 긴 줄이 있는데, 중간에&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">-fqbn=arduino:avr:nano:cpu=atmega328old</code>\r\n   &nbsp;이런 부분이 보이죠.&nbsp;\r\n   <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino:avr:nano:cpu=atmega328old</code>\r\n   가 바로 내가 가지고 있는 보드의 FQBN 값입니다.</p>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">참고로, 필자가 가지고 있는 보드의 fqbn은 다음과 같습니다.</p>\r\n<table style=\"orphans: 3; widows: 3; display: block; margin-bottom: 1em; width: 825px; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 0.75em; overflow-x: auto; color: #3d4144; background-color: #ffffff;\">\r\n   <thead style=\"box-sizing: border-box; background-color: #f2f3f3; border-bottom: 2px solid rgb(182, 182, 182);\">\r\n      <tr style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; vertical-align: middle;\">\r\n         <th style=\"box-sizing: border-box; padding: 0.5em; text-align: left; vertical-align: middle;\">보드</th>\r\n         <th style=\"box-sizing: border-box; padding: 0.5em; text-align: left; vertical-align: middle;\">FQBN</th>\r\n         <th style=\"box-sizing: border-box; padding: 0.5em; text-align: left; vertical-align: middle;\">시리얼 포트</th>\r\n         </tr>\r\n      </thead>\r\n   <tbody style=\"box-sizing: border-box;\">\r\n      <tr style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; vertical-align: middle;\">\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">아두이노 우노 정품</td>\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">arduino:avr:uno</td>\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">/dev/ttyACM0</td>\r\n         </tr>\r\n      <tr style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; vertical-align: middle;\">\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">아두이노 우노 클론</td>\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">arduino:avr:uno</td>\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">/dev/ttyUSB0</td>\r\n         </tr>\r\n      <tr style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; vertical-align: middle;\">\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">아두이노 나노 클론</td>\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">arduino:avr:nano:cpu=atmega328old</td>\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">/dev/ttyUSB0</td>\r\n         </tr>\r\n      <tr style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; vertical-align: middle;\">\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">ESP32</td>\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">esp32:esp32:esp2wrover</td>\r\n         <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">&nbsp;</td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<h1 id=\"테스트해-보기\" class=\"\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1.2; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 1.563em; transition: all 0.2s ease-in-out 0s; padding-top: 2em; padding-bottom: 0.5em; color: #3d4144; background-color: #ffffff;\">테스트해 보기<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%B4-%EB%B3%B4%EA%B8%B0\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h1>\r\n<p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 18px; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; background-color: #ffffff;\">이제, 테스트용으로 간단한 아두이노 스케치를 작성하고 업로드를 해 봅시다.</p>\r\n<div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n   <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n      <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 825px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n         <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span><span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">mkdir </span>sketch/\r\n<span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>vi sketch/sketch.ino        <span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># create sketch.ino</span><span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">------------</span> 아래 내용을 입력 <span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">---------------</span>\r\nvoid setup<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">()</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">{</span>\r\n  pinMode<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>LED_BUILTIN, OUTPUT<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"p\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">;</span>\r\n  Serial.begin<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>115200<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"p\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">;</span>\r\n  Serial.println<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span><span class=\"s2\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #c3e88d;\">\"start...\"</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"p\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">;</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">}</span>\r\nvoid loop<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">()</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">{</span>\r\n  digitalWrite<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>LED_BUILTIN, HIGH<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"p\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">;</span>\r\n  Serial.println<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span><span class=\"s2\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #c3e88d;\">\"H\"</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"p\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">;</span>\r\n  delay<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>1000<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"p\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">;</span>\r\n  digitalWrite<span class=\"o\" style=\"box-sizing: border-bo','https://ukayzm.github.io/arduino-cli/','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-09-21 10:18:27',0,'2022-09-21 10:18:27','112.222.138.202','','','','','','','','','','','',''),(577,-576,'',577,0,0,'','','html1','[Windows] 윈도우11 WSA로 구글플레이스토어 안드로이드 앱설치','<h3 id=\"들어가며\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 8.40625px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 500; font-stretch: inherit; font-size: 34px; line-height: 1.4em; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #1c1d1f; letter-spacing: 1.5px; background-color: #bbeeff;\"><span id=\"i\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased;\">들어가며</span></h3>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">윈도우 프로그램을 쓰다보면 가끔씩 핸드폰 어플의 편리함이 그리울 때가 있습니다. 특히나 SNS를 열심히 하는 분이라면 사진편집에 있어 빠르게 최상의 효과를 내는데는 폰의 사진보정앱들이 포토샵보다 우월하다는 것을 몇번이고 경험해 보셨을 겁니다. 하지만 이건 바램일뿐 윈도우와 모바일은 개발 프레임워크 자체가 달라 서로 혼용할 수 없습니다. 애뮬레이터를 돌리는 방법이 있긴했으나 그것도 여전히 반쪽이었죠.</p>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">하지만 이제 그 바램이 현실이 되어 버렸습니다!</p>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">윈도우11 마소의 반란 WSA 가 정식버전으로 나왔기 때문이죠!</p>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">이 글은 WSA를 통해 윈도우에 구글플레이스토어를 설치하는 부분을 다룹니다. 끝까지 보시고 연결된 글까지 따라하신다면 윈도우에서 앱을 동시에 돌리고 서로의 결과물을 윈도우 탐색기로 넘나들며 종횡무진하는 자신을 만나게 되실 겁니다. (참고로 WSA는 윈도우내에 별도로 존재하는 VM OS이기때문에 기본적으로는 서로의 폴더에 접근할 수 없답니다.)</p>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">자 그럼 시작해보죠!</p>\r\n<div class=\"forus-%ec%a4%91%eb%8b%a8-%ea%b4%91%ea%b3%a0\" id=\"forus-2054177664\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 42.0625px; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\"><ins class=\"adsbygoogle\" data-ad-client=\"ca-pub-4428325593457187\" data-ad-slot=\"5200438051\" data-ad-format=\"auto\" data-full-width-responsive=\"true\" data-adsbygoogle-status=\"done\" data-ad-status=\"filled\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased; display: block; height: 280px;\">\r\n      <div id=\"aswift_2_host\" tabindex=\"0\" title=\"Advertisement\" aria-label=\"Advertisement\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: none; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased; height: 280px; width: 841px; position: relative; visibility: visible; background-color: transparent; display: inline-block; overflow: visible;\"><iframe id=\"aswift_2\" name=\"aswift_2\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" width=\"841\" height=\"280\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" vspace=\"0\" hspace=\"0\" allowtransparency=\"true\" scrolling=\"no\" src=\"https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-4428325593457187&amp;output=html&amp;h=280&amp;slotname=5200438051&amp;adk=1792855118&amp;adf=2863614258&amp;pi=t.ma~as.5200438051&amp;w=841&amp;fwrn=4&amp;fwrnh=100&amp;lmt=1663809491&amp;rafmt=1&amp;format=841x280&amp;url=https%3A%2F%2Fblog.forus.kr%2Fit%25EC%25BB%25B4%2F%25EC%259C%2588%25EB%258F%2584%25EC%259A%25B011-wsa%25EB%25A1%259C-%25EA%25B5%25AC%25EA%25B8%2580%25ED%2594%258C%25EB%25A0%2588%25EC%259D%25B4%25EC%258A%25A4%25ED%2586%25A0%25EC%2596%25B4-%25EC%2595%2588%25EB%2593%259C%25EB%25A1%259C%25EC%259D%25B4%25EB%2593%259C-%25EC%2595%25B1%25EC%2584%25A4%25EC%25B9%2598%2F&amp;host=ca-host-pub-2644536267352236&amp;fwr=0&amp;fwrattr=true&amp;rpe=1&amp;resp_fmts=3&amp;wgl=1&amp;uach=WyJXaW5kb3dzIiwiMTQuMC4wIiwieDg2IiwiIiwiMTA1LjAuNTE5NS4xMjciLFtdLGZhbHNlLG51bGwsIjY0IixbWyJHb29nbGUgQ2hyb21lIiwiMTA1LjAuNTE5NS4xMjciXSxbIk5vdClBO0JyYW5kIiwiOC4wLjAuMCJdLFsiQ2hyb21pdW0iLCIxMDUuMC41MTk1LjEyNyJdXSxmYWxzZV0.&amp;dt=1663809491974&amp;bpp=19&amp;bdt=1107&amp;idt=19&amp;shv=r20220919&amp;mjsv=m202209080101&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3D108a3b758cccd4c1-2297f8eba8d6003a%3AT%3D1663809468%3ART%3D1663809468%3AS%3DALNI_Ma1WF0JR5PB1S7j93D8hSp4-T0vGQ&amp;gpic=UID%3D000009d76f1846d9%3AT%3D1663809468%3ART%3D1663809468%3AS%3DALNI_Maf_BOztKnwrBRjpAqdpJyD5nCuJA&amp;prev_fmts=0x0%2C841x280&amp;nras=1&amp;correlator=7897887000531&amp;frm=20&amp;pv=1&amp;ga_vid=283671586.1663809491&amp;ga_sid=1663809491&amp;ga_hid=1931825372&amp;ga_fc=1&amp;u_tz=540&amp;u_his=3&amp;u_h=1440&amp;u_w=2560&amp;u_ah=1392&amp;u_aw=2560&amp;u_cd=24&amp;u_sd=1&amp;dmc=8&amp;adx=49&amp;ady=3205&amp;biw=1261&amp;bih=1279&amp;scr_x=0&amp;scr_y=0&amp;eid=44759876%2C44759927%2C44759842%2C31069509%2C42531705%2C31069177%2C44772927%2C31068919&amp;oid=2&amp;pvsid=1871014181479295&amp;tmod=1667320920&amp;uas=0&amp;nvt=1&amp;ref=https%3A%2F%2Fwww.google.com%2F&amp;eae=0&amp;fc=1920&amp;brdim=-7%2C0%2C-7%2C0%2C2560%2C0%2C1294%2C1399%2C1278%2C1279&amp;vis=1&amp;rsz=%7C%7CoEebr%7C&amp;abl=CS&amp;pfx=0&amp;fu=1152&amp;bc=31&amp;ifi=3&amp;uci=a!3&amp;btvi=2&amp;fsb=1&amp;xpc=hYKLPRx1Vp&amp;p=https%3A//blog.forus.kr&amp;dtd=23\" data-google-container-id=\"a!3\" data-google-query-id=\"CO786aKdp_oCFSJEwgUdUzYHdA\" data-load-complete=\"true\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border-width: 0px; border-style: initial; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 100%; width: 841px; left: 0px; position: absolute; top: 0px; height: 280px;\"></iframe></div>\r\n      </ins></div>\r\n<h3 id=\"설치방법\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 8.40625px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 500; font-stretch: inherit; font-size: 34px; line-height: 1.4em; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #1c1d1f; letter-spacing: 1.5px; background-color: #bbeeff;\"><span id=\"i-2\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased;\">설치방법</span></h3>\r\n<h4 id=\"1-윈도우-가상화-기능-윈도우-기능-켜기-끄기-가상화도구-활성화\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 500; font-stretch: inherit; font-size: 26px; line-height: 1.45em; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #1c1d1f; letter-spacing: 1.5px; background-color: #ffffff;\"><span id=\"1\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased;\">1. 윈도우 가상화 기능 켜기</span></h4>\r\n<p id=\"1-윈도우-가상화-기능-윈도우-기능-켜기-끄기-가상화도구-활성화\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">‘윈도우 기능 켜기/끄기’ 실행</p>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-large\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img width=\"771\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-152404-771x730.png\" alt=\"\" class=\"wp-image-2171\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">가상화도구 활성화</p>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-large\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"588\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-152520-588x730.png\" alt=\"\" class=\"wp-image-2172\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-large\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"667\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-152545-667x730.png\" alt=\"\" class=\"wp-image-2173\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-large\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"661\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-152600-661x730.png\" alt=\"\" class=\"wp-image-2174\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">활성화를 하게 되면 윈도우즈 업데이트를 위해 재부팅이 필요합니다. 다시 시작 눌러주시고 여유롭게 기다려주세요.</p>\r\n<h4 id=\"2-wsa-다운로드-및-압축풀기-https-oqo-kr-5001-sharing-djukzj7wl\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 500; font-stretch: inherit; font-size: 26px; line-height: 1.45em; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #1c1d1f; letter-spacing: 1.5px; background-color: #ffffff;\"><span id=\"2_WSAWindows_Subsystem_for_Android\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased;\">2. WSA(Windows Subsystem for Android) 다운로드 및 설치</span></h4>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">다운로드 :&nbsp;<a rel=\"noreferrer noopener\" href=\"https://oqo.kr:5001/sharing/DJUKzj7wL\" target=\"_blank\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased; text-decoration-line: none; color: #d87b4d;\">https://oqo.kr:5001/sharing/DJUKzj7wL</a></p>\r\n   </blockquote>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"1126\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-153116.png\" alt=\"\" class=\"wp-image-2175\" srcset=\"https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-153116.png 1126w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-153116-768x437.png 768w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-153116-585x333.png 585w\" sizes=\"(max-width: 1126px) 100vw, 1126px\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">다운로드 받은 파일을 압축해제 후 WSA 폴더를 원하는 드라이브 루트로 이동합니다. WSA가 존재하는 드라이브에 가상머신이 설치됩니다.</p>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">3. 윈도우 개발자 모드 ON</p>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">윈도우 – 설정 – 개인 정보 및 보안 – 개발자용 – 개발자 모드 ON</p>\r\n   </blockquote>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-large\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"1093\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-153328-1093x730.png\" alt=\"\" class=\"wp-image-2176\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-large\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"1078\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-153404-1078x730.png\" alt=\"\" class=\"wp-image-2177\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p id=\"4-윈도우-터미널-관리자-cd-wsa경로\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">4. WSA 설치</p>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">터미널을 관리자 모드로 열어줍니다.</p>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">윈도우 – 터미널(관리자)</p>\r\n   </blockquote>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"293\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-153452.png\" alt=\"\" class=\"wp-image-2178\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">아래와 같이 입력합니다. (띄어쓰기 있으니 복붙하세요.)</p>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">cd – (WSA경로)</p>\r\n   </blockquote>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">Add-AppxPackage -Register .\\AppxManifest.xml</p>\r\n   </blockquote>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"986\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154023.png\" alt=\"\" class=\"wp-image-2181\" srcset=\"https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154023.png 986w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154023-768x358.png 768w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154023-585x272.png 585w\" sizes=\"(max-width: 986px) 100vw, 986px\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p id=\"6-windows-subsystem-for-android-설치완료\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">여기까지 하셨으면 WSA(Windows Subsystem for Android) 설치가 완료되었습니다.</p>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"635\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154103.png\" alt=\"\" class=\"wp-image-2182\" srcset=\"https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154103.png 635w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154103-585x264.png 585w\" sizes=\"(max-width: 635px) 100vw, 635px\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<h4 id=\"7-wsa실행\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 500; font-stretch: inherit; font-size: 26px; line-height: 1.45em; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #1c1d1f; letter-spacing: 1.5px; background-color: #ffffff;\"><span id=\"5_WSA\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased;\">5. WSA설정</span></h4>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">WSA를 실행후 개발자 모드를 켜줍니다.</p>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-large\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"1170\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154146-1170x730.png\" alt=\"\" class=\"wp-image-2183\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">디벨로터 셋팅도 켜줍니다.</p>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-large\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"1170\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154229-1170x730.png\" alt=\"\" class=\"wp-image-2184\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-large\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"1170\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154258-1170x730.png\" alt=\"\" class=\"wp-image-2185\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p id=\"여기까지하면-구글플레이스토어-설치완료\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">이제 프로그램을 보시면 구글플레이스토어와 아마존앱스토어가 생긴걸 보실 수 있답니다.</p>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"625\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154420.png\" alt=\"\" class=\"wp-image-2186\" srcset=\"https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154420.png 625w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154420-585x263.png 585w\" sizes=\"(max-width: 625px) 100vw, 625px\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p id=\"하지만-작동안됨\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">플레이스토어 실행해볼까요?</p>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"1051\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154453.png\" alt=\"\" class=\"wp-image-2187\" srcset=\"https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154453.png 1051w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154453-768x418.png 768w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154453-585x318.png 585w\" sizes=\"(max-width: 1051px) 100vw, 1051px\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">로그인을 눌러보지만 아직은 작동하지 않습니다. 이 부분을 해결해보죠.</p>\r\n<h4 id=\"6-플레이스토어-활성화\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 500; font-stretch: inherit; font-size: 26px; line-height: 1.45em; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #1c1d1f; letter-spacing: 1.5px; background-color: #ffffff;\"><span id=\"6\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased;\">6. 플레이스토어 활성화</span></h4>\r\n<p id=\"다시-터미널-관리자-이동-wsa-설치경로로\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">다시 터미널(관리자) 를 열고 WSA 설치경로로 이동합니다.</p>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">터미널(관리자) – cd (WSA 설치경로)</p>\r\n   </blockquote>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">아래 명령어를 차례로 입력합니다. adb사용을 위해 로컬호스트에 연결후 권한을 부여하는 작업입니다.</p>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">.\\adb.exe connect 127.0.0.1:58526</p>\r\n   </blockquote>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">.\\adb shell</p>\r\n   </blockquote>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">su</p>\r\n   </blockquote>\r\n<blockquote class=\"wp-block-quote\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 30px; padding: 55px 40px 53px; border-width: 0px 2px 0px 6px; border-top-style: initial; border-right-style: solid; border-bottom-style: initial; border-left-style: solid; border-top-color: initial; border-right-color: #c76c0c; border-bottom-color: initial; border-left-color: #c76c0c; border-image: initial; font-style: italic; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 600; font-stretch: inherit; font-size: 1.2em; line-height: 28px; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; quotes: none; color: #282727; position: relative; text-align: center; box-shadow: rgb(204, 204, 204) 2px 2px 15px; overflow-wrap: break-word; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-right: auto; margin-left: auto; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; max-width: 1140px;\">setenforce 0</p>\r\n   </blockquote>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"1105\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154707.png\" alt=\"\" class=\"wp-image-2188\" srcset=\"https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154707.png 1105w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154707-768x368.png 768w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154707-585x281.png 585w\" sizes=\"(max-width: 1105px) 100vw, 1105px\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<p id=\"완료\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">자 이제 모든 과정이 끝났습니다.</p>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">그럼 실행해볼까요?</p>\r\n<div class=\"wp-block-image\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px solid; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 32px !important; margin-left: auto; padding: 0px; border: 0px; font: inherit; vertical-align: middle; -webkit-font-smoothing: antialiased; display: table; clear: both; text-align: center; max-width: 100%; height: auto;\"><img loading=\"lazy\" width=\"1051\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154453-1.png\" alt=\"\" class=\"wp-image-2191\" srcset=\"https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154453-1.png 1051w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154453-1-768x418.png 768w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154453-1-585x318.png 585w\" sizes=\"(max-width: 1051px) 100vw, 1051px\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n   </div>\r\n<figure class=\"wp-block-image size-full\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 1em; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: middle; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; color: #333333; background-color: #ffffff;\"><img loading=\"lazy\" width=\"1052\" src=\"https://blog.forus.kr/wp-content/uploads/2022/02/%ED%99%94%EB%A9%B4-%EC%BA%A1%EC%B2%98-2022-02-07-154754.png\" alt=\"\" class=\"wp-image-2190\" srcset=\"https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154754.png 1052w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154754-768x479.png 768w, https://blog.forus.kr/wp-content/uploads/2022/02/화면-캡처-2022-02-07-154754-585x365.png 585w\" sizes=\"(max-width: 1052px) 100vw, 1052px\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 32px !important; margin-left: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: bottom; -webkit-font-smoothing: antialiased; max-width: 100%; height: auto; position: relative; z-index: 2; border-radius: inherit;\" /></figure>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">정상적으로 로그인이 됩니다. 자신의 구글계정으로 연결하시면 이용할 수 있습니다.</p>\r\n<p id=\"장점-개발자용으로-앱들이-무료단점-안정성이-다소-떨어짐\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">장점 : 개발자용으로 앱들이 무료<br style=\"box-sizing: border-box;\" />단점 : 안정성이 다소 떨어짐<br style=\"box-sizing: border-box;\" /></p>\r\n<p style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin-bottom: 26px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 1.2em; line-height: 1.5em; font-family: NIXGONN-Vb; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #333333; background-color: #ffffff;\">하지만 안드로이드이기 때문에 더 좋은 선택은 역시 삼성 DEX죠! 휴대폰을 미러링으로 외부리소스를 사용하며 띄워버리니까요</p>\r\n<h3 id=\"나가며\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 8.40625px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 500; font-stretch: inherit; font-size: 34px; line-height: 1.4em; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #1c1d1f; letter-spacing: 1.5px; background-color: #bbeeff;\"><span id=\"i-3\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased;\">나가며</span></h3>\r\n<h4 id=\"1-wsa-장점\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 500; font-stretch: inherit; font-size: 26px; line-height: 1.45em; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #1c1d1f; letter-spacing: 1.5px; background-color: #ffffff;\"><span id=\"1_WSA\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased;\">1. WSA 장점</span></h4>\r\n<ul style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 0px 0px 0px 45px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; list-style-position: outside; list-style-image: initial; color: #333333; background-color: #ffffff;\">\r\n   <li style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 11px 0px 11px 6px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased; position: relative; color: #1c1d1f;\">윈도우에서 개발환경 자체가 다른 모바일용 앱을 사용할 수 있기 때문에 상호 연계로 작업 능률을 극대화 시킬 수 있습니다. 물론 WSA는 가상머신이기 때문에 윈도우 탐색기에서 바로 접근이 불가합니다. 하지만 우회로를 통해 WSA의 폴더를 탐색기와 연동해 큰 불편함 없이 사용할 수 있답니다.</li>\r\n   </ul>\r\n<ul style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 0px 0px 0px 45px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 17px; line-height: inherit; font-family: &quot;Open Sans&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; list-style-position: outside; list-style-image: initial; color: #333333; background-color: #ffffff;\">\r\n   <li style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 11px 0px 11px 6px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased; position: relative; color: #1c1d1f;\">WSA는 정식안드로이드 빌드가 아닌 개발자용 빌드입니다. 일부 앱에서는 루팅한 장비로 인식하기도 하죠. 하지만 이 부분때문에 유료앱들을 무료로 사용할 수 있답니다. (모든앱을 확인해 본 것은 아닙니다.)</li>\r\n   <li style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 11px 0px 11px 6px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased; position: relative; color: #1c1d1f;\">구글플레이스토어 출시된 apk외 외부 APK를 손쉽게 사용할 수 있습니다.</li>\r\n   </ul>\r\n<h4 id=\"2-wsa-단점\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 500; font-stretch: inherit; font-size: 26px; line-height: 1.45em; font-family: &quot;Lexend Deca&quot;; vertical-align: baseline; -webkit-font-smoothing: antialiased; color: #1c1d1f; letter-spacing: 1.5px; background-color: #ffffff;\"><span id=\"2_WSA\" style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; -webkit-font-smoothing: antialiased;\">2. WSA 단점</span></h4>\r\n<ul style=\"box-sizing: border-box; -webkit-text-stroke-width: 0px; margin: 0px 0px 20px; p','https://blog.forus.kr/it%EC%BB%B4/%EC%9C%88%EB%8F%84%EC%9A%B011-wsa%EB%A1%9C-%EA%B5%AC%EA%B8%80%ED%94%8C%EB%A0%88%EC%9D%B4%EC%8A%A4%ED%86%A0%EC%96%B4-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%B1%EC%84%A4%EC%B9%98/','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-09-22 10:18:55',0,'2022-09-22 10:18:55','112.222.138.202','','','','','','','','','','','',''),(578,-577,'',578,0,0,'','','html1','[Arduino] ESP32, OLED 사용하기','<h1 class=\"title is-3 is-size-4-mobile\" style=\"box-sizing: inherit; margin: 50px 0px 1.5rem; padding: 0px; word-break: break-word; color: #363636; line-height: 1.125; letter-spacing: -1.4px; font-family: &quot;Gowun Batang&quot;, Ubuntu, Roboto, &quot;Open Sans&quot;, &quot;Microsoft YaHei&quot;, sans-serif; background-color: #ffffff;\">ESP32, OLED (한글 출력 하기)</h1>\r\n<div class=\"content\" style=\"box-sizing: inherit; margin-bottom: 1.5rem; overflow-wrap: break-word; font-size: 1.3rem; line-height: 1.75em; letter-spacing: -0.3px; color: #5d686f; margin-top: 20px; font-family: &quot;Gowun Batang&quot;, Ubuntu, Roboto, &quot;Open Sans&quot;, &quot;Microsoft YaHei&quot;, sans-serif; background-color: #ffffff;\">\r\n   <h3 id=\"OLED\" style=\"box-sizing: inherit; margin: 0px 0px 0.6666em; padding: 0px; font-size: 1.5em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#OLED\" class=\"headerlink\" title=\"OLED\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>OLED</h3>\r\n   <h4 id=\"종류\" style=\"box-sizing: inherit; margin: 0px 0px 0.8em; padding: 0px; font-size: 1.25em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#%EC%A2%85%EB%A5%98\" class=\"headerlink\" title=\"종류\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>종류</h4>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">ESP32나 Arduino에서 사용할 수 있는 oled의 종류는 매우 많지만, 주로 128*64 픽셀을 가진 0.96인치, 1.3인치의 SSD1306, SH1106 컨트롤러를 사용한 oled가 판매되고 있으며, 통신 프로토콜은 I2C나 SPI를 사용한다. oled 모듈 구입시 픽셀수, 컨트롤러 및 통신프로토콜을 잘 알아두어야 스케치 작성시 참고할 수 있음에 유의한다. I2C 방식은 GPIO를 2개만 사용하여 구성이 쉽다는 장점이 있고, SPI방식은 4~5개의 GPIO를 사용하지만 속도가 빠르다는 장점이 있다. 겉모습만으로는 컨트롤러를 확인하기는 어렵다.</p>\r\n   <table style=\"box-sizing: inherit; border-spacing: 0px; width: 867px; margin-bottom: 1em;\">\r\n      <thead style=\"box-sizing: inherit;\">\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <th style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; color: #363636; text-align: left; border-style: solid; border-color: #dbdbdb; border-width: 0px 0px 2px;\">I2C</th>\r\n            <th style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; color: #363636; text-align: left; border-style: solid; border-color: #dbdbdb; border-width: 0px 0px 2px;\">SPI</th>\r\n            </tr>\r\n         </thead>\r\n      <tbody style=\"box-sizing: inherit;\">\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"><a class=\"gallery-item\" href=\"https://stemwith.github.io/image/u/u8g2-oled-i2c-01.png\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"><img src=\"https://stemwith.github.io/image/u/u8g2-oled-i2c-01.png\" style=\"box-sizing: inherit; height: auto; max-width: 100%; margin-top: 30px;\" /></a></td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"><a class=\"gallery-item\" href=\"https://stemwith.github.io/image/u/u8g2-oled-spi-01.png\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"><img src=\"https://stemwith.github.io/image/u/u8g2-oled-spi-01.png\" style=\"box-sizing: inherit; height: auto; max-width: 100%; margin-top: 30px;\" /></a></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-width: 0px; border-style: solid; border-color: #dbdbdb;\"><a class=\"gallery-item\" href=\"https://stemwith.github.io/image/u/u8g2-oled-i2c-02.png\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"><img src=\"https://stemwith.github.io/image/u/u8g2-oled-i2c-02.png\" style=\"box-sizing: inherit; height: auto; max-width: 100%; margin-top: 30px;\" /></a></td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-width: 0px; border-style: solid; border-color: #dbdbdb;\"><a class=\"gallery-item\" href=\"https://stemwith.github.io/image/u/u8g2-oled-spi-02.png\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"><img src=\"https://stemwith.github.io/image/u/u8g2-oled-spi-02.png\" style=\"box-sizing: inherit; height: auto; max-width: 100%; margin-top: 30px;\" /></a></td>\r\n            </tr>\r\n         </tbody>\r\n      </table>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">이밖에도 U8g2 라이브러리에서 사용가능한 다양한 oled의 종류를 아래 링크에서 확인할 수 있다.</p>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\"><a target=\"_blank\" rel=\"external nofollow noopener noreferrer\" href=\"https://github.com/olikraus/u8g2/wiki/u8g2setupcpp#constructor-reference\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\">Constructor Reference for U8g2 library</a></p>\r\n   <br style=\"box-sizing: inherit;\" /><br style=\"box-sizing: inherit;\" />\r\n   <h3 id=\"SPI-OLED\" style=\"box-sizing: inherit; margin: 1.3333em 0px 0.6666em; padding: 0px; font-size: 1.5em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#SPI-OLED\" class=\"headerlink\" title=\"SPI OLED\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>SPI OLED</h3>\r\n   <h4 id=\"pinmap\" style=\"box-sizing: inherit; margin: 0px 0px 0.8em; padding: 0px; font-size: 1.25em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#pinmap\" class=\"headerlink\" title=\"pinmap\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>pinmap</h4>\r\n   <table style=\"box-sizing: inherit; border-spacing: 0px; width: 867px; margin-bottom: 1em;\">\r\n      <thead style=\"box-sizing: inherit;\">\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <th style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; color: #363636; text-align: left; border-style: solid; border-color: #dbdbdb; border-width: 0px 0px 2px;\">OLED</th>\r\n            <th style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; color: #363636; text-align: left; border-style: solid; border-color: #dbdbdb; border-width: 0px 0px 2px;\">ESP32 (HW_SPI로 사용시) (VSPI)</th>\r\n            <th style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; color: #363636; text-align: left; border-style: solid; border-color: #dbdbdb; border-width: 0px 0px 2px;\"></th>\r\n            <th style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; color: #363636; text-align: left; border-style: solid; border-color: #dbdbdb; border-width: 0px 0px 2px;\">(I2C겸용보드인 경우)</th>\r\n            </tr>\r\n         </thead>\r\n      <tbody style=\"box-sizing: inherit;\">\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">GND</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">GND</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"></td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">VDD</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">3.3V</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"></td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">D0</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"><span style=\"box-sizing: inherit; color: #363636; font-weight: 700;\">18</span>&nbsp;(HW_SPI 사용시 GPIO_18로 고정)</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">SCK/CLK/CLOCK</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">SCL</td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">D1</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"><span style=\"box-sizing: inherit; color: #363636; font-weight: 700;\">23</span>&nbsp;(HW_SPI 사용시 GPIO_23으로 고정)</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">DATA/DIN/MOSI</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">SDA</td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">RES</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">15</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">RST/RESET</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">DC</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">14</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">Data Command</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-width: 0px; border-style: solid; border-color: #dbdbdb;\">CS</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-width: 0px; border-style: solid; border-color: #dbdbdb;\">5</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-width: 0px; border-style: solid; border-color: #dbdbdb;\">Chip Select</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-width: 0px; border-style: solid; border-color: #dbdbdb;\"></td>\r\n            </tr>\r\n         </tbody>\r\n      </table>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">※ HW_SPI로 사용하는 경우에는 D0, D1의 핀번호를 바꿀 수 없으며, SW_SPI로 사용하는 경우에는 사용되는 모든 핀의 번호를 임의로 지정하여 사용할 수 있다.</p>\r\n   <br style=\"box-sizing: inherit;\" />\r\n   <h4 id=\"schematic\" style=\"box-sizing: inherit; margin: 0px 0px 0.8em; padding: 0px; font-size: 1.25em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#schematic\" class=\"headerlink\" title=\"schematic\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>schematic</h4>\r\n   <ul style=\"box-sizing: inherit; margin: 1em 0px 1em 2em; padding: 0px; list-style-position: outside; list-style-image: initial;\">\r\n      <li style=\"box-sizing: inherit; margin: 0px; padding: 0px;\">SW_SPI 연결시에는 스케치에서 지정하는 GPIO핀에 연결한다.</li>\r\n      <li style=\"box-sizing: inherit; margin: 0.25em 0px 0px; padding: 0px;\">HW_SPI로 연결할 때의 회로도는 아래 그림과 같다.</li>\r\n      </ul>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\"><a class=\"gallery-item\" href=\"https://stemwith.github.io/image/u/u8g2-oled-spi-03.png\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"><img src=\"https://stemwith.github.io/image/u/u8g2-oled-spi-03.png\" style=\"box-sizing: inherit; height: auto; max-width: 100%; margin-top: 30px;\" /></a></p>\r\n   <br style=\"box-sizing: inherit;\" />\r\n   <h4 id=\"sketch\" style=\"box-sizing: inherit; margin: 0px 0px 0.8em; padding: 0px; font-size: 1.25em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#sketch\" class=\"headerlink\" title=\"sketch\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>sketch</h4>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">oled를 SPI로 연결하는 경우, 다음을 추가해야 한다.</p>\r\n   <figure class=\"highlight c hljs\" id=\"code-1663822179479764\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: 2em; padding: 0px; overflow: hidden; background: rgb(39, 40, 34); color: #dddddd; max-width: 100%; text-align: center; width: 867px; position: relative; border-radius: 4px; margin-right: 0px !important; margin-left: 0px !important;\">\r\n      <figcaption class=\"level is-mobile\" style=\"box-sizing: inherit; align-items: center; justify-content: space-between; display: flex; background: rgba(200, 200, 200, 0.15); padding: 0.3em 0em 0.3em 0.75em; font-size: 0.8em; margin-bottom: 1.5rem; overflow: auto; margin-top: 0px !important; margin-right: 0px !important; margin-left: 0px !important;\">\r\n         <div class=\"level-left\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-start; display: flex; color: inherit;\"><span class=\"fold\" style=\"box-sizing: inherit; font-style: inherit; color: inherit; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; cursor: pointer;\"><span class=\"fas fa-angle-down\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></span></div>\r\n         <div class=\"level-right\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-end; display: flex; color: inherit; margin-top: 0px;\"><a class=\"copy\" title=\"Copy\" data-clipboard-target=\"#code-1663822179479764 .code\" style=\"box-sizing: inherit; color: inherit; cursor: pointer; opacity: 0.7; padding: 0em 0.75em;\"><span class=\"fas fa-copy\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></a></div>\r\n         </figcaption>\r\n      <div class=\"highlight-body\" style=\"box-sizing: inherit; overflow: auto;\">\r\n         <table style=\"box-sizing: inherit; border-spacing: 0px; width: auto;\">\r\n            <tbody style=\"box-sizing: inherit;\">\r\n               <tr style=\"box-sizing: inherit;\">\r\n                  <td class=\"gutter\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; text-align: right; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial; background: rgba(200, 200, 200, 0.15);\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">1</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  <td class=\"code\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial;\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-meta\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">#<span class=\"hljs-meta-keyword\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">include</span><span class=\"hljs-meta-string\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">&lt;SPI.h&gt;</span></span></span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  </tr>\r\n               </tbody>\r\n            </table>\r\n         </div>\r\n      </figure>\r\n   <br style=\"box-sizing: inherit;\" />\r\n   <h5 id=\"sketch-SH1106-HW-SPI\" style=\"box-sizing: inherit; margin: 0px 0px 0.8888em; padding: 0px; font-size: 1.125em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#sketch-SH1106-HW-SPI\" class=\"headerlink\" title=\"sketch: SH1106, HW_SPI\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>sketch: SH1106, HW_SPI</h5>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">HW_SPI를 사용하는 경우에는 D0(CLK), D1(MOSI)을 ESP32에 지정된 핀으로 사용하기 때문에, 나머지 3개의 핀만 sketch에서 지정해주면 된다.</p>\r\n   <figure class=\"highlight c hljs\" id=\"code-1663822179479943\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: 2em; padding: 0px; overflow: hidden; background: rgb(39, 40, 34); color: #dddddd; max-width: 100%; text-align: center; width: 867px; position: relative; border-radius: 4px; margin-right: 0px !important; margin-left: 0px !important;\">\r\n      <figcaption class=\"level is-mobile\" style=\"box-sizing: inherit; align-items: center; justify-content: space-between; display: flex; background: rgba(200, 200, 200, 0.15); padding: 0.3em 0em 0.3em 0.75em; font-size: 0.8em; margin-bottom: 1.5rem; overflow: auto; margin-top: 0px !important; margin-right: 0px !important; margin-left: 0px !important;\">\r\n         <div class=\"level-left\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-start; display: flex; color: inherit;\"><span class=\"fold\" style=\"box-sizing: inherit; font-style: inherit; color: inherit; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; cursor: pointer;\"><span class=\"fas fa-angle-down\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></span></div>\r\n         <div class=\"level-right\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-end; display: flex; color: inherit; margin-top: 0px;\"><a class=\"copy\" title=\"Copy\" data-clipboard-target=\"#code-1663822179479943 .code\" style=\"box-sizing: inherit; color: inherit; cursor: pointer; opacity: 0.7; padding: 0em 0.75em;\"><span class=\"fas fa-copy\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></a></div>\r\n         </figcaption>\r\n      <div class=\"highlight-body\" style=\"box-sizing: inherit; overflow: auto;\">\r\n         <table style=\"box-sizing: inherit; border-spacing: 0px; width: auto;\">\r\n            <tbody style=\"box-sizing: inherit;\">\r\n               <tr style=\"box-sizing: inherit;\">\r\n                  <td class=\"gutter\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; text-align: right; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial; background: rgba(200, 200, 200, 0.15);\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">1</span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">2</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  <td class=\"code\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial;\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">// for HW_SPI (VSPI)</span></span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-function\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">U8G2_SH1106_128X64_NONAME_F_4W_HW_SPI <span class=\"hljs-title\" style=\"box-sizing: inherit; font-style: inherit; font-weight: bold; color: #a6e22e;\">u8g2</span><span class=\"hljs-params\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">(U8G2_R0, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* cs=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">5</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* dc=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">14</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* reset=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">15</span>)</span></span>;</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  </tr>\r\n               </tbody>\r\n            </table>\r\n         </div>\r\n      </figure>\r\n   <br style=\"box-sizing: inherit;\" />\r\n   <h5 id=\"sketch-SH1106-SW-SPI\" style=\"box-sizing: inherit; margin: 0px 0px 0.8888em; padding: 0px; font-size: 1.125em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#sketch-SH1106-SW-SPI\" class=\"headerlink\" title=\"sketch: SH1106, SW_SPI\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>sketch: SH1106, SW_SPI</h5>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">SW_SPI를 사용하는 경우, 4~5개의 핀을 sketch에 지정해주어야 한다.</p>\r\n   <figure class=\"highlight c hljs\" id=\"code-1663822179479430\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: 2em; padding: 0px; overflow: hidden; background: rgb(39, 40, 34); color: #dddddd; max-width: 100%; text-align: center; width: 867px; position: relative; border-radius: 4px; margin-right: 0px !important; margin-left: 0px !important;\">\r\n      <figcaption class=\"level is-mobile\" style=\"box-sizing: inherit; align-items: center; justify-content: space-between; display: flex; background: rgba(200, 200, 200, 0.15); padding: 0.3em 0em 0.3em 0.75em; font-size: 0.8em; margin-bottom: 1.5rem; overflow: auto; margin-top: 0px !important; margin-right: 0px !important; margin-left: 0px !important;\">\r\n         <div class=\"level-left\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-start; display: flex; color: inherit;\"><span class=\"fold\" style=\"box-sizing: inherit; font-style: inherit; color: inherit; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; cursor: pointer;\"><span class=\"fas fa-angle-down\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></span></div>\r\n         <div class=\"level-right\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-end; display: flex; color: inherit; margin-top: 0px;\"><a class=\"copy\" title=\"Copy\" data-clipboard-target=\"#code-1663822179479430 .code\" style=\"box-sizing: inherit; color: inherit; cursor: pointer; opacity: 0.7; padding: 0em 0.75em;\"><span class=\"fas fa-copy\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></a></div>\r\n         </figcaption>\r\n      <div class=\"highlight-body\" style=\"box-sizing: inherit; overflow: auto;\">\r\n         <table style=\"box-sizing: inherit; border-spacing: 0px; width: auto;\">\r\n            <tbody style=\"box-sizing: inherit;\">\r\n               <tr style=\"box-sizing: inherit;\">\r\n                  <td class=\"gutter\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; text-align: right; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial; background: rgba(200, 200, 200, 0.15);\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">1</span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">2</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  <td class=\"code\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial;\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">// for SW_SPI</span></span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-function\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">U8G2_SH1106_128X64_NONAME_F_4W_SW_SPI <span class=\"hljs-title\" style=\"box-sizing: inherit; font-style: inherit; font-weight: bold; color: #a6e22e;\">u8g2</span><span class=\"hljs-params\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">(U8G2_R0, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* clock=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">26</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* data=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">25</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* cs=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">5</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* dc=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">14</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* reset=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">15</span>)</span></span>;</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  </tr>\r\n               </tbody>\r\n            </table>\r\n         </div>\r\n      </figure>\r\n   <br style=\"box-sizing: inherit;\" />\r\n   <h5 id=\"sketch-SSD1306-HW-SPI\" style=\"box-sizing: inherit; margin: 0px 0px 0.8888em; padding: 0px; font-size: 1.125em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#sketch-SSD1306-HW-SPI\" class=\"headerlink\" title=\"sketch: SSD1306, HW_SPI\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>sketch: SSD1306, HW_SPI</h5>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">SSD1306을 사용하는 oled의 경우&nbsp;<span style=\"box-sizing: inherit; color: #363636; font-weight: 700;\">U8G2_SH1106_</span>~ 부분을&nbsp;<span style=\"box-sizing: inherit; color: #363636; font-weight: 700;\">U8G2_SSD1306_</span>~ 으로 수정하여 사용한다. 자세한 옵션은&nbsp;<a target=\"_blank\" rel=\"external nofollow noopener noreferrer\" href=\"https://github.com/olikraus/u8g2/wiki/u8g2setupcpp#constructor-reference\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\">Constructor Reference for U8g2 library</a>에서 확인할 수 있다.</p>\r\n   <figure class=\"highlight plaintext hljs\" id=\"code-166382217947937\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: 2em; padding: 0px; overflow: hidden; background: rgb(39, 40, 34); color: #dddddd; max-width: 100%; text-align: center; width: 867px; position: relative; border-radius: 4px; margin-right: 0px !important; margin-left: 0px !important;\">\r\n      <figcaption class=\"level is-mobile\" style=\"box-sizing: inherit; align-items: center; justify-content: space-between; display: flex; background: rgba(200, 200, 200, 0.15); padding: 0.3em 0em 0.3em 0.75em; font-size: 0.8em; margin-bottom: 1.5rem; overflow: auto; margin-top: 0px !important; margin-right: 0px !important; margin-left: 0px !important;\">\r\n         <div class=\"level-left\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-start; display: flex; color: inherit;\"><span class=\"fold\" style=\"box-sizing: inherit; font-style: inherit; color: inherit; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; cursor: pointer;\"><span class=\"fas fa-angle-down\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></span></div>\r\n         <div class=\"level-right\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-end; display: flex; color: inherit; margin-top: 0px;\"><a class=\"copy\" title=\"Copy\" data-clipboard-target=\"#code-166382217947937 .code\" style=\"box-sizing: inherit; color: inherit; cursor: pointer; opacity: 0.7; padding: 0em 0.75em;\"><span class=\"fas fa-copy\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></a></div>\r\n         </figcaption>\r\n      <div class=\"highlight-body\" style=\"box-sizing: inherit; overflow: auto;\">\r\n         <table style=\"box-sizing: inherit; border-spacing: 0px; width: auto;\">\r\n            <tbody style=\"box-sizing: inherit;\">\r\n               <tr style=\"box-sizing: inherit;\">\r\n                  <td class=\"gutter\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; text-align: right; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial; background: rgba(200, 200, 200, 0.15);\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">1</span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">2</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  <td class=\"code\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial;\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">// for HW_SPI (VSPI)</span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">U8G2_SSD1306_128X64_NONAME_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 5, /* dc=*/ 14, /* reset=*/ 15);</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  </tr>\r\n               </tbody>\r\n            </table>\r\n         </div>\r\n      </figure>\r\n   <br style=\"box-sizing: inherit;\" />\r\n   <h5 id=\"sketch-SSD1306-SW-SPI\" style=\"box-sizing: inherit; margin: 0px 0px 0.8888em; padding: 0px; font-size: 1.125em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#sketch-SSD1306-SW-SPI\" class=\"headerlink\" title=\"sketch: SSD1306, SW_SPI\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>sketch: SSD1306, SW_SPI</h5>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">SW_SPI를 사용하는 경우, 4~5개의 핀을 sketch에 지정해주어야 한다.</p>\r\n   <figure class=\"highlight c hljs\" id=\"code-1663822179479602\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: 2em; padding: 0px; overflow: hidden; background: rgb(39, 40, 34); color: #dddddd; max-width: 100%; text-align: center; width: 867px; position: relative; border-radius: 4px; margin-right: 0px !important; margin-left: 0px !important;\">\r\n      <figcaption class=\"level is-mobile\" style=\"box-sizing: inherit; align-items: center; justify-content: space-between; display: flex; background: rgba(200, 200, 200, 0.15); padding: 0.3em 0em 0.3em 0.75em; font-size: 0.8em; margin-bottom: 1.5rem; overflow: auto; margin-top: 0px !important; margin-right: 0px !important; margin-left: 0px !important;\">\r\n         <div class=\"level-left\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-start; display: flex; color: inherit;\"><span class=\"fold\" style=\"box-sizing: inherit; font-style: inherit; color: inherit; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; cursor: pointer;\"><span class=\"fas fa-angle-down\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></span></div>\r\n         <div class=\"level-right\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-end; display: flex; color: inherit; margin-top: 0px;\"><a class=\"copy\" title=\"Copy\" data-clipboard-target=\"#code-1663822179479602 .code\" style=\"box-sizing: inherit; color: inherit; cursor: pointer; opacity: 0.7; padding: 0em 0.75em;\"><span class=\"fas fa-copy\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></a></div>\r\n         </figcaption>\r\n      <div class=\"highlight-body\" style=\"box-sizing: inherit; overflow: auto;\">\r\n         <table style=\"box-sizing: inherit; border-spacing: 0px; width: auto;\">\r\n            <tbody style=\"box-sizing: inherit;\">\r\n               <tr style=\"box-sizing: inherit;\">\r\n                  <td class=\"gutter\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; text-align: right; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial; background: rgba(200, 200, 200, 0.15);\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">1</span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">2</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  <td class=\"code\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial;\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">// for SW_SPI</span></span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-function\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI <span class=\"hljs-title\" style=\"box-sizing: inherit; font-style: inherit; font-weight: bold; color: #a6e22e;\">u8g2</span><span class=\"hljs-params\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">(U8G2_R0, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* clock=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">26</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* data=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">25</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* cs=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">5</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* dc=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">14</span>, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* reset=*/</span><span class=\"hljs-number\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">15</span>)</span></span>;</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  </tr>\r\n               </tbody>\r\n            </table>\r\n         </div>\r\n      </figure>\r\n   <br style=\"box-sizing: inherit;\" /><br style=\"box-sizing: inherit;\" />\r\n   <h3 id=\"I2C-OLED\" style=\"box-sizing: inherit; margin: 1.3333em 0px 0.6666em; padding: 0px; font-size: 1.5em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#I2C-OLED\" class=\"headerlink\" title=\"I2C OLED\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>I2C OLED</h3>\r\n   <h4 id=\"pinmap-1\" style=\"box-sizing: inherit; margin: 0px 0px 0.8em; padding: 0px; font-size: 1.25em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#pinmap-1\" class=\"headerlink\" title=\"pinmap\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>pinmap</h4>\r\n   <table style=\"box-sizing: inherit; border-spacing: 0px; width: 867px; margin-bottom: 1em;\">\r\n      <thead style=\"box-sizing: inherit;\">\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <th style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; color: #363636; text-align: left; border-style: solid; border-color: #dbdbdb; border-width: 0px 0px 2px;\">OLED</th>\r\n            <th style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; color: #363636; text-align: left; border-style: solid; border-color: #dbdbdb; border-width: 0px 0px 2px;\">ESP32</th>\r\n            </tr>\r\n         </thead>\r\n      <tbody style=\"box-sizing: inherit;\">\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">GND</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">GND</td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">VDD</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">3.3V</td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\">SDA</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: solid; border-color: #dbdbdb; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px;\"><span style=\"box-sizing: inherit; color: #363636; font-weight: 700;\">21</span>&nbsp;(HW_I2C 사용시 GPIO_21로 고정)</td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-width: 0px; border-style: solid; border-color: #dbdbdb;\">SCL</td>\r\n            <td style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-width: 0px; border-style: solid; border-color: #dbdbdb;\"><span style=\"box-sizing: inherit; color: #363636; font-weight: 700;\">22</span>&nbsp;(HW_I2C 사용시 GPIO_22으로 고정)</td>\r\n            </tr>\r\n         </tbody>\r\n      </table>\r\n   <br style=\"box-sizing: inherit;\" />\r\n   <h4 id=\"schematic-1\" style=\"box-sizing: inherit; margin: 0px 0px 0.8em; padding: 0px; font-size: 1.25em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#schematic-1\" class=\"headerlink\" title=\"schematic\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>schematic</h4>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\"><a class=\"gallery-item\" href=\"https://stemwith.github.io/image/u/u8g2-oled-i2c-03.png\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"><img src=\"https://stemwith.github.io/image/u/u8g2-oled-i2c-03.png\" style=\"box-sizing: inherit; height: auto; max-width: 100%; margin-top: 30px;\" /></a></p>\r\n   <br style=\"box-sizing: inherit;\" />\r\n   <h4 id=\"sketch-1\" style=\"box-sizing: inherit; margin: 0px 0px 0.8em; padding: 0px; font-size: 1.25em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#sketch-1\" class=\"headerlink\" title=\"sketch\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>sketch</h4>\r\n   <h5 id=\"sketch-SH1106-HW-I2C\" style=\"box-sizing: inherit; margin: 0px 0px 0.8888em; padding: 0px; font-size: 1.125em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#sketch-SH1106-HW-I2C\" class=\"headerlink\" title=\"sketch: SH1106, HW_I2C\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>sketch: SH1106, HW_I2C</h5>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">HW_I2C를 사용하는 경우에는 SDA, SCL을 ESP32에 지정된 핀으로 사용하기 때문에, 구동 드라이버만 지정해주면 된다.</p>\r\n   <figure class=\"highlight c hljs\" id=\"code-166382217947954\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: 2em; padding: 0px; overflow: hidden; background: rgb(39, 40, 34); color: #dddddd; max-width: 100%; text-align: center; width: 867px; position: relative; border-radius: 4px; margin-right: 0px !important; margin-left: 0px !important;\">\r\n      <figcaption class=\"level is-mobile\" style=\"box-sizing: inherit; align-items: center; justify-content: space-between; display: flex; background: rgba(200, 200, 200, 0.15); padding: 0.3em 0em 0.3em 0.75em; font-size: 0.8em; margin-bottom: 1.5rem; overflow: auto; margin-top: 0px !important; margin-right: 0px !important; margin-left: 0px !important;\">\r\n         <div class=\"level-left\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-start; display: flex; color: inherit;\"><span class=\"fold\" style=\"box-sizing: inherit; font-style: inherit; color: inherit; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; cursor: pointer;\"><span class=\"fas fa-angle-down\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></span></div>\r\n         <div class=\"level-right\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-end; display: flex; color: inherit; margin-top: 0px;\"><a class=\"copy\" title=\"Copy\" data-clipboard-target=\"#code-166382217947954 .code\" style=\"box-sizing: inherit; color: inherit; cursor: pointer; opacity: 0.7; padding: 0em 0.75em;\"><span class=\"fas fa-copy\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></a></div>\r\n         </figcaption>\r\n      <div class=\"highlight-body\" style=\"box-sizing: inherit; overflow: auto;\">\r\n         <table style=\"box-sizing: inherit; border-spacing: 0px; width: auto;\">\r\n            <tbody style=\"box-sizing: inherit;\">\r\n               <tr style=\"box-sizing: inherit;\">\r\n                  <td class=\"gutter\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; text-align: right; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial; background: rgba(200, 200, 200, 0.15);\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">1</span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">2</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  <td class=\"code\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial;\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">// for SH1106,  I2C, (ESP32: SDA 21, SCL 22)</span></span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-function\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">U8G2_SH1106_128X64_NONAME_F_HW_I2C <span class=\"hljs-title\" style=\"box-sizing: inherit; font-style: inherit; font-weight: bold; color: #a6e22e;\">u8g2</span><span class=\"hljs-params\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">(U8G2_R0, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* reset=*/</span> U8X8_PIN_NONE)</span></span>;</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  </tr>\r\n               </tbody>\r\n            </table>\r\n         </div>\r\n      </figure>\r\n   <br style=\"box-sizing: inherit;\" />\r\n   <h5 id=\"sketch-SSD1306-HW-I2C\" style=\"box-sizing: inherit; margin: 0px 0px 0.8888em; padding: 0px; font-size: 1.125em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#sketch-SSD1306-HW-I2C\" class=\"headerlink\" title=\"sketch: SSD1306, HW_I2C\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>sketch: SSD1306, HW_I2C</h5>\r\n   <figure class=\"highlight c hljs\" id=\"code-1663822179479523\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: 2em; padding: 0px; overflow: hidden; background: rgb(39, 40, 34); color: #dddddd; max-width: 100%; text-align: center; width: 867px; position: relative; border-radius: 4px; margin-right: 0px !important; margin-left: 0px !important;\">\r\n      <figcaption class=\"level is-mobile\" style=\"box-sizing: inherit; align-items: center; justify-content: space-between; display: flex; background: rgba(200, 200, 200, 0.15); padding: 0.3em 0em 0.3em 0.75em; font-size: 0.8em; margin-bottom: 1.5rem; overflow: auto; margin-top: 0px !important; margin-right: 0px !important; margin-left: 0px !important;\">\r\n         <div class=\"level-left\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-start; display: flex; color: inherit;\"><span class=\"fold\" style=\"box-sizing: inherit; font-style: inherit; color: inherit; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; cursor: pointer;\"><span class=\"fas fa-angle-down\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></span></div>\r\n         <div class=\"level-right\" style=\"box-sizing: inherit; flex: 0 0 auto; align-items: center; justify-content: flex-end; display: flex; color: inherit; margin-top: 0px;\"><a class=\"copy\" title=\"Copy\" data-clipboard-target=\"#code-1663822179479523 .code\" style=\"box-sizing: inherit; color: inherit; cursor: pointer; opacity: 0.7; padding: 0em 0.75em;\"><span class=\"fas fa-copy\" style=\"box-sizing: inherit; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: inherit; font-family: &quot;Font Awesome 5 Free&quot;; font-weight: 900; color: inherit;\"></span></a></div>\r\n         </figcaption>\r\n      <div class=\"highlight-body\" style=\"box-sizing: inherit; overflow: auto;\">\r\n         <table style=\"box-sizing: inherit; border-spacing: 0px; width: auto;\">\r\n            <tbody style=\"box-sizing: inherit;\">\r\n               <tr style=\"box-sizing: inherit;\">\r\n                  <td class=\"gutter\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; text-align: right; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial; background: rgba(200, 200, 200, 0.15);\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">1</span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\">2</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  <td class=\"code\" style=\"box-sizing: inherit; padding: 0.5em 0.75em; vertical-align: top; border-style: none; border-color: initial; border-top-width: initial; border-right-width: initial; border-bottom-width: 0px; border-left-width: initial;\">\r\n                     <pre style=\"box-sizing: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px; -webkit-font-smoothing: auto; font-family: &quot;Source Code Pro&quot;, monospace, &quot;Microsoft YaHei&quot;; background: transparent; color: inherit; font-size: 0.85em; overflow: visible; overflow-wrap: normal; max-width: 100%;\"><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">// for SSD1306, I2C, (ESP32: SDA 21, SCL 22)</span></span><br style=\"box-sizing: inherit;\" /><span class=\"line\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; line-height: 1.5rem;\"><span class=\"hljs-function\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">U8G2_SSD1306_128X64_NONAME_F_HW_I2C <span class=\"hljs-title\" style=\"box-sizing: inherit; font-style: inherit; font-weight: bold; color: #a6e22e;\">u8g2</span><span class=\"hljs-params\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit;\">(U8G2_R0, <span class=\"hljs-comment\" style=\"box-sizing: inherit; font-style: inherit; font-weight: inherit; color: #75715e;\">/* reset=*/</span> U8X8_PIN_NONE)</span></span>;</span><br style=\"box-sizing: inherit;\" /></pre>\r\n                     </td>\r\n                  </tr>\r\n               </tbody>\r\n            </table>\r\n         </div>\r\n      </figure>\r\n   <br style=\"box-sizing: inherit;\" /><br style=\"box-sizing: inherit;\" />\r\n   <h3 id=\"U8g2-라이브러리\" style=\"box-sizing: inherit; margin: 1.3333em 0px 0.6666em; padding: 0px; font-size: 1.5em; font-weight: 400; color: #363636; line-height: 1.125; scroll-margin: 1em;\"><a href=\"https://stemwith.github.io/2021/09/26/ESP32-OLED/#U8g2-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC\" class=\"headerlink\" title=\"U8g2 라이브러리\" style=\"box-sizing: inherit; color: #363636; cursor: pointer; text-decoration-line: none;\" target=\"_blank\"></a>U8g2 라이브러리</h3>\r\n   <p style=\"box-sizing: inherit; margin-bottom: 1em; padding: 0px;\">ESP32나 Arduino에서 OLED를 사용을 위한 대표적인 라이브러리는 3~4가지 정도이다.</p>\r\n   <ul style=\"box-sizing: inherit; margin: 1em 0px 1em 2em; padding: 0px; list-style-position: outside; list-style-image: initial;\">\r\n      <li style=\"box-sizing: inherit; margin: 0px; padding: 0px;\">U8glib</li>\r\n      <li style=\"box-sizing: inherit; margin: 0.25em 0px 0px; padding: 0px;\"><span style=\"box-sizing: inherit; color: #363636; font-weight: 700;\">U8g2</spa','https://stemwith.github.io/2021/09/26/ESP32-OLED/#I2C-OLED','',0,0,3,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-09-22 13:57:03',0,'2022-09-22 13:57:03','112.222.138.202','','','','','','','','','','','',''),(579,-578,'',579,0,0,'','','html1','[Arduino] Arduino - TCP Client로 명령받기','<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 16pt; line-height: 28px; background-color: #ffffff; font-family: &quot;맑은 고딕&quot;; color: #1e4e79; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-weight: bold;\">개요</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;맑은 고딕&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; color: #ff3399; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">*&nbsp;</span><span lang=\"ko\">일단</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">돌아가게만</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">구현한</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">것이라</span><span lang=\"en-US\">,&nbsp;</span><span lang=\"ko\">코드에</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">민망한</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">부분이</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">있을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">수</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">있음</span><span lang=\"en-US\">.</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">*&nbsp;</span><span lang=\"ko\">전체</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">코드</span><span lang=\"en-US\">&nbsp;gist:&nbsp;</span><span lang=\"en-US\" style=\"font-size: 13px;\">&nbsp;</span><a href=\"https://gist.github.com/nicewook/214e1fca4a9f3783129bff91b7320c2a\" style=\"color: #3db39e; text-decoration-line: none; font-family: &quot;맑은 고딕&quot;, sans-serif; font-size: 13px;\" target=\"_blank\"><span lang=\"ko\" style=\"font-family: &quot;맑은 고딕&quot;;\">https://gist.github.com/nicewook/214e1fca4a9f3783129bff91b7320c2a</span></a></p>\r\n<p style=\"margin: 0in 0in 0in auto; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\"><br /></span></p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">1. Arduino&nbsp;</span><span lang=\"ko\">와</span><span lang=\"en-US\">&nbsp;Ethernet Shield&nbsp;</span><span lang=\"ko\">를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">이용하여</span><span lang=\"en-US\">&nbsp;TCP Client&nbsp;</span><span lang=\"ko\">를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">구현하고</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">2.&nbsp;</span><span lang=\"ko\">대기하다가</span><span lang=\"en-US\">&nbsp;TCP Server&nbsp;</span><span lang=\"ko\">의</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">명령</span><span lang=\"en-US\">&nbsp;(OPCode)</span><span lang=\"ko\">을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">받으면</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">특정</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">동작을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">수행한다</span><span lang=\"en-US\">.</span></p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">덧붙여</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">1. Arduino Ethernet&nbsp;</span><span lang=\"ko\">의</span><span lang=\"en-US\">&nbsp;IP&nbsp;</span><span lang=\"ko\">를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">할당하는</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">방법을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">알아보고</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">2. Hercules SETUP utility&nbsp;</span><span lang=\"ko\">를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">통해</span><span lang=\"en-US\">&nbsp;TCP&nbsp;</span><span lang=\"ko\">송수신을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">테스트</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">해본다</span><span lang=\"en-US\">.</span></p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 16pt; line-height: 28px; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; color: #1e4e79; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-weight: bold;\">준비물</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">- Arduino UNO</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; font-family: &quot;Noto Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">-&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;맑은 고딕&quot;;\">Arduino Ethernet Shield W5100</span></p>\r\n<div style=\"margin: 0px; padding: 0px; outline: none; color: #666666; font-family: &quot;Noto Sans&quot;, sans-serif; font-size: 14px; background-color: #ffffff; direction: ltr;\">\r\n   <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" valign=\"top\" style=\"direction: ltr; border-style: solid; border-color: #a3a3a3; border-width: 1pt; margin-left: 0.3333in;\">\r\n      <tbody>\r\n         <tr>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; background-color: #fff2cc; vertical-align: top; width: 3.55in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">- SPI&nbsp;</span><span lang=\"ko\">를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">이용해</span><span lang=\"en-US\">&nbsp;UNO</span><span lang=\"ko\">와</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">통신</span><span lang=\"en-US\">&nbsp;(Pin 10, 11, 12, 13)</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">연결속도</span><span lang=\"en-US\">&nbsp;10 / 100Mb</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">작동전압</span><span lang=\"en-US\">&nbsp;5V</span></p>\r\n               </td>\r\n            </tr>\r\n         </tbody>\r\n      </table>\r\n   </div>\r\n<p lang=\"en-US\" style=\"margin: 0in 0in 0in 0.375in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 16pt; line-height: 28px; font-family: &quot;Noto Sans&quot;, sans-serif; background-color: #ffffff; color: #1e4e79; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">아두이노의</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;IP Address&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">를</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">알아보자</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: &quot;Noto Sans&quot;, sans-serif; background-color: #ffffff; color: #2e75b5; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">방법</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">1.&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">아두이노</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">기본제공</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">예제로</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">알아볼</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">수</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">있다</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">.</span></p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; font-family: &quot;Noto Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">-&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">링크</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">:&nbsp;</span><a href=\"https://www.arduino.cc/en/Tutorial/DhcpAddressPrinter\" style=\"color: #3db39e; text-decoration-line: none;\" target=\"_blank\"><span lang=\"ko\" style=\"font-family: &quot;맑은 고딕&quot;;\">https://www.arduino.cc/en/Tutorial/DhcpAddressPrinter</span></a></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">업로드하고</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">시리얼</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">모니터</span><span lang=\"en-US\">&nbsp;(Ctrl+Shift+M)&nbsp;</span><span lang=\"ko\">를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">실행하면</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">할당된</span><span lang=\"en-US\">&nbsp;IP&nbsp;</span><span lang=\"ko\">출력됨</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">이</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">부분을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">구현하려는</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">소스코드에</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">넣으면</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">코드</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">사이즈가</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">많이</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">늘어난다</span><span lang=\"en-US\">.</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<div style=\"margin: 0px; padding: 0px; outline: none; color: #666666; font-family: &quot;Noto Sans&quot;, sans-serif; font-size: 14px; background-color: #ffffff; direction: ltr;\">\r\n   <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" valign=\"top\" style=\"direction: ltr; border-style: solid; border-color: #a3a3a3; border-width: 1pt;\">\r\n      <tbody>\r\n         <tr>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; vertical-align: top; width: 7.7375in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 16px; line-height: 28px; clear: none; float: none; padding-top: 0px !important; padding-bottom: 0px !important;\"><span class=\"imageblock\" style=\"width: 669px; height: auto; display: inline-block; max-width: 100%;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/9982E3375BA0E5EB05\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9982E3375BA0E5EB05\" width=\"669\" filename=\"2018-09-18 10;43;19.PNG\" filemime=\"image/png\" style=\"border: 0px none; max-width: 100%; height: auto;\" /></span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 16px; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><br /></p>\r\n               <p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               </td>\r\n            </tr>\r\n         <tr>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; vertical-align: top; width: 7.7375in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 16px; line-height: 28px; clear: none; float: none; padding-top: 0px !important; padding-bottom: 0px !important;\"><span class=\"imageblock\" style=\"width: 722px; height: auto; display: inline-block; max-width: 100%;\"><img src=\"https://t1.daumcdn.net/cfile/tistory/99D1A83D5BA0E5EB07\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99D1A83D5BA0E5EB07\" width=\"722\" filename=\"2018-09-18 10;45;24.PNG\" filemime=\"image/png\" style=\"border: 0px none; max-width: 100%; height: auto;\" /></span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 16px; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><br /></p>\r\n               <p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               </td>\r\n            </tr>\r\n         </tbody>\r\n      </table>\r\n   </div>\r\n<p lang=\"en-US\" style=\"margin: 0in 0in 0in 0.375in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; background-color: #ffffff; font-family: Calibri; color: #2e75b5; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: &quot;Noto Sans&quot;, sans-serif; background-color: #ffffff; color: #2e75b5; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">방법</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">2.&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">임의의</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;IP</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">를</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">할당해주기</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">그냥</span><span lang=\"en-US\">&nbsp;Static&nbsp;</span><span lang=\"ko\">하게</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">박아넣을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">수도</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">있다</span><span lang=\"en-US\">.</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">여기서는</span><span lang=\"en-US\">,&nbsp;</span><span lang=\"ko\">처음</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">실행시</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">시리얼을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">통해</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">설정하도록</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">구현하였다</span><span lang=\"en-US\">.</span></p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 16pt; line-height: 28px; font-family: &quot;Noto Sans&quot;, sans-serif; background-color: #ffffff; color: #1e4e79; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">아두이노</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;IP,&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">서버</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;IP/Port&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">를</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">설정하도록</span><span lang=\"en-US\" style=\"font-weight: bold; font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-weight: bold; font-family: &quot;Malgun Gothic&quot;;\">해보자</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"ko\">간단한</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">설정</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">코드</span><span lang=\"en-US\">.&nbsp;</span><span lang=\"ko\">그냥</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">참고만</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">하세요</span></p>\r\n<p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">*&nbsp;</span><span lang=\"ko\">인터넷</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">여기저기서</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">짜집기</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">한</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">것이라</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">출처를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">남기지</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">못하는</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">점</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">양해를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">구합니다</span><span lang=\"en-US\">.</span></p>\r\n<p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; color: #666666; background-color: #ffffff; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<div style=\"margin: 0px; padding: 0px; outline: none; color: #666666; font-family: &quot;Noto Sans&quot;, sans-serif; font-size: 14px; background-color: #ffffff; direction: ltr;\">\r\n   <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" valign=\"top\" style=\"direction: ltr; border-style: solid; border-color: #a3a3a3; border-width: 1pt;\">\r\n      <tbody>\r\n         <tr>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; background-color: #fff2cc; vertical-align: top; width: 4.425in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #066de2;\">byte</span>&nbsp;mac[]&nbsp;<span style=\"color: #a71d5d;\">=</span>&nbsp;{&nbsp;<span style=\"color: #0099cc;\">0xBE</span>,&nbsp;<span style=\"color: #0099cc;\">0xAD</span>,&nbsp;<span style=\"color: #0099cc;\">0xBE</span>,&nbsp;<span style=\"color: #0099cc;\">0xEF</span>,&nbsp;<span style=\"color: #0099cc;\">0xFE</span>,&nbsp;<span style=\"color: #0099cc;\">0xED</span>&nbsp;};</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #066de2;\">byte</span>&nbsp;ip[]&nbsp;<span style=\"color: #a71d5d;\">=</span>&nbsp;{&nbsp;<span style=\"color: #0099cc;\">192</span>,&nbsp;<span style=\"color: #0099cc;\">168</span>,&nbsp;<span style=\"color: #0099cc;\">0</span>,&nbsp;<span style=\"color: #0099cc;\">92</span>&nbsp;};&nbsp;&nbsp;<span style=\"color: #929292;\">//&nbsp;Arduino&nbsp;IP</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #066de2;\">byte</span>&nbsp;server[]&nbsp;<span style=\"color: #a71d5d;\">=</span>&nbsp;{&nbsp;<span style=\"color: #0099cc;\">192</span>,&nbsp;<span style=\"color: #0099cc;\">168</span>,&nbsp;<span style=\"color: #0099cc;\">0</span>,&nbsp;<span style=\"color: #0099cc;\">140</span>&nbsp;};&nbsp;<span style=\"color: #929292;\">//&nbsp;Server&nbsp;IP</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #066de2;\">int</span>&nbsp;tcp_port&nbsp;<span style=\"color: #a71d5d;\">=</span>&nbsp;<span style=\"color: #0099cc;\">9090</span>;</p>\r\n               </td>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; background-color: #fff2cc; vertical-align: top; width: 4.8881in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"ko\" style=\"font-family: &quot;맑은 고딕&quot;;\">전역변수로</span><span lang=\"en-US\" style=\"font-family: Consolas;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;맑은 고딕&quot;;\">선언해둔</span><span lang=\"en-US\" style=\"font-family: Consolas;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;맑은 고딕&quot;;\">값들</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">1) MAC Address&nbsp;</span><span lang=\"ko\">는</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">임의의</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">값</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">2) ip&nbsp;</span><span lang=\"ko\">는</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">아두이노의</span><span lang=\"en-US\">&nbsp;local IP</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">3) server, tcp_port&nbsp;</span><span lang=\"ko\">는</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">아두이노가</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">연결할</span><span lang=\"en-US\">&nbsp;TCP Server&nbsp;</span><span lang=\"ko\">의</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">정보임</span><span lang=\"en-US\">.</span></p>\r\n               <p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"x-IV_mathan\" style=\"font-family: &quot;Cambria Math&quot;;\">→</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;2) 3)</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">은</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">아래</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">코드를</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">통해</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">아두이노</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">시작시</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">시리얼을</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">통해</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">입력받을</span><span lang=\"en-US\" style=\"font-family: &quot;Malgun Gothic&quot;;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;Malgun Gothic&quot;;\">것임</span></p>\r\n               </td>\r\n            </tr>\r\n         <tr>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; background-color: #e2efd9; vertical-align: top; width: 4.425in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-weight: bold; color: #a71d5d;\">void</span><span style=\"font-weight: bold;\">&nbsp;setTcpInfo(</span><span style=\"font-weight: bold; color: #a71d5d;\">void</span><span style=\"font-weight: bold;\">)</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\">{</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">Serial.print(</span><span style=\"font-family: Consolas; color: #63a35c;\">\"Set&nbsp;Arduino&nbsp;IP&nbsp;(ex.192.168.0.92):&nbsp;\"</span><span style=\"font-family: Consolas;\">);</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">recvWithEndMarker();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">showNewData();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">parseIPAddress();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;맑은 고딕&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">Serial.print(</span><span style=\"font-family: Consolas; color: #63a35c;\">\"Set&nbsp;Server&nbsp;IP&nbsp;(ex.192.168.0.140):&nbsp;\"</span><span style=\"font-family: Consolas;\">);</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">recvWithEndMarker();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">showNewData();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">parseServerAddress();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;맑은 고딕&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">Serial.print(</span><span style=\"font-family: Consolas; color: #63a35c;\">\"Set&nbsp;Server&nbsp;Port&nbsp;(ex.9090):&nbsp;\"</span><span style=\"font-family: Consolas;\">);</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">recvWithEndMarker();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">showNewData();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">parseServerPort();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: Consolas;\">}</span><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;</span></p>\r\n               </td>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; background-color: #e2efd9; vertical-align: top; width: 4.8881in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: Calibri; color: #2e75b5; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"ko\" style=\"font-weight: bold;\">setTcpInfo</span><span lang=\"en-US\" style=\"font-weight: bold;\">()</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">1) Arduino IP, Server IP, Port&nbsp;</span><span lang=\"ko\">를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">설정</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">2)&nbsp;</span><span lang=\"ko\">각각</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">아래</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">프로세스를</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">따른다</span><span lang=\"en-US\">.</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">시리얼로부터의</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">문자열을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">받아서</span><span lang=\"en-US\">&nbsp;char array&nbsp;</span><span lang=\"ko\">로</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">저장</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">문자열을</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">출력하여</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">검증</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">문자열을</span><span lang=\"en-US\">&nbsp;Parsing&nbsp;</span><span lang=\"ko\">하여</span><span lang=\"en-US\">&nbsp;ip[], server[], tcp_port&nbsp;</span><span lang=\"ko\">에</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">저장</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               </td>\r\n            </tr>\r\n         <tr>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; background-color: #fff2cc; vertical-align: top; width: 4.425in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-weight: bold; color: #a71d5d;\">void</span><span style=\"font-weight: bold;\">&nbsp;recvWithEndMarker()&nbsp;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\">{</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #066de2;\">byte</span><span style=\"font-family: Consolas;\">&nbsp;ndx&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #0099cc;\">0</span><span style=\"font-family: Consolas;\">;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #066de2;\">char</span><span style=\"font-family: Consolas;\">&nbsp;endMarker&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #63a35c;\">\'\\n\'</span><span style=\"font-family: Consolas;\">;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #066de2;\">char</span><span style=\"font-family: Consolas;\">&nbsp;rc;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;맑은 고딕&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">while</span><span style=\"font-family: Consolas;\">&nbsp;(newData&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">==</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">false</span><span style=\"font-family: Consolas;\">)&nbsp;{</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">delay(</span><span style=\"font-family: Consolas; color: #0099cc;\">100</span><span style=\"font-family: Consolas;\">);</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;맑은 고딕&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">while</span><span style=\"font-family: Consolas;\">&nbsp;(Serial.available()&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">&gt;</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #0099cc;\">0</span><span style=\"font-family: Consolas;\">)&nbsp;&nbsp;{</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">rc&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;Serial.read();</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;맑은 고딕&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">if</span><span style=\"font-family: Consolas;\">&nbsp;(rc&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">!=</span><span style=\"font-family: Consolas;\">&nbsp;endMarker)&nbsp;{</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">receivedChars[ndx]&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;rc;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">ndx</span><span style=\"font-family: Consolas; color: #a71d5d;\">++</span><span style=\"font-family: Consolas;\">;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">if</span><span style=\"font-family: Consolas;\">&nbsp;(ndx&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">&gt;=</span><span style=\"font-family: Consolas;\">&nbsp;numChars)&nbsp;{</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">ndx&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;numChars&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">-</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #0099cc;\">1</span><span style=\"font-family: Consolas;\">;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">}</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">}</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">else</span><span style=\"font-family: Consolas;\">&nbsp;{</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">receivedChars[ndx]&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #63a35c;\">\'\\0\'</span><span style=\"font-family: Consolas;\">;&nbsp;</span><span style=\"font-family: Consolas; color: #929292;\">//&nbsp;terminate&nbsp;the&nbsp;string</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">ndx&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #0099cc;\">0</span><span style=\"font-family: Consolas;\">;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">newData&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">true</span><span style=\"font-family: Consolas;\">;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">}</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">}</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">}</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\">}</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;맑은 고딕&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-weight: bold; color: #a71d5d;\">void</span><span style=\"font-weight: bold;\">&nbsp;showNewData()&nbsp;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\">{</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">if</span><span style=\"font-family: Consolas;\">&nbsp;(newData&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">==</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">true</span><span style=\"font-family: Consolas;\">)&nbsp;{</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">Serial.println(receivedChars);</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">newData&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">false</span><span style=\"font-family: Consolas;\">;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas;\">}</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\">}</p>\r\n               </td>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; background-color: #fff2cc; vertical-align: top; width: 4.8881in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: Calibri; color: #2e75b5; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"ko\" style=\"font-weight: bold;\">recvWithEndMarker</span><span lang=\"en-US\" style=\"font-weight: bold;\">()</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\">-&nbsp;</span><span lang=\"ko\">시리얼</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">입력으로</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">받은</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">문자열을</span><span lang=\"en-US\">&nbsp;char array&nbsp;</span><span lang=\"ko\">에</span><span lang=\"en-US\">&nbsp;</span><span lang=\"ko\">저장한다</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;Malgun Gothic&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: Calibri; color: #2e75b5; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"ko\" style=\"font-weight: bold;\">showNewData</span><span lang=\"en-US\" style=\"font-weight: bold;\">()</span></p>\r\n               <p lang=\"en-US\" style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: &quot;맑은 고딕&quot;; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span lang=\"en-US\" style=\"font-family: Calibri;\">-&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;맑은 고딕&quot;;\">저장된</span><span lang=\"en-US\" style=\"font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;맑은 고딕&quot;;\">문자열을</span><span lang=\"en-US\" style=\"font-family: Calibri;\">&nbsp;</span><span lang=\"ko\" style=\"font-family: &quot;맑은 고딕&quot;;\">출력한다</span></p>\r\n               </td>\r\n            </tr>\r\n         <tr>\r\n            <td style=\"margin: 0px; padding: 4pt; outline: none; font-size: 14px; line-height: 1.5; color: #666666; word-break: break-word; border-style: solid; border-color: #a3a3a3; border-width: 1pt; background-color: #e2efd9; vertical-align: top; width: 4.425in;\">\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 14pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-weight: bold; color: #a71d5d;\">void</span><span style=\"font-weight: bold;\">&nbsp;parseIPAddress()</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; font-family: Consolas; padding-top: 0px !important; padding-bottom: 0px !important;\">{</p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #066de2;\">byte</span><span style=\"font-family: Consolas;\">&nbsp;ndx&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #0099cc;\">0</span><span style=\"font-family: Consolas;\">;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span><span style=\"font-family: Consolas; color: #066de2;\">char</span><span style=\"font-family: Consolas;\">&nbsp;delim[]&nbsp;</span><span style=\"font-family: Consolas; color: #a71d5d;\">=</span><span style=\"font-family: Consolas;\">&nbsp;</span><span style=\"font-family: Consolas; color: #63a35c;\">\".\"</span><span style=\"font-family: Consolas;\">;</span></p>\r\n               <p style=\"margin: 0in; padding-right: 0px; padding-left: 0px; outline: none; font-size: 10pt; line-height: 28px; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"font-family: &quot;맑은 고딕&quot;;\">&nbsp;&nbsp;</span></p>\r\n               </td>\r\n ','https://jusths.tistory.com/54','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-11-09 22:05:18',1,'2022-11-09 22:05:18','192.168.219.116','','','','','','','','','','','',''),(580,-579,'',580,0,0,'','','html1','[Arduino] NEXTION LCD 에서 아두이노로 데이터 보내고 받기','<p>1. LCD 버튼입력시 데이터 아두이노로 보내기&nbsp;</p>\r\n<p>*Nextion LCD 에서 작업&nbsp;</p>\r\n<p>&nbsp;-버튼배치, Event속서창 -&gt; Touch Press Event -&gt; Send Component ID 체크</p>\r\n<p>&nbsp;</p>\r\n<p>*Arduino에서 작업<br /></p>\r\n<p>String sCommand;&nbsp; &nbsp; // 수신문자</p>\r\n<p>String btnId;&nbsp; &nbsp; &nbsp; &nbsp;// 버튼 id</p>\r\n<p><br /></p>\r\n<p>void Nextion_Recv_Func() {&nbsp;&nbsp;</p>\r\n<p>&nbsp; if(mySerial1.available()) {</p>\r\n<p>&nbsp; &nbsp; sCommand.concat(mySerial1.read());</p>\r\n<p>&nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; } else {</p>\r\n<p>&nbsp; &nbsp; if(sCommand.length() &gt; 14) {</p>\r\n<p>&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"--------------------------------\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"&gt;String=\" + (String)sCommand + \"\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"--------------------------------\\n\");&nbsp; &nbsp; &nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"*[1]:\" + (String)sCommand[1] + \"\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"*[2]:\" + (String)sCommand[2] + \"\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"*[3]:\" + (String)sCommand[3] + \"\\n\");&nbsp; &nbsp;// Page No&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"*[4]:\" + (String)sCommand[4] + \"\\n\");&nbsp; &nbsp;// id&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"--------------------------------\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; btnId = sCommand[4];</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"&gt;btnId[\" + btnId + \"]\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; sCommand = \"\";</p>\r\n<p>&nbsp; &nbsp; }&nbsp; &nbsp;</p>\r\n<p>&nbsp; }</p>\r\n<p>}</p>\r\n<p>&nbsp;</p>\r\n<p>2. LCD 슬라이더 에서 아두이노로 데이터 보내기</p>\r\n<p>*Nextion LCD 에서 작업&nbsp;</p>\r\n<p>-슬라이더(h0) 배치, 슬라이더값 표시용 Number(n0) 배치, Varialble(va0) 배치</p>\r\n<p>-<span style=\"background-color: #ffffff; font-family: sans-serif; text-align: justify; -webkit-text-stroke-width: 0.6px; font-size: 10px;\">\"Variable\" 컴포넌트는 \"속성\" 창에서 \"sta\" 속성을 \"String\", txt</span><span style=\"background-color: #ffffff; font-family: sans-serif; text-align: justify; -webkit-text-stroke-width: 0.6px; font-size: 10px;\">&nbsp;</span></p>\r\n<p><span style=\"font-size: 10px;\">-초기화를 위해 page0 -&gt; Event&nbsp;</span></p>\r\n<p>&nbsp;cov va0.txt,n0.val,0</p>\r\n<p>-슬라이더 터치시 -&gt; Touch Move Event -&gt;&nbsp;</p>\r\n<p>n0.val=h0.val</p>\r\n<p>cov n0.val,va0.txt,0</p>\r\n<p>get va0.txt</p>\r\n<p>&nbsp;</p>\r\n<p>*Arduino에서 작업</p>\r\n<p>&nbsp;byte inByte;&nbsp; &nbsp; &nbsp; &nbsp; // 수신바이트</p>\r\n<p>byte endByte = 0;&nbsp; &nbsp;// 종료바이트 갯수(3개)</p>\r\n<p>int inNumber = 0;&nbsp; &nbsp;// 수신 숫자(수신 문자를 숫자로 변환한것)</p>\r\n<p><br /></p>\r\n<p>void Nextion_Recv_Func() {&nbsp;&nbsp;</p>\r\n<p>&nbsp; if(mySerial1.available()) {</p>\r\n<p>&nbsp; &nbsp; sCommand.concat(mySerial1.read());</p>\r\n<p>&nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; } else {</p>\r\n<p>&nbsp; &nbsp; if(sCommand.length() &gt; 14) {</p>\r\n<p>&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"--------------------------------\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"&gt;String=\" + (String)sCommand + \"\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"--------------------------------\\n\");&nbsp; &nbsp; &nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"*[1]:\" + (String)sCommand[1] + \"\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"*[2]:\" + (String)sCommand[2] + \"\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"*[3]:\" + (String)sCommand[3] + \"\\n\");&nbsp; &nbsp;// Page No&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"*[4]:\" + (String)sCommand[4] + \"\\n\");&nbsp; &nbsp;// id&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"--------------------------------\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; btnId = sCommand[4];</p>\r\n<p>&nbsp; &nbsp; &nbsp; Serial.print(\"&gt;btnId[\" + btnId + \"]\\n\");</p>\r\n<p>&nbsp; &nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; sCommand = \"\";</p>\r\n<p>&nbsp; &nbsp; }&nbsp; &nbsp;</p>\r\n<p>&nbsp; }</p>\r\n<p>}</p>\r\n<p>&nbsp;</p>\r\n<p>3. 아두이노에서 Nextion 으로 데이터 보내기</p>\r\n<p>String Nextion_Out_Data;&nbsp;</p>\r\n<p><br /></p>\r\n<p>Nextion_Out_Data = \"n0.val=\";</p>\r\n<p>Nextion_Out_Data.concat((int)temp);</p>\r\n<p>Nextion_Send_Func(Nextion_Out_Data);</p>\r\n<p><br /></p>\r\n<p>void Nextion_Send_Func(String sendData) {</p>\r\n<p>&nbsp; for(int i = 0; i &lt; sendData.length(); i++) {</p>\r\n<p>&nbsp; &nbsp; mySerial1.write(sendData[i]);</p>\r\n<p>&nbsp; }</p>\r\n<p><br /></p>\r\n<p>&nbsp; mySerial1.write(0xff);</p>\r\n<p>&nbsp; mySerial1.write(0xff);</p>\r\n<p>&nbsp; mySerial1.write(0xff);</p>\r\n<p>}&nbsp;</p>','','',0,0,4,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-12-08 15:50:13',0,'2022-12-08 15:50:13','112.222.138.202','','','','','','','','','','','',''),(581,-580,'',581,0,0,'','','html1','[ETC] 간단한 회로를 그려서 시뮬레이션 하는 사이트 알 수 있을가요?','<p><span style=\"font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; font-size: 13px; background-color: #ffffff;\">&gt;Tina - TI 무료툴입니다.</span></p>\r\n<p><span style=\"font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; font-size: 13px; background-color: #ffffff;\">&gt;</span><a href=\"https://www.multisim.com/\" target=\"_blank\" style=\"text-decoration-line: none; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; font-size: 13px; background-color: #ffffff;\">https://www.multisim.com/</a></p>\r\n<p>&gt;<a href=\"http://www.falstad.com/circuit/circuitjs.html\" target=\"_blank\" style=\"text-decoration-line: none; font-family: &quot;Apple SD Gothic Neo&quot;, &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;, 돋움, dotum, sans-serif; font-size: 13px; background-color: #ffffff;\">http://www.falstad.com/circuit/circuitjs.html</a></p>','https://cafe.naver.com/carroty/377327','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-01-06 11:20:58',0,'2023-01-06 11:20:58','112.222.138.202','','','','','','','','','','','',''),(584,-581,'',584,0,0,'','','html1','[Arduino] ESP32 Watchdog example','<p>//@@watchDogTimer 를 사용하는 방법</p>\r\n<p>/* ------------------------------------------------------------------------------------------------------------ */&nbsp;</p>\r\n<p>#define WATCHDOG_TIMEOUT_S 14</p>\r\n<p>hw_timer_t * watchDogTimer = NULL;</p>\r\n<p><br /></p>\r\n<p>void IRAM_ATTR watchDogInterrupt() {</p>\r\n<p>&nbsp; Serial.println(\"&lt;----- reboot -----&gt;\");</p>\r\n<p>&nbsp; ESP.restart();</p>\r\n<p>}</p>\r\n<p><br /></p>\r\n<p>void watchDogRefresh() {</p>\r\n<p>&nbsp; timerWrite(watchDogTimer, 0);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//reset timer (feed watchdog)</p>\r\n<p>}</p>\r\n<p>&nbsp;</p>\r\n<p>void setup() {</p>\r\n<p>&nbsp; Serial.begin(115200);</p>\r\n<p>&nbsp; </p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp; watchDogTimer = timerBegin(2, 80, true);</p>\r\n<p>&nbsp; timerAttachInterrupt(watchDogTimer, &amp;watchDogInterrupt, true);</p>\r\n<p>&nbsp; timerAlarmWrite(watchDogTimer, WATCHDOG_TIMEOUT_S * 1000000, false);</p>\r\n<p>&nbsp; timerAlarmEnable(watchDogTimer);</p>\r\n<p>}</p>\r\n<p>&nbsp;</p>\r\n<p>void loop() {</p>\r\n<p>&nbsp; if(millis() - preTime1 &gt; updateTime1) {&nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; preTime1 = millis();</p>\r\n<p>&nbsp; &nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; watchDogRefresh();</p>\r\n<p>}</p>\r\n<p>/* ------------------------------------------------------------------------------------------------------------ */&nbsp;</p>\r\n<p>/* ------------------------------------------------------------------------------------------------------------ */&nbsp;</p>\r\n<p>&nbsp;</p>\r\n<p>//@@ esp_task_wdt.h 를 사용하는 방법</p>\r\n<p>#include &lt;esp_task_wdt.h&gt;</p>\r\n<p>#define WDT_TIMEOUT&nbsp; &nbsp;3</p>\r\n<p>#define LED_ST1&nbsp; &nbsp; &nbsp; &nbsp;5&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Boot On High</p>\r\n<p>/* -------------------------------------------------------------------------------------------- */</p>\r\n<p>long preTime1 = 0;</p>\r\n<p>long updateTime1 = 1000;</p>\r\n<p>/* -------------------------------------------------------------------------------------------- */</p>\r\n<p>boolean LED_ST1_State = false;;</p>\r\n<p><br /></p>\r\n<p>void setup() {</p>\r\n<p>&nbsp; Serial.begin(115200);</p>\r\n<p>&nbsp; pinMode(LED_ST1, OUTPUT);;</p>\r\n<p>&nbsp;&nbsp;</p>\r\n<p>&nbsp; esp_task_wdt_init(WDT_TIMEOUT, true);</p>\r\n<p>&nbsp; esp_task_wdt_add(NULL);</p>\r\n<p>}</p>\r\n<p><br /></p>\r\n<p>void loop() {</p>\r\n<p>&nbsp; if(millis() - preTime1 &gt; updateTime1) {&nbsp;&nbsp;</p>\r\n<p>&nbsp; &nbsp; preTime1 = millis();</p>\r\n<p><br /></p>\r\n<p>&nbsp; &nbsp; esp_task_wdt_reset();</p>\r\n<p>&nbsp; &nbsp; LED_ST1_State = !LED_ST1_State;</p>\r\n<p>&nbsp; &nbsp; Serial.println(\"&gt;\" + String(millis()/1000));</p>\r\n<p>&nbsp; }</p>\r\n<p><br /></p>\r\n<p>&nbsp; digitalWrite(LED_ST1, LED_ST1_State);</p>\r\n<p>}</p>','https://iotassistant.io/esp32/enable-hardware-watchdog-timer-esp32-arduino-ide/','',2,0,14,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-01-24 02:35:30',0,'2023-01-24 02:35:30','192.168.219.116','','','','','','','','','','','',''),(585,-582,'',585,0,0,'','','html1','[ETC] LED 저항 계산법','<img src=\"data:image/png;base64,[encoded data, 39256 characters]\" alt=\"\" />','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-01-24 03:08:42',1,'2023-01-24 03:08:42','192.168.219.116','','','','','','','','','','','',''),(586,-583,'',586,0,0,'','','html1','[Linux] capture RTSP stream from IP camera ffmpeg 2','<div class=\"\" style=\"box-sizing: inherit; background-color: #ffffff;\">\r\n   <p style=\"box-sizing: inherit; margin-top: 0.6em; margin-bottom: -0.27em; line-height: 40px;\"><font color=\"#292929\" face=\"sohne, Helvetica Neue, Helvetica, Arial, sans-serif\"></font></p>\r\n   <p style=\"box-sizing: inherit; margin-top: 0.6em; margin-bottom: -0.27em; line-height: 1.5;\"><font color=\"#292929\" face=\"sohne, Helvetica Neue, Helvetica, Arial, sans-serif\"><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\"><span style=\"letter-spacing: -0.512px;\">camurl=\"rtsp://admin:admin1357@192.168.0.234/0\"<br /></span></span></font><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">videoname=`date +%Y_%m_%d_%H_%M_%S.mkv`</span></p>\r\n   <p style=\"box-sizing: inherit; margin-top: 0.6em; margin-bottom: -0.27em; line-height: 1.5;\"><span style=\"color: #292929; font-family: &quot;맑은 고딕&quot;, &quot;Malgun Gothic&quot;; font-size: 14px; letter-spacing: -0.512px;\">ffmpeg -rtsp_transport tcp -i ${camurl} -vcodec copy -reset_timestamps 1 -t 10 -segment_format mkv -strftime 1 ${vide&nbsp; &nbsp; oname}</span></p>\r\n   <p>&nbsp;</p>\r\n   <hr style=\"height: 1px; background-color: #999999; border: none;\" />\r\n   <p><span style=\"color: #292929; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 32px; letter-spacing: -0.016em;\">Saving RTSP Camera Streams with FFmpeg</span></p>\r\n   </div>\r\n<figure class=\"ec ee hu hv hw hx dy dz paragraph-image\" style=\"box-sizing: inherit; margin: 40px auto 0px; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Open Sans&quot;, &quot;Helvetica Neue&quot;, sans-serif; font-size: medium; background-color: #ffffff;\">\r\n   <div role=\"button\" tabindex=\"0\" class=\"hy hz di ia bf ib\" style=\"box-sizing: inherit; width: 680px; position: relative; cursor: zoom-in; z-index: auto; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s;\">\r\n      <div class=\"dy dz ht\" style=\"box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 2074px;\"><picture style=\"box-sizing: inherit;\"><source srcset=\"https://miro.medium.com/max/640/1*A3cMvU_B4UBTvQu3HmweAw.webp 640w, https://miro.medium.com/max/720/1*A3cMvU_B4UBTvQu3HmweAw.webp 720w, https://miro.medium.com/max/750/1*A3cMvU_B4UBTvQu3HmweAw.webp 750w, https://miro.medium.com/max/786/1*A3cMvU_B4UBTvQu3HmweAw.webp 786w, https://miro.medium.com/max/828/1*A3cMvU_B4UBTvQu3HmweAw.webp 828w, https://miro.medium.com/max/1100/1*A3cMvU_B4UBTvQu3HmweAw.webp 1100w, https://miro.medium.com/max/1400/1*A3cMvU_B4UBTvQu3HmweAw.webp 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" type=\"image/webp\" style=\"box-sizing: inherit;\" /><source data-testid=\"og\" srcset=\"https://miro.medium.com/max/640/1*A3cMvU_B4UBTvQu3HmweAw.jpeg 640w, https://miro.medium.com/max/720/1*A3cMvU_B4UBTvQu3HmweAw.jpeg 720w, https://miro.medium.com/max/750/1*A3cMvU_B4UBTvQu3HmweAw.jpeg 750w, https://miro.medium.com/max/786/1*A3cMvU_B4UBTvQu3HmweAw.jpeg 786w, https://miro.medium.com/max/828/1*A3cMvU_B4UBTvQu3HmweAw.jpeg 828w, https://miro.medium.com/max/1100/1*A3cMvU_B4UBTvQu3HmweAw.jpeg 1100w, https://miro.medium.com/max/1400/1*A3cMvU_B4UBTvQu3HmweAw.jpeg 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" style=\"box-sizing: inherit;\" /><img alt=\"\" class=\"bf ic id c\" loading=\"eager\" role=\"presentation\" src=\"https://miro.medium.com/max/700/1*A3cMvU_B4UBTvQu3HmweAw.jpeg\" style=\"box-sizing: inherit; vertical-align: middle; width: 680px; max-width: 100%; height: auto;\" /></picture></div>\r\n      </div>\r\n   <figcaption class=\"ie if ea dy dz ig ih bd b be z fs\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; line-height: 20px; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 14px; margin-left: auto; margin-right: auto; max-width: 728px; color: #757575; margin-top: 10px; text-align: center;\">Photo by&nbsp;<a class=\"ae ii\" href=\"https://unsplash.com/@speedoshots\" rel=\"noopener ugc nofollow\" target=\"_blank\" style=\"box-sizing: inherit; -webkit-tap-highlight-color: transparent;\">https://unsplash.com/@speedoshots</a></figcaption>\r\n   </figure>\r\n<h1 id=\"7868\" class=\"ij ik gw bd il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin: 3.14em 0px -0.37em; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; color: #292929; line-height: 28px; font-size: 22px; background-color: #ffffff;\">If you’re just here for the command to copy-paste:</h1>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"66f5\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">ffmpeg -hide_banner -y -loglevel error -rtsp_transport tcp -use_wallclock_as_timestamps 1 -i rtsp://username:password@192.168.1.123:554/stream1 -vcodec copy -acodec copy -f segment -reset_timestamps 1 -segment_time 900 -segment_format mkv -segment_atclocktime 1 -strftime 1 %Y%m%dT%H%M%S.mkv</span></pre>\r\n<p id=\"5f5e\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">I’ve put a fair bit of experimentation into the settings in this command. I’ve included the what and whys below, as well as a camera recommendation for RTSP.</p>\r\n<h2 id=\"cdc5\" class=\"jq ik gw bd il kt ku kv ip kw kx ky it kg kz la ix kk lb lc jb ko ld le jf lf bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin: 2.37em 0px -0.31em; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; color: #292929; line-height: 24px; font-size: 20px; background-color: #ffffff;\">FFmpeg</h2>\r\n<p id=\"4fad\" class=\"pw-post-body-paragraph jv jw gw jx b jy lg ka kb kc lh ke kf kg li ki kj kk lj km kn ko lk kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 0.86em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\"><a class=\"ae ii\" href=\"https://www.ffmpeg.org/\" rel=\"noopener ugc nofollow\" target=\"_blank\" style=\"box-sizing: inherit; -webkit-tap-highlight-color: transparent;\">FFmpeg</a>&nbsp;is an open source software project for handling video, audio, and other multimedia streams using a command-line application.</p>\r\n<figure class=\"jh ji jj jk ek hx dy dz paragraph-image\" style=\"box-sizing: inherit; margin: 56px auto 0px; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Open Sans&quot;, &quot;Helvetica Neue&quot;, sans-serif; font-size: medium; background-color: #ffffff;\">\r\n   <div role=\"button\" tabindex=\"0\" class=\"hy hz di ia bf ib\" style=\"box-sizing: inherit; width: 680px; position: relative; cursor: zoom-in; z-index: auto; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s;\">\r\n      <div class=\"dy dz ll\" style=\"box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1974px;\"><picture style=\"box-sizing: inherit;\"><source srcset=\"https://miro.medium.com/max/640/1*Htn7AetklbAvXNs4txN83w.webp 640w, https://miro.medium.com/max/720/1*Htn7AetklbAvXNs4txN83w.webp 720w, https://miro.medium.com/max/750/1*Htn7AetklbAvXNs4txN83w.webp 750w, https://miro.medium.com/max/786/1*Htn7AetklbAvXNs4txN83w.webp 786w, https://miro.medium.com/max/828/1*Htn7AetklbAvXNs4txN83w.webp 828w, https://miro.medium.com/max/1100/1*Htn7AetklbAvXNs4txN83w.webp 1100w, https://miro.medium.com/max/1400/1*Htn7AetklbAvXNs4txN83w.webp 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" type=\"image/webp\" style=\"box-sizing: inherit;\" /><source data-testid=\"og\" srcset=\"https://miro.medium.com/max/640/1*Htn7AetklbAvXNs4txN83w.jpeg 640w, https://miro.medium.com/max/720/1*Htn7AetklbAvXNs4txN83w.jpeg 720w, https://miro.medium.com/max/750/1*Htn7AetklbAvXNs4txN83w.jpeg 750w, https://miro.medium.com/max/786/1*Htn7AetklbAvXNs4txN83w.jpeg 786w, https://miro.medium.com/max/828/1*Htn7AetklbAvXNs4txN83w.jpeg 828w, https://miro.medium.com/max/1100/1*Htn7AetklbAvXNs4txN83w.jpeg 1100w, https://miro.medium.com/max/1400/1*Htn7AetklbAvXNs4txN83w.jpeg 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" style=\"box-sizing: inherit;\" /><img alt=\"\" class=\"bf ic id c\" loading=\"lazy\" role=\"presentation\" src=\"https://miro.medium.com/max/700/1*Htn7AetklbAvXNs4txN83w.jpeg\" style=\"box-sizing: inherit; vertical-align: middle; width: 680px; max-width: 100%; height: auto;\" /></picture></div>\r\n      </div>\r\n   <figcaption class=\"ie if ea dy dz ig ih bd b be z fs\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; line-height: 20px; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 14px; margin-left: auto; margin-right: auto; max-width: 728px; color: #757575; margin-top: 10px; text-align: center;\">Photo by&nbsp;<a class=\"ae ii\" href=\"https://unsplash.com/@ikukevk\" rel=\"noopener ugc nofollow\" target=\"_blank\" style=\"box-sizing: inherit; -webkit-tap-highlight-color: transparent;\">https://unsplash.com/@ikukevk</a></figcaption>\r\n   </figure>\r\n<h1 id=\"5e23\" class=\"ij ik gw bd il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin: 3.14em 0px -0.37em; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; color: #292929; line-height: 28px; font-size: 22px; background-color: #ffffff;\">Breaking Down The Script</h1>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"0b81\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-hide_banner -y</span></pre>\r\n<p id=\"8c8f\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">This supresses the copyright notice, build options, and library versions from printing to the console.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"b090\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-loglevel error</span></pre>\r\n<p id=\"91f6\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">I received a lot of warning messages from most RTSP camera streams. We can fix most of these warnings with the other command line options, and I didn’t want these warnings filling up my logs during normal use.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"71b7\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-rtsp_transport tcp</span></pre>\r\n<p id=\"207e\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">Our options here are TCP or UDP. In my experiments with recording UDP streams, the video files were regularly corrupted. I assume this is due to the non-guaranteed packet delivery or order. I have tried tweaking various FFmpeg settings such as the buffer size, but could not get files saving reliability on UDP. It does provide a good lower-latency, lighter-bandwidth live streaming option though.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"5a5a\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-use_wallclock_as_timestamps 1</span></pre>\r\n<p id=\"4bc2\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">This rebuilds the timestamps in the video feed. In my experiments with various network cameras this was needed to make the saved videos correctly seek-able. I think this resolves issues with varying framesrates from some network cameras, and streams from some brands not including correct timestamps.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"359c\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-i rtsp://username:password@192.168.1.123:554/stream1</span></pre>\r\n<p id=\"4b1e\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">This is the address of the RTSP video stream we want to use as the input. Each camera will have a different URL that you can find with an online search. The URL above is for a Tapo C310. If the camera needs a username and password it is prefixed to the IP address.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"ff86\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-vcodec copy <br style=\"box-sizing: inherit;\" />-acodec copy</span></pre>\r\n<p id=\"1065\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">These parameters tell FFmpeg not to reencode the video or audio streams, and instead just to copy them. This will minimise the CPU usage which is good for recording multiple streams on something like a Raspberry PI. The trade-off is that the video will probably be larger than if re-encoded into a more efficient format. The quality and size of the “copied” video stream files will depend on the specific camera and its settings.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"a201\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-f segment</span></pre>\r\n<p id=\"c335\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">These next few parameters tell FFmpeg to save the video stream to smaller segment files, instead of writing to one never-ending file.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"1135\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-reset_timestamps 1</span></pre>\r\n<p id=\"7037\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">This resets the timestamps at the start of each segment file to zero. It was needed to fix problems with video files not being seekable. I assume it was due to the timestamps being saved incorrectly.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"6788\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-segment_time 900</span></pre>\r\n<p id=\"eb2f\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">This tells FFmpeg that each file should be 15 minutes (900 seconds) long before a new one is started.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"3ede\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-segment_atclocktime 1 </span></pre>\r\n<p id=\"b7c9\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">This makes FFmpeg start and finish recording files at “round” times, e.g. 09:00, 09:15, 09:30 etc. The start and finish times will not be exactly on the times, since videos must start and stop on keyframes. You can expect the files start/end to be within a few seconds of the round-times though.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"5398\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-segment_format mkv</span></pre>\r\n<p id=\"adae\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">Save the videos as .mkv files. I chose .mkv over .mp4 due to the increased resilience to corruption .mkv provided. I tried pulling the plug on my cameras while recording streams to simulate someone stealing the camera. The .mkv files recorded right up to the moment the power was cut, whereas .mp4 files often became corrupt and unplayable.</p>\r\n<pre class=\"jh ji jj jk ek jl jm jn jo aw jp bi\" style=\"box-sizing: inherit; margin-top: 56px; margin-bottom: 0px; border: none; color: #292929; overflow-x: auto; font-family: source-code-pro, Menlo, Monaco, &quot;Courier New&quot;, Courier, monospace; padding: 20px; border-radius: 0px; background: rgb(242, 242, 242); font-size: medium;\"><span id=\"fe0f\" class=\"jq ik gw jm b eu jr js l jt ju\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; display: block; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-top: -0.09em; margin-bottom: -0.09em; white-space: pre-wrap; min-width: fit-content;\">-strftime 1 <br style=\"box-sizing: inherit;\" />%Y%m%dT%H%M%S.mkv</span></pre>\r\n<p id=\"b18a\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">This is the naming convention for the video files. The collection of letters and percent signs is a formatting string that tells FFmpeg how to use the date to name this files. We’re using this ISO8601-like format because it allows us to order by the files by date by sorting alphabetically. The video starting at 2022–01–30 21:30:00 will be saved as 20220130T213000.mkv (give or take a few seconds). You can also add a directory before this string to save the videos in a different location to where you’re running the command line. e.g. “C:\\Users\\you\\Videos\\front_door\\%Y%m%dT%H%M%S.mkv” on Windows.</p>\r\n<h2 id=\"e2ef\" class=\"jq ik gw bd il kt ku kv ip kw kx ky it kg kz la ix kk lb lc jb ko ld le jf lf bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin: 2.37em 0px -0.31em; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; color: #292929; line-height: 24px; font-size: 20px; background-color: #ffffff;\">Note</h2>\r\n<p id=\"0a4a\" class=\"pw-post-body-paragraph jv jw gw jx b jy lg ka kb kc lh ke kf kg li ki kj kk lj km kn ko lk kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 0.86em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">On Windows, when I used a lower case “z” in the date formatting string it was parsed to a descriptor like “GMT Summer Time” instead of “+0100”. This is not the behaviour the documentation describes, which is that a capital Z should output the descriptor and a lower case z should output an offset. This didn’t happen when running the command on Linux (i.e. “z” outputs an offset like “+0100”).</p>\r\n<h1 id=\"6295\" class=\"ij ik gw bd il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin: 3.14em 0px -0.37em; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; color: #292929; line-height: 28px; font-size: 22px; background-color: #ffffff;\">Why am I doing this?</h1>\r\n<p id=\"0d5b\" class=\"pw-post-body-paragraph jv jw gw jx b jy lg ka kb kc lh ke kf kg li ki kj kk lj km kn ko lk kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 0.86em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">I’ve hacked together a basic Network Video Recorder with a Raspberry PI and an old external HDD. Most security cameras have on-board recording to SD cards, but this presents two problems:<br style=\"box-sizing: inherit;\" />1. If someone takes a security camera the recordings are lost.<br style=\"box-sizing: inherit;\" />2. Most SD cards have quite a limited number of writes before breaking. Smaller SD cards I’ve tried haven’t even lasted a year of recording and overwriting to the card 24/7.</p>\r\n<h1 id=\"9c65\" class=\"ij ik gw bd il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin: 3.14em 0px -0.37em; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; color: #292929; line-height: 28px; font-size: 22px; background-color: #ffffff;\">Example Code Use / Project</h1>\r\n<p id=\"3e0f\" class=\"pw-post-body-paragraph jv jw gw jx b jy lg ka kb kc lh ke kf kg li ki kj kk lj km kn ko lk kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 0.86em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">You can find a basic Network Video Recorder that runs on a Raspberry Pi using this script&nbsp;<a class=\"ae ii\" href=\"https://github.com/TomHumphries/simple-nvr\" rel=\"noopener ugc nofollow\" target=\"_blank\" style=\"box-sizing: inherit; -webkit-tap-highlight-color: transparent;\">here</a>.</p>\r\n<h1 id=\"83f9\" class=\"ij ik gw bd il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin: 3.14em 0px -0.37em; font-family: sohne, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; color: #292929; line-height: 28px; font-size: 22px; background-color: #ffffff;\">Which Camera Do I Use?</h1>\r\n<p id=\"0523\" class=\"pw-post-body-paragraph jv jw gw jx b jy lg ka kb kc lh ke kf kg li ki kj kk lj km kn ko lk kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 0.86em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">I’ve tried 3 different security cameras for saving RTSP steams. I would recommend the&nbsp;<span class=\"jx gx\" style=\"box-sizing: inherit; font-weight: 700;\">Tapo C310</span>&nbsp;as the RTSP video stream is stable, the video quality is decent, and the accompanying app is good for viewing the live stream.</p>\r\n<p id=\"0178\" class=\"pw-post-body-paragraph jv jw gw jx b jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks gp bi\" data-selectable-paragraph=\"\" style=\"box-sizing: inherit; margin-top: 2em; margin-bottom: -0.46em; color: #292929; word-break: break-word; line-height: 32px; letter-spacing: -0.003em; font-family: source-serif-pro, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-size: 20px; background-color: #ffffff;\">I’d love to know if you found this script useful and to hear about any projects it helped you with!</p>','https://medium.com/@tom.humph/saving-rtsp-camera-streams-with-ffmpeg-baab7e80d767','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-01-31 13:24:09',0,'2023-01-31 13:24:09','112.222.138.202','','','','','','','','','','','',''),(587,-584,'',587,0,0,'','','html1','[ETC] HJR4102 릴레이 연결 회로','<p>&nbsp;https://www.devicemart.co.kr/goods/view?no=1128486</p>\r\n<p>&nbsp;</p>','https://www.devicemart.co.kr/goods/view?no=1128486','',5,0,8,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-01-31 16:20:07',2,'2023-01-31 16:20:07','112.222.138.202','','','','','','','','','','','',''),(592,-589,'',592,0,0,'','','html1','[Arduino] ESP32 에서 EEPROM String 문자열 사용하기','<p>#include \"EEPROM.h\"</p>\r\n<p><br /></p>\r\n<p>String name = \"geoworldAP\";</p>\r\n<p>String id = \"myID\";</p>\r\n<p><br /></p>\r\n<p>boolean lock = false;</p>\r\n<p><br /></p>\r\n<p>void setup() {</p>\r\n<p>&nbsp; Serial.begin(115200);&nbsp;</p>\r\n<p>&nbsp; EEPROM.begin(256);</p>\r\n<p><br /></p>\r\n<p>&nbsp; EEPROM.writeString(10, name);</p>\r\n<p>&nbsp; EEPROM.writeString(50, id);</p>\r\n<p>&nbsp; EEPROM.commit();</p>\r\n<p><br /></p>\r\n<p>&nbsp; Serial.println(\"=====================\");</p>\r\n<p>}</p>\r\n<p><br /></p>\r\n<p>void loop() {&nbsp;&nbsp;</p>\r\n<p>&nbsp; if(lock == false) {</p>\r\n<p>&nbsp; &nbsp; Serial.println( \"&gt;name= \" + get_name(10) );</p>\r\n<p>&nbsp; &nbsp; Serial.println( \"&gt;id= \" + get_name(50) );</p>\r\n<p>&nbsp; &nbsp; lock = true;</p>\r\n<p>&nbsp; }</p>\r\n<p>}</p>\r\n<p><br /></p>\r\n<p>String get_name(int x) {</p>\r\n<p>&nbsp; String temp = EEPROM.readString(x);</p>\r\n<p>&nbsp; return temp;</p>\r\n<p>}</p>','','',0,0,4,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-02-21 22:51:31',0,'2023-02-21 22:51:31','192.168.219.116','','','','','','','','','','','',''),(591,-588,'',591,0,0,'','','html1','[Linux] mplayer 재생시 느릴때 옵션 설정','<pre style=\"margin-top: 0px; margin-bottom: 0px; padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); font-family: var(--ff-mono); font-size: var(--fs-body1); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; color: var(--highlight-color);\">\r\n   <code style=\"margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: var(--ff-mono); font-size: var(--_pr-code-fs); vertical-align: baseline; box-sizing: inherit; white-space: inherit; color: var(--black-800); border-radius: 0px;\">mplayer -lavdopts threads=4 </code>\r\n   </pre>','https://askubuntu.com/questions/265394/mplayer-your-system-is-too-slow-to-play-this','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-02-12 21:51:44',0,'2023-02-12 21:51:44','192.168.219.116','','','','','','','','','','','',''),(589,-586,'',589,0,0,'','','html1','[Arduino] WSL에서 USB장치 연결하기(usbipd-win)','<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">Windows에 WSL기능이 추가되면서 Linux를 윈도우에서 사용할 수 있게 되었다. 그런데 WSL이 완전한 Linux는 아니기 때문에 여러가지 제약사항이 존재하는데 바로 USB 장치를 연결하는 것이다. 하지만 이것도 찾아보니 가능한 작업이었다. 이번 포스트에서는 WSL에 USB장치를 연결하는 법을 알아보자. WSL에서 USB장치를 연결하는 것은 오픈소스 프로젝트인 usbipd-win이라는 프로젝트로 가능하다.&nbsp;</p>\r\n<h2 data-ke-size=\"size26\" style=\"margin: 29px 0px 22px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; clear: both; line-height: 2; font-weight: normal;\">0. 환경</h2>\r\n<ul data-ke-list-type=\"disc\" style=\"margin: 0px 0px 22px; padding: 0px; list-style-position: inside; list-style-image: initial; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\">\r\n   <li style=\"margin: 0px 0px 10px; padding: 0px 0px 0px 22px; list-style-position: inherit; list-style-image: inherit; list-style-type: disc; position: relative; font-size: 0.9375em; line-height: 1.4; color: #666666; text-indent: -10px;\">WSL에서 USB장치를 연결하기 위해서는 다음과 같은 요구사항이 있따.</li>\r\n   <li style=\"margin: 0px 0px 10px; padding: 0px 0px 0px 22px; list-style-position: inherit; list-style-image: inherit; list-style-type: disc; position: relative; font-size: 0.9375em; line-height: 1.4; color: #666666; text-indent: -10px;\">Windows 11 이상(혹은 WSL2가 활성화된 Windows10)</li>\r\n   <li style=\"margin: 0px 0px 10px; padding: 0px 0px 0px 22px; list-style-position: inherit; list-style-image: inherit; list-style-type: disc; position: relative; font-size: 0.9375em; line-height: 1.4; color: #666666; text-indent: -10px;\">x64/x86 CPU(ARM은 지원하지 않아요)</li>\r\n   <li style=\"margin: 0px 0px 10px; padding: 0px 0px 0px 22px; list-style-position: inherit; list-style-image: inherit; list-style-type: disc; position: relative; font-size: 0.9375em; line-height: 1.4; color: #666666; text-indent: -10px;\">WSL2에 설치된 Linux.(커널 5.10.60.1 이상)</li>\r\n   </ul>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">참고로 Linux 커널 버전은 uname -a 명령어로 확인 할 수 있으며, 커널버전이 낮을 경우 wsl --update 명령어로 업데이트 하면 가능하다.</p>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"1159\" data-origin-height=\"372\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/cxTxHj/btrTRpsCUcW/Zj1shhzGdFKPITRj3NeFF1/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/cxTxHj/btrTRpsCUcW/Zj1shhzGdFKPITRj3NeFF1/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxTxHj%2FbtrTRpsCUcW%2FZj1shhzGdFKPITRj3NeFF1%2Fimg.png\" data-origin-width=\"1159\" data-origin-height=\"372\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; border-radius: 5px; width: 756px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<h2 data-ke-size=\"size26\" style=\"margin: 29px 0px 22px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; clear: both; line-height: 2; font-weight: normal;\">1. USBIPD-WIN 설치하기</h2>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\"><a href=\"https://github.com/dorssel/usbipd-win/releases\" target=\"_blank\" rel=\"noopener\" style=\"text-decoration-line: none; color: #04beb8;\">https://github.com/dorssel/usbipd-win/releases</a>&nbsp;에서 usbipd-win 을 다운받아 설치한다.</p>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"774\" data-origin-height=\"601\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/c0K5Jv/btrTVUrlahH/pVqvXeiHvJDSkqnjBLd2tK/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/c0K5Jv/btrTVUrlahH/pVqvXeiHvJDSkqnjBLd2tK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0K5Jv%2FbtrTVUrlahH%2FpVqvXeiHvJDSkqnjBLd2tK%2Fimg.png\" width=\"400\" data-origin-width=\"774\" data-origin-height=\"601\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; border-radius: 5px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">cmd 콘솔창을 다시 켜 usbipd 명령어를 실행하여 실행되는지 확인한다.</p>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"1534\" data-origin-height=\"871\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/b9dHjz/btrTSLBKEzs/Mn59DyiparK2qkVwf4jaz0/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/b9dHjz/btrTSLBKEzs/Mn59DyiparK2qkVwf4jaz0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9dHjz%2FbtrTSLBKEzs%2FMn59DyiparK2qkVwf4jaz0%2Fimg.png\" data-origin-width=\"1534\" data-origin-height=\"871\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; border-radius: 5px; width: 756px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<div class=\"revenue_unit_wrap\" style=\"margin: 20px 0px; padding: 0px; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\">\r\n   <div class=\"revenue_unit_item adsense responsive\" style=\"margin: 0px; padding: 0px; position: relative; box-sizing: border-box; background-position: 50% 50%; background-repeat: no-repeat; background-image: url(&quot;//t1.daumcdn.net/tistory_admin/static/revenue/adsense.svg&quot;);\"><ins class=\"adsbygoogle\" data-ad-host=\"ca-host-pub-9691043933427338\" data-ad-client=\"ca-pub-3696437811109315\" data-ad-format=\"auto\" data-adsbygoogle-status=\"done\" data-ad-status=\"filled\" style=\"display: block; height: 280px;\">\r\n         <div id=\"aswift_2_host\" tabindex=\"0\" title=\"Advertisement\" aria-label=\"Advertisement\" style=\"margin: 0px; padding: 0px; border: none; height: 280px; width: 756px; position: relative; visibility: visible; display: inline-block; overflow: visible;\"><iframe id=\"aswift_2\" name=\"aswift_2\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" width=\"756\" height=\"280\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" vspace=\"0\" hspace=\"0\" allowtransparency=\"true\" scrolling=\"no\" src=\"https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3696437811109315&amp;output=html&amp;h=280&amp;adk=2547474805&amp;adf=3409523958&amp;w=756&amp;fwrn=4&amp;fwrnh=100&amp;lmt=1676124376&amp;rafmt=1&amp;format=756x280&amp;url=https%3A%2F%2Flucidmaj7.tistory.com%2F388&amp;host=ca-host-pub-9691043933427338&amp;fwr=0&amp;rpe=1&amp;resp_fmts=3&amp;wgl=1&amp;uach=WyJXaW5kb3dzIiwiMTAuMC4wIiwieDg2IiwiIiwiMTA5LjAuNTQxNC4xMjEiLFtdLGZhbHNlLG51bGwsIjY0IixbWyJOb3RfQSBCcmFuZCIsIjk5LjAuMC4wIl0sWyJHb29nbGUgQ2hyb21lIiwiMTA5LjAuNTQxNC4xMjEiXSxbIkNocm9taXVtIiwiMTA5LjAuNTQxNC4xMjEiXV0sZmFsc2Vd&amp;dt=1676124376755&amp;bpp=1&amp;bdt=830&amp;idt=117&amp;shv=r20230207&amp;mjsv=m202302080101&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3D7683a47a7e06ac69-22b5454fbbd900f9%3AT%3D1676118110%3ART%3D1676118110%3AS%3DALNI_MY8o8zG4_vWyNXbL_EgDOzAR9CV_A&amp;gpic=UID%3D00000bbfc1b09316%3AT%3D1676118110%3ART%3D1676118110%3AS%3DALNI_MaY8Uf1urnGMZkaWjsu0kWKpAlJZw&amp;prev_fmts=0x0%2C756x280&amp;nras=1&amp;correlator=6176162519126&amp;frm=20&amp;pv=1&amp;ga_vid=914402863.1676118110&amp;ga_sid=1676124377&amp;ga_hid=1320357281&amp;ga_fc=1&amp;ga_cid=1387108235.1676118110&amp;u_tz=540&amp;u_his=3&amp;u_h=1440&amp;u_w=2560&amp;u_ah=1400&amp;u_aw=2560&amp;u_cd=24&amp;u_sd=1&amp;dmc=8&amp;adx=91&amp;ady=2997&amp;biw=1261&amp;bih=1286&amp;scr_x=0&amp;scr_y=0&amp;eid=44759876%2C44759927%2C44759837%2C44719338%2C31072225%2C31072272%2C44779794%2C31071264&amp;oid=2&amp;pvsid=1716754198714516&amp;tmod=1231742580&amp;uas=0&amp;nvt=1&amp;ref=https%3A%2F%2Fwww.google.com%2F&amp;eae=0&amp;fc=1920&amp;brdim=-7%2C0%2C-7%2C0%2C2560%2C0%2C1294%2C1407%2C1278%2C1286&amp;vis=1&amp;rsz=o%7C%7CeEbr%7C&amp;abl=CS&amp;pfx=0&amp;fu=128&amp;bc=31&amp;ifi=3&amp;uci=a!3&amp;btvi=1&amp;fsb=1&amp;xpc=5wqmCftNUm&amp;p=https%3A//lucidmaj7.tistory.com&amp;dtd=122\" data-google-container-id=\"a!3\" data-google-query-id=\"CPP97fDRjf0CFRrzvAodqp0EOA\" data-load-complete=\"true\" style=\"margin: 0px auto; max-width: 100%; left: 0px; position: absolute; top: 0px; border-width: 0px; border-style: initial; width: 756px; height: 280px;\"></iframe></div>\r\n         </ins></div>\r\n   </div>\r\n<h2 data-ke-size=\"size26\" style=\"margin: 29px 0px 22px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; clear: both; line-height: 2; font-weight: normal;\">&nbsp;</h2>\r\n<h2 data-ke-size=\"size26\" style=\"margin: 29px 0px 22px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; clear: both; line-height: 2; font-weight: normal;\">2. WSL Linux에 USBIP tools와 하드웨어 데이터베이스 설치하기</h2>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">WSL로 돌아와서 USBIP Tools와 하드웨어 데이터베이스를 설치해줘야한다. 다음 명령어를 실행한다.</p>\r\n<pre id=\"code_1671338409726\" class=\"bash\" data-ke-language=\"bash\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 25px; margin-bottom: 25px; padding: 0px; border-radius: 5px; box-shadow: rgba(34, 0, 51, 0.04) 0px 12px 18px 2px, rgba(7, 48, 114, 0.12) 0px 6px 22px 4px, rgba(14, 13, 26, 0.12) 0px 6px 10px -4px; word-break: break-all; white-space: pre-wrap; overflow-wrap: break-word; color: #555555;\">\r\n   <code class=\"hljs\" style=\"margin: 0px; padding: 0.5em; font-family: source-code-pro, Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; display: block; overflow-x: auto; color: #abb2bf; background: rgb(40, 44, 52);\">sudo apt install linux-tools-5.4.0-77-generic hwdata\r\nsudo update-alternatives --install /usr/<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">local</span>/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20</code>\r\n   </pre>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"1534\" data-origin-height=\"871\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/dtDLBd/btrTUDpQFJ9/JLfLjj2StmkfPDgscyEilK/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/dtDLBd/btrTUDpQFJ9/JLfLjj2StmkfPDgscyEilK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdtDLBd%2FbtrTUDpQFJ9%2FJLfLjj2StmkfPDgscyEilK%2Fimg.png\" data-origin-width=\"1534\" data-origin-height=\"871\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; border-radius: 5px; width: 756px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<h2 data-ke-size=\"size26\" style=\"margin: 29px 0px 22px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; clear: both; line-height: 2; font-weight: normal;\">3. USB장치 연결해 보기</h2>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">Powershell이나 cmd를 관리자모드로 열어 다음 명령어로 USB장치 리스트를 확인한다. 나는 Iphone 6를 연결하려한다.</p>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"1325\" data-origin-height=\"296\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/7WK27/btrTZyOT3RL/eR8jljYEav76tMNadx66Yk/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/7WK27/btrTZyOT3RL/eR8jljYEav76tMNadx66Yk/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7WK27%2FbtrTZyOT3RL%2FeR8jljYEav76tMNadx66Yk%2Fimg.png\" data-origin-width=\"1325\" data-origin-height=\"296\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; border-radius: 5px; width: 756px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">아이폰6의 BUSID는 1-4이므로 다음명령어로 attach를 한다.</p>\r\n<pre id=\"code_1671340593490\" class=\"bash\" data-ke-language=\"bash\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 25px; margin-bottom: 25px; padding: 0px; border-radius: 5px; box-shadow: rgba(34, 0, 51, 0.04) 0px 12px 18px 2px, rgba(7, 48, 114, 0.12) 0px 6px 22px 4px, rgba(14, 13, 26, 0.12) 0px 6px 10px -4px; word-break: break-all; white-space: pre-wrap; overflow-wrap: break-word; color: #555555;\">\r\n   <code class=\"hljs\" style=\"margin: 0px; padding: 0.5em; font-family: source-code-pro, Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; display: block; overflow-x: auto; color: #abb2bf; background: rgb(40, 44, 52);\">usbipd wsl attach --busid &lt;busid&gt;</code>\r\n   </pre>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"1021\" data-origin-height=\"115\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/bylQgf/btrTRGudeJ7/TU71IaliBDXnVWhgeii6IK/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bylQgf/btrTRGudeJ7/TU71IaliBDXnVWhgeii6IK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbylQgf%2FbtrTRGudeJ7%2FTU71IaliBDXnVWhgeii6IK%2Fimg.png\" data-origin-width=\"1021\" data-origin-height=\"115\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; border-radius: 5px; width: 756px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">하지만 아이폰 연결이 다음과 같은 에러를 표시하면서 되지 않는 경우가 생긴다.</p>\r\n<blockquote data-ke-style=\"style1\" style=\"font-size: 15pt; line-height: 23pt; color: #333333; margin: 20px auto 0px; padding: 34px 0px 0px; border: 0px none; border-top-right-radius: 4px; border-bottom-right-radius: 4px; background-image: url(&quot;https://t1.daumcdn.net/keditor/dist/0.4.9/image/blockquote-style1.svg&quot;); background-position: 50% 0px; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; text-align: center; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif;\"><span style=\"font-family: &quot;Noto Serif KR&quot;;\">usbip:&nbsp;error:&nbsp;Attach&nbsp;Request&nbsp;for&nbsp;1-4&nbsp;failed&nbsp;-&nbsp;Device&nbsp;busy&nbsp;(exported)</span></blockquote>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">예상하기로는 Windows에서 이미 iphone을 점유하고 사용하고 있어 장치를 WSL로 attach할 수 없는 것으로 보인다.</p>\r\n<h3 data-ke-size=\"size23\" style=\"font-size: 1.3125em; margin: 29px 0px 22px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; clear: both; line-height: 1.5; font-weight: normal;\">3-1. usbipd&nbsp;Device busy 에러 해결하기</h3>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">위와 같은 에러를 해결하는데 핵심 아이디어는 Windows가 점유하기 전에 wsl에 attach를 해주는 것이다. 그러기 위해서 bind명령을 통해 usbipd가 usb 장치를 먼저 점유하게 해준다. 이때 force 옵션을 추가한다.</p>\r\n<pre id=\"code_1671346524884\" class=\"bash\" data-ke-language=\"bash\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 25px; margin-bottom: 25px; padding: 0px; border-radius: 5px; box-shadow: rgba(34, 0, 51, 0.04) 0px 12px 18px 2px, rgba(7, 48, 114, 0.12) 0px 6px 22px 4px, rgba(14, 13, 26, 0.12) 0px 6px 10px -4px; word-break: break-all; white-space: pre-wrap; overflow-wrap: break-word; color: #555555;\">\r\n   <code class=\"hljs\" style=\"margin: 0px; padding: 0.5em; font-family: source-code-pro, Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; display: block; overflow-x: auto; color: #abb2bf; background: rgb(40, 44, 52);\">usbipd <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">bind</span> --force -b 1-4</code>\r\n   </pre>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">명령 실행후 usbipd list 명령을 실행하여보면 state는 shared(force)로 변경된 것을 볼 수 있다.</p>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"1303\" data-origin-height=\"372\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/Z3usW/btrTSxKwrdw/J6Yu6MGEavlmK0Rr4lDRkk/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/Z3usW/btrTSxKwrdw/J6Yu6MGEavlmK0Rr4lDRkk/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZ3usW%2FbtrTSxKwrdw%2FJ6Yu6MGEavlmK0Rr4lDRkk%2Fimg.png\" data-origin-width=\"1303\" data-origin-height=\"372\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; border-radius: 5px; width: 756px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">다음 아이폰을 재 연결 해보자. 아이폰을 재연결하면 장치관리자에 iphone이 나타나지 않는 것 을 볼 수 있다.</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">이제 다시 attach 명령을 실행해보자.</p>\r\n<pre id=\"code_1671349890742\" class=\"bash\" data-ke-language=\"bash\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 25px; margin-bottom: 25px; padding: 0px; border-radius: 5px; box-shadow: rgba(34, 0, 51, 0.04) 0px 12px 18px 2px, rgba(7, 48, 114, 0.12) 0px 6px 22px 4px, rgba(14, 13, 26, 0.12) 0px 6px 10px -4px; word-break: break-all; white-space: pre-wrap; overflow-wrap: break-word; color: #555555;\">\r\n   <code class=\"hljs\" style=\"margin: 0px; padding: 0.5em; font-family: source-code-pro, Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; display: block; overflow-x: auto; color: #abb2bf; background: rgb(40, 44, 52);\">usbipd wsl attach -b 1-4</code>\r\n   </pre>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"1384\" data-origin-height=\"401\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/bLDFh4/btrTQPyDATY/bsplIzZDkCQF65wESFRmRK/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bLDFh4/btrTQPyDATY/bsplIzZDkCQF65wESFRmRK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLDFh4%2FbtrTQPyDATY%2FbsplIzZDkCQF65wESFRmRK%2Fimg.png\" data-origin-width=\"1384\" data-origin-height=\"401\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; border-radius: 5px; width: 756px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">이렇게 아이폰이 wsl에 attach 된 것을 확인 할 수 있다.</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">wsl에서도 다음과 같이 확인해보자.&nbsp;</p>\r\n<pre id=\"code_1671349969107\" class=\"ebnf\" data-ke-language=\"bash\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 25px; margin-bottom: 25px; padding: 0px; border-radius: 5px; box-shadow: rgba(34, 0, 51, 0.04) 0px 12px 18px 2px, rgba(7, 48, 114, 0.12) 0px 6px 22px 4px, rgba(14, 13, 26, 0.12) 0px 6px 10px -4px; word-break: break-all; white-space: pre-wrap; overflow-wrap: break-word; color: #555555;\">\r\n   <code class=\"hljs\" style=\"margin: 0px; padding: 0.5em; font-family: source-code-pro, Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; display: block; overflow-x: auto; color: #abb2bf; background: rgb(40, 44, 52);\">lsusb</code>\r\n   </pre>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"942\" data-origin-height=\"255\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; color: #555555; font-family: Ubuntu, &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/bkLfQR/btrTQ2dvGzZ/l63kK0727K77ta8wuK54f0/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bkLfQR/btrTQ2dvGzZ/l63kK0727K77ta8wuK54f0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkLfQR%2FbtrTQ2dvGzZ%2Fl63kK0727K77ta8wuK54f0%2Fimg.png\" data-origin-width=\"942\" data-origin-height=\"255\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; border-radius: 5px; width: 756px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">WSL에서도 usb장치가 연결 된 것을 확인 할 수 있다.</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\">&nbsp;</p>\r\n<h2 data-ke-size=\"size26\" style=\"margin: 29px 0px 22px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; clear: both; line-height: 2; font-weight: normal;\">참고</h2>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 16px; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; -webkit-font-smoothing: antialiased; font-size: 1.02rem; color: #222426; line-height: 1.8; overflow-wrap: break-word;\"><a href=\"https://learn.microsoft.com/en-us/windows/wsl/connect-usb\" target=\"_blank\" rel=\"noopener\" style=\"text-decoration-line: none; color: #04beb8;\">https://learn.microsoft.com/en-us/windows/wsl/connect-usb</a></p>','https://lucidmaj7.tistory.com/388','',1,0,12,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-02-11 23:24:39',1,'2023-02-11 23:24:39','192.168.219.116','','','','','','','','','','','',''),(590,-587,'',590,0,0,'','','html1','[Arduino] 윈도우 WSL Ubuntu 에서 아두이노 Ide 실행하기.','<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">1. 윈도우에 WSL 설치 (version 2)</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">2. 윈도우&nbsp; powershell (관리자모드)</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;&gt;wsl --update</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">3. 윈도우에 ubuntu 설치 (Microsoft Store)</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">4. 우분투 설치 후 실행</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;-기본적인 설정 완료하기 (vim, ncftp ...)</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;-아두이노 파일 및 libraries 다운로드</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">** 24.2.12 추가</span></p>\r\n<p><font face=\"맑은 고딕, malgun gothic\"><span style=\"font-size: 14px;\">1) wsl2에 우분투 설치후, 에러발생 ---&gt; 첨부파일중 wsl_update_x64.msi 설치</span></font></p>\r\n<p><font face=\"맑은 고딕, malgun gothic\"><span style=\"font-size: 14px;\">2) PowerShell \"관리자권한\" 실행후,</span></font></p>\r\n<p><font face=\"맑은 고딕, malgun gothic\"><span style=\"font-size: 14px;\">&nbsp; &nbsp; dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart</span></font></p>\r\n<p><font face=\"맑은 고딕, malgun gothic\"><span style=\"font-size: 14px;\">&nbsp; &nbsp; [참조]&nbsp;</span></font><span style=\"font-size: 14px; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;;\">https://changun516.tistory.com/215</span></p>\r\n<p><span style=\"font-size: 14px; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;;\">3) 인텔 그래픽 재설치&nbsp;</span></p>\r\n<p><font face=\"맑은 고딕, malgun gothic\"><span style=\"font-size: 14px;\">&nbsp; &nbsp;https://www.lesstif.com/software-architect/windows-11-wslg-windows-subsystem-for-linux-gui-129007984.html</span></font></p>\r\n<p><font face=\"맑은 고딕, malgun gothic\"><span style=\"font-size: 14px;\">&nbsp; &nbsp;[참조]&nbsp;</span></font><span style=\"font-size: 14px; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;;\">https://www.lesstif.com/software-architect/windows-11-wslg-windows-subsystem-for-linux-gui-129007984.html</span></p>\r\n<p><span style=\"font-size: 14px; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;;\">4) python3 serial 설치</span><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;</span></p>\r\n<p><span style=\"color: var(--black-600); font-family: var(--ff-mono); font-size: var(--_pr-code-fs); font-style: inherit; font-variant-ligatures: inherit; font-variant-caps: inherit; font-weight: inherit; white-space: inherit;\">&nbsp; &nbsp; &nbsp;sudo apt-get install python3-serial -y</span></p>\r\n<p><span style=\"font-size: 14px;\">5) WSL2에서 아두이노 IDE실행시 메뉴 GUI가 너무 작을 경우,</span><br /></p>\r\n<p><span style=\"font-size: 14px;\">&nbsp; &nbsp; &nbsp;.bashrc 에서 맨아래에 추가</span></p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; &nbsp;export DISPLAY=:0.0</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp; &nbsp; &nbsp; &nbsp;export GDK_SCALE=2</p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">--------------------------------------------------------------------------------------------------------------------------------------------</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">5. 아두이노 실행시 의존성 라이브러리 설치</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;**라이브러리 확인 사이트 :&nbsp;</span><span style=\"box-sizing: border-box; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\"><a href=\"https://packages.ubuntu.com/search?searchon=contents&amp;keywords=libatk-1.0.so.0&amp;mode=exactfilename&amp;suite=noble&amp;arch=any\" target=\"_blank\">https://packages.ubuntu.com/</a>&nbsp; &nbsp;</span></p>\r\n<p><span style=\"box-sizing: border-box; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;python3 설치&nbsp;</span><span style=\"box-sizing: border-box; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">--&gt; su</span><span style=\"color: #555555; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">do apt install python-is-python3</span><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp;</span></p>\r\n<p style=\"box-sizing: border-box; padding: 0px; word-break: break-all; background-color: #ffffff;\"><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp;</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">6. 윈도우에 usbipd SW설치&nbsp; &nbsp;&nbsp;</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;&gt;Site :&nbsp;</span><a href=\"https://github.com/dorssel/usbipd-win\" target=\"_blank\"><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">https://github.com/dorssel/usbipd-win</span></a></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;&gt;Download :&nbsp;</span><a href=\"https://github.com/dorssel/usbipd-win/releases/tag/v2.4.1\" target=\"_blank\"><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">https://github.com/dorssel/usbipd-win/releases/tag/v2.4.1</span></a></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp;</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">7. 우분투에서 usbipd 설정</span></p>\r\n<p><span style=\"color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;&gt;</span><span style=\"background-color: rgba(255, 255, 255, 0.1); white-space: pre-wrap; color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">sudo apt install linux-tools-virtual hwdata</span></p>\r\n<span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">   &gt;sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20</span>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp;</span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">8. 윈도우에서 usbipd wsl list 로 FTDI장치 확인 </span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">    *먼저 WSL Ubuntu 시작 후 동작해야함</span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">    ex) 9-4 .... USB Serial Converter 라면</span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">    &gt;usbipd wsl attach -b 9-4 --auto-attach</span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">    *해제시에는 </span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">    &gt;usbipd wsl detach -b 9-4</span><span style=\"background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px; white-space: pre-wrap;\"></span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp;</span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">9. 우분투에서 lsusb로 장치확인</span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">    그리고 장치 사용할 수 있도록 소유권 변경</span></p>\r\n<p><span style=\"white-space: pre-wrap; background-color: rgba(255, 255, 255, 0.1); color: #313131; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">    &gt;sudo chown {username} /dev/ttyUSB0 </span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;or</span></p>\r\n<p><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;&gt;</span><span style=\"background-color: #ffffff; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">sudo chmod 666 /dev/ttyUSB0</span></p>\r\n<p><span style=\"background-color: #ffffff; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp;</span></p>\r\n<p><span style=\"background-color: #ffffff;\"><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;외장 usb메모리 마운트 방법</span><br /><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;</span></span><a href=\"https://learn.microsoft.com/ko-kr/archive/blogs/wsl/file-system-improvements-to-the-windows-subsystem-for-linux\" target=\"_blank\"><span style=\"font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">https://learn.microsoft.com/ko-kr/archive/blogs/wsl/file-system-improvements-to-the-windows-subsystem-for-linux</span></a><span style=\"background-color: #ffffff; font-family: &quot;맑은 고딕&quot;, &quot;malgun gothic&quot;; font-size: 14px;\">&nbsp; &nbsp;</span></p>\r\n<p style=\"box-sizing: inherit; outline-color: inherit; margin-top: 1rem; padding: 0px; overflow-wrap: break-word; color: #e6e6e6; font-family: &quot;Segoe UI&quot;, SegoeUI, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 16px; background-color: #171717;\">\r\n   <code style=\"box-sizing: inherit; outline-color: inherit; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; font-size: 13.6px; direction: ltr; background-color: var(--theme-inline-code); overflow-wrap: break-word; border-radius: 3px; padding: 0.1em 0.2em;\">$ sudo mkdir /mnt/d</code>\r\n   </p>\r\n<p style=\"box-sizing: inherit; outline-color: inherit; margin-top: 1rem; padding: 0px; overflow-wrap: break-word; color: #e6e6e6; font-family: &quot;Segoe UI&quot;, SegoeUI, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 16px; background-color: #171717;\">\r\n   <code style=\"box-sizing: inherit; outline-color: inherit; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; font-size: 13.6px; direction: ltr; background-color: var(--theme-inline-code); overflow-wrap: break-word; border-radius: 3px; padding: 0.1em 0.2em;\">$ sudo mount -t drvfs D: /mnt/d</code>\r\n   </p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp; &nbsp;상기사항을 .bashrc에 설정</p>\r\n<p>alias mount_d=\'sudo mount -t drvfs D: /mnt/d\'</p>\r\n<p>alias usb0=\'sudo chmod 666 /dev/ttyUSB0\'</p>\r\n<p>&nbsp;</p>\r\n<p><span style=\"font-size: 14px;\">10. 아두이노 폰트설정</span></p>\r\n<p><span style=\"font-size: 14px;\">&nbsp; &nbsp; &nbsp;다음 링크를 참조하여 WSL Ubuntu 폰트설정&nbsp; </span><a href=\"http://pinedance.github.io/blog/2021/02/08/WSL-fonts\" target=\"_blank\"><span style=\"font-size: 14px;\">http://pinedance.github.io/blog/2021/02/08/WSL-fonts</span></a></p>\r\n<p style=\"margin-top: 20px; line-height: 1.9em; overflow-wrap: break-word;\"><span style=\"font-size: 14px;\">아래와 같이 WSL에서 font 설정을 추가해 주면 windows에서 이미 제공하고 있는 font를 WSL에서도 사용할 수 있다.</span><br />\r\n   <code class=\" highlighter-rouge language-plaintext\" style=\"font-family: consolas, monaco, &quot;andale mono&quot;, &quot;ubuntu mono&quot;, monospace; color: #cccccc; background: rgb(45, 45, 45); padding: 0.1em; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; border-radius: 0.3em;\"><span style=\"font-size: 14px;\">/etc/fonts/local.conf</span></code>\r\n   <span style=\"font-family: &quot;fira sans&quot;, sans-serif;\"><span style=\"font-size: 14px;\">\r\n   &nbsp;파일(이미 있다면 추가, 없다면 생성)에 아래와 같이 추가한다.</span><br /></span><span style=\"background-color: #2d2d2d; color: #cccccc; font-family: consolas, monaco, &quot;andale mono&quot;, &quot;ubuntu mono&quot;, monospace; word-spacing: normal;\"></span></p>\r\n<p style=\"margin-top: 20px; line-height: 1.9em; overflow-wrap: break-word;\"><font face=\"fira sans, sans-serif\"><span style=\"font-size: 11px;\">&lt;?xml version=\"1.0\"?&gt;<br /></span></font><span style=\"font-size: 11px; font-family: &quot;fira sans&quot;, sans-serif;\">&lt;!DOCTYPE fontconfig SYSTEM \"fonts.dtd\"&gt;<br /></span><span style=\"font-size: 11px; font-family: &quot;fira sans&quot;, sans-serif;\">&lt;fontconfig&gt;<br /></span><span style=\"font-size: 11px; font-family: &quot;fira sans&quot;, sans-serif;\">&nbsp; &nbsp; &lt;dir&gt;/mnt/c/Windows/Fonts&lt;/dir&gt;<br /></span><span style=\"font-size: 11px; font-family: &quot;fira sans&quot;, sans-serif;\">&lt;/fontconfig&gt;</span></p>\r\n<div class=\"language-xml highlighter-rouge\" style=\"font-family: &quot;fira sans&quot;, sans-serif;\">\r\n   <div class=\"highlight line-numbers\">\r\n      <div class=\"code-toolbar\" style=\"position: relative;\">\r\n         <pre class=\"highlight line-numbers language-xml\" style=\"font-family: consolas, monaco, &quot;andale mono&quot;, &quot;ubuntu mono&quot;, monospace; margin-top: 0.5em; margin-bottom: 0.5em; line-height: 1.5; overflow: auto; background: rgb(45, 45, 45); border: 1px solid rgb(221, 221, 221); padding: 1em 1em 1em 2.8em; color: #cccccc; word-spacing: normal; word-break: normal; overflow-wrap: normal; tab-size: 4; hyphens: none; position: relative; counter-reset: linenumber 0; border-radius: 0.4em;\">\r\n            <code class=\" language-xml\" style=\"font-family: consolas, monaco, &quot;andale mono&quot;, &quot;ubuntu mono&quot;, monospace; background: none; padding: 0px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\"><span class=\"token prolog\" style=\"color: #999999; font-size: 11px;\">&lt;?xml version=\"1.0\"?&gt;</span><span class=\"token doctype\" style=\"color: #999999; font-size: 11px;\">&lt;!DOCTYPE fontconfig SYSTEM \"fonts.dtd\"&gt;</span><span class=\"token tag\" style=\"color: #e2777a;\"><span class=\"token punctuation\" style=\"color: #cccccc; font-size: 11px;\">&lt;</span><span style=\"font-size: 11px;\">fontconfig</span><span class=\"token punctuation\" style=\"color: #cccccc; font-size: 11px;\">&gt;</span></span><span class=\"token tag\" style=\"color: #e2777a;\"><span class=\"token punctuation\" style=\"color: #cccccc; font-size: 11px;\">&lt;</span><span style=\"font-size: 11px;\">dir</span><span class=\"token punctuation\" style=\"color: #cccccc; font-size: 11px;\">&gt;</span></span><span style=\"font-size: 11px;\">/mnt/c/Windows/Fonts</span><span class=\"token tag\" style=\"color: #e2777a;\"><span class=\"token punctuation\" style=\"color: #cccccc; font-size: 11px;\">&lt;/</span><span style=\"font-size: 11px;\">dir</span><span class=\"token punctuation\" style=\"color: #cccccc; font-size: 11px;\">&gt;</span></span><span class=\"token tag\" style=\"color: #e2777a;\"><span class=\"token punctuation\" style=\"color: #cccccc; font-size: 11px;\">&lt;/</span><span style=\"font-size: 11px;\">fontconfig</span><span class=\"token punctuation\" style=\"color: #cccccc; font-size: 11px;\">&gt;</span></span><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"position: absolute; pointer-events: none; top: 0px; left: -3.8em; width: 3em; letter-spacing: -1px; border-right: 1px solid rgb(153, 153, 153); user-select: none;\"><span style=\"pointer-events: none; display: block; counter-increment: linenumber 1;\"></span><span style=\"pointer-events: none; display: block; counter-increment: linenumber 1;\"></span><span style=\"pointer-events: none; display: block; counter-increment: linenumber 1;\"></span><span style=\"pointer-events: none; display: block; counter-increment: linenumber 1;\"></span><span style=\"pointer-events: none; display: block; counter-increment: linenumber 1;\"></span></span></code>\r\n            </pre>\r\n         <div class=\"toolbar\" style=\"position: absolute; top: 0.3em; right: 0.2em; transition: opacity 0.3s ease-in-out 0s; opacity: 0;\">\r\n            <div class=\"toolbar-item\" style=\"display: inline-block;\"><button style=\"background: rgba(224, 224, 224, 0.2); border-width: 0px; border-style: initial; border-color: initial; color: #bbbbbb; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-family: inherit; overflow: visible; padding: 0px 0.5em; user-select: none; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 0px 0px; border-radius: 0.5em;\"><span style=\"font-size: 11px;\">Copy</span></button></div>\r\n            </div>\r\n         </div>\r\n      </div>\r\n   </div>\r\n<p>\r\n   <code class=\" highlighter-rouge language-plaintext\" style=\"font-family: consolas, monaco, &quot;andale mono&quot;, &quot;ubuntu mono&quot;, monospace; color: #cccccc; background: rgb(45, 45, 45); padding: 0.1em; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; border-radius: 0.3em;\"><span style=\"font-size: 14px;\">/mnt/c/Windows/Fonts</span></code>\r\n   <span style=\"font-family: &quot;fira sans&quot;, sans-serif; font-size: 14px;\">는 windows filesystem에서 font를 저장하고 있는 폴더 위치</span></p>\r\n<p><span style=\"background-color: #2d2d2d; color: #cccccc; font-family: consolas, monaco, &quot;andale mono&quot;, &quot;ubuntu mono&quot;, monospace; font-size: 14px;\">fc-cache -r -v<br /></span><font color=\"#cccccc\" face=\"consolas, monaco, andale mono, ubuntu mono, monospace\"><span style=\"font-size: 14px; background-color: #2d2d2d;\">fc-list</span></font></p>\r\n<p>&nbsp;</p>\r\n<p><span style=\"font-size: 14px;\">&nbsp;</span></p>\r\n<p><span style=\"font-size: 14px;\">&nbsp; &nbsp;&gt;C:\\Users\\bk940\\AppData\\Local\\Arduino15\\preferences.txt ---&gt; .arduino15/에 복사&nbsp;</span></p>','https://www.youtube.com/watch?v=so0xr_1rSZM','https://www.lesstif.com/software-architect/windows-11-wslg-windows-subsystem-for-linux-gui-129007984.html',4,0,39,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-02-12 00:02:29',1,'2023-02-12 00:02:29','192.168.219.116','','','','','','','','','','','',''),(593,-590,'',593,0,0,'','','html1','[ETC] WebUI 설치와 사용법 (AI 실사 그림)','<p>&nbsp;WebUI 설치와 사용법 (AI 실사 그림)</p>','https://dreaminfo.tistory.com/1201','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-02-23 21:47:41',1,'2023-02-23 21:47:41','192.168.219.116','','','','','','','','','','','',''),(594,-591,'',594,0,0,'','','html1','[Arduino] ESP32 비동기 AsyncWebServer','<figure class=\"imageblock alignCenter\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"299\" data-origin-height=\"245\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/bg2Csh/btrz3kR412h/chO7Xf23ZiPphSxCKn3IQk/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bg2Csh/btrz3kR412h/chO7Xf23ZiPphSxCKn3IQk/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbg2Csh%2Fbtrz3kR412h%2FchO7Xf23ZiPphSxCKn3IQk%2Fimg.png\" data-origin-width=\"299\" data-origin-height=\"245\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 299px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">ESP32에서 웹서버 구현 방법에는 여러가지가 있는데 이번에는 장점이 많은 비동기 웹서버를 이용하여 구현해 보았다.</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">장점이 있지만 라이브러리가 필요하다.</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">ESPAsyncTCP, ESPAsyncWebServer (<a href=\"https://github.com/me-no-dev/ESPAsyncWebServer\" target=\"_blank\" rel=\"noopener\" style=\"color: #666666;\">https://github.com/me-no-dev/ESPAsyncWebServer</a>)</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">지난번 기본 라이브러리로 제공하는&nbsp;<a href=\"https://nexp.tistory.com/3369\" target=\"_blank\" rel=\"noopener\" style=\"color: #666666;\">ESP32 동기식 웹서버 예제</a>와 같이 이번에도 가장 기본이 되는 웹서버 코드로 구현 해 보자</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<pre id=\"code_1648781108857\" class=\"c++ arduino\" data-ke-language=\"c++\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 0px; margin-bottom: 0px; padding: 0px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word;\">\r\n   <code class=\"hljs cpp\" style=\"margin: 0px; padding: 20px; display: block; overflow-x: auto; color: #abb2bf; background: rgb(40, 44, 52);\"><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">ifdef</span> ESP32 <span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">// ESP32 libraries</span></span><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">include</span><span class=\"hljs-meta-string\" style=\"color: #98c379;\">&lt;WiFi.h&gt;</span></span><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">include</span><span class=\"hljs-meta-string\" style=\"color: #98c379;\">&lt;AsyncTCP.h&gt;</span></span><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">else</span><span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">// ESP8266 libraries</span></span><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">include</span><span class=\"hljs-meta-string\" style=\"color: #98c379;\">&lt;ESP8266WiFi.h&gt;</span></span><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">include</span><span class=\"hljs-meta-string\" style=\"color: #98c379;\">&lt;ESPAsyncTCP.h&gt;</span></span><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">endif</span></span><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">include</span><span class=\"hljs-meta-string\" style=\"color: #98c379;\">&lt;ESPAsyncWebServer.h&gt;</span></span><span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">// SSID &amp; Password</span><span class=\"hljs-keyword\" style=\"color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"color: #f92672;\">char</span> *ssid = <span class=\"hljs-string\" style=\"color: #98c379;\">\" \"</span>;\r\n<span class=\"hljs-keyword\" style=\"color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"color: #f92672;\">char</span> *password = <span class=\"hljs-string\" style=\"color: #98c379;\">\" \"</span>;\r\n<span class=\"hljs-function\" style=\"color: #61aeee;\">AsyncWebServer <span class=\"hljs-title\">server</span><span class=\"hljs-params\" style=\"color: #a6e22e;\">(<span class=\"hljs-number\" style=\"color: #d19a66;\">80</span>)</span></span>;  <span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">// Object of WebServer(HTTP port, 80 is defult)</span><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">define</span> Led1Pin        23    </span><span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">// HTML &amp; CSS contents which display on web server</span><span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">if</span> 1</span><span class=\"hljs-keyword\" style=\"color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"color: #f92672;\">char</span> index_html[] PROGMEM = <span class=\"hljs-string\" style=\"color: #98c379;\">R\"rawliteral(\r\n&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;/head&gt;\r\n&lt;body&gt;\r\n&lt;center&gt;\r\n&lt;h1&gt;ESP32 Simple WebServer - Async Mode&lt;/h1&gt;\r\n&lt;a href=\"on\"&gt;&lt;button class=\"button\"&gt;ON&lt;/button&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;\r\n&lt;a href=\"off\"&gt;&lt;button class=\"button\"&gt;OFF&lt;/button&gt;&lt;/a&gt;\r\n&lt;/center&gt;\r\n&lt;/body&gt;\r\n&lt;/html&gt;\r\n)rawliteral\"</span>;\r\n<span class=\"hljs-meta\" style=\"color: #61aeee;\">#<span class=\"hljs-meta-keyword\">endif</span></span><span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">//페이지 요청이 들어 오면 처리 하는 함수</span><span class=\"hljs-function\" style=\"color: #61aeee;\">String <span class=\"hljs-title\">processor</span><span class=\"hljs-params\" style=\"color: #a6e22e;\">(<span class=\"hljs-keyword\" style=\"color: #f92672;\">const</span> String&amp; var)</span></span>{\r\n  Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">println</span>(var);\r\n  <span class=\"hljs-keyword\" style=\"color: #f92672;\">return</span> var;\r\n}\r\n<span class=\"hljs-function\" style=\"color: #61aeee;\"><span class=\"hljs-keyword\" style=\"color: #f92672;\">void</span><span class=\"hljs-title\">onRootRequest</span><span class=\"hljs-params\" style=\"color: #a6e22e;\">(AsyncWebServerRequest *request)</span></span>{\r\n  request-&gt;<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">send_P</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">200</span>, <span class=\"hljs-string\" style=\"color: #98c379;\">\"text/html\"</span>, index_html, processor);\r\n}\r\n<span class=\"hljs-function\" style=\"color: #61aeee;\"><span class=\"hljs-keyword\" style=\"color: #f92672;\">void</span><span class=\"hljs-title\">InitWebServer</span><span class=\"hljs-params\" style=\"color: #a6e22e;\">()</span></span>{\r\n    server.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">on</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"/\"</span>, onRootRequest);\r\n    server.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">on</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"/on\"</span>, HTTP_GET, [] (AsyncWebServerRequest *request) {\r\n      <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">digitalWrite</span>(Led1Pin, <span class=\"hljs-number\" style=\"color: #d19a66;\">1</span>); \r\n      request-&gt;<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">send_P</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">200</span>, <span class=\"hljs-string\" style=\"color: #98c379;\">\"text/html\"</span>, index_html, processor);\r\n    });\r\n    server.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">on</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"/off\"</span>, HTTP_GET, [] (AsyncWebServerRequest *request) {\r\n      <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">digitalWrite</span>(Led1Pin, <span class=\"hljs-number\" style=\"color: #d19a66;\">0</span>); \r\n      request-&gt;<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">send_P</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">200</span>, <span class=\"hljs-string\" style=\"color: #98c379;\">\"text/html\"</span>, index_html, processor);\r\n    });\r\n    server.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">begin</span>();\r\n}\r\n<span class=\"hljs-function\" style=\"color: #61aeee;\"><span class=\"hljs-keyword\" style=\"color: #f92672;\">void</span><span class=\"hljs-title\">setup</span><span class=\"hljs-params\" style=\"color: #a6e22e;\">()</span></span>{\r\n    <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">pinMode</span>(Led1Pin, OUTPUT);\r\n    <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">digitalWrite</span>(Led1Pin, <span class=\"hljs-number\" style=\"color: #d19a66;\">1</span>);\r\n    Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">begin</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">115200</span>);\r\n    Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">println</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"ESP32 Simple web Start\"</span>);\r\n    Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">println</span>(ssid);\r\n    <span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">//Wifi 접속</span>\r\n    WiFi.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">begin</span>(ssid, password);\r\n    <span class=\"hljs-keyword\" style=\"color: #f92672;\">while</span> (WiFi.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">status</span>() != WL_CONNECTED)\r\n    {\r\n      <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">delay</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">1000</span>);\r\n      Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">print</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\".\"</span>);\r\n    }\r\n    Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">println</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"\"</span>);\r\n    Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">println</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"WiFi connected successfully\"</span>);\r\n    Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">print</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"IP: \"</span>);\r\n    Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">println</span>(WiFi.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">localIP</span>());  <span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">//Show ESP32 IP on serial</span><span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">//웹서버 초기화 및 페이지 요청 처리 함수 등록</span><span class=\"hljs-built_in\" style=\"color: #e6c07b;\">InitWebServer</span>();\r\n    Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">println</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"HTTP server started\"</span>);\r\n    <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">delay</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">100</span>); \r\n}\r\n<span class=\"hljs-function\" style=\"color: #61aeee;\"><span class=\"hljs-keyword\" style=\"color: #f92672;\">void</span><span class=\"hljs-title\">loop</span><span class=\"hljs-params\" style=\"color: #a6e22e;\">()</span></span>{\r\n}</code>\r\n   </pre>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">이번에는 웹페이지를 조금더 능동적으로 동작하도록 하기 위해 javascripts 를 사용해서 페이지 상태 정보를 전달 할 수 있도록 했다.</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">자바스크립트로 웹페이지 상의 체크 박스의 상태값을 읽어서 서버로 GET 메시지를 전송 하도록 했다.</p>\r\n<pre id=\"code_1648797556445\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 0px; margin-bottom: 0px; padding: 0px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word;\">\r\n   <code class=\"hljs xml\" style=\"margin: 0px; padding: 20px; display: block; overflow-x: auto; color: #abb2bf; background: rgb(40, 44, 52);\">const char index_html[] PROGMEM = R\"rawliteral(\r\n<span class=\"hljs-meta\" style=\"color: #61aeee;\">&lt;!DOCTYPE <span class=\"hljs-meta-keyword\">html</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">html</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">head</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">style</span>&gt;</span><span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\" style=\"color: #e06c75;\">style</span>&gt;</span><span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\" style=\"color: #e06c75;\">head</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">body</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">center</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">h1</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">center</span>&gt;</span>ESP32 Simple Web Server - Async<span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\" style=\"color: #e06c75;\">h1</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">br</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">br</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">h4</span>&gt;</span>LED - Status <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">span</span><span class=\"hljs-attr\" style=\"color: #d19a66;\">id</span>=<span class=\"hljs-string\" style=\"color: #98c379;\">\"outputState\"</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">span</span>&gt;</span><span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\" style=\"color: #e06c75;\">h4</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">label</span><span class=\"hljs-attr\" style=\"color: #d19a66;\">class</span>=<span class=\"hljs-string\" style=\"color: #98c379;\">\"switch\"</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">input</span><span class=\"hljs-attr\" style=\"color: #d19a66;\">type</span>=<span class=\"hljs-string\" style=\"color: #98c379;\">\"checkbox\"</span><span class=\"hljs-attr\" style=\"color: #d19a66;\">onchange</span>=<span class=\"hljs-string\" style=\"color: #98c379;\">\"toggleCheckbox(this)\"</span><span class=\"hljs-attr\" style=\"color: #d19a66;\">id</span>=<span class=\"hljs-string\" style=\"color: #98c379;\">\"output\"</span> &gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">span</span><span class=\"hljs-attr\" style=\"color: #d19a66;\">class</span>=<span class=\"hljs-string\" style=\"color: #98c379;\">\"slider\"</span>&gt;</span><span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\" style=\"color: #e06c75;\">span</span>&gt;</span><span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\" style=\"color: #e06c75;\">label</span>&gt;</span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\" style=\"color: #e06c75;\">script</span>&gt;</span><span class=\"javascript\"><span class=\"hljs-function\" style=\"color: #61aeee;\"><span class=\"hljs-keyword\" style=\"color: #f92672;\">function</span><span class=\"hljs-title\">toggleCheckbox</span>(<span class=\"hljs-params\" style=\"color: #a6e22e;\">element</span>) </span>{\r\n  <span class=\"hljs-keyword\" style=\"color: #f92672;\">var</span> xhr = <span class=\"hljs-keyword\" style=\"color: #f92672;\">new</span> XMLHttpRequest();\r\n  <span class=\"hljs-keyword\" style=\"color: #f92672;\">if</span>(element.checked)\r\n  { \r\n      xhr.open(<span class=\"hljs-string\" style=\"color: #98c379;\">\"GET\"</span>, <span class=\"hljs-string\" style=\"color: #98c379;\">\"/update?output=\"</span>+element.id+<span class=\"hljs-string\" style=\"color: #98c379;\">\"&amp;state=1\"</span>, <span class=\"hljs-literal\" style=\"color: #56b6c2;\">true</span>);\r\n  }\r\n  <span class=\"hljs-keyword\" style=\"color: #f92672;\">else</span>\r\n  { \r\n      xhr.open(<span class=\"hljs-string\" style=\"color: #98c379;\">\"GET\"</span>, <span class=\"hljs-string\" style=\"color: #98c379;\">\"/update?output=\"</span>+element.id+<span class=\"hljs-string\" style=\"color: #98c379;\">\"&amp;state=0\"</span>, <span class=\"hljs-literal\" style=\"color: #56b6c2;\">true</span>);\r\n  }\r\n  xhr.send();\r\n}\r\n</span><span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\" style=\"color: #e06c75;\">script</span>&gt;</span><span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\" style=\"color: #e06c75;\">body</span>&gt;</span><span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\" style=\"color: #e06c75;\">html</span>&gt;</span>\r\n)rawliteral\";</code>\r\n   </pre>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">서버측에서는 상태 값에 따라 LED를 제어 할 수 있는 update 함수를 등록해서 제어 할 수 있도록 했다.</p>\r\n<pre id=\"code_1648797602292\" class=\"c++ arduino\" data-ke-language=\"c++\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 0px; margin-bottom: 0px; padding: 0px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word;\">\r\n   <code class=\"hljs cpp\" style=\"margin: 0px; padding: 20px; display: block; overflow-x: auto; color: #abb2bf; background: rgb(40, 44, 52);\"><span class=\"hljs-function\" style=\"color: #61aeee;\"><span class=\"hljs-keyword\" style=\"color: #f92672;\">void</span><span class=\"hljs-title\">onStatusUpdate</span><span class=\"hljs-params\" style=\"color: #a6e22e;\">(AsyncWebServerRequest *request)</span></span>{\r\n    String inmsg; \r\n    <span class=\"hljs-keyword\" style=\"color: #f92672;\">if</span> (request-&gt;<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">hasParam</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"state\"</span>))\r\n    {\r\n        inmsg = request-&gt;<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">getParam</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"state\"</span>)-&gt;<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">value</span>(); \r\n        <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">digitalWrite</span>(Led1Pin, inmsg.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">toInt</span>()); \r\n    }\r\n    <span class=\"hljs-keyword\" style=\"color: #f92672;\">else</span> {\r\n        inmsg = <span class=\"hljs-string\" style=\"color: #98c379;\">\"No message sent\"</span>;\r\n    }\r\n    <span class=\"hljs-comment\" style=\"color: #b18eb1; font-style: italic;\">//Serial.print(\"LED ON\");</span>\r\n    Serial.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">println</span>(inmsg);\r\n    request-&gt;<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">send</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">200</span>, <span class=\"hljs-string\" style=\"color: #98c379;\">\"text/plain\"</span>, <span class=\"hljs-string\" style=\"color: #98c379;\">\"OK\"</span>);\r\n}\r\n<span class=\"hljs-function\" style=\"color: #61aeee;\"><span class=\"hljs-keyword\" style=\"color: #f92672;\">void</span><span class=\"hljs-title\">initWebServer</span><span class=\"hljs-params\" style=\"color: #a6e22e;\">()</span></span>{\r\n    server.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">on</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"/\"</span>, onRootRequest);\r\n    server.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">on</span>(<span class=\"hljs-string\" style=\"color: #98c379;\">\"/update\"</span>, onStatusUpdate);\r\n    server.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">begin</span>();\r\n}</code>\r\n   </pre>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">웹페이지 실행후 체크 박스의 상태에 따라 LED가 제어 되는 것을 확인 할수 있다.</p>\r\n<p style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<figure class=\"imageblock alignLeft\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"602\" data-origin-height=\"478\" style=\"margin: 0px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/bokDNW/btrybWYEhUG/mlXu2XYpJbpMDcCWMV8TI0/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bokDNW/btrybWYEhUG/mlXu2XYpJbpMDcCWMV8TI0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbokDNW%2FbtrybWYEhUG%2FmlXu2XYpJbpMDcCWMV8TI0%2Fimg.png\" data-origin-width=\"602\" data-origin-height=\"478\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 602px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<hr contenteditable=\"false\" data-ke-type=\"horizontalRule\" data-ke-style=\"style5\" style=\"border: none; font-size: 0px; line-height: 0; height: 20px; margin: 20px auto; background-image: url(&quot;https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg&quot;); background-position: 0px -120px; background-size: 200px 200px; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: &quot;Noto Sans KR&quot;, sans-serif; cursor: pointer !important;\" />\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">이번에도 ccs 문으로 좀더 화면을 꾸며 보자</p>\r\n<pre id=\"code_1648797454725\" class=\"css\" data-ke-language=\"css\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 0px; margin-bottom: 0px; padding: 0px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word;\">\r\n   <code class=\"hljs\" style=\"margin: 0px; padding: 20px; display: block; overflow-x: auto; color: #abb2bf; background: rgb(40, 44, 52);\">&lt;style&gt;\r\n    <span class=\"hljs-selector-tag\" style=\"color: #e06c75;\">html</span> {<span class=\"hljs-attribute\" style=\"color: #98c379;\">font-family</span>: Arial; <span class=\"hljs-attribute\" style=\"color: #98c379;\">display</span>: inline-block; <span class=\"hljs-attribute\" style=\"color: #98c379;\">text-align</span>: center;}\r\n    <span class=\"hljs-selector-tag\" style=\"color: #e06c75;\">h2</span> {<span class=\"hljs-attribute\" style=\"color: #98c379;\">font-size</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">3.0rem</span>;}\r\n    <span class=\"hljs-selector-tag\" style=\"color: #e06c75;\">p</span> {<span class=\"hljs-attribute\" style=\"color: #98c379;\">font-size</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">3.0rem</span>;}\r\n    <span class=\"hljs-selector-tag\" style=\"color: #e06c75;\">body</span> {<span class=\"hljs-attribute\" style=\"color: #98c379;\">max-width</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">600px</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">margin</span>:<span class=\"hljs-number\" style=\"color: #d19a66;\">0px</span> auto; <span class=\"hljs-attribute\" style=\"color: #98c379;\">padding-bottom</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">25px</span>;}\r\n    <span class=\"hljs-selector-class\" style=\"color: #d19a66;\">.switch</span> {<span class=\"hljs-attribute\" style=\"color: #98c379;\">position</span>: relative; <span class=\"hljs-attribute\" style=\"color: #98c379;\">display</span>: inline-block; <span class=\"hljs-attribute\" style=\"color: #98c379;\">width</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">120px</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">height</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">68px</span>}\r\n    <span class=\"hljs-selector-class\" style=\"color: #d19a66;\">.switch</span><span class=\"hljs-selector-tag\" style=\"color: #e06c75;\">input</span> {<span class=\"hljs-attribute\" style=\"color: #98c379;\">display</span>: none}\r\n    <span class=\"hljs-selector-class\" style=\"color: #d19a66;\">.slider</span> {<span class=\"hljs-attribute\" style=\"color: #98c379;\">position</span>: absolute; <span class=\"hljs-attribute\" style=\"color: #98c379;\">top</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">0</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">left</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">0</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">right</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">0</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">bottom</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">0</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">background-color</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">#F63E36</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">border-radius</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">34px</span>}\r\n    <span class=\"hljs-selector-class\" style=\"color: #d19a66;\">.slider</span>:before {position: absolute; <span class=\"hljs-attribute\" style=\"color: #98c379;\">content</span>: <span class=\"hljs-string\" style=\"color: #98c379;\">\"\"</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">height</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">52px</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">width</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">52px</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">left</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">8px</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">bottom</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">8px</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">background-color</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">#fff</span>; -webkit-<span class=\"hljs-attribute\" style=\"color: #98c379;\">transition</span>: .<span class=\"hljs-number\" style=\"color: #d19a66;\">4s</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">transition</span>: .<span class=\"hljs-number\" style=\"color: #d19a66;\">4s</span>; <span class=\"hljs-attribute\" style=\"color: #98c379;\">border-radius</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">68px</span>}\r\n    <span class=\"hljs-selector-tag\" style=\"color: #e06c75;\">input</span><span class=\"hljs-selector-pseudo\" style=\"color: #d19a66;\">:checked</span>+<span class=\"hljs-selector-class\" style=\"color: #d19a66;\">.slider</span> {<span class=\"hljs-attribute\" style=\"color: #98c379;\">background-color</span>: <span class=\"hljs-number\" style=\"color: #d19a66;\">#3CC33C</span>}\r\n    <span class=\"hljs-selector-tag\" style=\"color: #e06c75;\">input</span><span class=\"hljs-selector-pseudo\" style=\"color: #d19a66;\">:checked</span>+<span class=\"hljs-selector-class\" style=\"color: #d19a66;\">.slider</span>:before {-webkit-transform: <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">translateX</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">52px</span>); -ms-<span class=\"hljs-attribute\" style=\"color: #98c379;\">transform</span>: <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">translateX</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">52px</span>); <span class=\"hljs-attribute\" style=\"color: #98c379;\">transform</span>: <span class=\"hljs-built_in\" style=\"color: #e6c07b;\">translateX</span>(<span class=\"hljs-number\" style=\"color: #d19a66;\">52px</span>)}\r\n&lt;/style&gt;</code>\r\n   </pre>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">체크 박스의 상태가 좀더 이쁜 모양으로 표시 된다.</p>\r\n<p style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<figure class=\"imageblock alignLeft\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"602\" data-origin-height=\"478\" style=\"margin: 0px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/ZWT9A/btrx8NIBfDk/throeYhYUNnEdkGy6b3ry0/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/ZWT9A/btrx8NIBfDk/throeYhYUNnEdkGy6b3ry0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZWT9A%2Fbtrx8NIBfDk%2FthroeYhYUNnEdkGy6b3ry0%2Fimg.png\" data-origin-width=\"602\" data-origin-height=\"478\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 602px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">CCS 파일을 좀더 설정하면 다양한 형태의 웹페이지를 구현 할 수 있다. 물론 ESP32에서 구동되는 처리 함수는 동일하다.</p>\r\n<p style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<figure class=\"imageblock alignLeft\" data-ke-mobilestyle=\"widthOrigin\" data-origin-width=\"515\" data-origin-height=\"537\" style=\"margin: 0px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/cUvZlt/btrydIMXpZL/S8wDfByg1jw7nmBKKwX6DK/img.png\" data-lightbox=\"lightbox\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/cUvZlt/btrydIMXpZL/S8wDfByg1jw7nmBKKwX6DK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUvZlt%2FbtrydIMXpZL%2FS8wDfByg1jw7nmBKKwX6DK%2Fimg.png\" data-origin-width=\"515\" data-origin-height=\"537\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 515px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">ESP32 AsyncWebServer 테스트 동영상</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif;\"><a href=\"https://youtu.be/a-LHbHrdIHY\" target=\"_blank\" rel=\"noopener\" style=\"color: #666666;\">https://youtu.be/a-LHbHrdIHY</a></p>','https://nexp.tistory.com/3373','',3,0,6,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-02-27 13:47:30',1,'2023-02-27 13:47:30','112.222.138.202','','','','','','','','','','','',''),(595,-592,'',595,0,0,'','','html1','[Arduino] ESP32 Web Server Control DC Motor','<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">In this ESP32 web server project, we will create a web page hosted on ESP32 which we will be used to control the speed of a DC motor using the L298N motor driver module. A web page will consist of an HTML slider that will be used to generate variable duty cycle PWM for a DC motor. The slider will be moved to set duty cycle value. In response, this slider value will set the value of the PWM signal generated by ESP32. In short, this variable duty cycle PWM will control the speed of the DC motor.</p>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">We have a similar guide with ESP8266 NodeMCU:</p>\r\n<ul style=\"box-sizing: border-box; border: 0px; margin: 0px 0px 1.5em 3em; padding: 0px; list-style-position: initial; list-style-image: initial; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\"><a href=\"https://microcontrollerslab.com/esp8266-nodemcu-web-server-control-dc-motor-speed/\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\" target=\"_blank\">ESP8266 NodeMCU Web Server Control DC Motor Speed</a></li>\r\n   </ul>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">Previously, we controlled the brightness of an LED connected with ESP32 GPIO pin through the slider web server. You can view it below:</p>\r\n<div class=\"code-block code-block-3\" style=\"border: 0px; margin: 8px 0px; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff; clear: both;\">\r\n   <figure class=\"wp-block-image size-full\" style=\"margin: 0px; max-width: 100%; height: auto;\"><a href=\"https://www.pcbway.com/HighQualityOrderOnline.aspx?from=microcontrollerlab.com2022D\" target=\"_blank\" rel=\" noreferrer noopener\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\"><img src=\"https://microcontrollerslab.com/wp-content/uploads/2022/11/728x280.jpg\" alt=\"\" class=\"wp-image-36540\" style=\"height: auto; max-width: 100%; border: 0px; vertical-align: bottom; box-sizing: border-box;\" /></a></figure>\r\n   </div>\r\n<ul style=\"box-sizing: border-box; border: 0px; margin: 0px 0px 1.5em 3em; padding: 0px; list-style-position: initial; list-style-image: initial; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\"><a href=\"https://microcontrollerslab.com/esp32-pwm-slider-web-server-control-led-brightness/\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\" target=\"_blank\">ESP32 PWM Slider Web Server – Control LED Brightness</a></li>\r\n   </ul>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">In a previous article, we also built an ESP32/ESP8266 slider web server. We used the slider to control the onboard LED of the ESP board and turned it ON for a certain number of seconds. We will use the same method to create the slider as we did in that user guide. You can have a look at that article as well:</p>\r\n<div class=\"code-block code-block-1\" style=\"border: 0px; margin: 8px auto; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff; text-align: center; clear: both;\">\r\n   <div class=\"adsbyvli\" data-ad-slot=\"vi_534064800\" data-id=\"vi_534064800_1\" style=\"border: 0px; padding: 0px; margin: 0px auto !important; width: 300px !important; height: initial !important; visibility: visible !important; opacity: 1 !important; display: flex !important; justify-content: center !important; align-items: center !important; min-height: 250px !important;\"><vli id=\"container_vi_534064800_1\" style=\"visibility: visible; display: block !important; position: relative !important; margin: 0px auto !important;\"><vli id=\"vi_534064800_1\" data-google-query-id=\"CJuLlc2ktf0CFSTkTAIdjsUGew\" style=\"visibility: visible;\">\r\n            <div id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_10__container__\" style=\"border: 0pt none; margin: 0px; padding: 0px; display: inline-block; width: 300px; height: 250px;\"><iframe frameborder=\"0\" src=\"https://ea451a009d08f52b698c908741af5925.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html\" id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_10\" title=\"3rd party ad content\" name=\"\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\" width=\"300\" height=\"250\" data-is-safeframe=\"true\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" role=\"region\" aria-label=\"Advertisement\" tabindex=\"0\" data-google-container-id=\"c\" data-load-complete=\"true\" style=\"border-width: 0px; border-style: initial; margin: 0px; padding: 0px; max-width: 100%; vertical-align: bottom;\"></iframe></div>\r\n            </vli></vli></div>\r\n   </div>\r\n<p class=\"has-white-color has-text-color has-background\" style=\"border: 0px; margin-bottom: 1.5em; padding: 1.25em 2.375em; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #04d562; color: var(--wp--preset--color--white)  !important;\"><a href=\"https://microcontrollerslab.com/esp32-esp8266-web-server-control-outputs-timer/\" style=\"color: #1b78e2; border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none;\" target=\"_blank\"><span style=\"border: 0px; margin: 0px; padding: 0px; text-decoration-line: underline;\">ESP32/ESP8266 Web Server to Control Outputs with a Timer (Pulse Width)</span></a></p>\r\n<ul style=\"box-sizing: border-box; border: 0px; margin: 0px 0px 1.5em 3em; padding: 0px; list-style-position: initial; list-style-image: initial; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">Moreover, you can also go through the recommended reading given below. It is a useful MicroPython guide in which we used L298N motor driver along with ESP32 to control the speed and direction of a DC motor. We will be using a similar approach in this guide as well but will program our ESP32 board using Arduino IDE and include a web server with slider instead to control the speed.</li>\r\n   </ul>\r\n<p class=\"has-white-color has-text-color has-background\" style=\"border: 0px; margin-bottom: 1.5em; padding: 1.25em 2.375em; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #59e370; color: var(--wp--preset--color--white)  !important;\">Recommended Reading:&nbsp;<a href=\"https://microcontrollerslab.com/micropython-dc-motor-l298n-driver-esp32-esp8266/\" style=\"color: #1b78e2; border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none;\" target=\"_blank\"><span style=\"border: 0px; margin: 0px; padding: 0px; text-decoration-line: underline;\">MicroPython Control a DC Motor using L298N Driver with ESP32 and ESP8266</span></a></p>\r\n<h2 id=\"h-esp32-dc-motor-control-web-server-overview\" style=\"border: 0px; margin: 0px 0px 6px; padding: 0px; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 30px; line-height: 1.2em; color: #262626; background-color: #ffffff;\">ESP32 DC Motor Control Web Server Overview</h2>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">We will create an ESP32 web server based on a slider that will be used to control the speed of a DC motor. The web server will consist of a title, “DC Motor Speed Control Web Server,” a slider to set the value that will set the PWM value and the slider value.</p>\r\n<div class=\"wp-block-image\" style=\"border: 0px; margin: 0px 0px 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"margin: 0px auto; display: table; clear: both; max-width: 100%; height: auto; text-align: center;\"><img data-attachment-id=\"28567\" data-permalink=\"https://microcontrollerslab.com/esp32-web-server-dc-motor-speed-l298n-driver/esp32-dc-motor-speed-control-web-server-overview/#main\" data-orig-file=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-DC-Motor-Speed-Control-Web-Server-Overview.jpg\" data-orig-size=\"635,571\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;User&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1638815245&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ESP32 DC Motor Speed Control Web Server Overview\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-DC-Motor-Speed-Control-Web-Server-Overview.jpg\" data-large-file=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-DC-Motor-Speed-Control-Web-Server-Overview.jpg\" decoding=\"async\" width=\"635\" src=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-DC-Motor-Speed-Control-Web-Server-Overview.jpg\" alt=\"ESP32 DC Motor Speed Control Web Server Overview\" class=\"wp-image-28567\" style=\"height: auto; max-width: 100%; vertical-align: bottom; box-sizing: border-box;\" />\r\n      <figcaption style=\"display: table-caption; margin-top: 0.5em; margin-bottom: 1em; font-size: 13px; caption-side: bottom;\">ESP32 Slider Web Server Overview</figcaption>\r\n      </figure>\r\n   </div>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">We will start by uploading our Arduino sketch to our ESP32 board. In our serial monitor, we will obtain the IP address of our module that will help us access the web server. Copy that IP address in a web browser and press enter. The web server will be displayed.</p>\r\n<div class=\"code-block code-block-1\" style=\"border: 0px; margin: 8px auto; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff; text-align: center; clear: both;\">\r\n   <div class=\"adsbyvli\" data-ad-slot=\"vi_534064800\" data-id=\"vi_534064800_2\" style=\"border: 0px; padding: 0px; margin: 0px auto !important; width: 300px !important; height: initial !important; visibility: visible !important; opacity: 1 !important; display: flex !important; justify-content: center !important; align-items: center !important; min-height: 250px !important;\"><vli id=\"container_vi_534064800_2\" style=\"visibility: visible; display: block !important; position: relative !important; margin: 0px auto !important;\"><vli id=\"vi_534064800_2\" data-google-query-id=\"CKe6vs2ktf0CFRMOYAod-i4Lsg\" style=\"visibility: visible;\">\r\n            <div id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_11__container__\" style=\"border: 0pt none; margin: 0px; padding: 0px; display: inline-block; width: 300px; height: 250px;\"><iframe frameborder=\"0\" src=\"https://ea451a009d08f52b698c908741af5925.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html\" id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_11\" title=\"3rd party ad content\" name=\"\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\" width=\"300\" height=\"250\" data-is-safeframe=\"true\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" role=\"region\" aria-label=\"Advertisement\" tabindex=\"0\" data-google-container-id=\"d\" data-load-complete=\"true\" style=\"border-width: 0px; border-style: initial; margin: 0px; padding: 0px; max-width: 100%; vertical-align: bottom;\"></iframe></div>\r\n            </vli></vli></div>\r\n   </div>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">Now we will move the slider to set the PWM value. This will generate an HTTP request with the slider value to our ESP32 board. The slider value will also update to a new one as we move the slider. In our program sketch, we will set the slider value range between 0-255 as we will be using 8-bit resolution for optimization. You can set your own range as well. Hence, the slider can take a minimum value of 0 (motor stop) and a maximum of 255 (maximum speed of motor). When the ESP32 receives the slider value, this value is used to set the PWM signal at the enable pin. Thus the slider will be used to control the speed of the DC motor where the increasing values increase the speed.</p>\r\n<p class=\"has-base-3-color has-accent-background-color has-text-color has-background\" style=\"border: 0px; margin-bottom: 1.5em; padding: 1.25em 2.375em; color: var(--base-3); font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px;\">Note: The speed control pins labelled ENA and ENB on the module, control the speed of the dc motor via the PWM signal</p>\r\n<h3 id=\"h-required-components\" style=\"border: 0px; margin: 0px 0px 16px; padding: 0px; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 25px; line-height: 1.2em; color: #0c0c0c; background-color: #ffffff;\">Required Components</h3>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">For this project we will require the following components:</p>\r\n<ol style=\"box-sizing: border-box; border: 0px; margin: 0px 0px 1.5em 3em; padding: 0px; list-style-position: initial; list-style-image: initial; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">ESP32 board</li>\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">L298N Motor Driver</li>\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">One DC Motor</li>\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">Connecting wires</li>\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">External 3-12 V power supply</li>\r\n   </ol>\r\n<h2 id=\"h-esp32-dc-motor-speed-control-web-server-schematic-diagram\" style=\"border: 0px; margin: 0px 0px 6px; padding: 0px; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 30px; line-height: 1.2em; color: #262626; background-color: #ffffff;\">ESP32 DC Motor Speed Control Web Server Schematic Diagram</h2>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">Assemble the circuit as shown in the connection diagram below.</p>\r\n<div class=\"code-block code-block-1\" style=\"border: 0px; margin: 8px auto; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff; text-align: center; clear: both;\">\r\n   <div class=\"adsbyvli\" data-ad-slot=\"vi_534064800\" data-id=\"vi_534064800_3\" style=\"border: 0px; padding: 0px; margin: 0px auto !important; width: 300px !important; height: initial !important; visibility: visible !important; opacity: 1 !important; display: flex !important; justify-content: center !important; align-items: center !important; min-height: 250px !important;\"><vli id=\"container_vi_534064800_3\" style=\"visibility: visible; display: block !important; position: relative !important; margin: 0px auto !important; width: 300px !important; height: 250px !important;\"><vli id=\"vi_534064800_3\" data-google-query-id=\"COXztc6ktf0CFUddKgodwhwOyQ\" style=\"visibility: visible;\">\r\n            <div id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_12__container__\" style=\"border: 0pt none; margin: 0px; padding: 0px; display: inline-block; width: 300px; height: 250px;\"><iframe frameborder=\"0\" src=\"https://ea451a009d08f52b698c908741af5925.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html\" id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_12\" title=\"3rd party ad content\" name=\"\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\" width=\"300\" height=\"250\" data-is-safeframe=\"true\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" role=\"region\" aria-label=\"Advertisement\" tabindex=\"0\" data-google-container-id=\"e\" data-load-complete=\"true\" style=\"border-width: 0px; border-style: initial; margin: 0px; padding: 0px; max-width: 100%; vertical-align: bottom;\"></iframe></div>\r\n            </vli></vli></div>\r\n   </div>\r\n<div class=\"wp-block-image\" style=\"border: 0px; margin: 0px 0px 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"margin: 0px auto; display: table; clear: both; max-width: 100%; height: auto; text-align: center;\"><img data-attachment-id=\"28562\" data-permalink=\"https://microcontrollerslab.com/esp32-web-server-dc-motor-speed-l298n-driver/esp32-with-dc-motor-and-l298n-connection-diagram/#main\" data-orig-file=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-with-DC-Motor-and-L298N-connection-diagram.jpg\" data-orig-size=\"1067,751\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;User&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1638803416&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ESP32 with DC Motor and L298N connection diagram\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-with-DC-Motor-and-L298N-connection-diagram.jpg\" data-large-file=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-with-DC-Motor-and-L298N-connection-diagram.jpg\" decoding=\"async\" loading=\"lazy\" width=\"1067\" src=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-with-DC-Motor-and-L298N-connection-diagram.jpg\" alt=\"ESP32 with DC Motor and L298N connection diagram\" class=\"wp-image-28562\" srcset=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-with-DC-Motor-and-L298N-connection-diagram.jpg 1067w, https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP32-with-DC-Motor-and-L298N-connection-diagram-768x541.jpg 768w\" sizes=\"(max-width: 1067px) 100vw, 1067px\" style=\"height: auto; max-width: 100%; vertical-align: bottom; box-sizing: border-box;\" />\r\n      <figcaption style=\"display: table-caption; margin-top: 0.5em; margin-bottom: 1em; font-size: 13px; caption-side: bottom;\">ESP32 with L298N Motor Driver and DC Motor connection diagram</figcaption>\r\n      </figure>\r\n   </div>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">We will be using motor A output pins to control this motor. Thus, ENA will set the speed and IN1 and IN2 will set the spinning direction of the motor.</p>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">In&nbsp;<a href=\"https://microcontrollerslab.com/esp32-pinout-use-gpio-pins/\" target=\"_blank\" rel=\"noreferrer noopener\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\">ESP32</a>, PWM is supported through all output pins GPIO only. So choose an GPIO pin to connect with the enable pin of the L298N motor driver. We have used GPIO13 as the PWM pin. In the above schematic, we can see that GPIO13 is connected with ENA, and IN1 and IN2 are connected with GPIO5 and GPIO4 respectively.</p>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">You can choose appropriate GPIO pins when connecting the ESP32 board and the driver module together.</p>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">The dc motor is rated at 6-12V, and requires a large amount of current to start. This is why we will be using an external power source for the dc motor. As we can use any power source ranging from 6-12V, we will incorporate a 9V battery in our case. You can use any other power source.</p>\r\n<div class=\"code-block code-block-1\" style=\"border: 0px; margin: 8px auto; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff; text-align: center; clear: both;\">\r\n   <div class=\"adsbyvli\" data-ad-slot=\"vi_534064800\" data-id=\"vi_534064800_4\" style=\"border: 0px; padding: 0px; margin: 0px auto !important; width: 300px !important; height: initial !important; visibility: visible !important; opacity: 1 !important; display: flex !important; justify-content: center !important; align-items: center !important; min-height: 250px !important;\"><vli id=\"container_vi_534064800_4\" style=\"visibility: visible; display: block !important; position: relative !important; margin: 0px auto !important;\"><vli id=\"vi_534064800_4\" data-google-query-id=\"CMqj89Kktf0CFVvvTAIduBgBFg\" style=\"visibility: visible;\">\r\n            <div id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_14__container__\" style=\"border: 0pt none; margin: 0px; padding: 0px; display: inline-block; width: 300px; height: 250px;\"><iframe frameborder=\"0\" src=\"https://ea451a009d08f52b698c908741af5925.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html\" id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_14\" title=\"3rd party ad content\" name=\"\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\" width=\"300\" height=\"250\" data-is-safeframe=\"true\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" role=\"region\" aria-label=\"Advertisement\" tabindex=\"0\" data-google-container-id=\"g\" data-load-complete=\"true\" style=\"border-width: 0px; border-style: initial; margin: 0px; padding: 0px; max-width: 100%; vertical-align: bottom;\"></iframe></div>\r\n            </vli></vli></div>\r\n   </div>\r\n<div class=\"wp-block-image\" style=\"border: 0px; margin: 0px 0px 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <figure class=\"aligncenter size-full\" style=\"margin: 0px auto; display: table; clear: both; max-width: 100%; height: auto; text-align: center;\"><img data-attachment-id=\"28569\" data-permalink=\"https://microcontrollerslab.com/esp32-web-server-dc-motor-speed-l298n-driver/esp-dc-motor-speed-control-web-server-hardware/#main\" data-orig-file=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP-DC-Motor-Speed-Control-Web-Server-hardware.jpg\" data-orig-size=\"1104,616\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;User&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1638815496&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ESP DC Motor Speed Control Web Server hardware\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP-DC-Motor-Speed-Control-Web-Server-hardware.jpg\" data-large-file=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP-DC-Motor-Speed-Control-Web-Server-hardware.jpg\" decoding=\"async\" loading=\"lazy\" width=\"1104\" src=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP-DC-Motor-Speed-Control-Web-Server-hardware.jpg\" alt=\"ESP DC Motor Speed Control Web Server hardware\" class=\"wp-image-28569\" srcset=\"https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP-DC-Motor-Speed-Control-Web-Server-hardware.jpg 1104w, https://microcontrollerslab.com/wp-content/uploads/2021/12/ESP-DC-Motor-Speed-Control-Web-Server-hardware-768x429.jpg 768w\" sizes=\"(max-width: 1104px) 100vw, 1104px\" style=\"height: auto; max-width: 100%; vertical-align: bottom; box-sizing: border-box;\" /></figure>\r\n   </div>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">You can also read this in-depth guide:</p>\r\n<ul style=\"box-sizing: border-box; border: 0px; margin: 0px 0px 1.5em 3em; padding: 0px; list-style-position: initial; list-style-image: initial; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\"><a href=\"https://microcontrollerslab.com/l298n-dc-motor-driver-module-esp32-tutorial/\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\" target=\"_blank\">Interface L298N DC Motor Driver Module with ESP32</a></li>\r\n   </ul>\r\n<h2 id=\"h-setting-up-arduino-ide-for-esp32-pwm-slider-web-server\" style=\"border: 0px; margin: 0px 0px 6px; padding: 0px; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 30px; line-height: 1.2em; color: #262626; background-color: #ffffff;\">Setting up Arduino IDE for ESP32 PWM Slider Web Server</h2>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">We will use Arduino IDE to program our ESP32 development board. Thus, you should have the latest version of Arduino IDE. Additionally, you also need to install the ESP32 plugin. You can visit the link shown below to have a look.</p>\r\n<ul style=\"box-sizing: border-box; border: 0px; margin: 0px 0px 1.5em 3em; padding: 0px; list-style-position: initial; list-style-image: initial; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">&nbsp;<a href=\"https://microcontrollerslab.com/install-esp32-arduino-ide/\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\" target=\"_blank\">Installing ESP32 library in Arduino IDE and upload code.</a></li>\r\n   </ul>\r\n<h3 id=\"h-installing-espasyncwebserver-library-and-async-tcp-library\" style=\"border: 0px; margin: 0px 0px 16px; padding: 0px; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 25px; line-height: 1.2em; color: #0c0c0c; background-color: #ffffff;\">Installing ESPAsyncWebServer Library and Async TCP Library</h3>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">We will need two libraries to build our ESP32 web server.</p>\r\n<ul style=\"box-sizing: border-box; border: 0px; margin: 0px 0px 1.5em 3em; padding: 0px; list-style-position: initial; list-style-image: initial; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">ESPAsyncWebServer</li>\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">AsyncTCP</li>\r\n   </ul>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">The ESPAsyncWebServer library will help us in creating our web server easily. With this library, we will set up an asynchronous HTTP server. AsyncTCP library will also be incorporated as it a dependency for the ESPAsyncWebServer library. All of these libraries are not available in the Arduino library manager. Therefore, we will have to download and load them on our ESP32 board ourselves.</p>\r\n<div class=\"code-block code-block-1\" style=\"border: 0px; margin: 8px auto; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff; text-align: center; clear: both;\">\r\n   <div class=\"adsbyvli\" data-ad-slot=\"vi_534064800\" data-id=\"vi_534064800_5\" style=\"border: 0px; padding: 0px; margin: 0px auto !important; width: 300px !important; height: initial !important; visibility: visible !important; opacity: 1 !important; display: flex !important; justify-content: center !important; align-items: center !important; min-height: 250px !important;\"><vli id=\"container_vi_534064800_5\" style=\"visibility: visible; display: block !important; position: relative !important; margin: 0px auto !important;\"><vli id=\"vi_534064800_5\" data-google-query-id=\"CKCSx9iktf0CFVlqiwodw48Byg\" style=\"visibility: visible;\">\r\n            <div id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_16__container__\" style=\"border: 0pt none; margin: 0px; padding: 0px; display: inline-block; width: 300px; height: 250px;\"><iframe frameborder=\"0\" src=\"https://ea451a009d08f52b698c908741af5925.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html\" id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_16\" title=\"3rd party ad content\" name=\"\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\" width=\"300\" height=\"250\" data-is-safeframe=\"true\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" role=\"region\" aria-label=\"Advertisement\" tabindex=\"0\" data-google-container-id=\"i\" data-load-complete=\"true\" style=\"border-width: 0px; border-style: initial; margin: 0px; padding: 0px; max-width: 100%; vertical-align: bottom;\"></iframe></div>\r\n            </vli></vli></div>\r\n   </div>\r\n<ul style=\"box-sizing: border-box; border: 0px; margin: 0px 0px 1.5em 3em; padding: 0px; list-style-position: initial; list-style-image: initial; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">To install the ESPAsyncWebServer library for free,&nbsp;<a href=\"https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\" target=\"_blank\">click here to download.</a>&nbsp;You will download the library as a .zip folder which you will extract and rename as ‘ESPAsyncWebServer.’ Then, transfer this folder to the installation library folder in your Arduino IDE.</li>\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\">To install the Async TCP library for free,&nbsp;<a href=\"https://github.com/me-no-dev/AsyncTCP/archive/master.zip\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\" target=\"_blank\">click here to download</a>. You will download the library as a .zip folder which you will extract and rename as ‘AsyncTCP.’ Then, transfer this folder to the installation library folder in your Arduino IDE.</li>\r\n   </ul>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">Likewise, you can also go to&nbsp;<span style=\"border: 0px; margin: 0px; padding: 0px; font-weight: 700;\">Sketch &gt; Include Library &gt; Add .zip</span>&nbsp;Library inside the IDE to add the libraries as well. After installation of the libraries, restart your IDE.</p>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">You can read about ESP32 asynchronous web server here:</p>\r\n<ul style=\"box-sizing: border-box; border: 0px; margin: 0px 0px 1.5em 3em; padding: 0px; list-style-position: initial; list-style-image: initial; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\"><a href=\"https://microcontrollerslab.com/esp32-server-sent-events-sse-web-server-arduino-ide/\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\" target=\"_blank\">ESP32 Server-Sent Events (SSE) Web Server (Arduino IDE)</a></li>\r\n   <li style=\"border: 0px; margin: 0px; padding: 0px;\"><a href=\"https://microcontrollerslab.com/esp32-asynchronous-web-server-espasyncwebserver-library/\" style=\"border: 0px; margin: 0px; padding: 0px; background-color: transparent; transition: color 0.1s ease-in-out 0s, background-color 0.1s ease-in-out 0s; text-decoration-line: none; color: #1b78e2;\" target=\"_blank\">ESP32 Asynchronous Web Server using Arduino IDE and ESPAsyncWebServer library</a></li>\r\n   </ul>\r\n<h2 id=\"h-arduino-sketch-esp32-pwm-slider-web-server\" style=\"border: 0px; margin: 0px 0px 6px; padding: 0px; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 30px; line-height: 1.2em; color: #262626; background-color: #ffffff;\">Arduino Sketch : ESP32 PWM Slider Web Server</h2>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">Open your Arduino IDE and go to&nbsp;<span style=\"border: 0px; margin: 0px; padding: 0px; font-weight: 700;\">File &gt; New.</span>&nbsp;A new file will open. Copy the code given below in that file and save it.</p>\r\n<p style=\"border: 0px; margin-bottom: 1.5em; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff;\">Remember to replace the network credentials.</p>\r\n<div class=\"code-block code-block-1\" style=\"border: 0px; margin: 8px auto; padding: 0px; color: #3a3a3a; font-family: &quot;Open Sans&quot;, sans-serif; font-size: 17px; background-color: #ffffff; text-align: center; clear: both;\">\r\n   <div class=\"adsbyvli\" data-ad-slot=\"vi_534064800\" data-id=\"vi_534064800_6\" style=\"border: 0px; padding: 0px; margin: 0px auto !important; width: 300px !important; height: initial !important; visibility: visible !important; opacity: 1 !important; display: flex !important; justify-content: center !important; align-items: center !important; min-height: 250px !important;\"><vli id=\"container_vi_534064800_6\" style=\"visibility: visible; display: block !important; position: relative !important; margin: 0px auto !important;\"><vli id=\"vi_534064800_6\" data-google-query-id=\"CIX1nNuktf0CFYYbYAod7XwFGQ\" style=\"visibility: visible;\">\r\n            <div id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_17__container__\" style=\"border: 0pt none; margin: 0px; padding: 0px; display: inline-block; width: 300px; height: 250px;\"><iframe frameborder=\"0\" src=\"https://ea451a009d08f52b698c908741af5925.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html\" id=\"google_ads_iframe_/21724377464,22649319876/5340_Microcontrollerslab.com/5340_Microcontrollerslab.com_1_17\" title=\"3rd party ad content\" name=\"\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\" width=\"300\" height=\"250\" data-is-safeframe=\"true\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" role=\"region\" aria-label=\"Advertisement\" tabindex=\"0\" data-google-container-id=\"j\" data-load-complete=\"true\" style=\"border-width: 0px; border-style: initial; margin: 0px; padding: 0px; max-width: 100%; vertical-align: bottom;\"></iframe></div>\r\n            </vli></vli></div>\r\n   </div>\r\n<pre class=\"wp-block-code  language-c\" style=\"border: 0px; margin-top: 0.5em; margin-bottom: 1.5em; padding: 1em; background: rgb(245, 242, 240); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; font-size: 0.95em; line-height: 1.5; overflow: auto; max-width: 100%; box-sizing: border-box; text-shadow: white 0px 1px; word-break: normal; overflow-wrap: normal; tab-size: 4; hyphens: none;\">\r\n   <code class=\" language-c\" style=\"border: 0px; margin: 0px; padding: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 0.95em; line-height: 1.5; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; display: block; overflow-wrap: normal; background: none; text-shadow: white 0px 1px; word-spacing: normal; word-break: normal; tab-size: 4; hyphens: none;\"><span class=\"token macro property\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">#<span class=\"token directive keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">include</span><span class=\"token string\" style=\"border: 0px; margin: 0px; padding: 0px; color: #669900;\">&lt;WiFi.h&gt;</span></span><span class=\"token macro property\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">#<span class=\"token directive keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">include</span><span class=\"token string\" style=\"border: 0px; margin: 0px; padding: 0px; color: #669900;\">&lt;AsyncTCP.h&gt;</span></span><span class=\"token macro property\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">#<span class=\"token directive keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">include</span><span class=\"token string\" style=\"border: 0px; margin: 0px; padding: 0px; color: #669900;\">&lt;ESPAsyncWebServer.h&gt;</span></span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">const</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">char</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">*</span> ssid <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token string\" style=\"border: 0px; margin: 0px; padding: 0px; color: #669900;\">\"Your_SSID\"</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">const</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">char</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">*</span> password <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token string\" style=\"border: 0px; margin: 0px; padding: 0px; color: #669900;\">\"Your_Password\"</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">int</span> ENA_pin <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">13</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">int</span> IN1 <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">5</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">int</span> IN2 <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">4</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span>\r\nString slider_value <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token string\" style=\"border: 0px; margin: 0px; padding: 0px; color: #669900;\">\"0\"</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">const</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">int</span> frequency <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">500</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">const</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">int</span> pwm_channel <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">0</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">const</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">int</span> resolution <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">8</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">const</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">char</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">*</span> input_parameter <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token string\" style=\"border: 0px; margin: 0px; padding: 0px; color: #669900;\">\"value\"</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span>\r\nAsyncWebServer <span class=\"token function\" style=\"border: 0px; margin: 0px; padding: 0px; color: #dd4a68;\">server</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">(</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">80</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">)</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">const</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">char</span> index_html<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">[</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">]</span> PROGMEM <span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span> R\"<span class=\"token function\" style=\"border: 0px; margin: 0px; padding: 0px; color: #dd4a68;\">rawliteral</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">(</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">!</span>DOCTYPE HTML<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;</span>html<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;</span>head<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;</span>meta name<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token string\" style=\"border: 0px; margin: 0px; padding: 0px; color: #669900;\">\"viewport\"</span> content<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=</span><span class=\"token string\" style=\"border: 0px; margin: 0px; padding: 0px; color: #669900;\">\"width=device-width, initial-scale=1\"</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;</span>title<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;</span>DC Motor Speed Control Web Server<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">/</span>title<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;</span>style<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;</span>\r\n    html <span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">{</span>font<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>family<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> Times New Roman<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> display<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">inline</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>block<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> text<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>align<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> center<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">}</span>\r\n    h2 <span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">{</span>font<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>size<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">2.3</span>rem<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">}</span>\r\n    p <span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">{</span>font<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>size<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">2.0</span>rem<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">}</span>\r\n    body <span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">{</span>max<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>width<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">400</span>px<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> margin<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">0</span>px <span class=\"token keyword\" style=\"border: 0px; margin: 0px; padding: 0px; color: #0077aa;\">auto</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> padding<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>bottom<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">25</span>px<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">}</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">.</span>slider <span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">{</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>webkit<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>appearance<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> none<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> margin<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">14</span>px<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> width<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">360</span>px<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> height<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">25</span>px<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> background<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> #<span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">4000ff</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span>\r\n      outline<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> none<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>webkit<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>transition<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">.2</span>s<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> transition<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> opacity <span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">.2</span>s<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">}</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">.</span>slider<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">::</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>webkit<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>slider<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>thumb <span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">{</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>webkit<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>appearance<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> none<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> appearance<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> none<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> width<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">35</span>px<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> height<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">35</span>px<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> background<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span>#<span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">01070</span>a<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> cursor<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> pointer<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">}</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">.</span>slider<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">::</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>moz<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>range<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">-</span>thumb <span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">{</span> width<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">35</span>px<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> height<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span><span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">35</span>px<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> background<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> #<span class=\"token number\" style=\"border: 0px; margin: 0px; padding: 0px; color: #990055;\">01070</span>a<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span> cursor<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:</span> pointer<span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">;</span><span class=\"token punctuation\" style=\"border: 0px; margin: 0px; padding: 0px; color: #999999;\">}</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">/</span>style<span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;</span><span class=\"token operator\" style=\"border: 0px; margin: 0px; padding: 0px; color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;</span></code>\r\n   </pre>','https://microcontrollerslab.com/esp32-web-server-dc-motor-speed-l298n-driver/','',2,0,5,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2023-02-27 17:31:32',0,'2023-02-27 17:31:32','112.222.138.202','','','','','','','','','','','',''),