IT 여자가 0에서 시작하는 IoT 단계 3: 랩베리피2와 Nodejs가 초음파 거리 센서의 값을 얻는다

저번 투고 계속해!
버튼과 LED를 연결하여 빛을 내는 것을 지난번에 실시하였다
GPIO의 "in"및 "out"을 제어할 수 있습니다!
이번에는 그 앱이야.'in' 과 'out' 의 구조를 이용하여 센서와 Raspberry pi를 연결하여 그 센서의 값을 얻었다.

배운 지식

  • 초음파 거리 센서의 구조

  • Node.js
  • process.nextTick([function])
  • 두 번째 순환에서 []에서 지정한 function
  • 을 실행합니다
  • setTimeout([function], 0)보다 빠릅니다!

  • process.hrtime()
  • 현재 시간
  • 을 [seconds,nanosseconds]의 배열로 되돌려줍니다
  • 과거에 얻은 시간을 매개 변수에 추가하면 차분
  • 을 얻는다.
    예제
     var time = process.hrtime();
     var diff = process.hrtime(time);
    

    준비물

  • 이전과 동일
  • 초음파 거리 센서(HC-SR04)
  • 우선 초음파 거리 센서의 회로를 이해하다

  • 초음파 거리 센서의 장치
  • out에서 in을 측정하는 시간
  • 도로 = 시간/속도용
  • 거리가 필요해!

  • 잇닿다
  • 센서의 4개 핀은 다음과 같다.

  • 연결(27번 포트: in/17번 포트:out으로 사용)

  • 하고 싶은 일

  • "out"에서 "in"까지의 시간을 측정하는 프로그램을 만들고 싶어요!
  • 거리측정 알고리즘


  • 실행


    ※ 샘플 코드라 이렇게 써도 움직이지 않습니다
    distance.js
    
    // ポートを使う準備
    var fs = require('fs');
    ・・・
    (略)
    
    // 27ポートの値を聞き続けるFunction
    function kurikaesiFunc(){
        // 27ポートの値を取得
        var stdout = fs.readFileSync("/sys/class/gpio/gpio27/value");
    
        if(1 == stdout){
            // 1だった時はoutではかった時間との差分を取得する
            diff = process.hrtime(startTime);
            goalFunc(diffから距離を計算した値);
        } 
        process.nextTick(kurikaesiFunc); //くりかえし
    };
    
    // 非同期処理で呼び出すFunction
    var outFunc = function(){
        // outに出力の命令を出す        
        // 時間を測る (process.hrtime()を使う)
    };
    
    // 距離を出力するFunction
    var goalFunc = finction(distance){  
        console.log(distance)
    };
    
    상기 코드의 절차에 따라 프로그램을 집행하다
    획득한 값!
    → 수치가 정확하지 않기 때문에 정밀도를 조금 더 높일 필요가 있다!
    → 완료 후 업데이트

    좋은 웹페이지 즐겨찾기