아두이노 - IFTTT | Arduino - IFTTT
이 튜토리얼에서는 아두이노를 IFTTT와 함께 사용하는 방법을 배울 것입니다. 자세히 말하자면, 우리는 배울 것입니다:
- IFTTT가 무엇인가요?
- 아두이노와 IFTTT는 어떻게 함께 작동하나요?
- 외부 서비스(구글 어시스턴트, 알렉사 등)가 IFTTT를 통해 아두이노를 어떻게 제어하나요?
- 아두이노가 IFTTT를 통해 외부 서비스(이메일, SMS, 음성 통화 등)로 어떻게 트리거하거나 데이터를 보내나요?
IFTTT는 아두이노를 가능하게 합니다:
- 아두이노가 스마트폰으로 알림을 보냅니다
- 아두이노가 이메일을 보냅니다
- 아두이노가 SMS 메시지를 보냅니다
- 구글 어시스턴트가 아두이노를 제어합니다
- 아마존 에코(알렉사)가 아두이노를 제어합니다
- 구글 캘린더를 통해 아두이노에 대한 일정을 설정하세요
그리고 그것들보다 훨씬 더 많은 것들.
준비물
1 | × | Arduino UNO R4 WiFi | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino UNO R4 | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino UNO R4 | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino UNO R4 | Amazon |
IFTTT란 무엇인가요?
IFTTT는 다양한 웹 서비스(예: 페이스북, 이메일, 트위터, 구글 어시스턴트 등)를 연결하는 무료 웹 서비스입니다. 예를 들어:
- 만약 당신이 IFTTT를 통해 페이스북을 드롭박스에 연결한다면, 페이스북에 사진을 게시할 때마다 IFTTT가 자동으로 사진을 드롭박스에 저장할 수 있습니다.
- 만약 당신이 IFTTT를 통해 아마존 알렉사를 이메일에 연결한다면, 당신이 알렉사에게 쇼핑 리스트에 무엇이 있는지 물어볼 때마다 IFTTT가 자동으로 이메일을 당신에게 보낼 수 있습니다.
IFTTT에서 중요한 4가지 개념은 애플릿, 서비스, 트리거, 그리고 액션입니다.
- IFTTT는 애플릿(Applets)으로 구성됩니다.
- 애플릿(Applet)은 일반적으로 두 개의 IFTTT 서비스로 구성됩니다. 한 서비스는 트리거(trigger)로 작용하고 다른 하나는 액션(action)으로 작용합니다. 애플릿 내의 IFTTT 서비스는 서로 연결되어 있습니다.
- IFTTT 서비스(예: 트위터, 드롭박스, 에버노트, 페이스북, 이메일, 아마존 알렉사, 구글 어시스턴트...)는 다음 중 하나를 수행합니다:
- 외부로부터 요청을 받고, 같은 애플릿(Applets) 내의 다른 IFTTT 서비스를 트리거합니다(트리거로 작용).
- 같은 애플릿(Applets) 내의 다른 IFTTT 서비스에 의해 트리거되고, 그 다음 외부 서비스와 무언가를 수행합니다(액션으로 작용).
- 애플릿은 세 개 이상의 IFTTT 서비스로 구성될 수 있습니다. 이것은 본 튜토리얼의 범위를 벗어납니다.
- IFTTT의 서비스와 외부 서비스를 혼동하지 말아주세요. 같은 이름을 가질 수 있습니다. 예를 들어, Alexa는 아마존에 의해 만들어지고 소유된 음성 서비스이며, IFTTT에는 아마존 Alexa와 상호작용하는 Alexa라는 서비스도 있습니다. 따라서 IFTTT 내의 서비스를 IFTTT 서비스라고 하고, IFTTT가 아닌 서비스는 외부 서비스라고 합시다.
- IFTTT 회사에서: 사용하려면 활성화하기만 하면 됩니다.
- 제3자에 의해: 사용하려면 활성화하기만 하면 됩니다.
- 직접: 자신만의 애플릿을 만들고 사용할 수 있도록 활성화할 수 있습니다. 애플릿을 만드는 것은 매우 쉽습니다.
※ NOTE THAT:
Applet이 생성되었습니다.
아두이노와 함께 작업하려면, 직접 애플릿을 만들어야 합니다. 걱정하지 마세요, 애플릿을 만드는 것은 매우 간단합니다.
IFTTT는 "If This Then That"의 약자입니다. 이는 어떤 서비스가 트리거되면, 다른 IFTTT 서비스가 조치를 취한다는 의미입니다.
선행 조건
IFTTT 계정을 생성하세요. 계정 생성은 무료이며 완전히 간단합니다.
아두이노와 IFTTT가 어떻게 서로 작동하는가
일반적으로 Arduino는 IFTTT와 상호 작용하고, IFTTT는 외부 서비스와 상호 작용하며, 그 반대의 경우도 마찬가지입니다.
자세한 내용으로, 아두이노는 IFTTT에서 애플릿과 상호작용하며, 애플릿은 외부 서비스와 상호작용하고 그 반대의 경우도 마찬가지입니다.
깊이 있게, 아두이노는 IFTTT의 Webhooks 서비스와 상호작용하며, Webhooks 서비스는 IFTTT의 다른 서비스를 트리거하며, IFTTT의 다른 서비스는 외부 서비스와 상호작용하고 그 반대도 마찬가지입니다. 아래는 아두이노가 아마존 에코 도트와 상호작용하는 예시입니다.
요약
In general | Arduino | ↔ | IFTTT | ↔ | Outside services |
More detail | Arduino | ↔ | Applet in IFTTT | ↔ | Outside services |
In depth | Arduino | ↔ | (Webhooks ↔ Other service) in IFTTT | ↔ | Outside services |
우리는 Webhooks의 애플릿과 다른 서비스를 만들어야 합니다. 사용 사례에 따라, Webhooks는 트리거 또는 액션으로 작동할 수 있습니다.
두 가지 사용 사례 카테고리가 있습니다:
- 다른 서비스가 IFTTT를 통해 Arduino를 제어합니다 (예: Google Assistant, Amazon Alexa가 Arduino를 제어함)
- Arduino는 IFTTT를 통해 다른 IFTTT 서비스에 데이터를 보냅니다 (예: 전화로 알림을 보내기, Twitter에 게시하기)
하나씩 자세히 살펴봅시다.
IFTTT를 통해 외부 서비스가 아두이노를 제어하는 방법
위에서 언급한 바와 같이, IFTTT 애플릿은 보통 두 개의 IFTTT 서비스를 포함합니다: 하나는 트리거 역할을 하고 다른 하나는 액션 역할을 합니다. 이 경우, Webhooks가 트리거로 작동합니다.
Arduino와 Webhooks 간의 상호작용에서 Arduino는 웹 서버로 작동하며, IFTTT의 Webhooks는 웹 클라이언트로 작동합니다.
작업 흐름:
i. 한 서비스가 IFTTT의 해당 서비스에 이벤트를 트리거합니다.
i. IFTTT의 해당 서비스가 이벤트에서 데이터를 추출합니다(가능한 경우).
i. IFTTT의 해당 서비스가 IFTTT의 웹훅을 트리거합니다(가능한 경우 데이터 포함).
i. IFTTT의 웹훅은 HTTP 요청을 Arduino로 보내 행동을 취합니다(가능한 경우 데이터 포함).
i. Arduino는 HTTP 요청에서 데이터를 추출하고 어떤 행동을 취합니다.
아래 이미지는 Amazon Echo가 IFTTT를 통해 Arduino를 제어하는 방법을 보여줍니다.
아두이노와 IFTTT 사용 방법
- IFTTT에 로그인하세요
- 원하는 서비스(예: 구글 어시스턴트, 아마존 알렉사, 구글 캘린더 등)를 Webhooks에 연결하는 애플릿을 생성하세요. Webhooks는 액션으로 작동하고 다른 서비스는 트리거로 작동합니다
- Webhooks에서 오는 HTTP 요청을 처리하는 아두이노 코드를 작성하세요
애플릿을 만들 때, 아두이노의 IP 주소가 애플릿 설정에 입력됩니다. 이벤트가 트리거될 때, IFTTT는 입력된 IP 주소를 통해 아두이노에 HTTP 요청을 합니다.
구체적인 지침은 구체적인 튜토리얼에서 단계별로 제시될 것입니다.
예제 코드
다음 튜토리얼에서는 다른 서비스가 IFTTT를 통해 아두이노를 제어하는 절차별 지침과 예제 코드를 확인할 수 있습니다:
아두이노가 IFTTT를 통해 외부 서비스에 데이터를 보내는/트리거하는 방법
위에서 언급한 것처럼, IFTTT 애플릿은 보통 두 가지 IFTTT 서비스를 포함합니다: 하나는 트리거로 작용하고 다른 하나는 액션으로 작용합니다. 이 경우, Webhooks가 액션으로 작용합니다.
아두이노와 웹훅 사이의 상호작용에서, 아두이노는 웹 클라이언트로 작동하며, IFTTT의 웹훅은 웹 서버로 작동합니다.
워크플로우:
- 아두이노는 IFTTT의 웹훅에 HTTP 또는 HTTPS 요청을 합니다.
- 웹훅이 HTTP 요청에서 데이터를 추출합니다(가능한 경우).
- IFTTT의 웹훅이 다른 서비스를 트리거합니다(가능한 경우 데이터 포함).
- IFTTT의 다른 서비스가 작업을 수행합니다.
아래 이미지는 아두이노가 IFTTT를 통해 이메일을 보내는 방법을 보여줍니다.
"어떻게 하는 방법"
우리가 해야 할 일
- IFTTT에 로그인
- 웹훅을 원하는 서비스(예: 이메일, 트위터, VoIP ...)에 연결하는 애플릿을 생성하세요. 웹훅이 트리거 역할을 하고 다른 서비스가 액션 역할을 합니다.
- 웹훅 키를 얻기 위해 웹훅의 문서 페이지로 이동하세요.
- 웹훅에 HTTP(POST 또는 GET) 요청을 보내기 위해 아두이노 코드를 작성하세요.
Arduino를 사용하여 HTTP 요청을 만드는 방법을 배우려면.
HTTP 요청에 포함해야 할 것은 무엇인가요?
- 웹훅 키: 웹훅을 식별하기 위한 고유하고 비밀스러운 키입니다. 계정당 하나의 키만 있습니다. 계정에 로그인하여 IFTTT 웹사이트에서 복사할 수 있습니다.
- 이벤트 이름: 이벤트를 식별하는 이름입니다. 이벤트 이름은 애플릿을 생성할 때 당신이 명명합니다. 한 계정이 여러 이벤트 이름을 생성할 수 있습니다.
- (선택사항) 데이터: 센서의 데이터를 IFTTT로 보낼 수 있습니다.
웹훅 키와 이벤트 이름은 URL의 일부입니다. 데이터는 선택 사항이며 쿼리 문자열에 포함됩니다. HTTP 튜토리얼에서 언급했듯이, 쿼리 문자열은 GET 요청에서 URL의 일부이며 POST 요청에서는 HTTP 본문입니다.
쿼리 스트링은 고정된 이름을 가진 최대 3개 변수를 허용합니다: value1, value2, value3.
HTTP GET 요청 형식:
- 데이터 없이 트리거 보내기: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY
- 하나의 변수를 가진 트리거 보내기: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10
- 두 개의 변수를 가진 트리거 보내기: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10&value2=21
- 세 개의 변수를 가진 트리거 보내기: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10&value2=21&value3=25
EVENT-NAME, YOUR-KEY 및 위의 형식의 값을 교체하십시오.
아두이노에서 IFTTT로 데이터를 보내는 방법
아두이노에서 다른 IFTTT 서비스(예: 이메일, 페이스북)로 데이터를 보내려면 다음을 수행해야 합니다:
- **Arduino에서**: HTTP 요청에 데이터 포함
- **애플릿에서**: HTTP 요청에서 데이터를 추출하도록 설정 수정
IFTTT 애플릿 설정에서 사용할 수 있는 변수가 5가지 있습니다:
{{EventName}} | Extracted from HTTP request |
---|---|
{{OccurredAt}} | System time when event occurs |
{{Value1}} | Extracted from the variable value1 of query string in HTTP request |
{{Value2}} | Extracted from the variable value2 of query string in HTTP request |
{{Value3}} | Extracted from the variable value3 of query string in HTTP request |
세부적인 단계별 지침은 특정 튜토리얼에서 제공될 것입니다.
예제 코드
다음 안내서에서는 Arduino가 IFTTT를 통해 다른 IFTTT 서비스로 데이터를 전송하는 방법과 예제 코드를 단계별로 설명하고 있습니다:
추가 지식
아두이노가 IFTTT의 웹후크로 HTTP 요청을 할 때, IFTTT는 내 아두이노와 다른 사람의 아두이노 요청을 어떻게 구분하나요?
⇒ 귀하의 HTTP 요청에는 Webhooks 키가 포함되어 있습니다. 각 계정은 하나이며 고유한 Webhooks 키를 가지고 있습니다. IFTTT는 Webhooks 키를 사용하여 귀하를 식별합니다.
내 아두이노가 여러 이벤트를 어떻게 트리거할 수 있나요?
여러 애플릿을 만들 수 있습니다. 각 애플릿은 트리거에 해당합니다.
아두이노가 IFTTT에 3개 이상의 변수를 어떻게 보낼 수 있나요?
당신은 설계한 구분자를 사용하여 일부 데이터를 쿼리 스트링의 하나의 변수로 결합할 수 있습니다. 예를 들어: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10&value2=21&value3=25-32