Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

NodeMCU DevKit과 Firebase로 시작하는 IoT 프로젝트: 초보자를 위한 단계별 가이드

NodeMCU DevKit과 Firebase로 시작하는 IoT 프로젝트: 초보자를 위한 단계별 가이드

글: Jibin Thomas

"인터넷은 사라질 것입니다. 너무나 많은 IP 주소와 수많은 기기, 센서, 우리가 착용하는 사물, 상호작용하는 디바이스가 넘쳐나서 그 존재조차 느껴지지 않을 겁니다. 인터넷은 어느새 우리 삶의 일부가 되어 있겠죠. 어떤 방에 들어섰을 때 그 방이 역동적으로 반응하고, 여러분의 허락 아래 방 안에서 벌어지는 일들과 상호작용하는 미래를 상상해 보세요." — 에릭 슈미트(Eric Schmidt)

오늘날 TV, 스마트 스피커, 냉장고처럼 우리가 일상적으로 사용하는 수많은 기기가 인터넷에 연결되어 있습니다. 이런 기기들은 기본 기능을 넘어 인터넷상의 다른 기기들과 데이터를 주고받거나, 멀리서도 원격으로 제어할 수 있습니다.

사실 몇 개의 센서와 마이크로컨트롤러만 있으면 누구나 직접 IoT 기기를 만들 수 있습니다. Arduino, NodeMCU, Raspberry Pi 같은 개발 보드는 IoT 입문자에게 훌륭한 출발점을 제공하며, 이런 기기들을 조합하면 집안 곳곳을 자동화하는 것도 가능합니다.

이 글에서는 NodeMCU 개발 키트(DevKit)와 Firebase를 활용해 LED를 원격으로 켜고 끄는 간단한 IoT 프로젝트를 만들어 보겠습니다. NodeMCU는 가격이 저렴하고 Wi-Fi 모듈이 내장되어 있어 인터넷 연결이 쉽고, Firebase 무료 요금제만으로도 충분히 실습할 수 있어 두 도구의 조합은 IoT 입문 프로젝트에 최적입니다.

개발 환경 설정하기

  1. Arduino IDE 설치: 코드 작성과 펌웨어 업로드에는 Arduino IDE를 사용합니다. 공식 사이트(arduino.cc)에서 최신 버전을 내려받아 설치하세요.
  2. ESP8266 보드 패키지 추가: NodeMCU는 Arduino IDE가 기본적으로 지원하지 않는 보드이므로, 보드 정의 파일(JSON)을 직접 등록해야 합니다.
    [파일] > [환경설정] > [추가적인 보드 매니저 URLs] 항목에 아래 URL을 입력하세요.
    https://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. 보드 선택: [툴] > [보드] 메뉴에서 "NodeMCU 1.0 (ESP-12E Module)"을 선택합니다.
  4. firebase-arduino 라이브러리 설치: NodeMCU에서 Firebase 데이터베이스를 사용하려면 Firebase REST API를 손쉽게 호출할 수 있게 추상화해 주는 firebase-arduino 라이브러리가 필요합니다. GitHub 저장소에서 내려받으세요.
  5. 라이브러리 등록: 내려받은 ZIP 파일을 Arduino IDE에 추가합니다.
    [스케치] > [라이브러리 포함하기] > [.ZIP 라이브러리 추가] > 다운로드한 zip 파일 선택
  6. ArduinoJson 라이브러리 설치: 이 라이브러리는 Arduino IDE의 라이브러리 매니저에서 바로 설치할 수 있습니다.
    [스케치] > [라이브러리 포함하기] > [라이브러리 관리] > "Benoit Blanchon"이 작성한 ArduinoJson 검색 후 설치
    주의: 버전 6.x.x는 호환되지 않으므로 반드시 5.x.x 계열의 최신 버전을 설치해야 합니다.

Firebase 데이터베이스 설정하기

  1. Firebase 콘솔(console.firebase.google.com)에서 새 프로젝트를 만든 뒤 데이터베이스 메뉴로 이동하고, Firebase 실시간 데이터베이스(Realtime Database)를 선택합니다.
  2. [프로젝트 설정] > [서비스 계정] 화면에서 인증에 사용할 데이터베이스 시크릿(Database Secret)을 복사해 둡니다.
  3. 데이터베이스에 led라는 이름의 노드를 추가합니다. 이 값이 true인지 false인지에 따라 LED의 on/off가 결정됩니다.
NodeMCU DevKit과 Firebase로 시작하는 IoT 프로젝트: 초보자를 위한 단계별 가이드

데이터베이스 시크릿 위치

NodeMCU DevKit과 Firebase로 시작하는 IoT 프로젝트: 초보자를 위한 단계별 가이드

Arduino IDE와 Firebase 연동하기

모든 설정을 마쳤다면 이제 코드를 작성할 차례입니다. 먼저 앞서 복사해 둔 데이터베이스 URL과 Firebase 시크릿을 매크로로 정의합니다.

#define FIREBASE_HOST "yourfirebasedatabase.firebaseio.com"
#define FIREBASE_AUTH "*"

단순화를 위해 LED를 원격으로 켜고 끄는 간단한 코드를 작성해 보겠습니다.

  1. 회로 연결: LED의 양극(긴 다리)은 NodeMCU의 D1 핀에, 음극(짧은 다리)은 GND 핀에 연결합니다.
  2. 코드 업로드: Arduino IDE에서 스케치를 업로드합니다.
    [스케치] > [업로드]
  3. 동작 확인: Firebase 데이터베이스의 led 값을 true와 false로 번갈아 변경해 보세요. LED가 켜졌다 꺼졌다 하는 것을 확인할 수 있습니다. 여기에 더 나아가, 데이터베이스 값을 직접 수정하지 않고도 LED를 토글할 수 있는 간단한 웹 앱을 만들어 프로젝트를 확장할 수도 있습니다.
NodeMCU DevKit과 Firebase로 시작하는 IoT 프로젝트: 초보자를 위한 단계별 가이드

이제 NodeMCU를 인터넷에 연결하고 원격으로 제어하는 기본기를 익혔습니다. 이 경험을 발판 삼아 자신만의 새로운 IoT 프로젝트에 도전해 보세요!

freeCodeCamp는 무료로 코딩을 배울 수 있는 오픈소스 학습 플랫폼으로, 그 커리큘럼을 통해 이미 4만 명 이상이 개발자로 취업하는 데 성공했습니다. 지금 바로 시작해 보세요.