Azure Logic Apps에서 littleBits 제어

입문


회사의 사장은 시애틀로 출장가는 선물로 MS 상점에서 나에게 리틀비츠의 CLOUDBIT STARTER KIT를 사주었다.

나는 이것이 틀림없이 "Azure와 합작하여 기사를 쓰십시오"라는 통지라고 생각해서 바로 해 보았다.

littleBits?


저도 선물을 받고 알았어요. 여기 "자석으로 전자회로를 연결해서 전자작업을 하면 전자회로의 개원 라이브러리를 즐겁게 배울 수 있어요."
이번 부속품은 클라우드에 대응하는 것으로 와이파이를 통해 인터넷에 연결할 수 있는 회로를 덧붙여 인터넷을 통해 알림을 보내고 알림을 받을 수 있다.
아이를 위한 제품이기 때문에 구름 측의 사건 수신, 발송에 사용IFTTT되었다.
그러나 웹 API가 공개되기 때문에 오프라인 자체 검사 방법과 직접 두드려 리틀비트에 사건을 보내는 것 외에도 자신의 웹 훅을 등록할 수 있기 때문에 Azure의 각종 PaaS와의 협력도 그리 어렵지 않다.

초기 설정


little Bits의 초기 설정 자체는 설명서(또는 종이)를 보고 http://littlebits.cc/cloudstart에 계정을 만들어 와이파이 설정과 연결 테스트를 완료합니다.

초기화가 완료되면 little Bits의 입구 화면에서 왼쪽 메뉴에서 초기화된 장치를 선택하고 화면 오른쪽 아래에 있는 설정을 누르십시오.
ADVANCED에 표시되는 Device ID AccessToken을 기록해 둡니다.
이 정보는 웹 API를 사용하는 유일한 식별자입니다.

litteBits 구성


입력 회로, 출력 회로는 각각 두 가지가 있는데, 이번에는 다음과 같이 구성된다.

마더보드는 왼쪽에 입력 회로를 연결하고 오른쪽에 출력 회로를 연결하는 느낌이다.

전체 구성


이번 운측을 포함한 전체적인 구성은 이렇다.
[1] littleBit 버튼을 누르면 WebHook을 통해 Logic Apps에 이벤트 알림을 보냅니다.
[2] Slack Azure 측에 사건이 접수되었다고 통지합니다.
[3] Logic Apps에서 littleBit 클라우드에서 제공하는 WebAPI를 호출하여 littleBit의 모터를 구동한다.

설정편


Logic Apps 엔드포인트 식별


Logic Apps 디자이너에서 첫 번째 트리거로 "요청"을 선택합니다.
이것은 외부에서 호출할 수 있는 유일한 URL을 생성하고 미리 설정된 JSON 구조에 따라 파라미터를 수신합니다.
Logic Apps 디자이너가 저장되면 URL이 확인됩니다.

JSON 모드에 대해 여러 가지 조사를 진행했는데 다음 내용을 설정하면 됩니다.
{
  "properties": {
    "bit_id": {
      "type": "string"
    },
    "payload": {
      "properties": {
        "delta": {
          "type": "string"
        },
        "level": {
          "type": "string"
        },
        "percent": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "timestamp": {
      "type": "integer"
    },
    "user_id": {
      "type": "integer"
    }
  },
  "type": "object"
}
WebHook 호출자에게 상태 코드 200을 반환하고 응답 요청 작업을 추가합니다.

little Bits에서 온 정보를 알리기 위해 Slack 작업을 추가합니다.

littleBits 측 Subscription 등록


Subscription은 little Bits 단추를 누르는 등의 이벤트가 발생할 때 사용자 자신의 URL을 호출하는 기능입니다.
방금 Logic Apps에서 발행한 WebHook용 URL을 등록하면 Azure와 협업할 수 있습니다(앞의 전체 구조도에서 말한 (1) 부분).
WebAPI에 자동 검사 방법을 발표하려면 Windows 10의 Bash 화면에서curl 명령을 사용하는 것이 편리하기 때문에 이번에 이렇게 진행합니다.
curl "https://api-http.littlebitscloud.cc/v2/subscriptions" \
 -X POST \
 -H "Authorization: 【littleBitsのAccessToken】" \
 -H "Content-type: application/json" \
 -d '{ "publisher_id": "【littleBitsのDevice ID】" ,"subscriber_id": "【Logic AppsのWebHook用URL】" }'
보기 싫지만 다음 명령을 통해 등록 결과를 확인할 수 있습니다.
curl "https://api-http.littlebitscloud.cc/v2/devices/【littleBitsのDevice ID】" \
 -H "Authorization: Bearer 【littleBitsのAccessToken】"

WebAPI 확인, 로그인(littleBits 모터 구동)


다음 명령을 사용하여 WebAPI를 통해 littleBits를 구동하는 모터를 확인합니다.
curl -X POST "https://api-http.littlebitscloud.cc/v2/devices/【littleBitsのDevice ID】/output" \
 -H "Authorization: Bearer 【littleBitsのAccessToken】" \
 -H "Content-type: application/json" \
 -d '{ "percent": 100, "duration_ms": 3000 }'
움직이면 돼.
Logic Apps의 마지막 작업으로 HTTP를 추가합니다.
메서드: 전원 켜기 자체 검사
URI: https://api-http.littlebitscloud.cc/v2/devices/[littleBits의 장치 ID】/output
제목: {"권한 부여": "Bearer [littleBits의 액세스 Token]}
본문: {"duration_ms": 5000, "percent": 100}

Logic Apps 측면 설계 완료


Logic Apps 설계를 완료한 후 다음 그림과 같이 저장하고 준비합니다.

동작 확인


이렇게 움직여.
버튼을 누른 지 얼마 되지 않아 (Azure Logic Apps 응답) 모터 구동 & 조명이 깜박거립니다.
가장pic.twitter.com/cpNZm0Px73 - Yoshimasa Katakura(@yo_ta_n)2016년 11월 18일
Slack에도 좋은 알림이 있습니다.

물론 Logic Apps 측의 실행 결과도 모두 정상이다.

끝내다


이번에는 간단한 장치일 뿐, (1) little Bits에서 Logic Apps를 부르는 방법, (2) Locic Apps에서 little Bits를 부르는 방법 두 가지를 확인했다.
이후 생각에 따라 다양한 모듈(little Bits, Logic Apps와 함께)을 조합하면 편리하고 즐겁게 다양한 일을 할 수 있다.
앞으로도 리틀비츠와 Azure를 계속 사용할 테니 조금만 더 하면 신청하겠습니다.

좋은 웹페이지 즐겨찾기