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

구글 어시스턴트로 아두이노 제어하기: IFTTT·웹훅·ESP8266 완전 정복 가이드

프로젝트 목표

인터넷 서비스(구글 어시스턴트)와 아두이노 보드 간 연결 방법을 익힙니다. 완료 후 다음을 할 수 있습니다:

핵심 개념

구글 어시스턴트 & IFTTT 애플릿

구글 어시스턴트는 AI 기반 가상 비서로 자연어 음성 명령을 인식합니다. IFTTT(If This Then That)는 '이 조건이면 저 동작 수행' 식의 간단한 조건문(애플릿)을 만들어 웹 서비스 간 연동을 자동화하는 무료 서비스입니다. 구글 어시스턴트를 'This'(트리거)로, 웹훅을 'That'(액션)으로 연결합니다.

웹훅 & JSON

웹훅은 HTTP 콜백으로 웹 애플리케이션 간 실시간 데이터 전달 방식입니다. JSON(JavaScript Object Notation)은 사람이 읽기 쉬운 텍스트 기반 데이터 포맷으로, 속성-값 쌍과 배열로 구성되어 비동기 통신에 널리 쓰입니다.

구현 아키텍처

구글 어시스턴트 → IFTTT → 웹훅(HTTP POST, JSON) → 서버/데이터베이스 → ESP8266(폴링) → 시리얼 → 아두이노

회로 구성

단계별 구현 가이드

1. IFTTT 애플릿 생성

  1. ifttt.com 가입/로그인 → My Applets → New Applet
  2. This: Google Assistant → "Say a phrase with a number ingredient" 선택
  3. 명령어 예: "Set PWM of pin 9 to #" (숫자 부분은 #로 치환), 동의어 추가 가능
  4. 응답 메시지: "The PWM is updated"
  5. That: Webhooks → "Make a web request"
  6. URL: 본인 서버 엔드포인트 (예: https://your-server/api/Home/GetAllApp)
  7. Method: POST, Content-Type: application/json
  8. Body: {"Number":"{{NumberField}}"}

2. 서버 및 데이터베이스

IFTTT 웹훅 요청을 받아 JSON 파싱 후 DB에 저장하는 서버 코드 필요 (C#, Node.js, PHP 등 자유). 작성자는 비주얼 스튜디오 2017로 샘플 서버 코드 작성 (다운로드 링크 별도 제공).

3. ESP8266 펌웨어 (아두이노 IDE)

#include "ESP8266WiFi.h"
#include "ESP8266HTTPClient.h"
#include "ArduinoJson.h"

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting...");
  }
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin("https://your-ip/api/Home/GetAllApp");
    int httpCode = http.GET();
    if (httpCode > 0) {
      String payload = http.getString();
      // TODO: JSON 파싱 후 아두이노로 전송
      Serial.println(payload);
    }
    http.end();
  }
  delay(3000); // 3초마다 폴링
}

필수 라이브러리: ArduinoJson (라이브러리 매니저에서 설치)

4. 아두이노 펌웨어

ESP8266에서 시리얼로 수신한 JSON 문자열을 파싱하여 명령 실행 (예: PWM 핀 9 값 설정). 제공된 코드는 문자열 검색 방식으로 간단히 구현되어 있으며, 더 견고한 JSON 파싱(ArduinoJson 라이브러리 사용) 권장.

확장 아이디어

제조공정

  1. 통합 QR, RFID, 온도 검증 출입 통제 시스템
  2. 아두이노, 1Sheeld, IR 제어로 만능 안드로이드 리모컨 만들기
  3. 스마트 저금통 만들기: 아두이노 나노로 동전 인식기 제어하기
  4. 아두이노 블루투스로 LED 제어하기 - HC-05 & MIT App Inventor 입문 가이드
  5. 아두이노 나노와 조이스틱으로 2개 스테퍼 모터 제어하기 – 비주이노(Visuino) 튜토리얼
  6. 아두이노 & MPU6050: SG90 & MG996R 서보 모터 정밀 제어
  7. 구글 어시스턴트와 블루투스로 음성 제어하는 홈 IoT: 아두이노 우노와 4채널 릴레이
  8. u-blox LEA-6H GPS 모듈: 아두이노 & 파이썬 연동 가이드
  9. 아두이노 Due에서 음성 인식 및 합성 마스터하기
  10. ThimbleKrox: 아두이노 마이크로와 MPU-6050을 이용한 손가락 장착형 마우스 컨트롤