Arduino + 가속도 센서 (KXR94-2050) + SD 카드 실드 + 건전지로 간단한 진동 측정을 해보십시오
7189 단어 SD 카드ArduinoArduinoIDEKXR94-2050
소개
해저 산사태를 간이한 계측기로 측정할 수 없는가 하는 명제에 해당했습니다. Iot라면 전파를 날리기 위해 안테나 부분이나 배터리를 지상부에 준비해야 합니다. 해저 부표 등이 있습니다만, 고파에도 견딜 수 있는 튼튼한 구조가 필요하고, 꽤 고액으로 대규모가 되어 버립니다. 거기서, Arduino+가속도 센서+건전지로, 어디까지 사용해 실현성이 있는지, 가능성을 확인해 보았습니다.
소재
재료는 다음을 사용했습니다. 모두 아키즈키 전자나 아마존 등으로 준비에 손에 넣습니다.
재료는 다음을 사용했습니다. 모두 아키즈키 전자나 아마존 등으로 준비에 손에 넣습니다.
연결하면 이런 느낌이 듭니다. 테스트용 포함하면 이번 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로 검증했습니다.
【참고 사이트】
\frac{電池電流(mAh)}{1000} × 電池電圧(V)×電池個数(n)=Wh(b)・・・電池全容量 \\
\ Wh(b) \div Wh(a) = 稼動時間(h) \\
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) 그 자체의 정밀도의 검증도 필요하다고 생각합니다. 이 근처에 대해서는 또 다른 기사에서 투고합니다.
Reference
이 문제에 관하여(Arduino + 가속도 센서 (KXR94-2050) + SD 카드 실드 + 건전지로 간단한 진동 측정을 해보십시오), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/umekengo/items/d7df87fe289de9e22e56
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#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);
}
Amazon 건전지를 사용하여 실제로 연속 가동해 보았습니다. USB 전압 검사기를 사용하여 정기적으로 전압 상황을 조사했습니다. 10일째가 되면 3V까지 전압 강하하여 Arduino의 정상적인 가동을 견딜 수 없게 됩니다. 역시 계산대로였습니다.
결과(2: 센서 값)
가속도 센서의 x, y, z 값이 SD 카드에 기록됩니다. 시간도 확실히 새겨져 있습니다.
스스로 조금 기울여서 놀아 보았습니다. 제대로 반응하는 것 같습니다.
결론
이번에는, Arduino를 이용해 건전지식의 로거 타입의 진동계를 작성해 보았습니다. 가동 시간에 대해서는, 로거 타입이면 최저라도 1개월은 갖고 싶은 것입니다. 그러므로, 아직 앞으로 개량은 필요할까 생각합니다. 또, 진동의 계측에는, 가속도 센서(KXR94-2050) 그 자체의 정밀도의 검증도 필요하다고 생각합니다. 이 근처에 대해서는 또 다른 기사에서 투고합니다.
Reference
이 문제에 관하여(Arduino + 가속도 센서 (KXR94-2050) + SD 카드 실드 + 건전지로 간단한 진동 측정을 해보십시오), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/umekengo/items/d7df87fe289de9e22e56
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는, Arduino를 이용해 건전지식의 로거 타입의 진동계를 작성해 보았습니다. 가동 시간에 대해서는, 로거 타입이면 최저라도 1개월은 갖고 싶은 것입니다. 그러므로, 아직 앞으로 개량은 필요할까 생각합니다. 또, 진동의 계측에는, 가속도 센서(KXR94-2050) 그 자체의 정밀도의 검증도 필요하다고 생각합니다. 이 근처에 대해서는 또 다른 기사에서 투고합니다.
Reference
이 문제에 관하여(Arduino + 가속도 센서 (KXR94-2050) + SD 카드 실드 + 건전지로 간단한 진동 측정을 해보십시오), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/umekengo/items/d7df87fe289de9e22e56텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)