티스토리 뷰

개요

 

google 에서 제공하는 Cloud NoSQL DB Firestore 센서의 측정값을 올려보자.

 

목표

 

지금까지의 포스팅에서 센서의 값을 주기적으로 측정하는 부분까지 완료하였다.

이것을 Cloud 상의 NoSQL DB Firestore 올려보겠다.

이후, 웹을 통하여 챠트로 표현하여 모니터링이 가능하게 것이다.

 

프로젝트 GitHub: https://github.com/nicewook/dustsensor_public

구현코드 링크: https://github.com/nicewook/dustsensor_public/blob/master/ds_v2_firestore.py

미세먼지 토이 프로젝트 - 센서 선정 및 라즈베리파이 연결: https://jusths.tistory.com/103

미세먼지 토이 프로젝트 - 센서 원리와 측정단위 변환법: https://jusths.tistory.com/105

미세먼지 토이 프로젝트 - 기본 테스트: https://jusths.tistory.com/109

미세먼지 토이 프로젝트 - ug/m3 와 aqi 계산: https://jusths.tistory.com/110

 

Firestore 준비

 

1) Project 생성하고

2) Database 만들고

3) Credential 얻는다.

 

거칠게 말하자면 이런거다.

하나의 서비스를 만든다면 그를 위한 Firebase 하나의 Project 만든다.

Project 에서 Database 생성하고, Proejct 접근할 있는 권한을 얻는다.

 

참고링크: credential json 얻기: https://www.cannercms.com/docs/credential-firestore

 

이제 하나씩 따라가보자.

 

1) https://firebase.google.com/ 가서 Add Project

 


 

2) Database 생성

 

- Database >> Create Database

- 세세한 모드 설정은 접근 권한 등에 대한 것임

 


 

3) Credentials 얻기

 

링크의 움짤을 참고하자: https://www.cannercms.com/docs/credential-firestore

Project Overview 옆의 설정 아이콘 >> Project settings >> Service accounts

- 원하는 언어를 선택하고, Private key 생성하면 된다.

 

import firebase_admin

from firebase_admin import credentials

 

cred = credentials.Certificate("path/to/serviceAccountKey.json")

firebase_admin.initialize_app(cred)

 


 

 

센서 측정 파이썬 앱과 Firestore project 연결하기

 

1) dust-sensor-jhs2-firebase-adminsdk-livjz-71b1b15cee.json  라는 식으로 다운로드 되었음

2) firestore_dust_service.json 이름을 변경해준 ( 필요는 없음)

3) 라즈베리파이에는 email 통해서 전송후 프로젝트 폴더로 옮겨주었다.

 

내용은 대략 아래와 같다. 이제 파이썬에서 .json 파일을 가져다가 Firestore 연결하는데 쓰는 것이다.

Git .gitignore 파일에 파일을 추가하여, 실수로라도 GitHub 등에 공유되지 않도록

 


 

 

Firestore 연결 코드

 

참고 링크: https://firebase.google.com/docs/firestore/quickstart?hl=ko

 

1) 파이썬 라이브러리를  추가해준다.

 

pip install --upgrade firebase-admin

 

2) Cloud Firestore  인스턴스를 초기화 해준다.

 

필요한 라이브러리를 import 해준 다음

 


 

.json 파일을 이용해 Credential 얻고, 인스턴스를 초기화 한다.

그리고, database collection 얻는다. 대략 데이터베이스의 테이블 정도의 개념정도로 이해하고 넘어가자.

 


 

 

Firestore 업로드 코드

 

참고 링크: https://firebase.google.com/docs/firestore/quickstart?hl=ko

참고 링크: https://firebase.google.com/docs/firestore/manage-data/add-data?hl=ko

 

.add(...) .doc().set(…) 내부적으로 완전히 동일하게 동작한다.

 


 

확인해보자

 

앱을 실행한 다음 Firebase 가서 제대로 업로드 되었는지 확인해본다.

현재는 한번의 측정결과 마다 하나의 문서 (document) 생성해서 추가하고 있다.

 


 



반응형
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함