아두이노 - 음성 전화 걸기 | Arduino - Make Voice Phone Call
이 튜토리얼에서는 아두이노를 사용하여 실시간 VoIP(Voice over Internet Protocol) 전화를 여러분의 전화로 거는 방법을 배울 것입니다. 이 코드는 Arduino Ethernet Shield 2용으로 제공됩니다. 다른 실드/보드와 작동하도록 수정할 수 있습니다.
튜토리얼은 두 가지 경우에 대한 아두이노 코드를 제공합니다:
- Arduino Uno R4 WiFi: 아두이노 우노 R4 와이파이
- Arduino Uno/Mega with Ethernet Shield 2: 아두이노 우노/메가 이더넷 쉴드 2와 함께
준비물
1 | × | Arduino UNO R4 WiFi | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | 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 |
Alternatively if using Ethernet:
1 | × | Arduino Uno | Amazon | |
1 | × | USB 2.0 cable type A/B | 쿠팡 | Amazon | |
1 | × | Arduino Ethernet Shield 2 | Amazon | |
1 | × | Ethernet Cable | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino Uno | Amazon |
필수 요건
IFTTT 및 관련 개념에 대해 잘 모르신다면, 다음 튜토리얼을 읽어보시기를 강력히 추천합니다:
선연결
아두이노 - 이더넷 쉴드 2: 우리는 그저 아두이노 우노/메가 위에 쉴드를 쌓기만 하면 됩니다.
작동 원리
우리는 해야 합니다:
- 휴대폰에 IFTTT 앱을 설치하세요(안드로이드와 iOS에서 사용 가능합니다).
- IFTTT 웹사이트에서 Webhooks와 VoIP Calls 서비스를 연결하는 IFTTT 애플릿을 만드세요.
애플릿을 만들 때:
- 휴대폰으로 보낼 음성 메시지로 변환되는 문자 메시지를 작성할 수 있습니다.
- 메시지에 아두이노에서 가져온 데이터를 포함할 수 있습니다.
워크플로우
- 아두이노가 IFTTT의 Webhooks에 HTTP 요청을 합니다.
- Webhooks가 IFTTT에서 VoIP Calls 서비스를 트리거합니다.
- IFTTT의 VoIP Calls 서비스가 텍스트 메시지를 음성 메시지로 변환합니다.
- IFTTT의 VoIP Calls 서비스가 당신의 전화에 있는 IFTTT 앱으로 전화를 걸습니다.
- 당신의 전화가 울립니다.
- 당신이 전화를 받습니다.
- 음성 메시지가 재생됩니다.
※ NOTE THAT:
- 메시지는 아두이노 코드가 아니라 애플릿에 지정되어 있습니다.
- 이것이 VoIP이기 때문에, 당신의 전화는 인터넷에 연결되어 있어야 합니다.
- VoIP 통화는 무료입니다.
- 아두이노는 당신에게 말할 수 있지만, 당신은 아두이노에게 말할 수 없습니다.
아두이노에서 IFTTT 사용하는 방법
- 전화에 IFTTT 앱을 설치하세요.
- IFTTT 계정을 생성하고 IFTTT에 로그인하세요.
- Webhooks와 VoIP Calls 서비스의 애플릿(Applet)을 만드세요. 사용하는 이벤트 이름을 적어두세요.
- 애플릿을 생성한 후, IFTTT에서 Webhooks 키를 받으세요.
- 아래의 Arduino 코드를 복사하여 Arduino IDE에 붙여넣으세요.
- Arduino 코드에서 이벤트 이름과 Webhooks 키를 교체하세요.
- 코드를 Arduino에 업로드하세요.
※ NOTE THAT:
- 이벤트 이름은 당신이 정합니다. 원하는 이름을 지정할 수 있습니다.
- Webhooks 키는 IFTTT에 의해 생성됩니다. 변경할 수 없습니다.
이 튜토리얼 마지막에 있는 비디오 튜토리얼을 봐주세요.
아두이노 코드
아두이노 우노 R4 WiFi용 아두이노 IFTTT 코드
아두이노 우노/메가용 이더넷 쉴드 2와 함께 사용하는 아두이노 IFTTT 코드
※ NOTE THAT:
이 튜토리얼은 동적 IP 주소( DHCP를 통해)를 사용했습니다. 정적 IP 주소를 사용하려면:
- Ethernet Shield 2의 경우, 아두이노 코드를 수정해야 합니다. 정적 IP 주소를 사용할 때 아두이노 이더넷 쉴드 2용 아두이노 코드를 참조하세요.
결과
위의 두 코드에서, 성공하면,
시리얼 모니터에서의 결과는 아래와 같습니다:
- 휴대폰이 울리는지 확인하세요.
- 전화를 받으세요.
- 음성 메시지를 들으세요.
비디오 튜토리얼
음성 메시지에 센서 데이터를 포함하는 방법
아두이노에서 데이터를 음성 메시지에 포함시키려면, 다음을 수행해야 합니다:
- 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에서: 위의 코드에서 String queryString = ""를 String queryString = "?value1=26&value2=70"로 변경하세요.
- 애플릿에서: IFTTT 애플릿 설정의 텍스트 메시지를 다음과 같이 수정하세요:
안녕 친구야,
이것은 아두이노 우노입니다, 알려드리고 싶은 것이 있습니다:
- 외부 온도는 {{Value1}} °C입니다
- 외부 습도는 {{Value2}} %입니다
위의 모든 값은 {{OccurredAt}}에 측정되었습니다.
행운을 빌고, 건강하세요!
위 메시지에서 "
"는 표시할 때 새 줄을 만듭니다.
음성 메시지는 아래와 같을 것입니다:
유튜브 비디오
센서에서 온도와 승도를 읽고 쿼리 문자열에 넣을 수 있습니다. 센서에서 데이터를 쿼리 문자열에 포함하는 방법을 참조하세요.
도전하세요
위 코드를 기반으로 다음 프로젝트를 만드십시오:
- 버튼을 누르면 귀하의 전화로 VoIP 전화를 겁니다
- 문이 열릴 때 귀하의 전화로 VoIP 전화를 겁니다
- 온도가 너무 높을 때 귀하의 전화로 VoIP 전화를 겁니다
WARNING
이 튜토리얼은 개발 중입니다.