아두이노 피지컬컴퓨팅 교구로 활용할 수 있는 실 생할용품 메이킹 프로젝트(워터맨IOT) 열번째.

 

 

IFTTT 기능 사용하기 : 다음과 같이 인터넷으로 IFTTT 서버에 접속하여 API Key와 함께 event_name을 지정해 주면 된다.

 

 

  3  line:  접속할 IFTTT 서버 주소
  4  line:  본인의 WEB hook API key
  8  line:  접속하고자 하는 공유기의 SSID와 password
 14  line: 기동시키고자 하는 event_name을 지정한다.
 16  line:  4 line에서 정의한 IFTTT API key값을 지정한다.

 

위 프로그램을 실행시키면 스마트폰에 지정한 메시지가 전송되는 것을 확인할 수 있다.

 

 

 

중간과제

 

 

매1분마다 온도와 토양수분 값을 측정하여 일정값이하로 떨어지면 스마트폰에 해당되는 알람 메시지 전송하는 기능을 구현
 -온도가 20도 이하로 떨어지면  “추워요”메시지
 -토양수분이 50이하로 떨어지면 “목말라요”메시지
 -토양수분이 50이하로 3분이상 계속되면 “물이 없어요” 메시지 보내기

 

 

 

 IFTTT Applet만들기 : 프로그램 작성을 위해 먼저 다음과 같이 Webhook trigger와 Notification Message로 구성된 세개의 IFTT Applet을 새로 등록한다

 1) Webhook event_name : low_temp,  Notification 메세지 : “추워요”
 2) Webhook event_name : low_moist,  Notification 메세지 : 목말라요
 3) Webhook event_name : low_water,  Notification 메세지 : 물이 없어요

 

 

 

 

중간과제 샘플

 

 


 11  line  : cnt_low_moist : 토양수분 부족 확인 횟수 관리를 위한 변수
 13~14 line : 각자의 환경에 맞는 공유기 SSID/Password와 각자 채널별 Write API key
 16      line:  본인의 IFTTT WEB hook API key
 18~32 line : 온도와 토양수분을 check하기 위한 함수
 33~68 line:  trigger라는 인수로 event_name을 전달받아 IFTTT event를 발생시키기 위한 함수
 50   Line  :  IFTTT URL의 일부로써 전달받은 event_name을 지정   
 79~81 line :  측정한 온도값이 20도 이하이면 low_temp라는 IFTTT event를 호출
 82~90 line :  측정한 토양수분값이 50일때 해당 IFTTT event를 호출( 2회 이하까지는 low_moist, 3회이상 반복되면 low_water 라는 event 호출)
 94 line :  60초 마다 다시 센서측정 반복    

 

 

 

 

  1. 왕초보 2019.02.19 18:40

    아,,, 여기 다 있군요 매우 감사합니다
    잘 사용 하겠습니다

  2. 왕초보 2019.02.20 11:50

    메세지 보내고 1분동안 접속이 끊어집니다 ㅠㅠ

    • 메이커 남보2 2019.02.20 21:42 신고

      본 샘플에서는 1분에 한번씩만 측정해서 IFTTT기능을 호출하도록 하는 것이기 때문에 정상입니다만....

아두이노 피지컬컴퓨팅 교구로 활용할 수 있는 실 생할용품 메이킹 프로젝트(워터맨IOT) 아홉번째.

 

 

IFTTT :  IFTTT (IF This Then That) 만약 This 조건이 맞으면 That 액션을 자동으로 수행하라 는 기능을 서비스해 주는 사물인터넷(IOT) 플랫폼이다. 이때  조건과 액션의 쌍을 다양하게 지정함으로써 다양한 IOT서비스들을 만들어 낼 수 있다. 예를 들어 사진을 찍으면 페북에 올려라. 또는 학교에 도착하면 진동모드로 바꿔라 든지 하는 서비스를 직접 만들 수 있을 뿐만 아니라 삼성,LG 등 가전기기에서도 IFTTT를 지원하는 추세이므로 내가 아파트 입구에 도착하면 에어컨을 켜라 라는 등의 가전기기의 스마트 제어 IOT기능을 개발할 수도 있다.

 

 본 프로젝트에서는 화분에 토양수분이 부족해지면 지정된 스마트폰에 물 부족해 “목마르다” 는 메시지를  자동으로 전송하는 용도로 활용해 본다.   

 

IFTTT가입 : https://ifttt.com 에 접속하여 신규회원으로 가입한다. 그런데 IFTTT 서비스는 MS 익스를로러 브라우저를 지원하지 않으므로 구글크롬 브라우저를 이용해야 하며, 구글계정이나 페이스북 계정을 이용하여 회원가입할 수도 있다. 

 

 

 

 

 

 

IFTTT Applet만들기  

 

 

 

새로운 Applet를 생성하기 위해 My Applet메뉴에서 New Applet버튼을 선택한다

 

 

This조건을 지정하기 위해 +this 버튼을 선택한다.

 

 

This조건으로 지정할 수 있는 수백가지 서비스들이 표시되는데 web이라는 조건을 검색하여 webhook라는 서비스를 선택한다.

 

 

Webhook라는 서비스는 web으로 메시지를 받아 특정 조건에 해당하는지 여부를 Check 하기 위한 것으로, 본 프로젝트에서는 Waterman-IOT기기에서 토양수분/온도를 확인하여 필요할 경우 이 Webhook서비스에 web message를 전송하는 방식이다.   

 

 

Event Name에 iot_test 라 입력하고 Create trigger 버튼을 선택한다. 이 Event Name으로 추후 프로그램에서 조건의 종류를 구분하게 되며, 생성이 완료되면 아래와 같이 If 조건부에 webhook 아이콘이 표시되고, That 액션을 선택할 있는 상태가 된다.

 

 

   

 

That Action으로 사용할 수 있는 서비스도 수백가지 있는데 아래와 같이 notification으로 검색하여 스마트폰 Notification 서비스를 선택한다.

 

 

 

 

 

 

 

 

Messge란에는 Notification이 올 때 함께 표시될 메시지 내용을 입력하고 Create action 버튼을 선택하면 Applet에 대한 설정이 완료된다.

 

 

 

스마트폰 APP 설치

 

 

본 서비스는 스마트폰 연동용이므로 스마트폰에도 IFTTT APP을 설치한다.

 

 

 

 

Play스토어에서 “IFTTT”라고  검색하여 APP을 설치한다. 

 

 

 

 

PC에서 접속했던 동일한 ID로 접속한다.

 

 

IFTTT 기능 테스트

 

 

 

크롬 웹브라우저에서 https://ifttt.com/maker_webhooks에 접속한 후 Documentation 버튼을 선택하여 Webhooks 테스트 안내 페이지를 표시해 본다.  

 

 

 

 

여기에서 표시되는 key가 사용자별 webhook서비스 키값으로써 추후 프로그램에서 기능 호출할 때 지정해 주어야 하는 키값이다.

 

 

{event} 부분에 이전에 작성했던 iot_test 라는 event_name을 지정하고 Test it 버튼을 선택하면 IFTTT가 설치된 본인의 스마트폰에 다음과 같이 메시지가 전송된다.

 

 

 

 

크롬 웹브라우저 주소창에 위 형식으로 입력해도 마찬가지로 스마트폰에 메시지가 전송된다, 즉 ESP8266 에서 웹에 접속하여 위 형식으로 http request를 해도 스마트폰으로  메시지가 전송되게 된다.

 

 

 

 

 

 

 

 

  1. 왕초보 2019.02.19 17:54

    안녕하세요
    올려주신 글보고 따라하였더니 잘됩니다.
    그런데 ESP8266에서 조건 만족하였을때
    https://maker.ifttt.com/trigger/low_press/with/key/ 이거를 웹상에 쏴주려면
    어떤식으로 코딩을 하면 되나요??
    단순히 esp8266을 wifi에 접속시키고 blynk로 릴레이 켜고 끄는것만 알고 있습니다
    적정값이되면 핸드폰 문자로 받고 싶습니다 (설정은 해놓았습니다, 문자 잘 옵니다)

아두이노 피지컬컴퓨팅 교구로 활용할 수 있는 실 생할용품 메이킹 프로젝트(워터맨IOT) 여덟번째.

 

 

ThingSpeak에 데이터 저장하기 : 다음과 같이 인터넷으로 ThingSpeak서버에 접속하여 Write API Key와 함께 Field별 데이터 값을 지정해 주면 된다.

 

 

  3  line:  접속할 ThingSpeak 서버 주소
  4  line:  본인 ThingSpeak 채널의 Write API key
  8  line:  접속하고자 하는 공유기의 SSID와 password
 14  line:  Field1에 12, Field2에 34 .. 와 같이 Field별 저장할 값을 지정한다.
 19  line:  X-THINGSPEAKAPIKEY라는 http header에 API key값을 지정한다.

 

 

스마트폰으로 ThingSpeak챠트 보는 방법

 

 

 

1) Play스토어에서 “thingview” 검색하여 APP을 설치한다. 

 

2) 조회할 채널을 추가한다.

 

 

3)채널ID를 입력, Private지정하고 Read API키를 입력한다.

 

4) 이상이 완료되면 해당 채널의 챠트가 표시된다.

 

 

중간과제

 

 

 매1분마다 온도,습도,조도,토양수분 값을 측정하여 ThingSpeak서버에 전송하고 변화내역을 챠트로 조회하는 기능을 구현해 보기 

 

 

 

 

 

중간과제 샘플

 

 

16~19 : 각자의 환경에 맞는 공유기 SSID/Password와 각자 채널별 Write API key
20~38  line:  온습도,조도 센서값웹 읽기 및 토양수분센서에 전원 공급하고 측정하기
39~77 line:  ThingSpeak서버에 접속하여 센서측정값 upload하기

 

 

  1. 2019.10.14 15:13

    비밀댓글입니다

    • 메이커 남보2 2019.10.14 20:04 신고

      password를 한글로 했나요? 한글은 사용하지 마시고.... 아니면 인용부호(")를 아두이노 편집기에서 새로 입력해 보시기 바랍니다.

  2. 2020.11.10 11:30

    비밀댓글입니다

+ Recent posts