Arduino + 가속도 센서 (KXR94-2050) + SD 카드 실드 + 건전지로 간단한 진동 측정을 해보십시오

소개



해저 산사태를 간이한 계측기로 측정할 수 없는가 하는 명제에 해당했습니다. Iot라면 전파를 날리기 위해 안테나 부분이나 배터리를 지상부에 준비해야 합니다. 해저 부표 등이 있습니다만, 고파에도 견딜 수 있는 튼튼한 구조가 필요하고, 꽤 고액으로 대규모가 되어 버립니다. 거기서, Arduino+가속도 센서+건전지로, 어디까지 사용해 실현성이 있는지, 가능성을 확인해 보았습니다.

소재



재료는 다음을 사용했습니다. 모두 아키즈키 전자나 아마존 등으로 준비에 손에 넣습니다.
  • Arduino Uno
  • SD 카드 실드
  • USB2.0 케이블 (A-B 타입) 50cm
  • 브레드 보드
  • 싱글 타입 건전지
  • Micro SD 카드 32G
  • 3축 가속도 센서 모듈 KXR94-2050
  • 전지 박스 단 1×2개용(플라스틱·리드 부착)

  • 연결하면 이런 느낌이 듭니다. 테스트용 포함하면 이번 3세트 작성했습니다(사진 참조).


    가동 시간 계산



    건전지 4개(단일)의 병렬 연결로 Arduino+가속도 센서가 얼마나 가동하는지 계산했습니다. 조건은 아래 표의 일반적인 값을 사용했습니다. 센서를 사용하면 역시 약간 전류가 증가하는 것 같습니다.

    【보드 센서의 전력】


    보드
    전압
    현재
    Wh(a)


    Arduino Uno
    5.0V
    0.025A
    0.125

    Arduino Uno + KXR94-2050
    5.0V
    0.050A
    0.250


    【건전지의 용량】


     종류
    현재
    전압


    단일
    12500mAh ~ 17000mAh
    1.5V

    단이
    5700mAh ~ 7700mAh
    1.5V

    단삼
    2000mAh ~ 2700mAh
    1.5V

    단 4
    850mAh ~ 1300mAh
    9V


    【가동 시간의 계산】
    \frac{電池電流(mAh)}{1000} × 電池電圧(V)×電池個数(n)=Wh(b)・・・電池全容量 \\
    \ Wh(b) \div Wh(a) = 稼動時間(h) \\
    

    위의 조건과 계산식을 사용한 경우, 가동 시간은 약 10일로 추정되었다. Arduino가 꽤 전지를 먹어 버리는 탓인지, 너무 오래 가지 않습니다. 타이머 세트로, 가동 시간을 제한하거나 Arduino micro를 사용하면 상당히 다를지도 모릅니다만, 일단 이번은 Uno로 검증했습니다.

    【참고 사이트】
  • htps : // 코 m / 우동 ws222 / ms / 1f4834
  • htp : // bg. 아오오오 r. jp / ゔ c 및 ry7 m / r chi s / 46227409. HTML
  • h tp // w w. 토끼 1975. 코 m/19 아우 g170655/

  • Arduino 스케치의 예



    Arduino에는 시계가 없기 때문에, 로깅된 시간은, 가동하기 시작한 시간을 2000/1/1 0:00으로 하고, 데이터 흡인 후, Excel상에서 역산해 산출하도록 했습니다. Sleep의 값은 각 환경에 따라 변경하십시오.
    #include <SD.h>
    #include <TimeLib.h>
    #include <stdarg.h>
    
    const int chipSelect = 4;
    byte val=0;
    
    void setup(){
        pinMode(SS, OUTPUT);
        SD.begin(chipSelect);
        setTime(0, 0, 0, 1, 1, 2000);
        Serial.begin(9600);
    }
    
    String myPrintf(char *fmt, ...) 
    {
        char buf[128];
        String result;
        va_list args;
        va_start(args, fmt);
        vsnprintf(buf, 128, fmt, args);
        va_end(args);
        //Serial.print(buf);
        result = buf;  
        return result;
    }
    
    void loop(){
        //シリアル読み取り
        val = Serial.read();
    
        File dataFile = SD.open("datalog.txt", FILE_WRITE);
    
        float x , y , z ;
        x = x + analogRead(3)  ;  // X軸を読込む
        y = y + analogRead(4)  ;  // Y軸を読込む
        z = z + analogRead(5)  ;  // Z軸を読込む
    
      if (dataFile) {
        String value;
        value = String(x) + "," + String(y) + "," + String(z) + "," + myPrintf("%02d:%02d:%02d", hour(), minute(), second() ) + myPrintf(",%02d/%02d/%04d", day(), month(), year() );
        dataFile.println(value);
        dataFile.close();
        Serial.println(value);
      }
      //10min
      delay(600000);
    }
    
    
    

    결과(1: 전압 강하)



    Amazon 건전지를 사용하여 실제로 연속 가동해 보았습니다. USB 전압 검사기를 사용하여 정기적으로 전압 상황을 조사했습니다. 10일째가 되면 3V까지 전압 강하하여 Arduino의 정상적인 가동을 견딜 수 없게 됩니다. 역시 계산대로였습니다.



    결과(2: 센서 값)



    가속도 센서의 x, y, z 값이 SD 카드에 기록됩니다. 시간도 확실히 새겨져 있습니다.



    스스로 조금 기울여서 놀아 보았습니다. 제대로 반응하는 것 같습니다.



    결론



    이번에는, Arduino를 이용해 건전지식의 로거 타입의 진동계를 작성해 보았습니다. 가동 시간에 대해서는, 로거 타입이면 최저라도 1개월은 갖고 싶은 것입니다. 그러므로, 아직 앞으로 개량은 필요할까 생각합니다. 또, 진동의 계측에는, 가속도 센서(KXR94-2050) 그 자체의 정밀도의 검증도 필요하다고 생각합니다. 이 근처에 대해서는 또 다른 기사에서 투고합니다.

    좋은 웹페이지 즐겨찾기