모노산달로스의 행보
[Purdue] 퍼듀 대학교 2025 글로벌 AI 연수 (5) | 부제 : Forge Ahead 본문
Perdue University 2025 글로벌 연수 - 5
퍼듀 대학교는 미국 인디애나주에 위치한 공립 연구 중심 대학입니다. 공학과 항공 우주, 농업, 컴퓨터 과학 분야에서 우수한 평가를 받고 있는데요, 특히 NASA 우주비행사 닐 암스트롱을 포함해 많은 유명 동문을 배출한 것으로 잘 알려져 있습니다.
이러한 명문 대학교에서 매년 한국 학생들을 초청하여 K-SW Square에서 교육을 진행하고 있습니다. 이러한 좋은 기회를 경기대학교 소프트웨어 중심대학의 혜택으로 여름 방학 기간 동안 다녀올 수 있게 되었습니다. 이하 내용은 프로그램 진행 동안 일어난 경험이 기술되어 있습니다.
07/07 (Monday)
계획에서 실행으로
월요일은 납땜기를 켜는 것으로 시작되었습니다. 테스트를 수월하게 진행하기 위하여 ESP32 기기의 핀 헤더를 납땜했습니다. 납땜 경험이 많은 팀원이 있어 빠르게 진행 할 수 있었습니다.
한 팀원이 납땜을 진행하는 동안 본인은 다른 일에 집중했습니다. 이전에 조사한 Meshtastic을 실제로 ESP32 기기에 설치하여 통신이 가능한지 테스트를 진행했습니다.
Meshtastic은 인터넷 없이도 장거리 무선 메시지 전송이 가능한 오픈소스 메쉬 네트워크 통신 장치입니다. 해당 펌웨어를 LoRa 통신이 가능한 기기에 설치하여 사용이 가능합니다. 그리고 기기의 Region과 Channel을 동일하게 설정하면 자동으로 하나의 Mesh에 포함되게 됩니다. 그렇게 되면 같은 Mesh에 속한 기기끼리 메시지를 주고받을 수 있습니다.
오전 시간은 그렇게 실내 통신 테스트를 성공적으로 마쳤습니다.
오후에는 얼마나 먼 거리에서 통신이 가능한지 살펴보았습니다. 우리는 디바이스를 들고 이동하며 테스트를 진행했고, 캠퍼스 내에서는 약 300-400m 정도 거리까지 통신이 가능한 것으로 결론을 내렸습니다.
그렇게 진행을 하던 중 우리는 하나의 보드에 Meshtastic 펌웨어와 아두이노 코드를 같이 업로드할 수 없다는 사실을 알게 되었습니다. 따라서 Meshtastic 기능을 커스텀하지 않으면 기획 단계에서 원했던 방향과 벗어날 수 있다는 판단을 내렸습니다.
우리는 의견을 다시 모으기 시작했습니다. 몇몇 팀원은 Meshtastic 방식은 커스텀하기 복잡해 보이니 아두이노로 돌아가자는 의견을 냈습니다. 반대로 본인은 아직 Meshtastic을 조사한지 얼마 안 되었으므로 약간의 조사를 더 해볼 필요가 있다고 언급했습니다.
긴 대화 끝에, 우리는 Meshtastic과 아두이노팀으로 나누어 두 방식을 모두 테스트해 보기로 결정했습니다. 두 방식을 모두 시도하고 성과를 비교해 보는 것도 재미있을 것이라 생각이 들었기 때문입니다.
07/08 (Tuesday)
MCU 학습
오늘은 본격적으로 센서와 LoRa를 연동하는 작업을 수행하고자 하였습니다. 이를 위해 아두이노에 익숙한 동료에게 간단한 설명을 부탁했습니다.
가장 먼저 브레드보드(BreadBoard)의 선 구조를 이해했습니다.
그리고 전자 회로에서 자주 사용되는 기본 개념들을 이해하였습니다.
VCC: 전원(Power)을 공급하는 선입니다.
GND: 접지(Ground) 역할을 합니다.
AO: 아날로그 신호(Analog Output)를 의미합니다.
DO: 디지털 신호(Digital Output)를 의미합니다.
온습도 센서 등은 아날로그 신호를 사용하며, ESP32는 디지털 신호를 사용하는 구조입니다. 따라서 이 두 신호를 연결하려면 ESP32의 ADC 핀을 사용해야 합니다. ADC 핀은 아날로그 신호를 디지털 신호로 변환해 주는 역할을 합니다.
이러한 기초 개념을 바탕으로, 센서와 ESP32 간의 연결을 보다 명확하게 이해할 수 있게 되었습니다.
이후 실제로 연결을 진행하고, 코드로 센서 테스트를 진행했습니다. 그 결과 두 센서 모두 정상적으로 작동함을 확인할 수 있었습니다. 그동안 사용하지 않았던, 하드웨어 위주의 개발을 해보니 상당히 흥미로웠습니다.
센서 연결을 확인했으니, 이제 본격적으로 Meshtastic과 센서 제어를 동시에 사용할 수 있도록 시도 할 계획입니다.
오후에는 교수님께서 알고 계시는 양봉 매장을 방문하였습니다. 다양한 양봉 도구들과 여러 종류의 꿀을 구경할 수 있었습니다.
이곳에서는 실제 양봉업에 종사하고 있는 분과 대화를 나눌 기회도 있었습니다. 우리가 시도하려는 것과 유사한 스마트 기기를 도입한 사례를 소개해 주셨고, 해당 기기들이 가격이 매우 비싸다는 점이 가장 큰 부담이라고 말씀해 주셨습니다.
또 벌의 소리에 집중하는 것도 좋다는 조언을 해 주셨습니다. 벌 비행 소리의 높낮이에 따라서 그들의 행동이 결정되고 다음 행동을 예측할 수 있기 때문입니다.
그렇게 많은 정보들을 얻은 뒤 매장을 떠나게 되었습니다.
더운 날씨에 지친 우리를 보셨는지, 교수님께서 아이스크림 가게를 제안하셨습니다. 근방에서 유명한 아이스크림 가게 Lindy Freeze로 다양한 맛의 아이스크림을 맛 볼 수 있었습니다.
날씨의 영향인지, 지친 몸에 단 음식을 먹어서인지 정말 환상적인 맛이었습니다. 이후 KSW에서 약간의 작업을 마무리 한 뒤, 하루가 마무리되었습니다.
07/09 (Wednesday)
Meshtastic과의 작별
이번 수요일은 무척이나 힘든 하루였습니다. 아침부터 퇴근 이후까지 내내 Meshtastic을 공부했습니다. 어떻게든 Meshtastic을 사용함과 동시에 노드 간 조작을 실현하고 싶었습니다.
하지만 Meshtastic 펌웨어가 존재하는 상태로, 센서 데이터 전송과 하드웨어 제어 신호까지 시도하는 것은 매우 힘들었습니다. 마치 잘 차려진 요리에 새로운 토핑을 더하기 힘든 상황과 같았습니다. Akita Switching, Remote Hardware 등 여러 문서를 확인하고, 유튜브 영상 자료와 레딧의 글을 모두 살펴보았습니다. 하지만 결국 원활한 작동을 위해 추가적인 연산 기기가 필요하다는 결론을 내리게 되었습니다.
따라서 긴 시간 고민 한 끝에, ESP32 디바이스 하나만 사용하는 경우에는 Meshtastic 사용이 적합하지 않다고 판단했습니다. 조금 아쉽기는 했지만, 욕심을 버리고 처음부터 프로토콜을 제작하는 것에 합류하기로 결정했습니다.
07/10 (Thursday)
PlatformIO와 씨름
오늘은 Meshtastic 조사를 그만두겠다고 팀원과 이야기를 한 뒤, 프로토콜 작업에 합류했습니다. 아주 기초적인 LoRa 간 통신은 Heltec V3 pingpong예제를 통해서 구현할 수 있었습니다. ArduinoIDE를 사용하면 Heltec ESP32 DEV Library에서 제공하는 예제 코드를 유용하게 사용할 수 있습니다. 이후에는 기존에 본인이 짜두었던 센서 코드와 결합하여, 센서로 데이터를 받아 전송하는 코드를 완성했습니다.
문제는 그렇게 되었을 때 하나의 ino 파일에 코드가 너무 길게 들어가게 되었던 것입니다. 따라서 파일 구조 분리를 편하게 하고자 Visual Studio Code에서 PlatformIO를 사용해 보기로 결정했습니다.
그렇게 6시간 동안 PlatformIO를 통해 코드를 업로드하려고 매달렸지만, 결국 실패했습니다. Heltec ESP32 V3 보드에 링킹을 할 수 없었고, 마땅한 정보도 찾기 힘들었기 때문입니다. 결국 다시 ArduinoIDE로 돌아와 거기서 작업을 이어가자고 결론을 내렸습니다.
이 날 점심으로는 Einstein Bagel을 먹었습니다. 부드러운 베이글 사이에 원하는 재료를 넣어서 샌드위치를 맛볼 수 있습니다. 베이글 하나는 양이 조금 부족하지만, 맛은 훌륭했습니다.
미국에 살며 외식비용을 감당하기 힘들다고 느껴지는 하루기도 했습니다.
07/11 (Friday)
하드웨어를 구상하다
금요일이 되었을 무렵, 작동의 기초가 되는 코드는 모두 완성된 상태였습니다. 이제 센서들이 LoRa를 통해 메시지를 주고받으며, 데이터를 수집할 수 있게 되었습니다.
물론 멀티홉, 통신 프로토콜 등 네트워크 기능을 개선하기 위한 코드는 앞으로도 계속 추가되어야 합니다. 하지만 가장 기본적인 기능을 먼저 개발한 후, 점차 향상하는 전략을 취하고자 했습니다.
오후에는 본격적으로 하드웨어 구성에 대한 이야기를 나누었습니다. 처음에는 3D 프린터를 통해 우리 디바이스에 맞은 컨테이너를 제작하고자 했습니다. 하지만 교수님은 프로토타입이라는 취지에 맞는 새로운 방식을 우리에게 제안해 주셨습니다.
교수님은 아래와 같이 이야기해 주셨습니다.
3D 프린터를 사용하는 것은 생각보다 많은 시간이 소요될 수 있다. 실제 현장의 환경까지 고려하면 작업은 더욱 까다로워진다. 날씨나 벌레와 같은 외부 위협을 완벽하게 차단할 수 있는 컨테이너를 3D 프린팅 하는 일은 결코 간단하지 않다. 프로토타입 개발 단계에서는 이러한 제약을 극복하기 위해 더 큰 창의성이 필요하다. 예를 들어, 플라스틱 컵이나 박스와 같은 일상적인 물건을 활용하는 것도 유용한 대안이 될 수 있다.
하드웨어를 만드는 것에는 생각보다 고려 할 점이 많았습니다. 우리는 다시 브레인스토밍을 시작했고, 최종적으로 작은 플라스틱 박스를 선택했습니다. 여기에 몇 개의 환기구를 만들고, 기기를 적절하게 배치하면 좋은 프로토타입이 될 것이라는 생각이 들었습니다.
이후 몇 가지 잔업을 처리하고 어느덧 퇴근 시간이 다가왔습니다.
정말 눈 깜짝 할 사이에 3주차 활동이 끝났습니다.
이번 주에는 본격적인 작업 성과가 나기 시작 한 느낌도 들어 조금 뿌듯하기도 합니다.
다음 주에는 디바이스를 실제로 농장에 설치하는 계획을 실현 할 수 있었으면 좋겠습니다.
'Experience > Purdue' 카테고리의 다른 글
[Purdue] 퍼듀 대학교 2025 글로벌 AI 연수 (6) | 부제 : Prototype (6) | 2025.07.18 |
---|---|
[Purdue] 퍼듀 대학교 2025 글로벌 AI 연수 (4) | 부제 : Long Weekend (6) | 2025.07.08 |
[Purdue] 퍼듀 대학교 2025 글로벌 AI 연수 (3) | 부제 : Carpe diem (3) | 2025.07.06 |
[Purdue] 퍼듀 대학교 2025 글로벌 AI 연수 (2) | 부제 : 천천히 하지만 올바르게 (1) | 2025.07.01 |
[Purdue] 퍼듀 대학교 2025 글로벌 AI 연수 (1) | 부제 : 이방인 (3) | 2025.06.27 |