weather:bit와 Metabase로 온도, 습도, 기압을 시각화

무엇을 했습니까?



이전 , 이용한 micro:bit 에 weather:bit 를 도킹시켜 온도, 습도, 기압(이어서 환경광)의 값을 취득.
그 값을 MySQL 에 축적해 Metabase 로 가시화해 보았습니다.

micro:bit 에서는 습도, 기압 등의 값은 취할 수 없었기 때문에, 확장 기반의 weather:bit 로 취하기로 했습니다. 스위치 사이언스에서 약 2,000엔 정도입니다. 또한 옵션 센서를 구입하면 토양 수분, 토양 온도, 풍속 등도 측정할 수 있는 것 같습니다.

전회는 Ambient에서 가시화를 했습니다만, 이번은 Rate Limit 등 신경쓰지 않고, 간편하게 가시화할 수 있는 툴, Metabase 를 사용하기로 해 보았습니다.

weather:bit



htps //w w. 슈 tch-s 시엔세. 코 m/가타 g/3383/
htps //w w. s파rk분. 코 m/p 로즈cts/14214

Metabase



구성도



그림적으로는, 이런 느낌입니다.

  • micro : bit & weather : bit에서 온도, 습도, 기압 및 환경 빛의 값을 60 초에 한 번 전송
  • USB 연결된 PC (Mac)에 파이썬 앱을 상주시켜 온도, 습도, 기압, 환경광의 값을 수신, 그대로 MySQL에 축적
  • MySQL에 축적 된 값을 Metabase로 시각화

  • 사진이라면 이런 느낌입니다.


    1. micro:bit & weather:bit 로부터 온도, 습도, 기압, 환경광의 값을 60초간에 1회 송신



    micro:bit(weather:bit)의 코드는 이런 느낌입니다.


    ぇtps://ぇあrん. s파rk분. 코 m / 쓰리 아 ls / 미 c로 c ぃ 마테 - 키 t x x 페리 맨 t - 글로 / 아보 t - ぇ- ぇ ぇ r t
    코드를 만드는 방법 등은 weather:bit 의 가이드가 참고가 됩니다.

    2. USB 접속된 PC(Mac)에 파이썬 앱을 상주시켜 온도, 습도, 기압, 환경광의 값을 수신, 그대로 MySQL에 축적



    파이썬 코드는 여기입니다.

    qiita.py
    """
    weather:bit で温度、湿度、気圧を取得してDB(MySQL)に値を蓄積する
    (可視化はmetabaseで確認)
    """
    
    import serial
    import pymysql.cursors
    
    conn = pymysql.connect(host='localhost',
                        db='sandbox_db',
                        user='root',
                        charset='utf8mb4',
                        cursorclass=pymysql.cursors.DictCursor)
    HYPHEN = '-'
    line = ''
    microbitdata = ''
    
    # MacでUSBシリアルポートの名前を調べるコマンド
    # ls -l /dev/tty.*
    ser = serial.Serial('/dev/tty.usbmodem1412', 115200)
    microbitdata = ''
    while True:
        line = ''
        line = str(ser.readline(), 'utf-8')
        if HYPHEN == line.strip():
            data = microbitdata.split(':')
            with conn.cursor() as cursor:
                cursor.execute(
                    "INSERT INTO environment (humidity, temperature, pressure, ambient_light) "
                    "VALUES (" + data[1] + ", " + data[3] + ", " + data[5] + ", " + data[7] + ")"
                )
                conn.commit()
    
            microbitdata = ''
        else:
            microbitdata = microbitdata + line.strip() + ':'
    
    ser.close()
    
    

    3. MySQL에 축적된 값을 Metabase로 시각화



    온도와 습도를 시각화해 보았습니다.


    손쉽게 환경을 만들 수 있고 가시화를 할 수 있는 Metabase는 좋다♪
    이상입니다!

    좋은 웹페이지 즐겨찾기