Skip to content

Latest commit

 

History

History
66 lines (53 loc) · 3.41 KB

README.md

File metadata and controls

66 lines (53 loc) · 3.41 KB

Siri를 활용하여 LED 제어하기 (NodeMCU)


프로젝트 소개

  • ESP8266 마이크로컨트롤러와 Dweet.io 플랫폼, Siri를 이용하여, 인터넷을 통한 원격 LED 제어를 구현했습니다.
  • 이를 통해 언제 어디서나 스마트폰 또는 다른 장치를 통해 LED의 상태를 제어할 수 있습니다.

🔨 Tech

  • Arduino IDE
  • Shortcuts
    image
    • 단축어를 실행하면 미리 설정해둔 작업이 실행되는 방식으로 작동. 서드파티 앱이 이를 지원할 경우 해당 단축어를 등록시켜 Siri에게 요청해 바로 실행하는 것도 가능
  • dweet.io
    image
    • Dweet은 디바이스 간에 데이터를 쉽게 주고 받을 수 있음. HTTP요청을 통해 JSON 형식의 데이터를 송수신
    • 단점 : 테스트 결과 응답 속도가 생각보다 많이 느린 듯 하다...

📀 Function

  1. 시리 음성 제어 (Shortcuts==단축어)
  2. dweet.io 객체 저장
  3. LED on/off

📺 구현순서

  1. dweet.io에서 URL 생성하기
  • Play버튼 클릭
  • POST/dweet/for/{thing} 라벨 클릭, 이름 정하기
  • Try it out! 버튼 클릭후 URL 복사
image


  1. Shortcuts(단축어) 생성
  • URL 변수 생성 후 링크 붙여넣기
  • 컨텐츠 가져오기에 URL 변수 연결. POST 메소드 사용 String 형태의 키와 값을 생성
  • 말하기에서 원하는 실행 보이스를 설정
image


  • 브라우저로 해당 링크로 들어가면 객체에 담긴 정보를 확인할 수 있음.
image image


  1. Arduino Json Assistant 사이트 활용
  • JSON 객체를 넣으면 자동으로 IDE 내에서 사용할 수 있는 파싱 코드 생성
  • 번호 순으로 진행하면 된다.
  • image




  1. IDE 프로그래밍
  • 필요한 라이브러리 추가(ESP8266,ArduinoJson)
  • 클라이언트 생성, 연결 실패 처리
  • GET 요청 => /get/latest/dweet/for/soraeya 경로 필수 (thing 이름) => 헤더 추가 => 연결 닫기
image


  1. IDE 프로그래밍
  • 데이터 한 줄 씩 읽어오는 것을 반복해 JSON 부분만 추출
  • JSON 데이터를 파싱
  • 각 값을 가져와 변수에 저장. (이 프로젝트에서는 LED Status 값만 사용)
image