
매장에서 판매가 발생할 때마다 저는 그걸 느낍니다. 감정적으로 그렇다는 뜻도 있지만, 말 그대로 휴대폰이 진동하는 걸 느낍니다. 그러면 주의가 흐트러져 휴대폰을 집어 들고 알림을 이리저리 확인하다가, 몇 분 뒤에는 제 작업을 끝내는 대신 다른 사람의 프로젝트를 보고 있습니다. 그래서 이 문제를 해결하는 데 도움이 될 무언가를 만들었습니다.
저는 Etsy와 Shopify 스토어에서 하드웨어 키트와 재봉 패턴을 온라인으로 판매하는 메이커입니다.
그리고 휴대폰을 보게 만들지 않으면서도 새로운 판매가 발생할 때마다 축하해 주는 전용 실물 장치를 벽에 두고 싶었습니다.
결국 만든 것은 두 로고를 NeoPixels로 백라이트 처리한 섀도 박스입니다. 판매가 발생할 때마다 로고가 깜빡이며 Etsy는 주황색, Shopify는 녹색으로 표시됩니다. 오늘은 이 장치를 얼마나 쉽게 조립했는지 보여 드릴 테니, 함께 따라 하면서 여러분만의 장치를 만들어 보세요.


필요한 준비물:





이 프로젝트에는 두 가지 접근 방식을 시도해 보았고, 각각의 장단점을 설명해 보겠습니다.
제가 최종적으로 선택한 방법은 IFTTT 와 Adafruit IO를 사용하는 것이었습니다. 이 두 웹 서비스는 실시간 판매 데이터를 중계하고 수집하여 마이크로컨트롤러가 쉽게 가져올 수 있도록 해 줍니다.
이 방법은 쉽고 안전합니다. IFTTT는 즐겨 사용하는 여러 웹 서비스에 로그인한 다음, 서비스 간에 원인과 결과에 따른 작업을 연결해 주는 API 게이트웨이입니다. 따라서 Etsy 서비스를 IFTTT 계정에 연결하고, 새 판매가 발생할 때마다 실행되는 새 애플릿을 만들기만 하면 됩니다. 출력은 주문 발생 시각을 Adafruit IO로 전송합니다. Adafruit IO는 새 주문 데이터를 “etsy-orders”라는 피드로 전달하는 웹 데이터 서비스입니다.
제 WiFi 마이크로컨트롤러에서는 로컬 네트워크에 연결한 다음 피드 데이터를 받기 위해 Adafruit IO에 연결하는 Arduino 코드가 실행됩니다. 새 레코드가 있으면 스케치가 연결된 NeoPixel을 애니메이션으로 표시합니다. API를 IFTTT 플랫폼에서 사용할 수 있도록 하는 과정을 Etsy가 거쳤기 때문에 Etsy에서는 이 방식이 훌륭하게 작동합니다.
하지만 Shopify는 IFTTT에 서비스를 제공하지 않습니다. 그래서 웹훅을 사용해 둘을 연결하겠습니다. Shopify 설정에서는 스토어에서 어떤 일이 발생했을 때 메시지를 보낼 URL을 지정할 수 있습니다.
IFTTT 웹훅 설정에서 계정마다 고유한 이 URL을 찾아 Shopify 설정에 입력하면 새 주문이 생성될 때 트리거되도록 할 수 있습니다.
IFTTT로 돌아가 웹훅 서비스를 입력으로, Adafruit IO를 출력으로 사용하는 애플릿을 만듭니다. 출력 피드의 이름은 “shopify-orders”로 지정합니다.
마이크로컨트롤러 코드는 피드 이름과 LED 애니메이션의 색상만 Etsy 버전과 다르고 나머지는 같습니다.
Etsy와 Shopify 스토어를 모두 운영하고 있기 때문에 두 Adafruit IO 피드를 모두 확인하고 어느 스토어에서 판매가 발생했는지에 따라 LED 스트랜드의 서로 다른 부분을 애니메이션으로 표시하는 통합 Arduino 스케치를 만들었습니다.
물리적인 제작 이야기를 하기 전에, 다른 웹 서비스를 전혀 추가하지 않고 Etsy API를 직접 사용해 기술적으로 이 프로젝트를 만드는 다른 방법도 말씀드리고 싶습니다. API 키 승인을 받는 데는 오랜 시간이 걸리지만, 일단 키를 받으면 Arduino 스케치가 API로 인증하고 데이터를 가져오도록 할 수 있습니다. 문제는 인증 토큰을 가끔 새로 고쳐야 한다는 것입니다. 마이크로컨트롤러에서 OAuth를 처리하는 것은 매우 번거로울 뿐만 아니라 안전하지도 않습니다. Shopify 웹훅 기능을 구현하려면 필요한 방식인 자체 소형 웹 서버가 이를 처리하도록 하는 편이 낫습니다. ESP 보드의 IP를 인터넷에서 접근할 수 있도록 공개하는 방법도 있지만, 이는 안전하지 않습니다. 하지만 기술적으로는 가능합니다. 다만 저는 권장하지 않습니다.
솔직히 말하면, 이것은 제가 처음으로 바이브 코딩으로 만든 프로젝트입니다. 그렇지 않았다면 덜 안전한 방법을 시도하는 데 시간을 들이지 않았을 것입니다. 저는 10년 넘게 전자공학 튜토리얼을 작성해 왔습니다. 지금까지 IFTTT-to-Adafruit IO-to-Neopixel 프로젝트를 열두 개쯤 만들었습니다. 그리고 이번이 AI를 사용해 직접 코드를 작성한 첫 번째 경험이었습니다. 그래서 잠시 짚고 넘어가며 AI 코딩 도구에 대한 현재 제 생각을 말씀드리겠습니다. 저는 열렬한 팬이면서도, 모든 것 이 너무 빠르게 변하는 것이 두렵기도 합니다. 물론 소프트웨어 사양을 충분히 자세하게 설명할 수 있고, 무엇보다 결과물을 평가할 수 있을 만큼 경험이 있습니다. 그래서 요즘 필요한 기술은 바로 그것 이라고 생각하며, 그렇기 때문에 여전히 코딩을 배울 가치는 있습니다. 하지만 너무 쉬워서 조금 무서울 정도였습니다.
어떤 AI 코딩 도구를 선호하는지 물어보실 것 같네요. 저는 CodeCraft from Seeed Studio를 사용하고 있습니다. Seeed의 제품 문서로 학습된 특수 하드웨어 지식이 내장되어 있고, 브라우저에서 작성한 코드를 보드에 바로 업로드할 수도 있어서 로컬 컴퓨터 환경을 번거롭게 설정할 필요가 없습니다. 따라서 교실의 Chromebook에서도 실행할 수 있습니다.



이 프로젝트의 물리적인 형태로는 섀도박스 액자를 사용합니다. 제 영상을 한동안 보셨다면 이 방법을 이전에도 여러 번 사용했다는 것을 기억하실 겁니다. 정말 빠르고 간단하며 필요한 도구도 거의 없습니다.
두 가게의 로고가 모두 들어간 인쇄물을 액자에 넣을 수 있도록 디자인했습니다. Shopify 로고는 사용 지침과 함께 쉽게 찾을 수 있었지만, Etsy의 E는 일반적인 세리프 서체를 바탕으로 미묘하면서도 광범위하게 수정된 형태라 직접 트레이싱해야 했습니다. 이 E를 복제하는 작업이 이 프로젝트를 만들면서 가장 오래 걸린 단계였던 것 같습니다. 하지만 저는 Adobe Illustrator를 무척 좋아하므로, 즐기지 않았다고는 할 수 없습니다.
커터칼, 자, 커팅 매트를 사용해 프린터 용지에서 4x6 디자인을 잘라냈습니다. 로고 아트워크를 액자에 넣고, 섀도박스를 반으로 나누기 위해 판지 칸막이를 추가했습니다. 그런 다음 각 절반 안에 LED 픽셀을 느슨하게 고리 모양으로 배치하고 닫아서 효과를 확인했습니다.
검은색 레이저 인쇄를 두 겹으로 하면 빛을 더 많이 차단할 수 있을 거라 기대했는데, 실제로는 그렇지 않아 효과가 마음에 들지 않았습니다. 디자인의 검은색과 흰색을 반전했더니 이제 훨씬 더 마음에 듭니다.
그런 다음 LED의 위치를 조정하고 테이프로 고정했으며, 작은 브레드보드에 회로를 납땜했습니다.
USB-C 케이블이 인클로저 안으로 들어갈 수 있도록 구멍을 만든 다음, 스튜디오 벽에 걸었습니다. 그곳에 전시해 둔 YouTube 구독자 카운터 및 다른 LED 프로젝트들과도 잘 어울립니다.
이제 책상에 앉아 있을 때 누군가 제 봉제 패턴을 구매하면, 작업에 완전히 방해받지 않으면서도 새로운 스토어 판매가 발생했다는 도파민을 느낄 수 있습니다. 이 프로젝트를 더 발전시킨다면 조각하거나 3D 프린팅한 스토어 로고를 인클로저로 만들어 보고 싶습니다. 하지만 지금 상태만으로도 기술 수준과 재료비 측면에서 매우 쉽게 접근할 수 있는 프로젝트입니다.
만들게 된다면 꼭 보고 싶습니다. 저를 태그해 주세요!
원문: https://www.instructables.com/Shop-Sale-Notifier-for-Etsy-Shopify/