Google IoT Solutions-Firebase와 raspberry pi를 위한 실시간 통신

3831 단어 RaspberryPiFirebase

개요


  • Product for Google IoT Solutions-Firebase 터치 Firebase를 사용하여 클라이언트(브라우저)와 서비스(firebase) 간에 실시간으로 통신합니다.
  • 이번에는 IoT를 고려하여 장치(예:raspberrypi+switchbutton)<-> 서비스<-> 클라이언트(예:브라우저)의 구성을 고려하여 실시간 통신을 진행한다.
  • 구체적으로 말하면 switch 단추를 누르면 브라우저는 단추의 켜기/끄기를 측정할 수 있다.
  • 시스템 구성


  • switch 단추를raspberrypi와 연결하여 단추를 눌렀을 때raspberrypi에서 검출할 수 있습니다.(구체적인 방법은 잠시 후에 설명하겠습니다.)
  • raspberrypi는 인터넷을 통해 Firebase 서버와 연결됩니다.
  • 브라우저도 인터넷을 통해 Firebase 서버와 연결됩니다.
  • Firebase 서버 및 클라이언트(브라우저)

  • Firebase는 실시간으로 브라우저에 이벤트를 알릴 수 있는 자바스크립트 라이브러리를 제공합니다.

  • Firebase SDK에서 실시간 통신을 위해 데이터의 write와read.
  • 이번에는 Codepen 이 브라우저의 응용 프로그램 서비스에서 Firebase를 사용하려고 합니다.
  • raspberry pi



    운영 체제 구성

    pi@raspberrypi:~ $ uname -a
    Linux raspberrypi 4.1.13-v7+ #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015 armv7l GNU/Linux
    
    pi@raspberrypi:~ $ cat /etc/debian_version
    8.0
    

    스위치 버튼 연결

  • 실물

  • 평면도
  • GPIO-18번(pin:12번)과 스위치 단추를 연결합니다.
  • GND(pin:6번)는 switch 단추와 연결됩니다.
  • nodejs 및 npm

  • nodejs 버전
  • 5.3.0
  • npm 패키지

  • firebase : 2.3.2

  • pi-gpio: 0.0.8-Raspberry Pi의 GPIO 라이브러리 액세스
  • 실시

    var gpio = require('pi-gpio');
    var Firebase = require('firebase');
    
    var pin = 12;
    var host = "<firebase APP URL>";
    var myFirebaseRef = new Firebase(host);
    
    gpio.open(pin, "input", function(err) {
        intervalId = setInterval( function(){
            gpio.read(pin, function(err, v) {
                if ( v == 1 ) {
                    myFirebaseRef.set({'title': 'button off'});
                    console.log('button off');
                } else {
                    myFirebaseRef.set({'title': 'button on'});
                    console.log('button on');
                };
            });
        }, 100);
    });
    

    설명

  • raspberry pi와 연결된 PIN12 번호(GPIO 18 번호).
  • 0.1초 동안 12번 핀에서 데이터를 한 번에 읽는다.
  • 1시 스위치 버튼은off입니다.
  • Firebase의 제목 값을 "button off"로 설정합니다.
  • 0에서 switch 단추를 누르면 on으로 표시됩니다.
  • Firebase의 제목 값을 "button"으로 설정합니다.
  • 프레젠테이션


    좋은 웹페이지 즐겨찾기