Raspberry Pi로 Grove Pi+의 센서 값을 얻고 kintone에 저장

개요



해커슨에서 Raspberry Pi와 Grove Pi+스타터 키트, kintone을 활용하게 되어, Grove Pi+스타터 키트의 센서값을 kintone에 올리는 샘플 프로그램을 작성했습니다.

Raspberry Pi와 Grove Pi+ 준비



Raspberry Pi의 환경은 이전에 설정한 다음을 사용했습니다.
Raspberry Pi에서 Grove Pi+ 스타터 키트와 카메라를 사용한 초기 설정
htps : // 코 m / 유카타 오카 / ms / 9df2c74f7cd514 04b97

이번에 사용한 Grove Pi+스타터 키트의 센서는 온습도, 빛, 소리입니다.

이쪽도 이전 시험한 이하를 참고로 구성했습니다.
Grove Pi+스타터 키트의 센서 시험 5.Example Project: Sensor Twitter Feed(센서값 트윗)
https://qiita.com/yukataoka/items/ef73eb1a329f18015aab#5example-project-sensor-twitter-feed%E3%82%BB%E3%83%B3%E3%82%B5%E5%80%A4%E3% 81%AE%E3%83%84%E3%82%A4%E3%83%BC%E3%83%88

kintone 앱 추가



kintone 앱을 처음부터 만들고 양식 만들기



필드는 다음과 같이 설정합니다.


필드 이름
유형
피드 코트 요소 ID


일시
일시
datetime

광 센서
숫자(소수 2자리)


사운드 센서
숫자(소수 2자리)
사운드

온도 센서
숫자(소수 2자리)
temp

습도 센서
숫자(소수 2자리)
humidity




앱 설정 화면에서 API 토큰 설정



앱 설정 화면에서 설정 -> 커스터마이징> 서비스 연동 API 토큰으로 API 토큰 설정 화면이 열립니다.
「생성한다」버튼을 누르면 API 토큰이 추가되므로, 액세스권을 "추가"만 체크해 「저장」합니다.

프로그램 개발



kintone API SDK for Python을 사용하여 Grove Pi + 센서 측정을 kintone 레코드에 추가하는 구현을 수행했습니다.

Grove Pi+ 센서 측정치의 취득에 대해서는 이하를 참조해 주십시오.
Grove Pi+스타터 키트의 센서 시험 5.Example Project: Sensor Twitter Feed(센서값 트윗)
https://qiita.com/yukataoka/items/ef73eb1a329f18015aab#5example-project-sensor-twitter-feed%E3%82%BB%E3%83%B3%E3%82%B5%E5%80%A4%E3% 81%AE%E3%83%84%E3%82%A4%E3%83%BC%E3%83%88

kintone API SDK for Python에 대해서는 아래를 참조하십시오.
Raspberry Pi에서 kintone API SDK for Python 사용 (Raspberry Pi에서 쉽게 kintone에 데이터 저장)
htps : // 코 m / 유카타 오카 / ms / 9025 1b9951 fu b419 fu c

wifi_kintone.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import codecs
import math
import sys
import time

# Grove Pi+
import grovepi

# kintone API SDK for Python
import pykintone
from pykintone import model
import pykintone.structure_field as sf

#  Grove Pi+ Connections
sound_sensor = 0        # port A0
light_sensor = 1        # port A1
temperature_sensor = 2  # port D2

# Connect to kintone
subdomein = "kintoneのサブドメイン"
appId     = "kintoneのアプリケーションID"
token     = "kintoneのAPIトークン"
app       = pykintone.app(subdomein, appId, token)

# kintone record layout
class recordLayout(model.kintoneModel):
    def __init__(self):
        super(recordLayout, self).__init__()
        self.datetime = ""
        self.light    = 0.0
        self.sound    = 0.0
        self.temp     = 0.0
        self.humidity = 0.0

# example code
if __name__=="__main__":

    grovepi.pinMode(led,"OUTPUT")
    grovepi.analogWrite(led,255)  #turn led to max to show readiness

    while True:

        try:
            # Get value from light sensor
            light_intensity = grovepi.analogRead(light_sensor)

            # Get sound level
            sound_level = grovepi.analogRead(sound_sensor)

            time.sleep(0.5)

            # Get value from temperature sensor
            [t,h]=[0,0]
            [t,h] = grovepi.dht(temperature_sensor,0)

            print ("Temp: %d C, Humidity: %d, Light: %d, Sound: %d" %(t,h,light_intensity/10,sound_level))

            # kintone POST
            record = recordLayout()
            record.datetime = time.strftime('%Y-%m-%dT%H:%M:%S+09:00')
            record.light    = light_intensity/10
            record.sound    = sound_level
            record.temp     = t
            record.humidity = h
            res = app.create(record)
            if res.ok:
                print("kintone record add id=" + str(res.record_id) + " revision=" + str(res.revision))
            else:
                print(res.error.id.encode('utf-8'))
                print(res.error.message.encode('utf-8'))
                print(res.error.code)

            time.sleep(60 * 10)

        except KeyboardInterrupt:
            exit()

        except (IOError,TypeError) as e:
            print("Error")
            print(e)
            exit()

결과



다음과 같이 Raspberry Pi로 측정한 센서값을 kintone에 저장할 수 있었습니다.


아래와 같은 그래프를 kintone으로 표시해 보았습니다.

kintone에 데이터를 저장할 수 있으면 편리하네요!

참고



Raspberry Pi에서 Grove Pi+ 스타터 키트와 카메라를 사용한 초기 설정
htps : // 코 m / 유카타 오카 / ms / 9df2c74f7cd514 04b97
Grove Pi+ 스타터 키트 센서 사용
htps : // 코 m / 유카타 오카 / ms / 에 f73 에 b1 아 329f18015 아 b
Raspberry Pi에서 kintone API SDK for Python 사용 (Raspberry Pi에서 쉽게 kintone에 데이터 저장)
htps : // 코 m / 유카타 오카 / ms / 9025 1b9951 fu b419 fu c

좋은 웹페이지 즐겨찾기