본문 바로가기
반응형

IT204

[Python] eMail 보내기 기획 중인 RPA 프로젝트 중에서 자동으로 데일리 이메일 발송을 기획하고 있다. 처음에는 가장 많이 사용하는 지메일을 사용하려고 했다. 문제는 보안이 강화되면서 일반적으로 사용하는 SMTP 방법은 통하지가 않았다. 구글 클라우드를 사용하면 방법이 있는 듯 했다. 전에 구글 클라우드를 사용한 경험이 있었다. 그런데 비용을 지불하는 것으로 변경이 되었다. 당장은 무료 사용이지만 말이다. $300까지는 무료라고 하는데 그래도 내키지 않았다. 그래서 네이버 메일로 방향을 틀었다. 샘플로 검색이 되는 코드들이 잘 동작을 한다. 모방은 창조의 어머니라고 했던가? 그래도 다른 사람들의 블로그에 있는 코드들은 가져다 쓰기 뭐했다. 그래서 ChatGPT에 코드 생성을 시켰다. import smtplib from emai.. 2023. 3. 26.
[Python] Google News Scrawling - GoogleNews Google News를 크롤링하고자 했다. 이유는 RPA - Robotic Process Automation을 이용해서 구글 영문 뉴스를 크롤링하기 위해서다. 이유는? 키워드를 통해서 구글 뉴스를 검색하고 다시 ChatGPT를 이용해서 요약을 하고, 지메일을 통해서 지인들에게 데일리로 보내주기 위한 RPA를 위함이다. 그런데 Crawling으로 검색을 해서 레퍼런스를 살펴보니 마땅한 것이 없었다. 유튜브에서는 생각보다 마땅한걸 찾진 못했고 구글링을 조금 해 보니 RSS를 파싱하면 좀더 나은 결과가 나오겠다는 생각이 들었다. 구글에서 RSS 서비스 중이었고 RSS를 파싱하면 더 나은 결과가 나올 것은 뻔했다. 그런데 더 나은 솔루션을 찾았다. GoogleNews가 바로 그것이었다. 아주 간단하게 사용할 수.. 2023. 3. 26.
AI로 이미지 생성하기 - sporky.ai AI를 이용한 모델을 그리거나 ChatGPT를 이용하는 방법들에 대한 관심을 갖게 되었다. 자주 찾는 사진 사이트에 AI를 이용한 그림들이 많이 올라오면서 부터다. 실제 모델을 찍은 것과 같은 품질이 정말 대단했다. 물론 모델은 어찌보면 인공적인 느낌이 나긴 했지만 어떤 사진은 정말 실제로 찍은 것 같기도 했다. 다음의 그림은 내가 생선한 사진 중의 하나다. 여러차례 시도를 해서 얻은 사진 중의 하나지만 대단하다. 난 AI를 교안을 만들 때 사용하면 좋겠다는 생각을 했다. 예를 들면 모바일 어플리케이션을 만드는 그림이 슬라이드에 넣기 위해 필요하다고 가정해 보자. "the man who make a mobile application" 이라는 프롬프트를 입력해서 다음과 같은 그림이 생성이 되었다. 파워포인.. 2023. 3. 25.
[Python] 문자열 추출하기 RPA를 하면서 가장 많이 하는 것 중의 하나가 문자열을 다루는 것이다. 긴 문자열에서 일부를 추출하는 것 말이다. 바로 이전에 다뤘던 포스팅의 내용 중에서 문자열을 다루는 부분에 대해서 정리해 보고자 한다. https://sohyemin.tistory.com/827 [Python] PDF에서 정보 추출하기 (RPA) 최근들어 RPA (Robotic Process Automation)에 관심을 가지게 되었다. RPA라는 용어를 몰랐을 뿐이지 나는 나름대로 업무자동화를 이용하고 있었다. Python으로 다량의 엑셀 자료를 이용해서 자료를 만들고 sohyemin.tistory.com 다음의 문자열은 "건축물관리대장"에서 pdfminer를 통해서 extraction한 것으로 개인정보 부분은 변경을 했기 때문에.. 2023. 3. 18.
[Python] PDF에서 정보 추출하기 (RPA) 최근들어 RPA (Robotic Process Automation)에 관심을 가지게 되었다. RPA라는 용어를 몰랐을 뿐이지 나는 나름대로 업무자동화를 이용하고 있었다. Python으로 다량의 엑셀 자료를 이용해서 자료를 만들고 추출하는 작업, 이미지를 핸들링해서 PDF로 출력을 하던 프로그램도 있었다. 최근에는 Python에 대한 업무 자동화에 대한 강좌를 할 수 있겠냐는 문의가 왔다. 그래서 검색을 하다보니 업무자동화가 RPA라는 것을 알았다. 여기의 코드는 강의를 염두에 둔 것은 아니고, 포스팅을 하기에 적합한 코드도 아닌 것 같지만 RPA에 대해서 얘기를 하기 위해서 올려 둔다. 이 코드는 잘게 잘라서 별도의 포스팅으로 올릴 예정이다. 스토리는 이렇다. 강의 준비 요청을 받고 RPA에 대한 강의를.. 2023. 3. 18.
#12/12 아두이노 로봇 HowTo 최종 코드 /****************************************************** * AutoRobot * made by Sohyemini * 2020.10.04 ******************************************************/ #include #include #include #include /* * 두 개의 바퀴를 위한 디지털 Input/output D1에서 D4까지 선언 * D1, D2는 왼쪽 바퀴, D3, D4는 오른쪽 바퀴임 */ int LeftWheel_D1 = 2; int LeftWheel_D2 = 3; int RightWheel_D3 = 4; int RightWheel_D4 = 5; // 초음파 센서를 움직이기 위한 서보 모터 핀.. 2022. 11. 4.
#11/12 아두이노 로봇 HowTo LCD 모듈 LCD 모듈은 로봇의 주행 성능과는 무관하지만 차량의 상태 정보를 나타낼 수 있고 어렵지 않게 구현을 할 수 있어 택했다. 1602 Character LCD로 16개 문자를 두 줄에 표시할 수 있는 저렴한 LCD이다. ​ ​ ​ 앞의 사진에서 보는 바와 같이 연결해야 할 핀들이 상당히 많다. 우리가 가진 디지털 핀들의 개수가 몇 개 안남았기 때문에 당장은 연결을 할 수 없는 상황이다. 하지만 I2C LCD Interface를 사용하면 문제를 해결할 수 있다. ​ ​ ​ 라이브러리를 추가해야 한다. 이미 만들어진 라이브러리를 사용할 것이기 때문이다. 개발 환경에서 툴→ 라이브러리 관리를 선택해서 LiquidCrystal I2C를 설치한다. ​ I2C란? IIC라고도 부르며 아이-스퀘어-씨로 읽.. 2022. 11. 4.
#10/12 아두이노 로봇 HowTo 적외선 거리 측정 모듈 (HS-IRSM) 적외선 거리 측정 모듈은 다음과 같이 생겼다. 핀의 연결은 하나의 데이터 라인을 아두이노와 연결을 하고 전원을 각각 연결한다. ​ LED가 두 개가 있어 한쪽에서 적외선을 내 보내고 한쪽에서는 받는다. 지금까지 썼었던 초음파 센서는 음파임에도 우리가 들을 수 없었고 적외선은 우리가 볼 수 있는 가시광선 영역에서 벗어나기 때문에 볼 수 없다. 하지만 적외선의 경우에는 디지털 카메라로 볼 수가 있다. 다음의 사진은 모듈을 로봇의 전면 하단부에 장착을 하고 전원을 준 상태로 사진을 찍은 것이다. 투명했던 LED 한쪽에서 빛이 나옴을 볼 수 있다. 이렇게 적외선을 사용하는 경우에는 카메라로 적외선이 나오는지 여부는 확인을 할 수 있다. 적외선을 많이 사용하는 것이 리모콘.. 2022. 11. 4.
#9/12 아두이노 로봇 HowTo 스텝 2. 업그레이드 1차로 자율 주행 로봇을 만들고 나서 아쉬운 점을 나열을 했었다. 센서의 한계로 인해서 장애물을 감지 못하여 예상했던 대로 움직이지 못하는 경우가 꽤나 있었다. 거실에서 자율 주행을 시작해 놓으면 한 동안 이리저리 왔다 갔다를 반복하다가 주방의 어딘가에서 아이방 어딘가에서 헛바퀴만 도는 경우가 많았다. 그래서 조금 업그레이드를 해 보려고 몇 가지 주문을 했다. ​ 블루투스 모듈 (HC-06) 적외선 거리 측정 모듈 (HS-IRSM) LCD 모듈 ​ 자율 주행보다는 수동으로 조정을 하는 것도 재미있겠다 싶어 블루투스 모듈을 주문을 했다. 사실 리모콘 모듈을 가지고 먼저 테스트를 해 봤는데 실수로 리모콘 입력부(IR)가 쇼트가 나서 탄 이유도 있었지만 리모콘은 IR이 입력이 수신부 정면.. 2022. 11. 4.
#8/12 아두이노 로봇 HowTo 자동 주행 알고리즘 전원을 넣고 나면 장애물을 피해서 배터리가 다 닳을 때까지 계속 이동하는 로봇이다. 우리가 가지고 있는 정보는 초음파 센서로 들어오는 정보에 의존을 한다. 그래서 loop 함수를 다음과 같이 작성을 했다. ​ 초반에도 설명을 한 바와 같이 loop 함수는 무한 반복이 되는 함수다. 그 무한 반복되는 함수가 아래의 20여줄의 함수이며 이 함수에 의해서 로봇은 장애물을 계속 피해가며 움직이게 된다. void loop() { Detect_Front(); // 정면 거리 측정 if(distanceFront > STOP_DISTANCE) // 정의된 거리보다 크면 앞으로 전진하고 물체 확인 { Robot_Go(); } else { // 정면의 거리가 정의된 거리보다 작을 경우 Detect_Ob.. 2022. 11. 4.
#7/12 아두이노 로봇 HowTo 로봇 동작시키기 로봇의 동작은 전진, 후진, 좌회전, 우회전, 180도 회전 등으로 나눌 수 있을 것이다. L298N은 각도 조절을 할 수 없기 때문에 경험치에 의해서 각도를 조절해 보려고 한다. 우선 배터리의 전압에 따라서도 회전 속도가 달라지니 각자 테스트를 해 보는 수 밖에 없을 것이다. 모터의 회전 자체는 변경을 할 수 있는데 여기서는 속도는 기본으로 두고 진행을 할 예정이다. 100% 배터리가 충전이 되었을 때 테스트를 하는 것이 좋겠다. 배터리가 많이 닳아 있는 상태라면 100% 충전이 되었을 경우 예상보다 더 회전을 할 수 있을 것이다. void loop() { Robot_RightTurn(); Robot_LeftTurn(); Robot_180Turn(); } /* * 로봇을 180도 회전시.. 2022. 11. 4.
#6/12 아두이노 로봇 HowTo 초음파 센서 초음파 센서는 소리가 초당 340 미터를 움직이는 것을 이용하여 한쪽에서 초음파를 쏘고 다른쪽에서는 돌아온 초음파를 받아 두 신호간의 시간을 재서 거리를 측정하는 방식이다. 다른 방법으로 설명을 하자면 산에서 야호하고 소리치고 나서 메아리가 들려온 시간을 재면 거리를 알 수 있다는 것이다. ​ ​ 초음파 센서는 Echo Pin이 5v가 아닌 3v를 사용하기 때문에 저항을 달아줘야 한다고 한다. 그런데 마침 1k 저항이 없이 220k 4개를 연결을 해서 사용을 했다. ​ ​ 앞의 그림과 같이 순서대로 전원, 트리거, 에코, 접지의 순서대로 아두이노와 연결을 하면 되고 트리거와 에코는 각각 8, 9번 핀에 할당을 했다. ​ ​ 그리고 아직까지 사용되지는 않았지만 20 센티미터 내에 물체가 감지되.. 2022. 11. 4.
반응형