"1조-세 공돌이"의 두 판 사이의 차이
Mie2022101 (토론 | 기여) (→관련 기술의 현황 및 분석(State of art)) |
Mie2022101 (토론 | 기여) (→특허 출원 내용) |
||
(같은 사용자의 중간 판 39개는 보이지 않습니다) | |||
35번째 줄: | 35번째 줄: | ||
:이러한 조사 결과를 통해, 현재 상용화되고 있는 사물인터넷 서비스는 대부분 대규모 사업장을 대상으로 하고 있으며 앞으로 소매업에 도입하기 위한 연구 및 개발이 부족한 실정임을 알 수 있다. | :이러한 조사 결과를 통해, 현재 상용화되고 있는 사물인터넷 서비스는 대부분 대규모 사업장을 대상으로 하고 있으며 앞으로 소매업에 도입하기 위한 연구 및 개발이 부족한 실정임을 알 수 있다. | ||
− | [[파일: | + | [[파일:2022-1_1조_그림1.png|800픽셀|가운데]] |
:하지만, 이러한 대규모 사업장이 아닌 중소규모의 사업장에서도 사물인터넷을 활용한다면 업무를 더욱 효율적으로 처리할 수 있다. 특히, 지속적으로 소모가 있는 제품을 관리해야 하는 경우 사물인터넷을 활용한다면 사람이 일일이 확인하지 않아도 수량을 파악할 수 있다. | :하지만, 이러한 대규모 사업장이 아닌 중소규모의 사업장에서도 사물인터넷을 활용한다면 업무를 더욱 효율적으로 처리할 수 있다. 특히, 지속적으로 소모가 있는 제품을 관리해야 하는 경우 사물인터넷을 활용한다면 사람이 일일이 확인하지 않아도 수량을 파악할 수 있다. | ||
74번째 줄: | 74번째 줄: | ||
::*스트레인 게이지(strain gage) | ::*스트레인 게이지(strain gage) | ||
:::스트레인 게이지는 로드셀의 핵심이 되는 장치로 물체의 스트레인, 즉 변형을 측정하는 데 사용되는 저항형 센서다. 스트레인 게이지는 일반적으로 아래와 같은 구조를 보인다. | :::스트레인 게이지는 로드셀의 핵심이 되는 장치로 물체의 스트레인, 즉 변형을 측정하는 데 사용되는 저항형 센서다. 스트레인 게이지는 일반적으로 아래와 같은 구조를 보인다. | ||
− | [[파일: | + | [[파일:2022-1_1조_그림2.png|400픽셀|가운데]] |
− | |||
:::가운데 위치한 금속저항체가 스트레인 게이지의 핵심이라고 할 수 있다. 이 금속저항체에 힘이 가해지면 단면적에 변화하면서 저항값이 변화하게 된다. 이 저항값의 변화로 인해 측정되는 전기신호가 달라지는 것이다. | :::가운데 위치한 금속저항체가 스트레인 게이지의 핵심이라고 할 수 있다. 이 금속저항체에 힘이 가해지면 단면적에 변화하면서 저항값이 변화하게 된다. 이 저항값의 변화로 인해 측정되는 전기신호가 달라지는 것이다. | ||
81번째 줄: | 80번째 줄: | ||
::*로드셀의 구조와 원리 | ::*로드셀의 구조와 원리 | ||
:::로드셀은 앞서 설명한 스트레인 게이지를 활용하여 힘을 측정할 수 있는 센서다. 부착된 스트레인 게이지에 힘이 가해지면 로드셀과 함께 스트레인 게이지가 늘어나거나 수축된다. 이러한 변화에 의해 스트레인 게이지의 저항값이 변화하고 측정되는 전기신호가 변하는 것을 이용하여 하중을 측정하는 것이다. 로드셀의 구조는 아래와 같다. | :::로드셀은 앞서 설명한 스트레인 게이지를 활용하여 힘을 측정할 수 있는 센서다. 부착된 스트레인 게이지에 힘이 가해지면 로드셀과 함께 스트레인 게이지가 늘어나거나 수축된다. 이러한 변화에 의해 스트레인 게이지의 저항값이 변화하고 측정되는 전기신호가 변하는 것을 이용하여 하중을 측정하는 것이다. 로드셀의 구조는 아래와 같다. | ||
− | + | [[파일:2022-1_1조_그림3.jpg|400픽셀|가운데]] | |
− | [[파일: | ||
− | |||
:::위의 이미지에서 볼 수 있듯이 하나의 로드셀에는 4개의 스트레인 게이지가 부착되어 있다. 하나의 스트레인 게이지만 있어도 힘을 측정할 수는 있다. 하지만 하나의 스트레인 게이지만 사용하면 출력되는 전기신호가 매우 작고 오차가 발생한다. 그렇기 때문에 스트레인 게이지를 로드셀의 인장 및 압축 방향으로 각각 2개씩 부착하여 로드셀을 제작한다. | :::위의 이미지에서 볼 수 있듯이 하나의 로드셀에는 4개의 스트레인 게이지가 부착되어 있다. 하나의 스트레인 게이지만 있어도 힘을 측정할 수는 있다. 하지만 하나의 스트레인 게이지만 사용하면 출력되는 전기신호가 매우 작고 오차가 발생한다. 그렇기 때문에 스트레인 게이지를 로드셀의 인장 및 압축 방향으로 각각 2개씩 부착하여 로드셀을 제작한다. | ||
90번째 줄: | 87번째 줄: | ||
::*로드셀의 종류 | ::*로드셀의 종류 | ||
:::로드셀의 종류는 형태에 따라 크게 빔형, 원주형, S자형, 다이아그램형의 4가지 종류로 구분된다. 각 형태별 로드셀은 아래의 모습과 같다. 아래의 로드셀이 가장 기본적인 형태이며, 이 외에도 다양한 형태의 로드셀을 제작할 수 있다. 일반적으로 하중을 측정할 때 가장 많이 사용되는 형태는 ‘빔형 로드셀’이다. | :::로드셀의 종류는 형태에 따라 크게 빔형, 원주형, S자형, 다이아그램형의 4가지 종류로 구분된다. 각 형태별 로드셀은 아래의 모습과 같다. 아래의 로드셀이 가장 기본적인 형태이며, 이 외에도 다양한 형태의 로드셀을 제작할 수 있다. 일반적으로 하중을 측정할 때 가장 많이 사용되는 형태는 ‘빔형 로드셀’이다. | ||
− | [[파일: | + | [[파일:2022-1_1조_표1.png|600픽셀|가운데]] |
− | |||
:*아두이노 | :*아두이노 | ||
97번째 줄: | 93번째 줄: | ||
::아두이노의 보드는 8비트 AVR 마이크로 컨트롤러와 프로그래밍 및 다른 서킷과의 결합을 용이하게 해주는 부속품으로 구성되어 있다. 현재 Uno와 같은 주요 모델은 14개의 디지털 I/O핀을 제공하고 있다. 이 중 6개의 핀은 PWN(pulse-width modulated) 신호를, 다른 6개의 핀은 디지털 I/O핀으로 혼용이 가능한 아날로그 입력 단자다. | ::아두이노의 보드는 8비트 AVR 마이크로 컨트롤러와 프로그래밍 및 다른 서킷과의 결합을 용이하게 해주는 부속품으로 구성되어 있다. 현재 Uno와 같은 주요 모델은 14개의 디지털 I/O핀을 제공하고 있다. 이 중 6개의 핀은 PWN(pulse-width modulated) 신호를, 다른 6개의 핀은 디지털 I/O핀으로 혼용이 가능한 아날로그 입력 단자다. | ||
::아두이노는 크기, 입출력 단자의 개수, 부가적인 기능 등에 따라 다양한 모델이 있다. 그 중 대표적으로 활용되고 있는 종류는 아래의 표와 같다. | ::아두이노는 크기, 입출력 단자의 개수, 부가적인 기능 등에 따라 다양한 모델이 있다. 그 중 대표적으로 활용되고 있는 종류는 아래의 표와 같다. | ||
− | [[파일: | + | [[파일:2022-1_1조_표1.png|600픽셀|가운데]] |
− | + | ||
112번째 줄: | 108번째 줄: | ||
*기술 로드맵 | *기술 로드맵 | ||
− | [[파일: | + | [[파일:2022-1_1조_그림4.jpg|800픽셀|가운데]] |
− | + | ||
*특허조사 및 특허 전략 분석 | *특허조사 및 특허 전략 분석 | ||
− | + | [[파일:2022-1_1조_표3.png|600픽셀|가운데]] | |
+ | |||
+ | ::포장용기 재고 데이터베이스를 주기적으로 모니터링하여 자동으로 재고 부족 포장용기 주문을 추천할 수 있는 포장용기 자동 주문발주 장치를 제공하고자 한다. | ||
+ | ::재고 부족 포장용기의 종류를 기초로 포장용기 주문 입찰 문서를 생성하고 적어도 하나의 포장용기 발주처에 의한 가격 입찰을 기초로 특정 포장용기 발주처 정보를 추천에 포함시킬 수 있는 사용자 맞춤형 자동 발주 시스템 및 방법을 제공하고자 한다. | ||
+ | |||
+ | [[파일:2022-1_1조_표5.png|600픽셀|가운데]] | ||
+ | ::냉장고에 저장되는 식품의 상태정보의 입력이 가능하고 감지한 현재 보관량 및 상기 식품정보가 표시되는 표시부를 포함하는 동시에 상기 보관량이 최소 요구량 미만인 경우 인터넷 냉장고에 주문 요청 신호 또는 주문 실행 신호를 출력하는 마이크로 프로세서를 갖추는 식품 용기가 상기 인터넷 냉장고와 연동하여 동작됨에 따라 상기 인터넷 냉장고의 외관에 부착된 디스플레이 수단을 통해 상기 식품의 주문을 요청하거나 자동 접속하여 식품 주문을 실행하는 인터넷 냉장고의 식품 자동 주문 시스템을 제공하는 데 있다 | ||
+ | |||
+ | [[파일:2022-1_1조_표6-2.png|600픽셀|가운데]] | ||
+ | ::쌀통 내의 쌀 재고량을 측정하여 기준량 이하로 쌀이 남아있는 것으로 감지되었을 때, 통신망을 통해 쌀 공급업체에 배달주문이 자동으로 이루어지도록 하는 쌀통 재고량 관리를 위한 데이터통신 시스템을 제공하는 것을 그 목적으로 한다 | ||
+ | ::거절사유 : 인용한 발명과 기술적으로 큰 차이가 없고 이를 이용해서 해당 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 발명할 수 있 는 것 | ||
+ | |||
+ | [[파일:2022-1_1조_표6.png|600픽셀|가운데]] | ||
+ | ::소모품의 무게 측정을 통하여 소모품 잔량을 실시간으로 확인하고 발주하여 소모품 재고를 관리할 수 있도록 하는 소모품 자동발주 시스템을 제안하고자 한다. | ||
+ | ::거절사유 : 인용발명 쌀 수납장치 및 이 장치를 이용하여 쌀의 재고량을 관리하는 시스템을 통상의 기술자가 단순 설계 변경하여 쉽게 도출 가능한 시스템임 | ||
+ | |||
+ | |||
+ | *특허전략 | ||
+ | :특정 물품에 대해 자동주문을 하는 시스템에 관한 특허는 이미 과거부터 출원된 것들이 존재했다. 그 특허들을 살펴보면, 먼저 1) 포장용기 자동 주문발주 장치는 무게가 아닌 전산을 통해 남은 수량을 파악하고, 별도의 프로그램을 통해 공급사와 사용자에게 각각 알림이 가게 된다. 하지만 본 과제에서는 재고 파악에 무게를 이용하며, 자동 주문에는 오픈마켓을 이용하기 때문에 근본적으로 작동원리가 달라 문제가 되지 않을 것으로 보인다. | ||
+ | :재고 파악에 무게를 이용한 특허들도 존재했는데, 2) 인터넷 냉장고의 식품 자동주문 시스템은 2002년에 출원된 특허로 이미 그 특허가 소멸되었다. 3) 쌀 수납장치 및 이 장치를 이용하여 쌀의 재고량을 관리하는 시스템의 경우에는 특허가 거절되었는데, 인용한 일본의 특허와 기술적으로 큰 차이가 없고, 해당 기술분야에서 통상의 기술자가 일본의 특허를 이용하여 쉽게 개발할 수 있다는 이유 때문에 거절되었다. 4) 소모품 자동발주 시스템은 3) 쌀 수납장치를 인용하였는데, 이 역시 인용한 특허를 통해 쉽게 도출 가능한 시스템이라는 이유로 특허 출원이 거절되었다. | ||
+ | :따라서 국내에서는 본 과제를 통해 개발된 제품을 판매하는 것에 대해 특허상 문제가 없을 것으로 사료되며, 해외에서의 판매에 대해서는 조금 더 면밀한 조사가 필요하다. | ||
====시장상황에 대한 분석==== | ====시장상황에 대한 분석==== | ||
*경쟁제품 조사 비교 | *경쟁제품 조사 비교 | ||
− | + | [[파일:2022-1_1조_표7.png|800픽셀|가운데]] | |
+ | :국내와 해외에 모두 무게를 측정하여 재고를 파악하고 자동주문을 하는 비슷한 제품이 있었다. 아마존의 smart dash smart shelf는 개인 및 기업을 목표 고객으로 하고 세계 최대의 유통 플랫폼인 아마존을 이용하는 것이 특징이며, 3개의 크기 옵션을 제공한다. 아마존 제품의 가격 19.99달러는 가격 책정에 있어서 기준점이 될 수 있을 것이다. 아마존 내의 상품만 주문 가능하다는 점이 이 제품의 최대 장점이자 단점이다. 국내 등 아마존이 진출하지 않은 곳에서는 아마존을 이용하기 힘들기 때문에 비교우위를 가질 수 있을 것이다 | ||
+ | :국내 회사인 트라이포드랩의 weightrip은 개인 및 기업을 목표고객으로 하고, 많은 수익을 낼 수 있는 정기구독을 지향한다. 하지만 실제 제품 판매 페이지나 회사 홈페이지 등이 없어 자세한 정보를 찾아볼 수 없었다. | ||
+ | :올트 역시 국내 회사로 IoT Smart Scale은 경쟁제품 중에서 가장 강력한 기능을 지원한다. 경쟁 제품들과 달리 최대 25개 종류의 부품을 적재하고 무게 측정의 정밀도가 높아 소형 부품의 수량도 정확하게 파악할 수 있다. 각 저울별로 품목 개수와 위치가 확인이 가능하며, 저울마다 LED가 있어 불출지시가 가능하다. 기업들을 대상으로 하며, 일반적으로 사용할 수 있는 제품은 아니고 올트의 자체 솔루션으로 자사에서 판매하는 소모품(볼트, 너트 등)만을 대상으로 사용할 수 있는 제품이라는 한계가 있다. 일반적으로 사용할 수 있는 자유도 면에서 비교우위를 가지지만 올트사가 사업을 확장한다면 강력한 경쟁자가 될것이다 | ||
+ | |||
*마케팅 전략 제시 | *마케팅 전략 제시 | ||
− | + | [[파일:2022-1_1조_그림5.jpg|500픽셀|가운데]] | |
===개발과제의 기대효과=== | ===개발과제의 기대효과=== | ||
====기술적 기대효과==== | ====기술적 기대효과==== | ||
− | + | :사물인터넷 시장의 규모는 꾸준히 성장세를 보이고 있지만 대부분 대규모 상업 시설에 그 비중이 편중되어 있어 본 프로젝트에서는 중소 규모의 사업장에서도 효율적으로 재고를 관리할 수 있도록 지정된 제품의 무게 측정을 통하여 해당 정보를 등록할 수 있는 하드웨어 기반 모듈을 개발한다. 또한 사용량 정보를 데이터화 하여 보여주고 제품 잔여량이 10% 이하로 표시되면 사용자가 등록해 놓은 구매 링크를 바탕으로 자동 재주문을 하는 기능을 구현할 수 있도록 PC 프로그램을 개발하기 때문에 기존의 개발사의 전용 쇼핑몰을 통해서만 구입하는 구조가 아닌 사용자가 가격비교를 하고 직접 결정할 수 있도록 설정되었기 때문에 가격 경쟁성이 우수하다는 장점이 있을 것으로 보이며 생산 규모의 맞춤형 제작으로 산업내 자동화를 촉진시키고 불필요한 시간적 인력 소모를 줄이고 원활한 생산조달이 이루어져 전반적인 업무 효율을 향상시키는 효과를 가져올 수 있을 것으로 기대된다. | |
+ | :또한 본 프로젝트에서 적용하고자 하는 무게 감지를 통한 제품 소모량 파악 기술의 안정화는 기존의 기업들의 전용 혹은 독자적인 서비스 운영방식에서 벗어나 대중적 사용 가능성을 제고시켜 사용자에게 선택권을 부여하는 방향으로 추진될 것으로 전망되며 이로 인해 산업 시설, 무인 마켓, 개인 주거 공간 등 다양한 분야에 시스템적 결합을 통하여 전자 기기간의 호환성을 높인 제품들의 수요가 늘어날 것으로 보인다. | ||
+ | |||
====경제적, 사회적 기대 및 파급효과==== | ====경제적, 사회적 기대 및 파급효과==== | ||
− | + | :본 프로젝트에서 목표로 하는 로드셀을 활용한 무게 감지 자동 주문 시스템은 중소 규모의 사업장에서 공간의 제약을 적게 받고 생산 규모에 맞춤형으로 제작을 목표로 하고 있기에 공간 점유율이 낮고 사용 편의성이 높을 것으로 예상되며 설정된 무게 기준내에서는 모든 품목들을 자유롭게 등록하여 사용할 수 있게 설계되었다. 또한 개인 주거 공간에서도 필요에 따라 활용이 가능하다. 예를 들어 쌀, 세탁 세제, 화장품 등 생활용품의 소모도를 측정하여 PC로 전송해주어 사용자가 편리하게 주거 시설의 전반적인 소요량을 체크할 수 있어 시간 효율을 높여주는 등 사용자 만족도가 높게 형성될 수 있을 것으로 파악된다. 제작 비용 또한 시중에 판매되고 있는 스마트 저울 모델과 가격대가 유사하게 책정되어 소비자 가격 부담을 줄여주고 선택의 범위를 넓혀주어 더 실용성 있는 제품을 선호할 수 있도록 기획하여 판매의 폭을 넓힐 수 있을 것으로 예상한다. | |
+ | :*사용 정보를 공유하여 내수 시장의 안정화 | ||
+ | ::사업장을 운영하는 사용자가 등록한 제품의 연, 월, 일 단계로 사용량에 대한 통계를 판매처에 공유하여 판매사가 주수요 품목에 대한 공급계획을 미리 수립하고 원재료를 조달할 수 있는 시간을 확보할 수 있을 것으로 예상된다. 따라서 불용재고와 같은 과잉공급 현상을 줄이고 불특정한 수요의 가격 변동폭을 안정화시킬 수 있을 것으로 기대된다 | ||
+ | |||
+ | :*사회 계층 간의 실용성을 높이고 기술적 접목으로 분야의 확장가능성 | ||
+ | ::사회 계층간의 디지털 기술 능력에 차이가 있어 서비스 이용과 정보 획득에 불평등이 발생하는 등 문제점이 존재한다. 이러한 정보취약계층의 디지털 소외 현상을 줄이고자 본 프로젝트에서 개발하는 방향성은 간결한 조작으로 실시간 정보를 시각적으로 보여주고 버튼 클릭 한번 혹은 등록이후의 변동성이 없을 경우 자동 주문이 가능하기에 디지털에 대한 이해도가 떨어져도 충분히 실용성 있게 사용할 수 있도록 초점을 맞췄기에 산업 시설 이외에도 고령층, 장애인 등 사회약자에 특화되어 사용범위가 확대되고 가정용 AI로봇 등과 기술적 결합을 통해 돌봄 서비스 범위를 확대하여 사회적 고부가가치를 만들어 갈 수 있을 것으로 보인다. | ||
===기술개발 일정 및 추진체계=== | ===기술개발 일정 및 추진체계=== | ||
====개발 일정==== | ====개발 일정==== | ||
− | + | [[파일:2022-1_1조_표8.png|800픽셀|가운데]] | |
====구성원 및 추진체계==== | ====구성원 및 추진체계==== | ||
− | + | [[파일:2022-1_1조_표9.png|800픽셀|가운데]] | |
+ | [[파일:2022-1_1조_그림6.jpg|800픽셀|가운데]] | ||
==설계== | ==설계== | ||
===설계사양=== | ===설계사양=== | ||
====제품의 요구사항==== | ====제품의 요구사항==== | ||
− | + | [[파일:2022-1_1조_표10.png|800픽셀|가운데]] | |
+ | |||
+ | [[파일:2022-1_1조_그림7.jpg|800픽셀|가운데]] | ||
+ | |||
====설계 사양==== | ====설계 사양==== | ||
− | + | *하드웨어 | |
+ | |||
+ | :*무게 측정 오차 ±0.2kg 이내 | ||
+ | ::본 프로젝트에서의 무게 감지 모듈은 중소 규모의 사업장에 특화하여 제작을 목표로 하고 있기 때문에 산업 현장에서 재고관리의 효율성을 높이는 것이 중요하게 작용하기 때문에 무게를 측정하는 센서의 정확도가 높아야 한다. 따라서 무게 측정에 정밀도가 높은 센서를 사용하고 미끄럼 방지 고무 패킹을 사용하여 바닥에 밀착시켜 무게 중심이 흔들리는 것을 줄여 주어 상대오차가 ±0.2kg 이내로 선정될 수 있도록 설계하고자 한다. | ||
+ | |||
+ | :*최대 하중 150kg 이내 | ||
+ | ::시중에서 판매되고 있는 체중계 모델과 본 프로젝트에서의 무게 감지 모듈 응용 방향성이 유사한 관계로 기존의 일반적인 체중계 측정 범위인 150kg~200kg를 적용 기준으로 잡았다. 또한 중소 규모의 사업장의 크기와 보편적으로 사용되고 있는 제품의 무게가 100kg 미만인 특성을 고려해봤을 때 150kg이내의 무게 적용 기준을 잡고 설계하고자 한다. | ||
+ | |||
+ | :*프로토타입 크기 30cm * 30cm * 5cm이내 (가로 * 세로 * 높이) | ||
+ | ::기존의 체중계 모델과 디자인을 유사하게 제작하여 소비자에게 친숙함을 주어 가격대비 성능면에서 더욱 차별성이 있고 효율성이 높음을 강조하고자 무게 감지 모듈 크기를 30cm * 30cm * 5cm이내로 제작하고자 한다. | ||
+ | |||
+ | :*배터리 지속시간 336시간 이상 | ||
+ | ::일반적인 사업장의 운영 특성을 분석하였을 때 일 평균 12시간에서 24시간으로 운영시간대가 불일치하므로 일 24시간을 기준으로 가정을 했을 때 2주간 배터리 교체 없이 사용을 하기 위해선 배터리 지속시간이 336시간 이상이어야 한다. 따라서 이러한 설계 사양을 만족할 수 있는 회로를 구성하고 소프트웨어를 설계하고자 한다. | ||
+ | |||
+ | :*최소 연결거리 10m 이상 | ||
+ | ::무게 감지 모듈과 PC간의 연결을 필요로 하기 때문에 무선 통신 기술을 적용하여야 한다. 단 각각의 사업장 구조 및 공간 밀도가 상이하므로 신호 감쇄 등 원인으로 목표 연결 거리까지 원활한 통신이 어려울 수 있는 관계로 신호 증폭기 등 부가적인 기술적 융합성도 고려하여 설계 사양을 설정한다. | ||
+ | |||
+ | *소프트웨어 | ||
+ | |||
+ | :*자동 주문 알고리즘 작동 성공률 90% 이상 | ||
+ | ::본 설계에 있어서 자동 주문 알고리즘의 구현은 핵심 기능 부분 중에 하나이다. 시제품을 제작하여 지정된 구매 링크를 등록하고 자동 주문 명령을 실행하면 그 이후로 추가적인 실행 명령이 필요없이 자동으로 주문이 완료되는 편리성을 제공하기 위함이다. 소프트웨어 설계에서 다양한 경우의 수를 파악하여 작동 오류를 최소화하고 하드웨어에서도 결함의 존재 여부를 파악하여 최종적으로 프로토타입에서 작동 성공률 90% 이상이어야 한다. | ||
+ | |||
+ | :*프로그램 설치가 간편하고, 사용방법이 직관적 | ||
+ | ::무게 감지 자동 주문 모듈은 사용 편리성에 최적화가 되어 있어야 시장에서의 경쟁력을 갖출 수 있다. 컴퓨터 조작을 어려워하는 계층에게도 손 쉽게 설치를 하고 사용할 수 있도록 매뉴얼을 제공하고 프로그램 다운로드 링크를 통해 설치만 하면 프로그램상 간단하게 구성된 데이터 표를 확인이 가능하고 조작 버튼 또한 간결하게 설계를 하여 소비자 맞춤형으로 제작 목표를 설정한다. | ||
+ | |||
+ | :*연결이 끊겼을 때 모듈 자체에 데이터 저장 | ||
+ | ::시스템 구동 중 예상치 못한 오작동 혹은 서버 과열로 발생한 연결 끊김 현상을 미연에 방지하고자 연결이 끊겼을 때 모듈 자체에 데이터가 저장되도록 설계 방향을 정하였다. 데이터의 손실을 최소화하여 사용자가 이용에 있어서 불편함이나 서비스 품질의 만족도가 떨어지는 상황을 미리 개발 단계에서 고려하여 향상시키는 방향으로 제작을 한다. | ||
===개념설계안=== | ===개념설계안=== | ||
− | + | ====작동 원리 및 구조==== | |
+ | [[파일:2022-1_1조_그림8.jpg|800픽셀|가운데]] | ||
+ | |||
+ | :무게측정모듈(A)에 그림의 생수와 같이 물품을 올려놓으면 무게가 측정되고, 측정된 무게를 PC(B)로 전송하면 PC 프로그램을 통해 일별, 주별, 월별 등의 사용량 통계를 제공해주는 사용량 통계 기능과 물품이 거의 다 떨어졌을 때 자동주문을 해주는 자동주문 기능 등을 제공한다. | ||
+ | |||
+ | [[파일:2022-1_1조_그림9.jpg|800픽셀|가운데]] | ||
+ | |||
+ | :무게측정모듈(A)은 케이스(A – 1) 내부에 아두이노 회로(A – 2)를 부착한 형태로 구성된다. 케이스(A - 1) 부분은 아두이노 회로를 보호하고 사용 대상 물품을 올려놓고 그 무게를 아두이노 회로에 전달하는 역할을 하고, 아두이노 회로(A – 2)는 전달받은 무게를 측정하고 이를 PC에 무선통신을 통해 전달하는 역할을 한다. | ||
+ | |||
+ | :아두이노 회로(A – 2)는 로드셀(A –2 – a), 아두이노(A – 2 – b), 로드셀 증폭기(A – 2 – c), 배터리(A – 2 – d)로 구성되어 있다. 로드셀(A –2 –a)은 로드셀에 가해진 무게를 전기신호로 바꾸어 무게를 측정할 수 있게 해주는 센서이다. 로드셀 증폭기(A –2 –c)는 로드셀에서 출력된 작은 전기신호를 아두이노가 인식할 수 있는 큰 신호로 증폭시켜주는 역할을 한다. 아두이노(A – 3 – c)는 로드셀과 로드셀 증폭기를 통해 출력된 전기신호를 무게로 환산하여 무게를 측정하고 측정된 무게를 무선통신을 통해 PC전송해주는 역할을 한다. 배터리(A – 2- d)는 아두이노가 동작하는데 필요한 전력을 공급해주는 역할을 한다. | ||
+ | |||
+ | *무게측정모듈 | ||
+ | |||
+ | :*로드셀 종류 | ||
+ | |||
+ | ::빔형, S자형, 원주형 등 다양한 종류의 로드셀이 있지만 부피가 작고 가격이 싸며 일반적으로 많이 사용되는 빔형 로드셀과 체중계용 로드셀 2가지를 비교해본다. | ||
+ | |||
+ | [[파일:2022-1_1조_표11.png|500픽셀|가운데]] | ||
+ | |||
+ | ::*로드셀 동작원리 | ||
+ | [[파일:2022-1_1조_그림10.jpg|600픽셀|가운데]] | ||
+ | |||
+ | :::로드셀의 한쪽 부분을 고정시키고 다른 부분에 힘을 가하게 되면 로드셀에 변형이 생기게 된다. 로드셀에는 스트레인 게이지가 부착되어 있고 변형이 생김에 따라 스트레인 게이지 내부의 저항값이 달라지게 되고, 스트레인 게이지를 흐르는 전류에도 변화가 생긴다. 로드셀에 가해지는 하중이 클수록 전류의 변화도 커지게 되고 이를 이용하여 하중을 측정한다. 로드셀은 금속의 변형을 이용하기 때문에, 서포트를 두지 않고 의도적으로 변형이 생기게 만들 부분이 필요하다. | ||
+ | |||
+ | ::*빔형 로드셀 | ||
+ | [[파일:2022-1_1조_그림11.jpg|300픽셀|가운데]][[파일:2022-1_1조_그림12.jpg|300픽셀|가운데]] | ||
+ | |||
+ | |||
+ | :::빔형 로드셀을 옆쪽에서 바라본 그림이다. 빔형 로드셀은 그림과 같이 한쪽 끝에만 서포트를 두고 반대편 끝에 힘을 가하여 로드셀에 변형이 생기도록 한다. | ||
+ | |||
+ | ::*체중게용 로드셀 | ||
+ | [[파일:2022-1_1조_그림13.jpg|300픽셀|가운데]][[파일:2022-1_1조_그림14.jpg|300픽셀|가운데]] | ||
+ | :::체중계용 로드셀을 위쪽에서 바라본 그림이다. 안쪽 사각형(빨간색)과 바깥쪽 사각형(파란색)으로 되어있는 구조인데, 바깥쪽 사각형에선 로드셀을 지지하고, 가운데 있는 원 부분에 하중을 가하게 되면 안쪽 사각형(빨간색) 부분에서 변형이 생기도록 하고 안쪽에는 서포트를 두지 않는다. | ||
+ | |||
+ | ::빔형 로드셀과 체중계용 로드셀을 비교했을 때 가장 큰 차이점은 서포트를 두는 형태라고 할 수 있다. 빔형 로드셀은 한쪽 끝에만 서포트를 둘 수 있고 체중계용 로드셀은 바깥쪽 테두리를 따라서 서포트를 둘 수 있다 | ||
+ | |||
+ | :*로드셀 개수 | ||
+ | [[파일:2022-1_1조_표12.png|600픽셀|가운데]] | ||
+ | |||
+ | ::무게측정모듈에 설치할 로드셀의 수이다. 로드셀의 수가 적으면 제작비용이 저렴해진다는 장점이 있지만,무게를 측정하는 물품의 무게중심이 케이스의 중앙에서 벗어나 가장자리로 향할수록 구조적 안정성이 떨어진다는 단점이 있다. | ||
+ | |||
+ | :*케이스 형상 | ||
+ | ::*케이스 외부 형상 | ||
+ | [[파일:2022-1_1조_그림15.jpg|400픽셀|가운데]] | ||
+ | |||
+ | :::실제 사용시 사용자가 물품을 올려놓고 사용할 케이스의 외부 형상은 단순하며 활용도가 높은 직육면체 모양으로 하고, 중소규모의 사업장을 목표로 하므로 크기는 30cm * 30cm 정도로 한다. | ||
+ | ::*로드셀 부착방식 | ||
+ | |||
+ | :::로드셀을 케이스에 부착할 때 주의할 사항들은 다음과 같다. | ||
+ | :::*(1) 로드셀은 움직이지 않게 단단히 고정되어 있어야 한다. | ||
+ | :::*(2) 하중이 로드셀의 하중을 가하는 부분에 정확히 전달되어야 한다. | ||
+ | :::*(3) 로드셀에는 수직 방향의 하중 외에 비틀림 등이 전달되어서는 안된다. | ||
+ | :::*(4) 로드셀의 변형이 일어나는 부분에는 서포트가 없어야한다. | ||
+ | |||
+ | [[파일:2022-1_1조_그림16.jpg|400픽셀|가운데]] | ||
+ | |||
+ | [[파일:2022-1_1조_그림17.jpg|400픽셀|가운데]] | ||
+ | |||
+ | :::로드셀을 설치할 때는 로드셀의 변형이 일어나는 부분에 변형이 생길 수 있도록 서포트를 없애기 위하여 케이스 하판의 높이를 낮춘다. 그 후 로드셀을 단단히 고정시키기 위하여 로드셀 고정부를 두고, 나사로 결합한다. 케이스 상판과 로드셀 중앙의 하중을 가하는 부분이 정확히 만나도록 하여 케이스 상판 위에 올려놓는 물품의 무게를 정확하게 측정할 수 있도록 한다. | ||
+ | |||
+ | |||
+ | ::*상판과 하판의 결합방식 | ||
+ | :::케이스 상판과 하판이 분리되지 않도록 상판과 하판을 결합해주어야 하는데, 이 때 케이스 상판에 올려놓는 물품의 하중이 모두 로드셀에 전달되어야 하며, 케이스의 결합부위에 전달되지 않도록 주의하여야 한다 | ||
+ | [[파일:2022-1_1조_그림18.jpg|500픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림19.jpg|300픽셀|가운데]] | ||
+ | |||
+ | :::케이스 상판의 나사구멍은 나사와 딱 맞는 원형으로 하고, 케이스 하판의 나사구멍은 둥근 직사각형 모양으로 한다. 케이스 상판과 하판이 멀어지는 방향으로 힘이 작용할 때는 나사에 힘이 전달되어 케이스가 분리되지 않고, 케이스 상판과 하판이 가까워지는 방향으로 힘이 작용할 때는 나사에 힘이 전달되지 않고 로드셀에 모두 전달된다. | ||
+ | |||
+ | |||
+ | :*무선연결방식 | ||
+ | [[파일:2022-1_1조_표13.png|700픽셀|가운데]] | ||
+ | ::블루투스는 와이파이에 비해 낮은 속도, 낮은 전력 소모, 통신 거리의 제약 등을 장단 점으로 갖는다. 본 프로젝트에서 전송하는 데이터는 블루투스의 전송속도로도 충분할 것으로 예상되며, 전송속도는 큰 단점이 되지 않을 것이다. 블루투스는 와이파이에 비해 사용시전력, 대기전력 모두에서 큰 우위를 가지고 있고, 와이파이는 블루투스에 비해 상대적으로 통신 가능 거리에서 제약이 없다는 장점이 있지만, 연결을 위해 외부 인터넷망과 라우터가 필요하다는 단점이 있다. 배터리 사용시간과 통신가능거리는 모두 사용자에게 중요한 요소이므로 적절한 타협이 필요할 것이다. | ||
+ | |||
+ | :*아두이노 종류 | ||
+ | [[파일:2022-1_1조_표14.png|700픽셀|가운데]] | ||
+ | ::3종류의 아두이노를 비교해보았다. 우선 크기는 아두이노 마이크로가 나노보다 가로로 3mm가 더 길지만 프로토타입 제작시 공간에 충분히 여유가 있을 것으로 추정되기 때문에 유의미한 차이는 아닐 것이다. 아두이노 마이크로는 상대적으로 저렴하지만, Bluetooth를 지원하지 않아 Bluetooth를 이용하기 위한 추가적인 모듈이 필요하고, 모듈을 위한 추가적인 비용과 공간이 필요하게 된다. | ||
+ | ::Nano 33 IoT와 Nano 33 BLE 2개 모델의 가장 큰 차이는 블루투스 버전과 와이파이 지원여부이다. Nano 33 IoT는 Bluetooth 4.2를 지원하며 이론상 최대 통신 가능거리는 10m이고, Nano 33 BLE는 Bluetooth 5.0을 지원허묘 이론상 최대 통신 가능거리는 40m이다. 다만 Bluetooth 5.0을 이용하기 위해서는 PC 측에도 5Bluetooth 5.0 이상의 버전이 사용 가능해야 허며, 그 미만의 버전이라면 하위호환으로 PC측의 버전에 맞게 연결된다. 또한 Nano 33 IoT 모델은 Wi-Fi를 지원하지만, Nano 33 BLE 모델은 Wi-Fi를 지원하지 않는다. | ||
+ | ::현재시점에서 Nano 33 BLE의 가격이 크게 올라 Nano 33 IoT보다 약 20,000원 정도가 더 비싸 가격차가 크게 나는 점 또한 고려해야 할것이다. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | :*전원 공급 방식 | ||
+ | [[파일:2022-1_1조_표15.png|700픽셀|가운데]] | ||
+ | ::3가지 종류의 전원공급방식을 비교해보았다. 우선 전원공급방식은 크게 어댑터 방식과 배터리 방식으로 나누어볼 수 있다. 어댑터방식은 전원공급을 위해 항상 유선 연결이 필요하며, 배터리 방식은 배터리를 통해 외부 전원 연결 없이도 사용이 가능하다. 어댑터 방식은 유선연결로 인해 설치공간에 제약이 생긴다는 단점이 있지만 배터리 교체나 충전 등을 신경 쓸 필요가 없어 편리하다는 장점이 있다. | ||
+ | ::배터리 방식은 배터리가 다 떨어졌을 때 교체를 해주는 교체식 방식과 충전을 해주는 충전식 방식이 있다. 리튬폴리머 배터리를 사용했을 때는 제품 가격이 높아져 소비자의 초기 투자 비용이 증가하지만, 추가적인 배터리 구입이 필요 없기 때문에 유지비가 들지 않는다. 배터리 용량을 자유롭게 선택할 수 있다는 장점도 있다. 하지만 배터리 충전을 위한 추가적인 모듈이 필요하고, 장기간 사용하였을 때 배터리 성능 자체에 열화가 발생해서 충전 주기가 점점 짧아질 수 있다는 단점이 있다. | ||
+ | |||
+ | *소프트웨어 | ||
+ | |||
+ | :본 프로젝트에서 구현할 PC 프로그램은 하드웨어에서 측정한 무게 데이터를 받아 사용자에게 필요한 정보를 제공한다. PC 프로그램은 크게 아래와 같은 알고리즘으로 동작한다. | ||
+ | [[파일:2022-1_1조_그림20.jpg|500픽셀|가운데]] | ||
+ | |||
+ | |||
+ | :가장 기본적으로 사용되는 데이터는 하드웨어를 통해 측정된 제품의 실시간 무게 데이터다. 이 데이터는 아두이노와 연결된 블루투스 또는 와이파이 장치를 통해 PC로 전송되어 저장된다. PC프로그램은 이렇게 저장된 데이터를 활용하여 동작한다. PC 프로그램의 기능은 크게 무게 데이터의 출력과 자동 주문으로 구분할 수 있다. | ||
+ | :첫째, 무게 데이터의 출력은 전송된 데이터를 화면에 출력해 사용자에게 무게와 관련된 정보를 제공해주는 기능이다. 시간 간격을 설정해 프로그램의 메인 화면에 출력하는 기능과 저장된 데이터를 기반으로 일간, 주간, 월간 재고의 무게 변화를 확인할 수 있는 그래프 출력 기능으로 구분할 수 있다. | ||
+ | :둘째, 자동 주문 기능은 본 프로젝트의 핵심 기능 중 하나로 재고의 무게가 일정 기준 이하가 되면 저장된 구매 링크로 접속해 자동으로 필요한 양의 재고를 주문해주는 기능이다. 본 프로젝트에서는 생수를 기준으로 10kg(20%) 이하가 되면 자동으로 주문하는 것으로 설정했다. 자동 주문을 위해 웹페이지를 제어할 수 있어야 한다. 또한, 자동 주문이 이루어진 날짜, 시간, 주문 수량 등을 별도로 저장해 사용자가 주문 내역을 확인할 수 있는 기능이 제공된다. | ||
+ | :이러한 기능을 가진 PC 프로그램을 일반 사업장을 운영하는 사용자가 쉽게 프로그램을 이해하고 사용할 수 있도록 직관적인 GUI를 구현할 예정이다. | ||
+ | |||
+ | :*파이썬 웹페이지 제어 모듈 | ||
+ | |||
+ | |||
+ | [[파일:2022-1_1조_표16.png|700픽셀|가운데]] | ||
+ | |||
+ | ::온라인 쇼핑몰에서 물품을 구매하는 과정을 자동화하기 위해서는 프로그램 자체에서 해당 물품을 구매할 수 있는 웹페이지를 열고, 제어할 수 있어야 한다. 이러한 기능을 구현하기 위해 파이썬에서 활용이 가능한 웹페이지를 제어할 수 있는 모듈 3가지를 비교해보았다. | ||
+ | ::첫째, ‘셀레니움’은 파이썬을 통해 실제로 웹페이지를 열고 사용자가 동작하는 것처럼 웹페이지를 제어할 수 있는 모듈이다. 웹페이지를 직접 열어서 실행하기 때문에 버튼 클릭, 스크롤 조작 등을 활용해 자동화 테스트가 가능하다. 단, 웹페이지를 직접 실행하기 때문에 상대적으로 속도가 느려진다는 단점이 있다. | ||
+ | ::둘째, ‘뷰티풀수프’는 웹페이지의 주요 정보를 파이썬에서 다루기 쉬운 형태로 변환하는 것에 적합한 모듈이다. 다른 모듈에 비해 구현한 코드가 가볍고 빠르지만, 스스로 웹페이지를 여는 기능을 제공하지 않아 다른 모듈과 함께 사용해야 한다. | ||
+ | ::셋째, ‘리퀘스트’는 주로 http 문서를 가져오기 위해 사용되는 모듈이다. 다른 모듈에 비해 http 문서를 가져오는 속도가 빨라 많이 사용되지만 동적 페이지 요소를 처리하지 못한다는 단점이 있다. | ||
+ | ::이번 프로젝트에서 필요한 기능은 구매 링크가 있는 웹페이지를 열고, 웹페이지를 조작하여 필요한 물품을 주문하는 것이다. 이를 위해서는 웹페이지를 열어 정보를 읽고, 웹페이지 내의 버튼, 입력창, 스크롤 등을 조작할 수 있는 기능이 필요하다. | ||
+ | |||
+ | |||
+ | :*파이썬 GUI 구성 모듈 | ||
+ | |||
+ | [[파일:2022-1_1조_표17.png|700픽셀|가운데]] | ||
+ | |||
+ | ::일반 사용자가 프로그램을 쉽게 사용하기 위해서는 단순하고 직관적인 형태의 GUI가 제공되어야 한다. GUI의 구현을 위해 파이썬에서 활용할 수 있는 GUI 구현 모듈을 비교해보았다. | ||
+ | ::첫째, Tkinter는 파이썬에 기본적으로 내장되어 있는 GUI 모듈이다. 이미 내장된 모듈이기 때문에 별도의 설치가 필요없고, 코드의 구현이 쉽고 간결하다. 코드의 구현이 쉬운 만큼, 타 모듈에 비해 기능이 한정적이고 미적인 요소가 부족하다는 단점이 있다. | ||
+ | ::둘째, PyQT는 별도로 제공되는 디자인툴인 Qt Designer를 활용하는 GUI 모듈이다. 별도의 디자인툴을 제공하는만큼 미적 요소를 갖춘 GUI의 구현이 가능하고, 대부분의 기능을 지원한다. 하지만 별도의 설치가 필요하고, 프로그램을 상업용으로 개발할 시에는 유료 라이센스의 구입이 필요하다. | ||
+ | ::셋째, PyGTK 역시 PyQT처럼 Glade라는 별도의 디자인툴을 활용해 GUI를 구현할 수 있는 모듈이다. PyQT보다는 부족하지만 Tkinter보다는 다양한 기능을 제공한다. 다만, 윈도우 개발환경보다는 리눅스 개발환경에 적합한 모듈이다. | ||
+ | ::현재 진행 중인 프로젝트에서는 버튼을 클릭했을 때, 새로운 창이 열려 저장된 정보를 보여주거나, 특정한 함수가 동작되도록 하는 기능이 필요하다. GUI에서 미적인 요소 역시 중요한 부분이지만, 현 프로젝트에서는 미적인 요소보다는 기능적인 요소에 집중하는 것이 맞다는 판단을 내렸다. | ||
+ | |||
+ | :*프로그램 인터페이스 구성 | ||
+ | |||
+ | |||
+ | [[파일:2022-1_1조_표18.png|700픽셀|가운데]] | ||
+ | |||
+ | ::프로그램의 인터페이스는 프로그램의 코드를 구현함에 있어 어떻게 구현하게 될 것인지를 설정하는 요소이자, 사용자에게 어떤 정보에 초점을 두고 제공할 것인가를 결정하는 요소이다. 이를 결정하기 위해 두 가지 방안을 고려해보았다. | ||
− | + | ::첫째, 단순형 인터페이스는 무게 측정 모듈로부터 받은 현재 무게 정보를 보여주는 것에 초점을 맞춘 인터페이스이다. 본 프로젝트의 기본적인 목표가 측정한 무게를 사용자에게 알려주고 자동 주문을 하는 것이기 때문에 무게 정보가 가장 중요한 요소라고 판단했다. 세로형 화면에 무게 정보를 출력하고, 그 외의 부가적인 기능은 버튼을 통해 사용자가 이용할 수 있도록 구현한 형태이다. 단순형 인터페이스는 필요한 화면의 크기가 작아 하나의 모니터에서 다른 프로그램과 함께 효율적으로 사용이 가능하다는 장점이 있지만, 필요한 정보를 확인하기 위해서는 별도의 버튼을 눌러야한다는 단점이 있다. | |
− | + | ||
+ | ::둘째, 종합형 인터페이스는 하나의 화면에 사용자에게 제공되는 모든 정보가 출력되는 것이다. 측정된 현재 무게 정보 외에도 제품 정보, 주문내역, 사용량 그래프 등을 하나의 화면에 출력하는 방식이다. 별도의 조작 없이 프로그램이 제공하는 모든 정보를 확인할 수 있다는 장점이 있지만, 차지하는 화면이 넓고 현재 필요하지 않은 기능에 대해서도 프로그램이 동작하기 때문에 프로그램 자체의 속도가 느려질 수 있다는 단점이 있다. | ||
===상세설계 내용=== | ===상세설계 내용=== | ||
− | + | ====조립도==== | |
+ | [[파일:2022-1_1조_그림21.jpg|500픽셀|가운데]] 위쪽에서 본 모습 | ||
+ | [[파일:2022-1_1조_그림22.jpg|500픽셀|가운데]] 아래쪽에서 본 모습 | ||
+ | |||
+ | :위쪽의 평평한 판 부분에 물건을 올려놓고 무게를 측정하고, PC로 무게를 전송하게 된다. 별도의 어댑터와 케이블을 사용해 외부로부터 전원을 공급받는다 | ||
+ | |||
+ | [[파일:2022-1_1조_그림23.jpg|600픽셀|가운데]] | ||
+ | |||
+ | :로드셀이 들어있는 체중계와 회로를 구성하는 브레드보드, 로드셀 엠프, 아두이노 나노 33 IoT, 회로를 보호할 회로커버, 전원 공급을 담당하는 전원 어댑터와 케이블로 구성되어 있다. | ||
+ | :우선 핀을 이용해 브레드보드에 로드셀 앰프와 아두이노를 차례로 장착하고 이를 체중계에 있는 로드셀과 연결시켜 회로를 구성한다. 그 후 브레드보드를 회로커버에 접착제를 이용하여 고정한 후, 접착제를 이용하여 회로커버를 체중계 하단에 부착한다. 그 후 외부로 드러난 아두이노의 USB 포트를 통해 어댑터를 이용하여 외부 전원을 공급해준다. | ||
+ | |||
+ | [[파일:2022-1_1조_그림24.jpg|500픽셀|가운데]] | ||
+ | |||
+ | 제품의 주요 치수이다. 제품의 전체 크기는 300mm * 300mm 이며, 브레드보드와 회로커버, 회로커버와 체중계의 서로 맞닿으면서 결합하는 부분의 치수를 같게 하여 단단하게 결합될 수 있도록 하였다. | ||
+ | |||
+ | ====조립순서==== | ||
+ | |||
+ | *체중계 분해 | ||
+ | :부품 조립에 앞서, 본 프로젝트에서는 로드셀을 이용하여 무게를 측정하는 장치가 필요하며, 체중계에는 이미 로드셀이 포함되어 있고 로드셀을 이용하기 위한 기하적 형상이 이미 구현되어 있으므로 시중의 체중계를 구매하여 사용하기로 한다. 체중계 모델 선정 기준은 개조가 용이한 형상으로 카스 HE-70 모델을 선정하였다. | ||
+ | |||
+ | [[파일:2022-1_1조_그림25.jpg|400픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림26.jpg|400픽셀|가운데]] | ||
+ | |||
+ | :로드셀을 이용하여 측정한 무게를 PC로 전송해주는 역할을 하는 아두이노 회로가 필요하므로, 체중계의 로드셀을 아두이노에 연결하기 위한 사전 작업이 필요하다. | ||
+ | [[파일:2022-1_1조_그림27.jpg|400픽셀|가운데]] | ||
+ | 체중계 원본 형상(아래쪽) | ||
+ | [[파일:2022-1_1조_그림28.jpg|400픽셀|가운데]] | ||
+ | |||
+ | :빨간색 원 부분에 있는 나사 4개를 해체한다. | ||
+ | [[파일:2022-1_1조_그림29.jpg|400픽셀|가운데]] | ||
+ | (투명도가 있는 부분은 외부에서 보이지 않는 부분) | ||
+ | :체중계의 각 꼭짓점 부분에 로드셀이 부착되어 있고, 봉을 통해 로드셀의 선이 연결되어 있으며 중앙 상단에 있는 PCB 기반에 부착되어 있음을 확인할 수 있다. | ||
+ | [[파일:2022-1_1조_그림30.jpg|400픽셀|가운데]] | ||
+ | |||
+ | :로드셀을 이용하기 위해 PCB와 로드셀 사이의 선을 절단하고, 중앙 상단에 있던 연결봉, 회로커버, PCB 등은 모두 제거한다. 남아있는 로드셀 선은 아두이노와 로드셀 앰프를 포함한 회로에 연결된다. | ||
+ | |||
+ | *아두이노 – 브레드보드 결합 | ||
+ | |||
+ | [[파일:2022-1_1조_그림31.jpg|400픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림32.jpg|400픽셀|가운데]] | ||
+ | :헤더가 포함된 아두이노와 브레드보드를 핀을 이용해 결합한다 | ||
+ | *HX711 – 브레드보드 결합 | ||
+ | [[파일:2022-1_1조_그림33.jpg|400픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림34.jpg|400픽셀|가운데]] | ||
+ | |||
+ | :헤더가 포함된 HX711과 브레드보드를 핀을 이용해 결합한다. | ||
+ | *회로 연결 | ||
+ | [[파일:2022-1_1조_그림35.jpg|400픽셀|가운데]] | ||
+ | :조립된 브레드보드에 5. 제어부 및 회로연결에 있는 회로도대로 체중계의 로드셀을 연결하여 회로를 구성한다 | ||
+ | *회로, 회로커버 결합 | ||
+ | [[파일:2022-1_1조_그림36.jpg|400픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림37.jpg|400픽셀|가운데]] | ||
+ | :사진과 같은 방향으로 브레드보드와 회로커버를 결합한다. 브레드보드의 가로, 세로와 브레드보드가 들어갈 구멍의 가로, 세로 길이가 일치하기 때문에 가로, 세로 방향으로는 자연스럽게 고정이되며, 높이 방향 고정은 외부 힘을 크게 받지 않는다는 점을 감안하여 브레드보드의 옆면에 접착제를 발라 회로커버에 고정시킨다. | ||
+ | [[파일:2022-1_1조_그림38.jpg|400픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림39.jpg|400픽셀|가운데]] | ||
+ | :결합이 완료된 모습이다. 회로의 선이 빠져나올 공간을 확보해야 하므로, 브레드보드를 끝까지 밀어넣지 않고 브레드보드의 바닥면과 회로커버의 바닥면이 같은 높이가 되도록 한다. | ||
+ | *회로커버, 체중계 결합 | ||
+ | [[파일:2022-1_1조_그림40.jpg|400픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림41.jpg|400픽셀|가운데]] | ||
+ | :사진과 같은 방향으로 결합을 진행하며, 회로커버는 로드셀 커버에 의해 가로, 세로 방향으로 고정이 된다. 높이 방향 고정은 외부 힘을 크게 받지 않는다는 점을 감안하여 회로커버의 바다면과 브레드보드의 바닥면에 접착제를 발라 결합을 한다. | ||
+ | [[파일:2022-1_1조_그림42.jpg|400픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림43.jpg|400픽셀|가운데]] | ||
+ | *전원 공급 | ||
+ | :외부로 드러난 아두이노의 USB 포트를 통해 전원을 공급한다. 별도의 어댑터와 케이블을 이용한다. | ||
+ | [[파일:2022-1_1조_그림44.jpg|200픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림45.jpg|400픽셀|가운데]] | ||
+ | |||
+ | ====부품도==== | ||
+ | |||
+ | 회로커버 | ||
+ | |||
+ | [[파일:2022-1_1조_그림46.jpg|500픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림47.jpg|500픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_그림48.jpg|600픽셀|가운데]] | ||
+ | |||
+ | ====제어부 및 회로설계==== | ||
+ | [[파일:2022-1_1조_그림49.jpg|350픽셀|가운데]] | ||
+ | 아두이노 나노 33iot, 로드셀 앰프 HX711과 4개의 로드셀을 포함하는 회로다. HX711의 A+, A-, E+, E-에 로드셀이 하나씩 연결되어 있다. 로드셀 간에도 연결이 되어있으며 대칭성을 갖는다. 아두이노와 HX711은 전원에 과녈ㄴ된 핀 2개와 데이터 전송에 관련된 핀 2개로 총 4개 핀의 연결을 갖는다. | ||
+ | |||
+ | [[파일:2022-1_1조_그림50.jpg|500픽셀|가운데]] | ||
+ | |||
+ | 로드셀 엠프 HX711은 일반적인 아두이노 나노 33 iot의 출력 전압인 3.3V에서 하중측정의 정확도에 대한 문제가 있다. 따라서 5V 출력을 사용해야 하고 아두이노 나노 33 iot에서 5V 츌력을 사용하기 위해서는 2가지 조건이 충족되어야 한다. 아두이노의 usb micro b 단자를 통해 전원이 공급되어야 하며, 사진상의 VUSB에 있는 2개의 핀을 납땜을 통해 연결해주어야 한다. 5V 전압을 사용하기 위해 추가로 전원모듈을 장착하면 추가적인 부품이 필요하고 회로가 복잡해지게 된다. 따라서 외부 어댑터와 usb 단자를 통한 전원공급과 납땜을 통해 5V 출력을 이용하기로 한다. | ||
+ | |||
+ | ====소프트웨어 설계==== | ||
+ | [[파일:2022-1_1조_그림51.jpg|500픽셀|가운데]] | ||
+ | |||
+ | |||
+ | 전체적인 소프트웨어 구조를 나타내는 그림이다. 아두이노에서 무게를 측정하는 코드가 실행되고, 아두이노에서 측정한 무게를 PC로 전송하기 위해 BLE 통신을 이용하며, BLE 통신에 관련된 코드가 아두이노와 PC 양쪽에 있다. 전송받은 무게 데이터를 바탕으로 PC에서 무게 데이터 출력, 자동주문 등의 기능을 제공하는 코드를 실행하게 된다. | ||
+ | |||
+ | *무게측정 | ||
+ | :*캘리브레이션 | ||
+ | ::로드셀을 통해 측정된 전류와 그에 해당하는 무게 사이의 관계를 조정해주는 것을 캘리브레이션이라고 한다. 무게를 정확하게 측정하기 위해서는 캘리브레이션 작업이 꼭 필요하다. 물, 체중 등 참값을 알고 있는 물건들을 활용해 무게측정모듈로 측정했을 때 참값에 가까운 무게가 나오도록 캘리브레이션을 진행한다. 아두이노에서 제공하는 HX711.h 라이브러리의 내장 함수와 예제를 이용한다. | ||
+ | [[파일:2022-1_1조_그림52.jpg|500픽셀|가운데]] | ||
+ | ::적절한 calibration_factor 값을 찾는 것을 목표로 캘리브레이션을 진햏한다. | ||
+ | ::초기 calibration_factor 값을 설정하면, 라이브러리 내장함수(set_scale())를 통해 영점이 맞춰지게 된다. 그 후로 무게의 참값을 아는 물건을 올려놓고, 측정값이 참값보다 크다면 calibration_factor를 키우고 측정값이 참값보다 작다면 calibration_factor를 낮추면서 참값과 일치하는 무게를 얻도록 한다. 참값과 일치하는 무게를 얻었다면 다른 무게를 가진 물건을 올려놓고 위 과정을 반복한다. 0~150kg 사이의 물건에 대해 시행한다. | ||
+ | |||
+ | ::캘리브레이션 표 | ||
+ | [[파일:2022-1_1조_표19.png|500픽셀|가운데]] | ||
+ | |||
+ | :*PC-아두이노 BLE 연결 | ||
+ | [[파일:2022-1_1조_그림53.jpg|400픽셀|가운데]] | ||
+ | |||
+ | ::PC와 아두이노를 저전력 블루투스인 BLE를 통해 연결한다. 아두이노 나노 33 iot에 내장된 BLE 4.2를 활용하며, PC에 내장된 블루투스 모듈이 없다면 usb형 블루투스 동글을 활용할 수 있다. | ||
+ | ::PC는 Central로 동작하는데, 연결 advertising 신호를 주기적으로 스캔하다가 아두이노에 연결을 요청하게 된다. 아두이노는 Peripheral로 작동하며 다른 기기에서 BLE 신호를 스캔할 수 있도록 주기적으로 연결 advertising 신호를 보내고(advertise) 연결 요청이 들어오면 수락하게 된다. 연결에는 디바이스의 고유 주소인 MAC address 값이 키값으로 사용된다. | ||
+ | ::연결이 되면 아두이노는 데이터를 주기적으로 송신하고, PC는 서비스 내의 고유번호인 Characteristic를 확인하여 원하는 정보를 수신할 수 있다. | ||
+ | |||
+ | :*PC프로그램 전체 동작 시나리오 | ||
+ | [[파일:2022-1_1조_그림54.jpg|900픽셀|가운데]] | ||
+ | |||
+ | ::*무게 데이터 저장 | ||
+ | :::아두이노를 통해 하드웨어로부터 측정된 무게 데이터를 텍스트 파일 또는 CSV 파일의 형태로 저장한다. 이렇게 저장된 데이터는 무게 데이터와 함께 측정한 날짜, 시각 정보가 함께 기록되어 무게 데이터 출력과 사용량 그래프 출력에 활용된다. | ||
+ | |||
+ | ::*자동주문 | ||
+ | :::측정된 무게 데이터를 바탕으로 설정된 무게 이하가 되면 저장된 구매 링크를 통해 자동으로 제품을 주문한다. 본 프로젝트에서는 생수를 기준으로 10kg(20%)이하가 되면 자동으로 주문하는 것을 목표로 한다. 자동주문이 실행되면 실행된 날짜, 시각, 주문한 제품 수량을 별도의 파일을 통해 주문내역을 저장한다. | ||
+ | ::*무게 데이터 출력 | ||
+ | :::특정 시간 간격으로 현재 재고의 무게 데이터를 출력한다. 출력은 기존에 저장된 무게 데이터 파일을 활용하여 데이터를 불러와 출력하는 방식으로 구현한다. 현재 무게의 아래에는 등록된 제품명과 기준 무게를 이용한 현재 재고 수량을 함께 표시한다. | ||
+ | |||
+ | ::*제품 정보 등록 및 변경 | ||
+ | :::사용자가 제품의 정보를 입력하면 입력 내용을 텍스트 파일로 저장한다. 사용자가 입력할 수 있는 정보는 제품명, 기준 무게(1개), 구매 링크이다. 텍스트 파일에는 이 내용이 순서대로 리스트의 형식으로 저장된다. 제품 정보를 변경할 때는 입력창에 수정 내용을 입력하면, 기존의 텍스트 파일 위에 새로운 내용을 덮어 씌우는 방식으로 등록 정보를 수정한다. | ||
+ | |||
+ | ::*제품 정보 확인 | ||
+ | :::제품 정보의 확인은 제품 정보를 등록하면서 생성된 텍스트 파일의 내용을 불러와 출력하는 방식으로 동작한다. 저장된 정보인 제품명, 기준 무게, 구매 링크를 출력하며, 구매 링크의 경우 버튼을 클릭하면 해당 웹페이지로 연결될 수 있도록 구현한다. | ||
+ | |||
+ | ::*주문 내역 확인 | ||
+ | :::자동주문이 실행될 때마다 저장된 주문내역 파일을 불러와 출력한다. 순번, 날짜, 시각, 주문 수량이 순서대로 출력된다. | ||
+ | |||
+ | ::*초기화 | ||
+ | :::기존에 저장된 무게 데이터 파일, 제품 정보 파일, 주문내역 파일 위에 새로운 파일을 덮어씌워 저장된 모든 정보를 삭제한다. 삭제 전 사용자에게 확인 메시지를 출력한 후, 실행되도록 구현한다. | ||
+ | |||
+ | ::*일별, 주별, 월별 그래프 | ||
+ | :::저장된 무게 측정 데이터를 바탕으로 사용량 그래프를 제공한다. 각 버튼을 클릭할 때 해당하는 그래프가 별도의 화면을 통해 출력되도록 한다. | ||
+ | |||
+ | :*세부 설계 | ||
+ | |||
+ | ::*프로그램 인터페이스 구성 | ||
+ | [[파일:2022-1_1조_그림55.jpg|200픽셀|가운데]] | ||
+ | |||
+ | :::프로그램의 인터페이스는 사용자에게 현재 무게 정보를 보여주는 것에 초점을 맞춘다. 이를 위해 단순형 인터페이스를 활용하여 하드웨어로부터 입력받은 현재 무게를 메인 화면에 출력하고, 그 외의 부가적인 기능은 별도의 버튼을 통해 동작하도록 설계한다. 이를 통해, 사용자가 한 눈에 현재 무게를 확인할 수 있도록 한다. 또한, 작은 화면만 차지하기때문에 하나의 모니터에서 별도의 프로그램과 함께 사용이 편리하다. | ||
+ | |||
+ | ::*프로그램 GUI 구성을 위한 파이썬 모듈 | ||
+ | [[파일:2022-1_1조_그림56.jpg|200픽셀|가운데]] | ||
+ | :::사용자가 프로그램을 쉽게 사용하기 위해서는 단순하고 직관적 형태의 GUI가 제공되어야 한다. 또한, 본 프로젝트를 통해 제공하고자 하는 기능을 모두 구현할 수 있어야 한다. 무료로 사용이 가능한 다양한 GUI 모듈 중 가장 단순하면서도 필요한 기능이 전부 제공되는 ‘Tkinter’를 활용하여 프로그램의 GUI를 구성한다. 타 모듈에 비해 디자인적인 요소는 부족하지만, 코드의 구현이 간단하고 직관적인 출력이 가능해 ‘Tkinter’를 활용하여 설계한다. | ||
+ | |||
+ | |||
+ | ::*무게 데이터 저장 및 출력 | ||
+ | [[파일:2022-1_1조_그림57.jpg|400픽셀|가운데]] | ||
+ | |||
+ | :::무게 데이터 저장 및 출력은 하드웨어에서 측정된 데이터를 전달받으며 시작된다. 데이터가 전달되면 저장을 위한 폴더와 파일의 존재를 확인한다. 저장을 위한 폴더와 파일이 없다면 저장공간을 생성한 후 데이터를 저장한다. 이 때, 저장되는 데이터는 입력된 날짜와 시간, 측정된 무게이다. 저장된 파일의 무게 데이터를 일정 시간 간격으로 읽어 프로그램의 메인 화면에 현재 무게를 출력한다. 이후, 사용자가 그래프 기능을 실행하면 저장된 파일을 바탕으로 그래프를 출력한다. | ||
+ | |||
+ | ::*제품 정보 등록 및 수정 | ||
+ | [[파일:2022-1_1조_그림58.jpg|400픽셀|가운데]] | ||
+ | |||
+ | :::사용자가 무게를 측정할 제품에 대한 정보를 입력할 수 있도록 한다. ‘제품 정보 등록’ 버튼을 클릭하면 정보 저장을 위한 공간을 확인한 후, 없다면 저장 공간을 새롭게 생성해 제품 정보를 저장한다. 이 때 저장되는 정보는 제품명, 기준이 되는 무게, 제품 구매링크, 1회 구매 시 수량 등이 포함된다. 저장 후 메인 화면에서 사용자가 ‘정보 확인’ 버튼을 클릭하면 제품 정보가 저장된 파일을 읽어 저장된 내용을 화면에 출력한다. 이후, 제품 정보의 초기화가 필요할 시 초기화 버튼을 누르면 기존에 정보가 저장된 파일의 내용을 모두 삭제하여 초기화한다. | ||
+ | |||
+ | ::*자동주문을 위한 웹페이지 제어 모듈 | ||
+ | [[파일:2022-1_1조_그림59.jpg|100픽셀|가운데]] | ||
+ | |||
+ | :::자동주문을 위해서는 사용자가 실제로 웹페이지를 동작하는 것처럼 제어할 수 있어야 한다. 이를 위해 웹페이지 제어 모듈인 ‘Selenium’을 활용하여 웹페이지를 제어한다. ‘Selenium’은 타 모듈에 비해 상대적으로 속도가 느리지만 버튼 클릭, 스크롤 조작 등의 기능 구현이 가능해 웹페이지 제어의 자동화를 구현할 수 있다. | ||
+ | |||
+ | ::* | ||
+ | [[파일:2022-1_1조_그림60.jpg|600픽셀|가운데]] | ||
+ | |||
+ | :::저장된 무게 데이터를 기반으로 특정 무게 이하가 되면 저장된 제품 정보에 따라 웹페이지를 제어하여 자동으로 제품을 주문한다. 측정된 무게가 10kg(전체의 20%) 이하가 되면 제품 정보에 저장된 구매링크 페이지로 접속한다. 접속 후, 웹페이지를 제어하여 구매 수량을 입력하고, 구매 버튼을 클릭한다. 구매가 정상적으로 진행되었다면 구매 성공 메시지를 출력하고, 실패했다면 구매 실패 메시지를 출력한다. 구매가 성공한 후에는 주문내역 저장을 위한 공간이 있는지 확인하여 주문내역을 저장한다. 이 때 저장되는 정보는 주문 날짜, 시간, 품명, 주문 수량이다. | ||
==결과 및 평가== | ==결과 및 평가== | ||
===완료 작품의 소개=== | ===완료 작품의 소개=== | ||
====프로토타입 사진 혹은 작동 장면==== | ====프로토타입 사진 혹은 작동 장면==== | ||
− | + | [[파일:2022-1_1조_그림61.jpg|400픽셀|가운데]] | |
+ | [[파일:2022-1_1조_그림62.jpg|400픽셀|가운데]] | ||
+ | |||
====포스터==== | ====포스터==== | ||
− | + | [[파일:2022-1_1조_그림63.jpg|900픽셀|가운데]] | |
===관련사업비 내역서=== | ===관련사업비 내역서=== | ||
− | + | ||
+ | [[파일:2022-1_1조_표20.png|800픽셀|가운데]] | ||
+ | [[파일:2022-1_1조_표21.png|800픽셀|가운데]] | ||
===완료작품의 평가=== | ===완료작품의 평가=== | ||
− | + | ||
+ | [[파일:2022-1_1조_표22.png|500픽셀|가운데]] | ||
===향후계획=== | ===향후계획=== | ||
− | + | *무게 측정 모듈 | |
+ | :개발목표를 무게 측정 최댓값 150kg, 측정 무게의 1% 정확도로 설정했지만 측정 무게가 130kg이 넘어가면 모듈이 불안정한 모습을 보였고 측정 무게의 최대 5%까지 오차가 발생했다. 지면에서의 반력이 로드셀에 전달되는 구조를 개선한다면 무게측정의 정확도와 안정성 측면에서 더 발전된 모습을 기대할 수 있을 것이다. | ||
+ | |||
+ | |||
+ | *물품 사용량 통계 제공 기능 | ||
+ | :누적된 무게 데이터를 활용하여 일간, 주간, 월간 물품 사용량 통계를 사용자에게 제공할 수 있다. 현재 하드웨어를 통해 전달 받은 무게 데이터는 별도의 관리 없이 저장되고 있다. 이 데이터를 기반으로 일간, 주간, 월간 데이터의 형태로 나누어 관리한다면 사용자에게 통계 정보를 제공할 수 있다. | ||
+ | :통계 정보를 출력하는 GUI의 경우, 현재 제작된 PC 프로그램에 추가적으로 구현할 수 있다. 파이썬에서 ‘Matplotlib’를 이용하면 그래프를 출력할 수 있는데, 이 라이브러리는 현재 GUI를 구현에 사용된 ‘Tkinter’와 함께 활용이 가능하다. 이를 통해, 일간, 주간, 월간 그래프를 나타내는 버튼을 클릭하면 각 기능에 맞는 그래프가 출력되는 기능을 구현할 수 있다. | ||
+ | :이러한 사용량 통계를 제공하는 기능은 물품 사용의 효율적인 관리를 도울 수 있을 것이다. | ||
+ | |||
+ | *다양한 URL을 통한 자동 주문의 구현 | ||
+ | :현재 자동주문 알고리즘은 ‘네이버 쇼핑’ 페이지에 맞춰 설계되어 있다. 자동주문을 위해 파이썬 라이브러리인 ‘Selenium’을 사용하는데 웹페이지를 제어하기 위해서는 각 구성요소의 ‘Xpath’를 읽어야한다. 하지만, 각 구성요소의 ‘Xpath’는 웹페이지마다 다르기 때문에 모든 웹페이지에서 작동하게 하려면 모든 쇼핑몰 페이지 구성요소들의 ‘Xpath’를 정리해야 한다. | ||
+ | :이러한 작업을 수행한다면, 모든 웹페이지에서 자동주문이 가능해진다. 이는 특정 웹사이트가 아닌 사용자가 원하는 모든 웹사이트에서의 주문을 가능하게 하여 PC 프로그램의 활용도가 높아지도록 할 것이다. | ||
+ | |||
+ | *연결 안정성 | ||
+ | :현재 알 수 없는 이유로 PC와 무게측정모듈간 블루투스 연결이 20분을 넘기지 못하며 불안정한 모습을 보이고 있다. 연결 안정성을 높이고, 연결이 끊기더라도 프로그램을 재부팅하여 다시 연결될 수 있도록 한다면 제품의 안정성을 크게 높일 수 있을 것이다. | ||
===특허 출원 내용=== | ===특허 출원 내용=== | ||
− | + | ||
+ | [[파일:2022-1_1조_그림64.jpg|800픽셀|가운데]] |
2022년 6월 22일 (수) 03:00 기준 최신판
프로젝트 개요
기술개발 과제
국문 : 로드셀을 활용한 무게 감지에 따른 자동주문 시스템
영문 : Automatic ordering system by weight-sensing using load cell)
과제 팀명
세 공돌이
지도교수
신동헌 교수님
개발기간
2022년 3월 ~ 2022년 6월 (총 4개월)
구성원 소개
서울시립대학교 기계정보공학과 20164300XX 이*호(팀장)
서울시립대학교 기계정보공학과 20164300XX 강*언
서울시립대학교 기계정보공학과 20174300XX 김X
서론
개발 과제의 개요
개발 과제 요약
본 프로젝트는 중소 규모의 사업장에서 사용자가 지정한 품목들의 효율적인 관리를 위하여 품목들의 사용량 정보를 데이터화 하여 사용자에게 보여주고 제품의 무게를 감지하는 시스템을 통하여 재고 소진율을 파악하고 주문이 필요한 품목들을 자동으로 주문할 수 있도록 구현하기 위해 아두이노-로드셀 모듈을 설계하고 이를 연동할 수 있는 PC 프로그램을 함께 개발하고자 한다.
개발 과제의 배경
- 제안배경
- 주변의 사물이 네트워크로 연결되어 다른 사물들과 상호작용하는 사물인터넷(IoT; Internet of Things)은 매우 빠르게 발전하고 있다. 리서치 전문회사 ‘마켓앤마켓’의 IoT 기술 시장 전망 보고서에 따르면 Iot 기술 시장 규모는 연간 6.7%씩 성장해 2027년에는 5,664억 달러에 이를 것으로 전망하고 있다. 하지만 현재 사물인터넷 서비스의 활용 분야는 특정 분야에 치중되어 있다. 2020년 사물인터넷 산업 실태조사에 따르면 사물인터넷 서비스 활용 매출액 중 건설/안전/환경이 30.1%, 교통이 21.2%, 제조 분야가 16.4%를 차지한다고 한다. 즉, 현재 대부분의 사물인터넷이 대규모 사업장을 대상으로 개발, 활용되고 있다고 할 수 있다.
- 또한, 2020년 사물인터넷 산업 실태조사의 결과에 따르면, 앞으로 사물인터넷이 도입, 확산될 가능성이 높은 산업 분야는 보건/서비스업이 16.3%, 전기/가스/수도산업이 12.6%, 금융 및 보험업이 10.4%를 차지하였다. 이에 비해, 이번 프로젝트의 대상으로 설정한 소매업의 경우에는 3.1%를 차지해 전체 13개의 분야 중 12위를 차지하였다.
- 이러한 조사 결과를 통해, 현재 상용화되고 있는 사물인터넷 서비스는 대부분 대규모 사업장을 대상으로 하고 있으며 앞으로 소매업에 도입하기 위한 연구 및 개발이 부족한 실정임을 알 수 있다.
- 하지만, 이러한 대규모 사업장이 아닌 중소규모의 사업장에서도 사물인터넷을 활용한다면 업무를 더욱 효율적으로 처리할 수 있다. 특히, 지속적으로 소모가 있는 제품을 관리해야 하는 경우 사물인터넷을 활용한다면 사람이 일일이 확인하지 않아도 수량을 파악할 수 있다.
- 현재 사용되고 있는 로드셀을 활용하여 재고의 수량을 파악하는 장치는 대부분 앞서 언급했듯이 대규모 산업을 위한 장치였다. 하지만, 같은 원리로 장치의 크기를 축소한다면 중소규모 사업장에서 충분히 사용할 수 있다고 판단했다. 또한, 작은 크기의 장치도 존재했지만 전용 쇼핑몰을 통해서만 상품의 구매가 가능해 사업주가 가격비교를 할 수 없다는 단점이 존재했다. 사업주의 입장에서 재고를 주문할 때, 가격비교를 통해 최저가로 구매하는 것이 이익을 창출할 수 있는 방안이기 때문에 최저가 상품을 선택하는 기능이 필요하다고 생각했다.
- 이러한 필요성에 주목하여 중소규모 사업장을 대상으로 제품의 재고를 파악하고 자동으로 부족한 수량에 대해 주문을 해주는 장치 및 PC 프로그램을 설계하고자 한다.
- 기대효과
- 본 프로젝트를 통해 지정된 제품의 무게를 측정하여 제품의 소모를 사용자에게 알려주는 장치 및 PC 프로그램을 제안한다. 해당 장치는 중소규모 사업장에서 사용할 수 있는 규모로 제작되어 기존 사업장을 변화시킬 필요없이 바로 사용할 수 있도록 제작한다. 또한, 함께 제공되는 PC 프로그램을 통해 제품의 수량이 특정 기준 이하로 측정될 경우, 별도의 주문과정 없이 자동으로 주문할 수 있어 사업 운영의 효율을 증가시킨다.
- 이를 통해, 중소규모 사업장에서 재고 관리 및 주문에 소모되는 시간과 인력 소모를 줄이고, 효율적으로 사업장 운영을 할 수 있도록 돕는다.
개발 과제의 목표 및 내용
- 개발목표
- 사용자가 지정한 품목에 대해 최대 150kg까지 0.2kg 내의 오차로 무게를 측정하여 PC로 전송할 수 있는 무게측정 모듈을 개발한다. 측정한 무게를 이용하여 중소규모 사업장에서 소모품, 부품, 원자재 등에 대한 효율적인 관리를 할 수 있도록 하는 PC 프로그램을 개발한다. 프로그램은 모듈로부터 전송받은 무게를 통해 사용량을 추적하여 사용량에 대한 통계를 제공하는 기능과 물품이 얼마 남지 않았을 때 모두 소진되기 전 자동주문을 하는 기능을 포함한다. 본 과제의 개발단계에서는 대상 품목을 생수로 정하고, 생수의 무게가 10kg 이하가 되었을 때 자동주문을 하는 것으로 한다.
- 개발내용
- 무게 측정 및 데이터 전송
- 아두이노와 로드셀을 이용하여 무게를 측정하고 측정한 데이터를 PC에 전송하는 장치를 개발한다. 최대 150kg의 무게를 0.2kg내의 오차로 측정할 수 있도록 한다. 이 때 통신방법은 Bluetooth와 Wi-Fi중 적합한 것을 선택한다. 로드셀, 로드셀 증폭기, 아두이노, 배터리를 포함한 하나의 회로를 구성한다.
- 케이스 제작
- 앞서 설계한 회로를 부착하고 무게를 측정할 때 생수를 올려놓을 케이스를 설계하고 3D프린터를 이용하여 제작한다. 케이스에 올려놓은 생수의 무게가 모두 로드셀에 전달되도록 설계하고, 구조해석을 통해 최대 150kg의 하중을 버틸 수 있도록 설계한다
- PC 프로그램 개발
- 사용량 통계 제공 : 무게측정 모듈를 통해 측정된 무게를 기록하여 일간, 주간, 월간 등 생수 사용량에 대한 통계를 제공한다.
- 자동주문 : 생수가 10kg 이하가 되었을 때 사용자에게 알림을 주고 사용자가 미리 등록해놓은 제품명을 통해 자동으로 상품을 검색하고 주문하도록 하여 재고가 떨어지지 않도록 한다.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
- 전 세계적인 기술현황
- 사물인터넷 (Internet of Things)
- 사물인터넷(Internet of Things, IoT)은 사물들의 주변의 다른 사물과 네트워크를 통해 연결되어 서로 상호작용하는 기술 및 서비스를 말한다. 사물인터넷의 기반은 각종 센서라고 할 수 있다. 사물에 설치된 센서를 통해 수집한 데이터를 취합, 분류, 분석하여 의미있는 정보를 생성하고 공유한다.
- 현재 사물인터넷 기술은 유무선 네트워크 기술과 인공지능, 데이터 처리 기술이 발전함에 따라 함께 발전해 국내외에서 많은 연구 및 개발이 이루어지고 있다. 가정의 가전제품, 보안장치 등을 연결하는 ‘스마트 홈’에서부터 에너지 공급망을 관리하는 ‘스마트 그리드’, 도시의 각종 데이터를 통해 도시를 효율적으로 관리하는 ‘스마트 시티’까지 다양한 분야에 걸쳐 사물인터넷이 활용되고 있다.
- 또한, 사물인터넷의 기술 발달과 함께 사물인터넷의 기술적인 기반을 제공하는 IoT 플랫폼 역시 계속해서 개발되고 있다. IoT 플랫폼을 개발하는 업체는 기업과 사용자에게 자신들의 플랫폼을 오픈해 다양한 장치를 연결해 테스트해볼 수 있는 환경을 제공하고 있다.
- 로드셀(Loadcell)
- 로드셀(Loadcell)은 힘 또는 하중과 같은 물리량을 측정할 수 있는 센서다. 로드셀에 힘이 가해지면 그 힘만큼 전기 신호가 발생하고 이를 통해 가해진 힘, 하중을 측정하는 것이다. 로드셀의 표면에는 스트레인 게이지(strain gage)가 붙어있는데 로드셀에 힘이 가해지면 스트레인 게이지가 함께 변형된다. 이에 따라 스트레인 게이지의 저항값이 변함에 따라 전기신호가 변화하는 것이다. 로드셀은 다른 센서에 비해 비교적 가격이 저렴하고 수명이 길다는 장점이 있어 보편적으로 사용되게 되었다.
- 스트레인 게이지(strain gage)
- 스트레인 게이지는 로드셀의 핵심이 되는 장치로 물체의 스트레인, 즉 변형을 측정하는 데 사용되는 저항형 센서다. 스트레인 게이지는 일반적으로 아래와 같은 구조를 보인다.
- 가운데 위치한 금속저항체가 스트레인 게이지의 핵심이라고 할 수 있다. 이 금속저항체에 힘이 가해지면 단면적에 변화하면서 저항값이 변화하게 된다. 이 저항값의 변화로 인해 측정되는 전기신호가 달라지는 것이다.
- 로드셀의 구조와 원리
- 로드셀은 앞서 설명한 스트레인 게이지를 활용하여 힘을 측정할 수 있는 센서다. 부착된 스트레인 게이지에 힘이 가해지면 로드셀과 함께 스트레인 게이지가 늘어나거나 수축된다. 이러한 변화에 의해 스트레인 게이지의 저항값이 변화하고 측정되는 전기신호가 변하는 것을 이용하여 하중을 측정하는 것이다. 로드셀의 구조는 아래와 같다.
- 위의 이미지에서 볼 수 있듯이 하나의 로드셀에는 4개의 스트레인 게이지가 부착되어 있다. 하나의 스트레인 게이지만 있어도 힘을 측정할 수는 있다. 하지만 하나의 스트레인 게이지만 사용하면 출력되는 전기신호가 매우 작고 오차가 발생한다. 그렇기 때문에 스트레인 게이지를 로드셀의 인장 및 압축 방향으로 각각 2개씩 부착하여 로드셀을 제작한다.
- 로드셀의 종류
- 로드셀의 종류는 형태에 따라 크게 빔형, 원주형, S자형, 다이아그램형의 4가지 종류로 구분된다. 각 형태별 로드셀은 아래의 모습과 같다. 아래의 로드셀이 가장 기본적인 형태이며, 이 외에도 다양한 형태의 로드셀을 제작할 수 있다. 일반적으로 하중을 측정할 때 가장 많이 사용되는 형태는 ‘빔형 로드셀’이다.
- 아두이노
- 아두이노는 오픈 소스를 기반으로 한 단일 보드 마이크로 컨트롤러로 완성된 보드와 관련된 개발 도구 및 환경을 말한다. 아두이노는 다수의 스위치나 센서로부터 데이터를 받아, LED나 모터와 같은 외부 장치를 통제해 상호작용할 수 있도록 한다. 아두이노 통합 개발환경(IDE)를 제공하며, 오픈 소스이기 때문에 여러 가지 프로젝트를 수행할 수 있다.
- 아두이노의 보드는 8비트 AVR 마이크로 컨트롤러와 프로그래밍 및 다른 서킷과의 결합을 용이하게 해주는 부속품으로 구성되어 있다. 현재 Uno와 같은 주요 모델은 14개의 디지털 I/O핀을 제공하고 있다. 이 중 6개의 핀은 PWN(pulse-width modulated) 신호를, 다른 6개의 핀은 디지털 I/O핀으로 혼용이 가능한 아날로그 입력 단자다.
- 아두이노는 크기, 입출력 단자의 개수, 부가적인 기능 등에 따라 다양한 모델이 있다. 그 중 대표적으로 활용되고 있는 종류는 아래의 표와 같다.
- 블루투스(Bluetooth)
- 블루투스는 디지털 통신 기기를 위한 개인 근거리 무선 통신 산업 표준을 말한다. 2.4~2.485GHz의 단파 UHF 전파를 이용해 전자 장비 간 통신을 통해 정보를 주고받는다. 현재 개인용 컴퓨터에서 사용하는 마우스, 키보드를 비롯해, 휴대전화 및 스마트폰, 태블릿, 스피커 등에서 문자 정보 및 음성 정보를 비교적 낮은 속도로 무선 통신하는 용도로 사용되고 있다.
- 2016년 사물인터넷 기술에 초점을 맞춘 블루투스 5가 소개되었다. 또한, 코로나 19로 인한 팬데믹을 겪으며 감염병 위험에 대한 노출을 최소화하면서 진료 방식 개선을 위한 의료기기에 대한 솔루션으로 블루투스 기술이 각광받고 있다. 또한, 재택 근무가 증가하는 추세에 따라 블루투스 PC 액세서리 시장이 계속해서 성장하고 있다
- 와이파이(Wi-Fi)
- 와이파이는 무선 통신 표준 기술 중 하나 인 IEEE 802.11에 기반한 서로 다른 장치들 간의 데이터 전송 규약을 말한다. 일반적으로 부채꼴 모양의 아이콘으로 Wi-Fi를 나타내며, 부채꼴을 통해 신호의 강도를 표현한다.
- 와이파이를 사용하기 위해서는 무선 인터넷 공유기가 필요하다. 데이터 전송 규약인만큼 표준만 준수한다면 스마트폰, 태블릿 컴퓨터, 컴퓨터, 노트북 등 어떤 장치에서도 사용이 가능하다. 와이파이의 상용화에 따라 현재에는 휴대용 기기 외의 다양한 가전 제품에서도 와이파이를 지원하고 있다.
- 와이파이는 일대다 통신 방식을 사용하기 때문에 연결된 장치가 증가하면 전송속도는 반비례하여 감소한다. 또한, 근거리 통신을 전제로 제정된 규약이기 때문에 커버리지는 개활지를 기준으로 200m 정도이다.
- 와이파이의 버전은 802.11 뒤에 붙은 알파벳으로 구분된다. 모바일 기기의 보급이 증가함에 따라 와이파이가 함께 발달되었다. 또한, 최근에는 사물인터넷의 발달로 속도와 효율성을 모두 만족해야 하는 와이파이의 필요성이 대두되고 있다. 2019년 이러한 필요성에 의해 등장한 ‘와이파이 6(IEEE 802.11ax)’는 다중 사용자, 다중 입출력 기술을 활용하여 여러 장치가 동시에 연결되어도 속도 저하를 막을 수 있다.
- 기술 로드맵
- 특허조사 및 특허 전략 분석
- 포장용기 재고 데이터베이스를 주기적으로 모니터링하여 자동으로 재고 부족 포장용기 주문을 추천할 수 있는 포장용기 자동 주문발주 장치를 제공하고자 한다.
- 재고 부족 포장용기의 종류를 기초로 포장용기 주문 입찰 문서를 생성하고 적어도 하나의 포장용기 발주처에 의한 가격 입찰을 기초로 특정 포장용기 발주처 정보를 추천에 포함시킬 수 있는 사용자 맞춤형 자동 발주 시스템 및 방법을 제공하고자 한다.
- 냉장고에 저장되는 식품의 상태정보의 입력이 가능하고 감지한 현재 보관량 및 상기 식품정보가 표시되는 표시부를 포함하는 동시에 상기 보관량이 최소 요구량 미만인 경우 인터넷 냉장고에 주문 요청 신호 또는 주문 실행 신호를 출력하는 마이크로 프로세서를 갖추는 식품 용기가 상기 인터넷 냉장고와 연동하여 동작됨에 따라 상기 인터넷 냉장고의 외관에 부착된 디스플레이 수단을 통해 상기 식품의 주문을 요청하거나 자동 접속하여 식품 주문을 실행하는 인터넷 냉장고의 식품 자동 주문 시스템을 제공하는 데 있다
- 쌀통 내의 쌀 재고량을 측정하여 기준량 이하로 쌀이 남아있는 것으로 감지되었을 때, 통신망을 통해 쌀 공급업체에 배달주문이 자동으로 이루어지도록 하는 쌀통 재고량 관리를 위한 데이터통신 시스템을 제공하는 것을 그 목적으로 한다
- 거절사유 : 인용한 발명과 기술적으로 큰 차이가 없고 이를 이용해서 해당 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 발명할 수 있 는 것
- 소모품의 무게 측정을 통하여 소모품 잔량을 실시간으로 확인하고 발주하여 소모품 재고를 관리할 수 있도록 하는 소모품 자동발주 시스템을 제안하고자 한다.
- 거절사유 : 인용발명 쌀 수납장치 및 이 장치를 이용하여 쌀의 재고량을 관리하는 시스템을 통상의 기술자가 단순 설계 변경하여 쉽게 도출 가능한 시스템임
- 특허전략
- 특정 물품에 대해 자동주문을 하는 시스템에 관한 특허는 이미 과거부터 출원된 것들이 존재했다. 그 특허들을 살펴보면, 먼저 1) 포장용기 자동 주문발주 장치는 무게가 아닌 전산을 통해 남은 수량을 파악하고, 별도의 프로그램을 통해 공급사와 사용자에게 각각 알림이 가게 된다. 하지만 본 과제에서는 재고 파악에 무게를 이용하며, 자동 주문에는 오픈마켓을 이용하기 때문에 근본적으로 작동원리가 달라 문제가 되지 않을 것으로 보인다.
- 재고 파악에 무게를 이용한 특허들도 존재했는데, 2) 인터넷 냉장고의 식품 자동주문 시스템은 2002년에 출원된 특허로 이미 그 특허가 소멸되었다. 3) 쌀 수납장치 및 이 장치를 이용하여 쌀의 재고량을 관리하는 시스템의 경우에는 특허가 거절되었는데, 인용한 일본의 특허와 기술적으로 큰 차이가 없고, 해당 기술분야에서 통상의 기술자가 일본의 특허를 이용하여 쉽게 개발할 수 있다는 이유 때문에 거절되었다. 4) 소모품 자동발주 시스템은 3) 쌀 수납장치를 인용하였는데, 이 역시 인용한 특허를 통해 쉽게 도출 가능한 시스템이라는 이유로 특허 출원이 거절되었다.
- 따라서 국내에서는 본 과제를 통해 개발된 제품을 판매하는 것에 대해 특허상 문제가 없을 것으로 사료되며, 해외에서의 판매에 대해서는 조금 더 면밀한 조사가 필요하다.
시장상황에 대한 분석
- 경쟁제품 조사 비교
- 국내와 해외에 모두 무게를 측정하여 재고를 파악하고 자동주문을 하는 비슷한 제품이 있었다. 아마존의 smart dash smart shelf는 개인 및 기업을 목표 고객으로 하고 세계 최대의 유통 플랫폼인 아마존을 이용하는 것이 특징이며, 3개의 크기 옵션을 제공한다. 아마존 제품의 가격 19.99달러는 가격 책정에 있어서 기준점이 될 수 있을 것이다. 아마존 내의 상품만 주문 가능하다는 점이 이 제품의 최대 장점이자 단점이다. 국내 등 아마존이 진출하지 않은 곳에서는 아마존을 이용하기 힘들기 때문에 비교우위를 가질 수 있을 것이다
- 국내 회사인 트라이포드랩의 weightrip은 개인 및 기업을 목표고객으로 하고, 많은 수익을 낼 수 있는 정기구독을 지향한다. 하지만 실제 제품 판매 페이지나 회사 홈페이지 등이 없어 자세한 정보를 찾아볼 수 없었다.
- 올트 역시 국내 회사로 IoT Smart Scale은 경쟁제품 중에서 가장 강력한 기능을 지원한다. 경쟁 제품들과 달리 최대 25개 종류의 부품을 적재하고 무게 측정의 정밀도가 높아 소형 부품의 수량도 정확하게 파악할 수 있다. 각 저울별로 품목 개수와 위치가 확인이 가능하며, 저울마다 LED가 있어 불출지시가 가능하다. 기업들을 대상으로 하며, 일반적으로 사용할 수 있는 제품은 아니고 올트의 자체 솔루션으로 자사에서 판매하는 소모품(볼트, 너트 등)만을 대상으로 사용할 수 있는 제품이라는 한계가 있다. 일반적으로 사용할 수 있는 자유도 면에서 비교우위를 가지지만 올트사가 사업을 확장한다면 강력한 경쟁자가 될것이다
- 마케팅 전략 제시
개발과제의 기대효과
기술적 기대효과
- 사물인터넷 시장의 규모는 꾸준히 성장세를 보이고 있지만 대부분 대규모 상업 시설에 그 비중이 편중되어 있어 본 프로젝트에서는 중소 규모의 사업장에서도 효율적으로 재고를 관리할 수 있도록 지정된 제품의 무게 측정을 통하여 해당 정보를 등록할 수 있는 하드웨어 기반 모듈을 개발한다. 또한 사용량 정보를 데이터화 하여 보여주고 제품 잔여량이 10% 이하로 표시되면 사용자가 등록해 놓은 구매 링크를 바탕으로 자동 재주문을 하는 기능을 구현할 수 있도록 PC 프로그램을 개발하기 때문에 기존의 개발사의 전용 쇼핑몰을 통해서만 구입하는 구조가 아닌 사용자가 가격비교를 하고 직접 결정할 수 있도록 설정되었기 때문에 가격 경쟁성이 우수하다는 장점이 있을 것으로 보이며 생산 규모의 맞춤형 제작으로 산업내 자동화를 촉진시키고 불필요한 시간적 인력 소모를 줄이고 원활한 생산조달이 이루어져 전반적인 업무 효율을 향상시키는 효과를 가져올 수 있을 것으로 기대된다.
- 또한 본 프로젝트에서 적용하고자 하는 무게 감지를 통한 제품 소모량 파악 기술의 안정화는 기존의 기업들의 전용 혹은 독자적인 서비스 운영방식에서 벗어나 대중적 사용 가능성을 제고시켜 사용자에게 선택권을 부여하는 방향으로 추진될 것으로 전망되며 이로 인해 산업 시설, 무인 마켓, 개인 주거 공간 등 다양한 분야에 시스템적 결합을 통하여 전자 기기간의 호환성을 높인 제품들의 수요가 늘어날 것으로 보인다.
경제적, 사회적 기대 및 파급효과
- 본 프로젝트에서 목표로 하는 로드셀을 활용한 무게 감지 자동 주문 시스템은 중소 규모의 사업장에서 공간의 제약을 적게 받고 생산 규모에 맞춤형으로 제작을 목표로 하고 있기에 공간 점유율이 낮고 사용 편의성이 높을 것으로 예상되며 설정된 무게 기준내에서는 모든 품목들을 자유롭게 등록하여 사용할 수 있게 설계되었다. 또한 개인 주거 공간에서도 필요에 따라 활용이 가능하다. 예를 들어 쌀, 세탁 세제, 화장품 등 생활용품의 소모도를 측정하여 PC로 전송해주어 사용자가 편리하게 주거 시설의 전반적인 소요량을 체크할 수 있어 시간 효율을 높여주는 등 사용자 만족도가 높게 형성될 수 있을 것으로 파악된다. 제작 비용 또한 시중에 판매되고 있는 스마트 저울 모델과 가격대가 유사하게 책정되어 소비자 가격 부담을 줄여주고 선택의 범위를 넓혀주어 더 실용성 있는 제품을 선호할 수 있도록 기획하여 판매의 폭을 넓힐 수 있을 것으로 예상한다.
- 사용 정보를 공유하여 내수 시장의 안정화
- 사업장을 운영하는 사용자가 등록한 제품의 연, 월, 일 단계로 사용량에 대한 통계를 판매처에 공유하여 판매사가 주수요 품목에 대한 공급계획을 미리 수립하고 원재료를 조달할 수 있는 시간을 확보할 수 있을 것으로 예상된다. 따라서 불용재고와 같은 과잉공급 현상을 줄이고 불특정한 수요의 가격 변동폭을 안정화시킬 수 있을 것으로 기대된다
- 사회 계층 간의 실용성을 높이고 기술적 접목으로 분야의 확장가능성
- 사회 계층간의 디지털 기술 능력에 차이가 있어 서비스 이용과 정보 획득에 불평등이 발생하는 등 문제점이 존재한다. 이러한 정보취약계층의 디지털 소외 현상을 줄이고자 본 프로젝트에서 개발하는 방향성은 간결한 조작으로 실시간 정보를 시각적으로 보여주고 버튼 클릭 한번 혹은 등록이후의 변동성이 없을 경우 자동 주문이 가능하기에 디지털에 대한 이해도가 떨어져도 충분히 실용성 있게 사용할 수 있도록 초점을 맞췄기에 산업 시설 이외에도 고령층, 장애인 등 사회약자에 특화되어 사용범위가 확대되고 가정용 AI로봇 등과 기술적 결합을 통해 돌봄 서비스 범위를 확대하여 사회적 고부가가치를 만들어 갈 수 있을 것으로 보인다.
기술개발 일정 및 추진체계
개발 일정
구성원 및 추진체계
설계
설계사양
제품의 요구사항
설계 사양
- 하드웨어
- 무게 측정 오차 ±0.2kg 이내
- 본 프로젝트에서의 무게 감지 모듈은 중소 규모의 사업장에 특화하여 제작을 목표로 하고 있기 때문에 산업 현장에서 재고관리의 효율성을 높이는 것이 중요하게 작용하기 때문에 무게를 측정하는 센서의 정확도가 높아야 한다. 따라서 무게 측정에 정밀도가 높은 센서를 사용하고 미끄럼 방지 고무 패킹을 사용하여 바닥에 밀착시켜 무게 중심이 흔들리는 것을 줄여 주어 상대오차가 ±0.2kg 이내로 선정될 수 있도록 설계하고자 한다.
- 최대 하중 150kg 이내
- 시중에서 판매되고 있는 체중계 모델과 본 프로젝트에서의 무게 감지 모듈 응용 방향성이 유사한 관계로 기존의 일반적인 체중계 측정 범위인 150kg~200kg를 적용 기준으로 잡았다. 또한 중소 규모의 사업장의 크기와 보편적으로 사용되고 있는 제품의 무게가 100kg 미만인 특성을 고려해봤을 때 150kg이내의 무게 적용 기준을 잡고 설계하고자 한다.
- 프로토타입 크기 30cm * 30cm * 5cm이내 (가로 * 세로 * 높이)
- 기존의 체중계 모델과 디자인을 유사하게 제작하여 소비자에게 친숙함을 주어 가격대비 성능면에서 더욱 차별성이 있고 효율성이 높음을 강조하고자 무게 감지 모듈 크기를 30cm * 30cm * 5cm이내로 제작하고자 한다.
- 배터리 지속시간 336시간 이상
- 일반적인 사업장의 운영 특성을 분석하였을 때 일 평균 12시간에서 24시간으로 운영시간대가 불일치하므로 일 24시간을 기준으로 가정을 했을 때 2주간 배터리 교체 없이 사용을 하기 위해선 배터리 지속시간이 336시간 이상이어야 한다. 따라서 이러한 설계 사양을 만족할 수 있는 회로를 구성하고 소프트웨어를 설계하고자 한다.
- 최소 연결거리 10m 이상
- 무게 감지 모듈과 PC간의 연결을 필요로 하기 때문에 무선 통신 기술을 적용하여야 한다. 단 각각의 사업장 구조 및 공간 밀도가 상이하므로 신호 감쇄 등 원인으로 목표 연결 거리까지 원활한 통신이 어려울 수 있는 관계로 신호 증폭기 등 부가적인 기술적 융합성도 고려하여 설계 사양을 설정한다.
- 소프트웨어
- 자동 주문 알고리즘 작동 성공률 90% 이상
- 본 설계에 있어서 자동 주문 알고리즘의 구현은 핵심 기능 부분 중에 하나이다. 시제품을 제작하여 지정된 구매 링크를 등록하고 자동 주문 명령을 실행하면 그 이후로 추가적인 실행 명령이 필요없이 자동으로 주문이 완료되는 편리성을 제공하기 위함이다. 소프트웨어 설계에서 다양한 경우의 수를 파악하여 작동 오류를 최소화하고 하드웨어에서도 결함의 존재 여부를 파악하여 최종적으로 프로토타입에서 작동 성공률 90% 이상이어야 한다.
- 프로그램 설치가 간편하고, 사용방법이 직관적
- 무게 감지 자동 주문 모듈은 사용 편리성에 최적화가 되어 있어야 시장에서의 경쟁력을 갖출 수 있다. 컴퓨터 조작을 어려워하는 계층에게도 손 쉽게 설치를 하고 사용할 수 있도록 매뉴얼을 제공하고 프로그램 다운로드 링크를 통해 설치만 하면 프로그램상 간단하게 구성된 데이터 표를 확인이 가능하고 조작 버튼 또한 간결하게 설계를 하여 소비자 맞춤형으로 제작 목표를 설정한다.
- 연결이 끊겼을 때 모듈 자체에 데이터 저장
- 시스템 구동 중 예상치 못한 오작동 혹은 서버 과열로 발생한 연결 끊김 현상을 미연에 방지하고자 연결이 끊겼을 때 모듈 자체에 데이터가 저장되도록 설계 방향을 정하였다. 데이터의 손실을 최소화하여 사용자가 이용에 있어서 불편함이나 서비스 품질의 만족도가 떨어지는 상황을 미리 개발 단계에서 고려하여 향상시키는 방향으로 제작을 한다.
개념설계안
작동 원리 및 구조
- 무게측정모듈(A)에 그림의 생수와 같이 물품을 올려놓으면 무게가 측정되고, 측정된 무게를 PC(B)로 전송하면 PC 프로그램을 통해 일별, 주별, 월별 등의 사용량 통계를 제공해주는 사용량 통계 기능과 물품이 거의 다 떨어졌을 때 자동주문을 해주는 자동주문 기능 등을 제공한다.
- 무게측정모듈(A)은 케이스(A – 1) 내부에 아두이노 회로(A – 2)를 부착한 형태로 구성된다. 케이스(A - 1) 부분은 아두이노 회로를 보호하고 사용 대상 물품을 올려놓고 그 무게를 아두이노 회로에 전달하는 역할을 하고, 아두이노 회로(A – 2)는 전달받은 무게를 측정하고 이를 PC에 무선통신을 통해 전달하는 역할을 한다.
- 아두이노 회로(A – 2)는 로드셀(A –2 – a), 아두이노(A – 2 – b), 로드셀 증폭기(A – 2 – c), 배터리(A – 2 – d)로 구성되어 있다. 로드셀(A –2 –a)은 로드셀에 가해진 무게를 전기신호로 바꾸어 무게를 측정할 수 있게 해주는 센서이다. 로드셀 증폭기(A –2 –c)는 로드셀에서 출력된 작은 전기신호를 아두이노가 인식할 수 있는 큰 신호로 증폭시켜주는 역할을 한다. 아두이노(A – 3 – c)는 로드셀과 로드셀 증폭기를 통해 출력된 전기신호를 무게로 환산하여 무게를 측정하고 측정된 무게를 무선통신을 통해 PC전송해주는 역할을 한다. 배터리(A – 2- d)는 아두이노가 동작하는데 필요한 전력을 공급해주는 역할을 한다.
- 무게측정모듈
- 로드셀 종류
- 빔형, S자형, 원주형 등 다양한 종류의 로드셀이 있지만 부피가 작고 가격이 싸며 일반적으로 많이 사용되는 빔형 로드셀과 체중계용 로드셀 2가지를 비교해본다.
- 로드셀 동작원리
- 로드셀의 한쪽 부분을 고정시키고 다른 부분에 힘을 가하게 되면 로드셀에 변형이 생기게 된다. 로드셀에는 스트레인 게이지가 부착되어 있고 변형이 생김에 따라 스트레인 게이지 내부의 저항값이 달라지게 되고, 스트레인 게이지를 흐르는 전류에도 변화가 생긴다. 로드셀에 가해지는 하중이 클수록 전류의 변화도 커지게 되고 이를 이용하여 하중을 측정한다. 로드셀은 금속의 변형을 이용하기 때문에, 서포트를 두지 않고 의도적으로 변형이 생기게 만들 부분이 필요하다.
- 빔형 로드셀
- 빔형 로드셀을 옆쪽에서 바라본 그림이다. 빔형 로드셀은 그림과 같이 한쪽 끝에만 서포트를 두고 반대편 끝에 힘을 가하여 로드셀에 변형이 생기도록 한다.
- 체중게용 로드셀
- 체중계용 로드셀을 위쪽에서 바라본 그림이다. 안쪽 사각형(빨간색)과 바깥쪽 사각형(파란색)으로 되어있는 구조인데, 바깥쪽 사각형에선 로드셀을 지지하고, 가운데 있는 원 부분에 하중을 가하게 되면 안쪽 사각형(빨간색) 부분에서 변형이 생기도록 하고 안쪽에는 서포트를 두지 않는다.
- 빔형 로드셀과 체중계용 로드셀을 비교했을 때 가장 큰 차이점은 서포트를 두는 형태라고 할 수 있다. 빔형 로드셀은 한쪽 끝에만 서포트를 둘 수 있고 체중계용 로드셀은 바깥쪽 테두리를 따라서 서포트를 둘 수 있다
- 로드셀 개수
- 무게측정모듈에 설치할 로드셀의 수이다. 로드셀의 수가 적으면 제작비용이 저렴해진다는 장점이 있지만,무게를 측정하는 물품의 무게중심이 케이스의 중앙에서 벗어나 가장자리로 향할수록 구조적 안정성이 떨어진다는 단점이 있다.
- 케이스 형상
- 케이스 외부 형상
- 실제 사용시 사용자가 물품을 올려놓고 사용할 케이스의 외부 형상은 단순하며 활용도가 높은 직육면체 모양으로 하고, 중소규모의 사업장을 목표로 하므로 크기는 30cm * 30cm 정도로 한다.
- 로드셀 부착방식
- 로드셀을 케이스에 부착할 때 주의할 사항들은 다음과 같다.
- (1) 로드셀은 움직이지 않게 단단히 고정되어 있어야 한다.
- (2) 하중이 로드셀의 하중을 가하는 부분에 정확히 전달되어야 한다.
- (3) 로드셀에는 수직 방향의 하중 외에 비틀림 등이 전달되어서는 안된다.
- (4) 로드셀의 변형이 일어나는 부분에는 서포트가 없어야한다.
- 로드셀을 케이스에 부착할 때 주의할 사항들은 다음과 같다.
- 로드셀을 설치할 때는 로드셀의 변형이 일어나는 부분에 변형이 생길 수 있도록 서포트를 없애기 위하여 케이스 하판의 높이를 낮춘다. 그 후 로드셀을 단단히 고정시키기 위하여 로드셀 고정부를 두고, 나사로 결합한다. 케이스 상판과 로드셀 중앙의 하중을 가하는 부분이 정확히 만나도록 하여 케이스 상판 위에 올려놓는 물품의 무게를 정확하게 측정할 수 있도록 한다.
- 상판과 하판의 결합방식
- 케이스 상판과 하판이 분리되지 않도록 상판과 하판을 결합해주어야 하는데, 이 때 케이스 상판에 올려놓는 물품의 하중이 모두 로드셀에 전달되어야 하며, 케이스의 결합부위에 전달되지 않도록 주의하여야 한다
- 케이스 상판의 나사구멍은 나사와 딱 맞는 원형으로 하고, 케이스 하판의 나사구멍은 둥근 직사각형 모양으로 한다. 케이스 상판과 하판이 멀어지는 방향으로 힘이 작용할 때는 나사에 힘이 전달되어 케이스가 분리되지 않고, 케이스 상판과 하판이 가까워지는 방향으로 힘이 작용할 때는 나사에 힘이 전달되지 않고 로드셀에 모두 전달된다.
- 무선연결방식
- 블루투스는 와이파이에 비해 낮은 속도, 낮은 전력 소모, 통신 거리의 제약 등을 장단 점으로 갖는다. 본 프로젝트에서 전송하는 데이터는 블루투스의 전송속도로도 충분할 것으로 예상되며, 전송속도는 큰 단점이 되지 않을 것이다. 블루투스는 와이파이에 비해 사용시전력, 대기전력 모두에서 큰 우위를 가지고 있고, 와이파이는 블루투스에 비해 상대적으로 통신 가능 거리에서 제약이 없다는 장점이 있지만, 연결을 위해 외부 인터넷망과 라우터가 필요하다는 단점이 있다. 배터리 사용시간과 통신가능거리는 모두 사용자에게 중요한 요소이므로 적절한 타협이 필요할 것이다.
- 아두이노 종류
- 3종류의 아두이노를 비교해보았다. 우선 크기는 아두이노 마이크로가 나노보다 가로로 3mm가 더 길지만 프로토타입 제작시 공간에 충분히 여유가 있을 것으로 추정되기 때문에 유의미한 차이는 아닐 것이다. 아두이노 마이크로는 상대적으로 저렴하지만, Bluetooth를 지원하지 않아 Bluetooth를 이용하기 위한 추가적인 모듈이 필요하고, 모듈을 위한 추가적인 비용과 공간이 필요하게 된다.
- Nano 33 IoT와 Nano 33 BLE 2개 모델의 가장 큰 차이는 블루투스 버전과 와이파이 지원여부이다. Nano 33 IoT는 Bluetooth 4.2를 지원하며 이론상 최대 통신 가능거리는 10m이고, Nano 33 BLE는 Bluetooth 5.0을 지원허묘 이론상 최대 통신 가능거리는 40m이다. 다만 Bluetooth 5.0을 이용하기 위해서는 PC 측에도 5Bluetooth 5.0 이상의 버전이 사용 가능해야 허며, 그 미만의 버전이라면 하위호환으로 PC측의 버전에 맞게 연결된다. 또한 Nano 33 IoT 모델은 Wi-Fi를 지원하지만, Nano 33 BLE 모델은 Wi-Fi를 지원하지 않는다.
- 현재시점에서 Nano 33 BLE의 가격이 크게 올라 Nano 33 IoT보다 약 20,000원 정도가 더 비싸 가격차가 크게 나는 점 또한 고려해야 할것이다.
- 전원 공급 방식
- 3가지 종류의 전원공급방식을 비교해보았다. 우선 전원공급방식은 크게 어댑터 방식과 배터리 방식으로 나누어볼 수 있다. 어댑터방식은 전원공급을 위해 항상 유선 연결이 필요하며, 배터리 방식은 배터리를 통해 외부 전원 연결 없이도 사용이 가능하다. 어댑터 방식은 유선연결로 인해 설치공간에 제약이 생긴다는 단점이 있지만 배터리 교체나 충전 등을 신경 쓸 필요가 없어 편리하다는 장점이 있다.
- 배터리 방식은 배터리가 다 떨어졌을 때 교체를 해주는 교체식 방식과 충전을 해주는 충전식 방식이 있다. 리튬폴리머 배터리를 사용했을 때는 제품 가격이 높아져 소비자의 초기 투자 비용이 증가하지만, 추가적인 배터리 구입이 필요 없기 때문에 유지비가 들지 않는다. 배터리 용량을 자유롭게 선택할 수 있다는 장점도 있다. 하지만 배터리 충전을 위한 추가적인 모듈이 필요하고, 장기간 사용하였을 때 배터리 성능 자체에 열화가 발생해서 충전 주기가 점점 짧아질 수 있다는 단점이 있다.
- 소프트웨어
- 본 프로젝트에서 구현할 PC 프로그램은 하드웨어에서 측정한 무게 데이터를 받아 사용자에게 필요한 정보를 제공한다. PC 프로그램은 크게 아래와 같은 알고리즘으로 동작한다.
- 가장 기본적으로 사용되는 데이터는 하드웨어를 통해 측정된 제품의 실시간 무게 데이터다. 이 데이터는 아두이노와 연결된 블루투스 또는 와이파이 장치를 통해 PC로 전송되어 저장된다. PC프로그램은 이렇게 저장된 데이터를 활용하여 동작한다. PC 프로그램의 기능은 크게 무게 데이터의 출력과 자동 주문으로 구분할 수 있다.
- 첫째, 무게 데이터의 출력은 전송된 데이터를 화면에 출력해 사용자에게 무게와 관련된 정보를 제공해주는 기능이다. 시간 간격을 설정해 프로그램의 메인 화면에 출력하는 기능과 저장된 데이터를 기반으로 일간, 주간, 월간 재고의 무게 변화를 확인할 수 있는 그래프 출력 기능으로 구분할 수 있다.
- 둘째, 자동 주문 기능은 본 프로젝트의 핵심 기능 중 하나로 재고의 무게가 일정 기준 이하가 되면 저장된 구매 링크로 접속해 자동으로 필요한 양의 재고를 주문해주는 기능이다. 본 프로젝트에서는 생수를 기준으로 10kg(20%) 이하가 되면 자동으로 주문하는 것으로 설정했다. 자동 주문을 위해 웹페이지를 제어할 수 있어야 한다. 또한, 자동 주문이 이루어진 날짜, 시간, 주문 수량 등을 별도로 저장해 사용자가 주문 내역을 확인할 수 있는 기능이 제공된다.
- 이러한 기능을 가진 PC 프로그램을 일반 사업장을 운영하는 사용자가 쉽게 프로그램을 이해하고 사용할 수 있도록 직관적인 GUI를 구현할 예정이다.
- 파이썬 웹페이지 제어 모듈
- 온라인 쇼핑몰에서 물품을 구매하는 과정을 자동화하기 위해서는 프로그램 자체에서 해당 물품을 구매할 수 있는 웹페이지를 열고, 제어할 수 있어야 한다. 이러한 기능을 구현하기 위해 파이썬에서 활용이 가능한 웹페이지를 제어할 수 있는 모듈 3가지를 비교해보았다.
- 첫째, ‘셀레니움’은 파이썬을 통해 실제로 웹페이지를 열고 사용자가 동작하는 것처럼 웹페이지를 제어할 수 있는 모듈이다. 웹페이지를 직접 열어서 실행하기 때문에 버튼 클릭, 스크롤 조작 등을 활용해 자동화 테스트가 가능하다. 단, 웹페이지를 직접 실행하기 때문에 상대적으로 속도가 느려진다는 단점이 있다.
- 둘째, ‘뷰티풀수프’는 웹페이지의 주요 정보를 파이썬에서 다루기 쉬운 형태로 변환하는 것에 적합한 모듈이다. 다른 모듈에 비해 구현한 코드가 가볍고 빠르지만, 스스로 웹페이지를 여는 기능을 제공하지 않아 다른 모듈과 함께 사용해야 한다.
- 셋째, ‘리퀘스트’는 주로 http 문서를 가져오기 위해 사용되는 모듈이다. 다른 모듈에 비해 http 문서를 가져오는 속도가 빨라 많이 사용되지만 동적 페이지 요소를 처리하지 못한다는 단점이 있다.
- 이번 프로젝트에서 필요한 기능은 구매 링크가 있는 웹페이지를 열고, 웹페이지를 조작하여 필요한 물품을 주문하는 것이다. 이를 위해서는 웹페이지를 열어 정보를 읽고, 웹페이지 내의 버튼, 입력창, 스크롤 등을 조작할 수 있는 기능이 필요하다.
- 파이썬 GUI 구성 모듈
- 일반 사용자가 프로그램을 쉽게 사용하기 위해서는 단순하고 직관적인 형태의 GUI가 제공되어야 한다. GUI의 구현을 위해 파이썬에서 활용할 수 있는 GUI 구현 모듈을 비교해보았다.
- 첫째, Tkinter는 파이썬에 기본적으로 내장되어 있는 GUI 모듈이다. 이미 내장된 모듈이기 때문에 별도의 설치가 필요없고, 코드의 구현이 쉽고 간결하다. 코드의 구현이 쉬운 만큼, 타 모듈에 비해 기능이 한정적이고 미적인 요소가 부족하다는 단점이 있다.
- 둘째, PyQT는 별도로 제공되는 디자인툴인 Qt Designer를 활용하는 GUI 모듈이다. 별도의 디자인툴을 제공하는만큼 미적 요소를 갖춘 GUI의 구현이 가능하고, 대부분의 기능을 지원한다. 하지만 별도의 설치가 필요하고, 프로그램을 상업용으로 개발할 시에는 유료 라이센스의 구입이 필요하다.
- 셋째, PyGTK 역시 PyQT처럼 Glade라는 별도의 디자인툴을 활용해 GUI를 구현할 수 있는 모듈이다. PyQT보다는 부족하지만 Tkinter보다는 다양한 기능을 제공한다. 다만, 윈도우 개발환경보다는 리눅스 개발환경에 적합한 모듈이다.
- 현재 진행 중인 프로젝트에서는 버튼을 클릭했을 때, 새로운 창이 열려 저장된 정보를 보여주거나, 특정한 함수가 동작되도록 하는 기능이 필요하다. GUI에서 미적인 요소 역시 중요한 부분이지만, 현 프로젝트에서는 미적인 요소보다는 기능적인 요소에 집중하는 것이 맞다는 판단을 내렸다.
- 프로그램 인터페이스 구성
- 프로그램의 인터페이스는 프로그램의 코드를 구현함에 있어 어떻게 구현하게 될 것인지를 설정하는 요소이자, 사용자에게 어떤 정보에 초점을 두고 제공할 것인가를 결정하는 요소이다. 이를 결정하기 위해 두 가지 방안을 고려해보았다.
- 첫째, 단순형 인터페이스는 무게 측정 모듈로부터 받은 현재 무게 정보를 보여주는 것에 초점을 맞춘 인터페이스이다. 본 프로젝트의 기본적인 목표가 측정한 무게를 사용자에게 알려주고 자동 주문을 하는 것이기 때문에 무게 정보가 가장 중요한 요소라고 판단했다. 세로형 화면에 무게 정보를 출력하고, 그 외의 부가적인 기능은 버튼을 통해 사용자가 이용할 수 있도록 구현한 형태이다. 단순형 인터페이스는 필요한 화면의 크기가 작아 하나의 모니터에서 다른 프로그램과 함께 효율적으로 사용이 가능하다는 장점이 있지만, 필요한 정보를 확인하기 위해서는 별도의 버튼을 눌러야한다는 단점이 있다.
- 둘째, 종합형 인터페이스는 하나의 화면에 사용자에게 제공되는 모든 정보가 출력되는 것이다. 측정된 현재 무게 정보 외에도 제품 정보, 주문내역, 사용량 그래프 등을 하나의 화면에 출력하는 방식이다. 별도의 조작 없이 프로그램이 제공하는 모든 정보를 확인할 수 있다는 장점이 있지만, 차지하는 화면이 넓고 현재 필요하지 않은 기능에 대해서도 프로그램이 동작하기 때문에 프로그램 자체의 속도가 느려질 수 있다는 단점이 있다.
상세설계 내용
조립도
위쪽에서 본 모습 아래쪽에서 본 모습- 위쪽의 평평한 판 부분에 물건을 올려놓고 무게를 측정하고, PC로 무게를 전송하게 된다. 별도의 어댑터와 케이블을 사용해 외부로부터 전원을 공급받는다
- 로드셀이 들어있는 체중계와 회로를 구성하는 브레드보드, 로드셀 엠프, 아두이노 나노 33 IoT, 회로를 보호할 회로커버, 전원 공급을 담당하는 전원 어댑터와 케이블로 구성되어 있다.
- 우선 핀을 이용해 브레드보드에 로드셀 앰프와 아두이노를 차례로 장착하고 이를 체중계에 있는 로드셀과 연결시켜 회로를 구성한다. 그 후 브레드보드를 회로커버에 접착제를 이용하여 고정한 후, 접착제를 이용하여 회로커버를 체중계 하단에 부착한다. 그 후 외부로 드러난 아두이노의 USB 포트를 통해 어댑터를 이용하여 외부 전원을 공급해준다.
제품의 주요 치수이다. 제품의 전체 크기는 300mm * 300mm 이며, 브레드보드와 회로커버, 회로커버와 체중계의 서로 맞닿으면서 결합하는 부분의 치수를 같게 하여 단단하게 결합될 수 있도록 하였다.
조립순서
- 체중계 분해
- 부품 조립에 앞서, 본 프로젝트에서는 로드셀을 이용하여 무게를 측정하는 장치가 필요하며, 체중계에는 이미 로드셀이 포함되어 있고 로드셀을 이용하기 위한 기하적 형상이 이미 구현되어 있으므로 시중의 체중계를 구매하여 사용하기로 한다. 체중계 모델 선정 기준은 개조가 용이한 형상으로 카스 HE-70 모델을 선정하였다.
- 로드셀을 이용하여 측정한 무게를 PC로 전송해주는 역할을 하는 아두이노 회로가 필요하므로, 체중계의 로드셀을 아두이노에 연결하기 위한 사전 작업이 필요하다.
체중계 원본 형상(아래쪽)
- 빨간색 원 부분에 있는 나사 4개를 해체한다.
(투명도가 있는 부분은 외부에서 보이지 않는 부분)
- 체중계의 각 꼭짓점 부분에 로드셀이 부착되어 있고, 봉을 통해 로드셀의 선이 연결되어 있으며 중앙 상단에 있는 PCB 기반에 부착되어 있음을 확인할 수 있다.
- 로드셀을 이용하기 위해 PCB와 로드셀 사이의 선을 절단하고, 중앙 상단에 있던 연결봉, 회로커버, PCB 등은 모두 제거한다. 남아있는 로드셀 선은 아두이노와 로드셀 앰프를 포함한 회로에 연결된다.
- 아두이노 – 브레드보드 결합
- 헤더가 포함된 아두이노와 브레드보드를 핀을 이용해 결합한다
- HX711 – 브레드보드 결합
- 헤더가 포함된 HX711과 브레드보드를 핀을 이용해 결합한다.
- 회로 연결
- 조립된 브레드보드에 5. 제어부 및 회로연결에 있는 회로도대로 체중계의 로드셀을 연결하여 회로를 구성한다
- 회로, 회로커버 결합
- 사진과 같은 방향으로 브레드보드와 회로커버를 결합한다. 브레드보드의 가로, 세로와 브레드보드가 들어갈 구멍의 가로, 세로 길이가 일치하기 때문에 가로, 세로 방향으로는 자연스럽게 고정이되며, 높이 방향 고정은 외부 힘을 크게 받지 않는다는 점을 감안하여 브레드보드의 옆면에 접착제를 발라 회로커버에 고정시킨다.
- 결합이 완료된 모습이다. 회로의 선이 빠져나올 공간을 확보해야 하므로, 브레드보드를 끝까지 밀어넣지 않고 브레드보드의 바닥면과 회로커버의 바닥면이 같은 높이가 되도록 한다.
- 회로커버, 체중계 결합
- 사진과 같은 방향으로 결합을 진행하며, 회로커버는 로드셀 커버에 의해 가로, 세로 방향으로 고정이 된다. 높이 방향 고정은 외부 힘을 크게 받지 않는다는 점을 감안하여 회로커버의 바다면과 브레드보드의 바닥면에 접착제를 발라 결합을 한다.
- 전원 공급
- 외부로 드러난 아두이노의 USB 포트를 통해 전원을 공급한다. 별도의 어댑터와 케이블을 이용한다.
부품도
회로커버
제어부 및 회로설계
아두이노 나노 33iot, 로드셀 앰프 HX711과 4개의 로드셀을 포함하는 회로다. HX711의 A+, A-, E+, E-에 로드셀이 하나씩 연결되어 있다. 로드셀 간에도 연결이 되어있으며 대칭성을 갖는다. 아두이노와 HX711은 전원에 과녈ㄴ된 핀 2개와 데이터 전송에 관련된 핀 2개로 총 4개 핀의 연결을 갖는다.
로드셀 엠프 HX711은 일반적인 아두이노 나노 33 iot의 출력 전압인 3.3V에서 하중측정의 정확도에 대한 문제가 있다. 따라서 5V 출력을 사용해야 하고 아두이노 나노 33 iot에서 5V 츌력을 사용하기 위해서는 2가지 조건이 충족되어야 한다. 아두이노의 usb micro b 단자를 통해 전원이 공급되어야 하며, 사진상의 VUSB에 있는 2개의 핀을 납땜을 통해 연결해주어야 한다. 5V 전압을 사용하기 위해 추가로 전원모듈을 장착하면 추가적인 부품이 필요하고 회로가 복잡해지게 된다. 따라서 외부 어댑터와 usb 단자를 통한 전원공급과 납땜을 통해 5V 출력을 이용하기로 한다.
소프트웨어 설계
전체적인 소프트웨어 구조를 나타내는 그림이다. 아두이노에서 무게를 측정하는 코드가 실행되고, 아두이노에서 측정한 무게를 PC로 전송하기 위해 BLE 통신을 이용하며, BLE 통신에 관련된 코드가 아두이노와 PC 양쪽에 있다. 전송받은 무게 데이터를 바탕으로 PC에서 무게 데이터 출력, 자동주문 등의 기능을 제공하는 코드를 실행하게 된다.
- 무게측정
- 캘리브레이션
- 로드셀을 통해 측정된 전류와 그에 해당하는 무게 사이의 관계를 조정해주는 것을 캘리브레이션이라고 한다. 무게를 정확하게 측정하기 위해서는 캘리브레이션 작업이 꼭 필요하다. 물, 체중 등 참값을 알고 있는 물건들을 활용해 무게측정모듈로 측정했을 때 참값에 가까운 무게가 나오도록 캘리브레이션을 진행한다. 아두이노에서 제공하는 HX711.h 라이브러리의 내장 함수와 예제를 이용한다.
- 적절한 calibration_factor 값을 찾는 것을 목표로 캘리브레이션을 진햏한다.
- 초기 calibration_factor 값을 설정하면, 라이브러리 내장함수(set_scale())를 통해 영점이 맞춰지게 된다. 그 후로 무게의 참값을 아는 물건을 올려놓고, 측정값이 참값보다 크다면 calibration_factor를 키우고 측정값이 참값보다 작다면 calibration_factor를 낮추면서 참값과 일치하는 무게를 얻도록 한다. 참값과 일치하는 무게를 얻었다면 다른 무게를 가진 물건을 올려놓고 위 과정을 반복한다. 0~150kg 사이의 물건에 대해 시행한다.
- 캘리브레이션 표
- PC-아두이노 BLE 연결
- PC와 아두이노를 저전력 블루투스인 BLE를 통해 연결한다. 아두이노 나노 33 iot에 내장된 BLE 4.2를 활용하며, PC에 내장된 블루투스 모듈이 없다면 usb형 블루투스 동글을 활용할 수 있다.
- PC는 Central로 동작하는데, 연결 advertising 신호를 주기적으로 스캔하다가 아두이노에 연결을 요청하게 된다. 아두이노는 Peripheral로 작동하며 다른 기기에서 BLE 신호를 스캔할 수 있도록 주기적으로 연결 advertising 신호를 보내고(advertise) 연결 요청이 들어오면 수락하게 된다. 연결에는 디바이스의 고유 주소인 MAC address 값이 키값으로 사용된다.
- 연결이 되면 아두이노는 데이터를 주기적으로 송신하고, PC는 서비스 내의 고유번호인 Characteristic를 확인하여 원하는 정보를 수신할 수 있다.
- PC프로그램 전체 동작 시나리오
- 무게 데이터 저장
- 아두이노를 통해 하드웨어로부터 측정된 무게 데이터를 텍스트 파일 또는 CSV 파일의 형태로 저장한다. 이렇게 저장된 데이터는 무게 데이터와 함께 측정한 날짜, 시각 정보가 함께 기록되어 무게 데이터 출력과 사용량 그래프 출력에 활용된다.
- 자동주문
- 측정된 무게 데이터를 바탕으로 설정된 무게 이하가 되면 저장된 구매 링크를 통해 자동으로 제품을 주문한다. 본 프로젝트에서는 생수를 기준으로 10kg(20%)이하가 되면 자동으로 주문하는 것을 목표로 한다. 자동주문이 실행되면 실행된 날짜, 시각, 주문한 제품 수량을 별도의 파일을 통해 주문내역을 저장한다.
- 무게 데이터 출력
- 특정 시간 간격으로 현재 재고의 무게 데이터를 출력한다. 출력은 기존에 저장된 무게 데이터 파일을 활용하여 데이터를 불러와 출력하는 방식으로 구현한다. 현재 무게의 아래에는 등록된 제품명과 기준 무게를 이용한 현재 재고 수량을 함께 표시한다.
- 제품 정보 등록 및 변경
- 사용자가 제품의 정보를 입력하면 입력 내용을 텍스트 파일로 저장한다. 사용자가 입력할 수 있는 정보는 제품명, 기준 무게(1개), 구매 링크이다. 텍스트 파일에는 이 내용이 순서대로 리스트의 형식으로 저장된다. 제품 정보를 변경할 때는 입력창에 수정 내용을 입력하면, 기존의 텍스트 파일 위에 새로운 내용을 덮어 씌우는 방식으로 등록 정보를 수정한다.
- 제품 정보 확인
- 제품 정보의 확인은 제품 정보를 등록하면서 생성된 텍스트 파일의 내용을 불러와 출력하는 방식으로 동작한다. 저장된 정보인 제품명, 기준 무게, 구매 링크를 출력하며, 구매 링크의 경우 버튼을 클릭하면 해당 웹페이지로 연결될 수 있도록 구현한다.
- 주문 내역 확인
- 자동주문이 실행될 때마다 저장된 주문내역 파일을 불러와 출력한다. 순번, 날짜, 시각, 주문 수량이 순서대로 출력된다.
- 초기화
- 기존에 저장된 무게 데이터 파일, 제품 정보 파일, 주문내역 파일 위에 새로운 파일을 덮어씌워 저장된 모든 정보를 삭제한다. 삭제 전 사용자에게 확인 메시지를 출력한 후, 실행되도록 구현한다.
- 일별, 주별, 월별 그래프
- 저장된 무게 측정 데이터를 바탕으로 사용량 그래프를 제공한다. 각 버튼을 클릭할 때 해당하는 그래프가 별도의 화면을 통해 출력되도록 한다.
- 세부 설계
- 프로그램 인터페이스 구성
- 프로그램의 인터페이스는 사용자에게 현재 무게 정보를 보여주는 것에 초점을 맞춘다. 이를 위해 단순형 인터페이스를 활용하여 하드웨어로부터 입력받은 현재 무게를 메인 화면에 출력하고, 그 외의 부가적인 기능은 별도의 버튼을 통해 동작하도록 설계한다. 이를 통해, 사용자가 한 눈에 현재 무게를 확인할 수 있도록 한다. 또한, 작은 화면만 차지하기때문에 하나의 모니터에서 별도의 프로그램과 함께 사용이 편리하다.
- 프로그램 GUI 구성을 위한 파이썬 모듈
- 사용자가 프로그램을 쉽게 사용하기 위해서는 단순하고 직관적 형태의 GUI가 제공되어야 한다. 또한, 본 프로젝트를 통해 제공하고자 하는 기능을 모두 구현할 수 있어야 한다. 무료로 사용이 가능한 다양한 GUI 모듈 중 가장 단순하면서도 필요한 기능이 전부 제공되는 ‘Tkinter’를 활용하여 프로그램의 GUI를 구성한다. 타 모듈에 비해 디자인적인 요소는 부족하지만, 코드의 구현이 간단하고 직관적인 출력이 가능해 ‘Tkinter’를 활용하여 설계한다.
- 무게 데이터 저장 및 출력
- 무게 데이터 저장 및 출력은 하드웨어에서 측정된 데이터를 전달받으며 시작된다. 데이터가 전달되면 저장을 위한 폴더와 파일의 존재를 확인한다. 저장을 위한 폴더와 파일이 없다면 저장공간을 생성한 후 데이터를 저장한다. 이 때, 저장되는 데이터는 입력된 날짜와 시간, 측정된 무게이다. 저장된 파일의 무게 데이터를 일정 시간 간격으로 읽어 프로그램의 메인 화면에 현재 무게를 출력한다. 이후, 사용자가 그래프 기능을 실행하면 저장된 파일을 바탕으로 그래프를 출력한다.
- 제품 정보 등록 및 수정
- 사용자가 무게를 측정할 제품에 대한 정보를 입력할 수 있도록 한다. ‘제품 정보 등록’ 버튼을 클릭하면 정보 저장을 위한 공간을 확인한 후, 없다면 저장 공간을 새롭게 생성해 제품 정보를 저장한다. 이 때 저장되는 정보는 제품명, 기준이 되는 무게, 제품 구매링크, 1회 구매 시 수량 등이 포함된다. 저장 후 메인 화면에서 사용자가 ‘정보 확인’ 버튼을 클릭하면 제품 정보가 저장된 파일을 읽어 저장된 내용을 화면에 출력한다. 이후, 제품 정보의 초기화가 필요할 시 초기화 버튼을 누르면 기존에 정보가 저장된 파일의 내용을 모두 삭제하여 초기화한다.
- 자동주문을 위한 웹페이지 제어 모듈
- 자동주문을 위해서는 사용자가 실제로 웹페이지를 동작하는 것처럼 제어할 수 있어야 한다. 이를 위해 웹페이지 제어 모듈인 ‘Selenium’을 활용하여 웹페이지를 제어한다. ‘Selenium’은 타 모듈에 비해 상대적으로 속도가 느리지만 버튼 클릭, 스크롤 조작 등의 기능 구현이 가능해 웹페이지 제어의 자동화를 구현할 수 있다.
- 저장된 무게 데이터를 기반으로 특정 무게 이하가 되면 저장된 제품 정보에 따라 웹페이지를 제어하여 자동으로 제품을 주문한다. 측정된 무게가 10kg(전체의 20%) 이하가 되면 제품 정보에 저장된 구매링크 페이지로 접속한다. 접속 후, 웹페이지를 제어하여 구매 수량을 입력하고, 구매 버튼을 클릭한다. 구매가 정상적으로 진행되었다면 구매 성공 메시지를 출력하고, 실패했다면 구매 실패 메시지를 출력한다. 구매가 성공한 후에는 주문내역 저장을 위한 공간이 있는지 확인하여 주문내역을 저장한다. 이 때 저장되는 정보는 주문 날짜, 시간, 품명, 주문 수량이다.
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
포스터
관련사업비 내역서
완료작품의 평가
향후계획
- 무게 측정 모듈
- 개발목표를 무게 측정 최댓값 150kg, 측정 무게의 1% 정확도로 설정했지만 측정 무게가 130kg이 넘어가면 모듈이 불안정한 모습을 보였고 측정 무게의 최대 5%까지 오차가 발생했다. 지면에서의 반력이 로드셀에 전달되는 구조를 개선한다면 무게측정의 정확도와 안정성 측면에서 더 발전된 모습을 기대할 수 있을 것이다.
- 물품 사용량 통계 제공 기능
- 누적된 무게 데이터를 활용하여 일간, 주간, 월간 물품 사용량 통계를 사용자에게 제공할 수 있다. 현재 하드웨어를 통해 전달 받은 무게 데이터는 별도의 관리 없이 저장되고 있다. 이 데이터를 기반으로 일간, 주간, 월간 데이터의 형태로 나누어 관리한다면 사용자에게 통계 정보를 제공할 수 있다.
- 통계 정보를 출력하는 GUI의 경우, 현재 제작된 PC 프로그램에 추가적으로 구현할 수 있다. 파이썬에서 ‘Matplotlib’를 이용하면 그래프를 출력할 수 있는데, 이 라이브러리는 현재 GUI를 구현에 사용된 ‘Tkinter’와 함께 활용이 가능하다. 이를 통해, 일간, 주간, 월간 그래프를 나타내는 버튼을 클릭하면 각 기능에 맞는 그래프가 출력되는 기능을 구현할 수 있다.
- 이러한 사용량 통계를 제공하는 기능은 물품 사용의 효율적인 관리를 도울 수 있을 것이다.
- 다양한 URL을 통한 자동 주문의 구현
- 현재 자동주문 알고리즘은 ‘네이버 쇼핑’ 페이지에 맞춰 설계되어 있다. 자동주문을 위해 파이썬 라이브러리인 ‘Selenium’을 사용하는데 웹페이지를 제어하기 위해서는 각 구성요소의 ‘Xpath’를 읽어야한다. 하지만, 각 구성요소의 ‘Xpath’는 웹페이지마다 다르기 때문에 모든 웹페이지에서 작동하게 하려면 모든 쇼핑몰 페이지 구성요소들의 ‘Xpath’를 정리해야 한다.
- 이러한 작업을 수행한다면, 모든 웹페이지에서 자동주문이 가능해진다. 이는 특정 웹사이트가 아닌 사용자가 원하는 모든 웹사이트에서의 주문을 가능하게 하여 PC 프로그램의 활용도가 높아지도록 할 것이다.
- 연결 안정성
- 현재 알 수 없는 이유로 PC와 무게측정모듈간 블루투스 연결이 20분을 넘기지 못하며 불안정한 모습을 보이고 있다. 연결 안정성을 높이고, 연결이 끊기더라도 프로그램을 재부팅하여 다시 연결될 수 있도록 한다면 제품의 안정성을 크게 높일 수 있을 것이다.