Google FireBase

FireBase Realtime Database에 IoT 데이터 바로 올리기

장병남 2024. 6. 20. 03:42

FireBase Realtime Database에 IoT의 데이터를 바로 보내고 싶은데 잘 되지 않아서 해당 과정을 진행할 수 있게 도와달라는 요청을 받았습니다. 

 

WiFi, LTE/CATM1 Connectivity를 이용해서 M2M장치를 FireBase Realtime Database에 직접 연결하고 데이터를 업로드하는 내용의 매뉴얼 및 코드를 만들었습니다. 관심 있으신 개발자분들에게 도움이 되었으면 좋겠습니다.
 
디바이스를 준비하기 전에 우선 FireBase 서비스를 구성해 보도록 하겠습니다.
아래 블로그 내용을 참고했습니다. https://april11nk.tistory.com/2

 

ESP8266 이용해 Firebase에 데이터 올리기

첫 번째 포스팅으로 esp8266을 이용해 Firebase에 데이터를 올리는 예제를 적어보려 한다. 초보자인 나는 모르는 것이 많아서 참 많이 헤매고 삽질하고.. 며칠을 고생했다.. 다른 사람들의 포스팅과

april11nk.tistory.com

 
1. 회원가입 합니다.
2. 프로젝트를 만듭니다. (CATM1-FireBase로 만들었습니다.)

3. 인증(Authentication)을 선택합니다.

 
로그인 방법에 이메일/비밀번호, 익명 모두 사용 설정 합니다.

4. Realtime Database를 선택합니다.

 
데이터베이스 설정 시 테스트 모드에서 시작을 고르고 사용 설정 버튼을 누릅니다. 

 
Realtime Database 접속 주소를 확인합니다.

5. 웹 API  키를 확인합니다. 
프로젝트 개요 → 프로젝트 설정을 선택합니다.

 
프로젝트 설정 → 일반에서 웹 API 키를 확인합니다.  

 
ESP32 IoT 장치가 Firebase RealTime Database에 실시간으로 데이터를 잘 올릴 수 있는지 아래 프로젝트로 확인해 보겠습니다. 
https://github.com/dahmadjid/Firebase-idf

 

GitHub - dahmadjid/Firebase-idf: Firebase Client in ESP IDF

Firebase Client in ESP IDF. Contribute to dahmadjid/Firebase-idf development by creating an account on GitHub.

github.com

우측 Code를 클릭 후 URL 복사 버튼을 누르고 git clone 명령으로 원하는 위치에 소스코드를 다운로드합니다.

 
이제 Visual Studio Code에서 다운로드한 프로젝트를 열어서 빌드 및 테스트하겠습니다.

 
좌측의 ./main/firebase_config.h를 클릭하면 우측 편집기에서 내용을 수정할 수 있습니다.
SSID, PASSWORD, API_KEY, DATABASE_URL을 입력합니다. 

 
이제 개발환경 구성 후 빌드 합니다.
빌드하면 아래와 같은 에러메시지가 출력됩니다. 

switch~case문에 HTTP_EVENT_REDIRECT가 빠졌다는 내용이므로 해당 부분에 아래와 같이 추가했습니다.

저장 후 다시 빌드합니다. 다시 에러가 발생합니다. 애플리케이션이 올라가는 파티션 사이즈를 초과했다는 메시지입니다.

 
SDK Configuration 항목 중 Partition Table 사이즈를 Single factory app (large), no OTA로 선택하고 우측 상단 Save 버튼을 누릅니다.

 
다시 빌드하게 되면 SDK Configuration 변경으로 인해 전체 코드를 다시 빌드합니다.
빌드가 완료되었습니다.

 
이제 펌웨어를 업로드합니다. 로그를 확인해 보면 Firebase RealTime Database에 접속해서 데이터를 올리고 삭제한 내역을 확인할 수 있습니다.

 
Firebase Realtime Database에서도 동일한 DB 내역을 확인할 수 있습니다.

 
ESP32에서 실시간으로 DB에 데이터를 전송하는 영상입니다.  

 
동일한 코드 기반으로 LTE-CATM1에서 동작되는 코드를 업로드했습니다.
https://github.com/codezoo-ltd/Firebase-idf

 

GitHub - codezoo-ltd/Firebase-idf: Firebase Cellular Client in ESP IDF

Firebase Cellular Client in ESP IDF. Contribute to codezoo-ltd/Firebase-idf development by creating an account on GitHub.

github.com

 
코드를 가져올 때  esp-modem 서브모듈도 함께 가져와야 해서 다음과 같은 명령어로 코드를 클론 합니다.

git clone --recursive https://github.com/codezoo-ltd/Firebase-idf.git

 
VS Code를 실행하고 Firebase-idf 폴더를 오픈합니다.

 
main/firebase_config.h의 내용 중 API_KEY, DATABASE_URL을 수정합니다.
 
빌드해서 동작시키면 WIFI와 동일하게 동작하는 것을 확인할 수 있습니다.
 

 
Murata Type1SC 모듈 구매, 자료 관련 문의
(주)아성코리아
전지만 이사 010-5418-8812 mlcc@asung.com
박상인 수석 010-6556-5405 sipark@asung.com

LTE-CATM1 내장형 모뎀 구매 상담, 외주 개발, 협업 문의
(주)코드주
장병남 대표 010-8965-1323 rooney.jang@codezoo.co.kr
 

 

LTE-CatM1 내장형 모뎀 / 사물인터넷 통신모듈

사물인터넷 개발을 위한 LTE 모듈입니다. / CodeZoo / 사물인터넷 통신모듈 / 유심은 상품상세의 링크에서 별도 구매가 필요합니다.

www.devicemart.co.kr

 

 

Vodafone Global IoT SIM Card : codezoo

[codezoo] IoT Global SIM, IoT Connectivity, IoT Device

smartstore.naver.com

 

 

LTE CATM1 ESP32 IoT 보드 : codezoo

[codezoo] IoT Global SIM, IoT Connectivity, IoT Device

smartstore.naver.com