산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트

부품 및 소모품

아두이노 우노 ×1
아두이노 이더넷 실드 ×1
아날로그 온도 센서 (TMP36 등) ×1

프로젝트 소개

아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트

(출처: Instructables)

아두이노에 전화 걸기 기능 활성화하기 - 트윌리오와 Yaler.net 활용

트윌리오는 모든 것을 전화로 바꿔주는 웹 서비스입니다. 클라우드 호스팅된 텔레포니 REST API죠. 여기선 누군가 아두이노에 할당된 전화번호로 전화를 걸면 트윌리오가 아두이노에 voice.xml 파일을 요청합니다. 응답 내용은 트윌리오의 TTS(텍스트 음성 변환) 엔진 '앨리스'가 발신자에게 읽어줍니다.

Yaler.net은 방화벽, NAT, 모바일 네트워크 라우터 뒤에 있는 임베디드 디바이스에 웹 접근을 가능하게 합니다. 여기선 트윌리오가 로컬 네트워크에 있는 아두이노의 voice.xml에 접근할 수 있게 해줍니다(공인 IP가 없으므로). (공개: 저는 Yaler의 창업자 중 한 명입니다.)

이 데모에선 온도 센서를 사용하지만 다른 센서도 상관없습니다. 실제 제품 예시론 카나리(현 버디) 연기 감지기가 있어, 집주인이 전화로 배터리 상태를 확인할 수 있습니다.

더 추상적으로 보면, 이 인스트럭터블은 개방형 IoT에서 모듈형 클라우드 서비스를 자유롭게 조합해 새롭고 단순하며 신뢰할 수 있는 솔루션을 구축하는 방법을 보여줍니다. HTTP와 웹훅 만세! 시작해볼까요...

(IoTLive의 프로젝트 설명 영상, IoTDay 2014)

준비물

1단계: 센서 배선

아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트

이더넷 실드를 아두이노에 장착하고 온도 센서를 그림과 같이 연결하세요. TMP36 센서 상세 사용법: Adafruit 가이드

다른 (디지털) 센서 추가 시 이더넷 실드가 사용하는 핀들을 피하세요.

2단계: Yaler 라이브러리 설치

아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트

https://yaler.net/arduino의 'Installing the library' 3단계를 따르세요.
아직 가입 안 했다면 https://yaler.net/에서 무료 체험 계정 생성 후 릴레이 도메인(비밀 키 불필요)을 메모하세요.

3단계: 아두이노 프로그래밍

아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트

TwilioYalerWebService 아두이노 소스 코드 다운로드

비트버킷 링크

아두이노 코드 열기

이 프로그램은 들어오는 HTTP 요청을 대기하는 아주 간단한 웹 서버를 구현합니다. 요청이 오면 XML 문서로 응답합니다. URL 경로가 /이든 /voice.xml이든 상관없습니다.

MAC 주소 변경

아두이노 코드의 MAC 주소가 고유해야 합니다. 같은 로컬 네트워크에 여러 아두이노가 있을 때 특히 중요합니다. 컴퓨터의 MAC을 찾아 마지막 자리 숫자에 1을 더하는 식으로 고유 주소를 만들 수 있습니다.

릴레이 도메인 입력

EthernetServer server(80);로 로컬 서버 만드는 대신, Yaler 릴레이를 통해 접근 가능한 서버를 만듭니다:

YalerEthernetServer server("try.yaler.net", 80, "RELAY_DOMAIN");

RELAY_DOMAIN을 본인의 릴레이 도메인으로 바꾸세요. 예: gsiot-ffmq-ttd5라면:

YalerEthernetServer server("try.yaler.net", 80, "gsiot-ffmq-ttd5");

포트 포워딩으로 로컬 방화벽에 HTTP 요청용 구멍을 뚫을 줄 안다면 로컬 서버 써도 됩니다. 중요한 건 트윌리오가 클라우드에서 아두이노에 접근 가능해야 한다는 점입니다.

저장 후 업로드

모든 변경사항 저장하고 아두이노에 업로드하세요. USB 케이블을 개발용 컴퓨터에 연결한 채로 시리얼 콘솔을 열어 디버깅 출력을 확인하세요.

4단계: 아두이노 접속하기

아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트

브라우저에서 아두이노 접속

Yaler 라이브러리로 아두이노(와 XML 문서)가 퍼블릭 인터넷에서 접근 가능해집니다: https://RELAY_DOMAIN.try.yaler.net/ (예: gsiot-ffmq-ttd5면 https://gsiot-ffmq-ttd5.try.yaler.net/). 트윌리오용으로 더 깔끔하게: https://gsiot-ffmq-ttd5.try.yaler.net/voice.xml

XML 문서 확인

XML 문서 내용이 트윌리오의 착신 응답을 결정합니다. TTS 음성도 선택 가능(여기선 앨리스). 트윌리오 XML 포맷은 TwiML이라 부릅니다. 상세 문서. 응답 텍스트에 실제 온도값이 포함됩니다. 센서를 데워보고 브라우저에서 F5로 새로고침하면 값이 변하는 걸 볼 수 있습니다.

문제 해결

빈 페이지나 에러가 뜨면 이더넷 케이블 연결 확인하고 브라우저별 디버깅 참고하세요.

5단계: 트윌리오 번호 설정

아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트
아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트
아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트

회원가입

https://www.twilio.com/에서 트윌리오 계정 생성.

전화번호 구매

착신용 번호 필요(소액 비용 발생). 로그인 후 Numbers → Twilio Numbers → Manage Numbers 탭으로 이동. Buy a number 클릭, Voice 체크박스 선택 후 Search, 원하는 번호 선택해 Buy.

voice.xml 웹훅 URL 구성

Manage Numbers 탭에서 방금 산 번호 클릭. Response URL을 https://RELAY_DOMAIN.try.yaler.net/voice.xml로 설정하고 POST 방식 선택. 예: gsiot-ffmq-ttd5면 https://gsiot-ffmq-ttd5.try.yaler.net/voice.xml

6단계: 테스트 통화 걸기

아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트

아두이노 설정 완료 후 아무 전화기로나 걸어보세요. 할아버지 휴대폰으로도 됩니다.

이상으로 마칩니다. 읽어주셔서 감사합니다. @tamberg

코드

비트버킷

소스 코드 링크

회로도

아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트

제조공정

  1. 액체/스틱형 발한억제제·데오도란트: 과학, 역사, 제조 통찰
  2. 라즈베리 파이 차고 문 오프너 – 라이브 비디오 스트리밍 포함 단계별 가이드
  3. 전자 토모그래피를 이용한 연필 모양 GaN/(In,Ga)N 코어-쉘 나노와이어의 고해상도 3D 이미징
  4. 블루투스 제어 아두이노 스파이봇(Spybot) 만들기
  5. 플릭모트(FlickMote): 스마트 홈을 위한 제스처 제어 IR 리모컨
  6. DIY 아두이노 TV B-Gone: 모든 TV를 끄는 만능 리모컨
  7. 아두이노 우노에 트윌리오와 예일러로 전화 걸기 기능 추가하기 - Call My Arduino 프로젝트
  8. 아두이노로 만드는 대형 LED 마스터 시계 (알람 기능 포함, 12m 거리에서도 식별 가능)
  9. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  10. CMMS 도입 비즈니스 케이스 구축: 정비 효율성과 ROI 극대화