아두이노 나노 33 BLE SENSE 센서 다뤄보기

 안녕하세요 대짜이찐입니다.

이전에 아두이노 나노 33 BLE SENSE 제품에 대해 

포스팅한적이 있습니다.

https://devicemart.blogspot.com/2021/01/ble-sense.html


그때는 내부 RGB LED정도만 간단하게 제어해보고

넘어갔었는데, 이번에는 아두이노 보드 내부에 있는

여러 센서들의 값을 측정해보는 포스팅을 하려 합니다.



아시다시피 아두이노 나노 33 BLE SENSE 제품에는 

NINA-B306(블루투스), LSM9DS1(IMU 센서), LP22HBN(대기압 센서), 

HTS221(온습도센서), APDS-9960(광,제스처 센서), MP34DT05(마이크)등의

센서가 부착되어 있습니다.


이중에 블루투스와 마이크를 제외한 

LSM9DS1, LPS22HB, HTS221, APDS9960 

센서들의 측정값을 받아보겠습니다.

각 센서들을 사용하는데 필요한 라이브러리는

라이브러리 매니저에서 각 센서이름을 검색하여 Arduino_센서이름으로

다운받거나 아래 링크를 참고해주시기 바랍니다.

LSM9DS1, LPS22HB, HTS221, APDS9960 


이후 아래의 소스코드를 업로드하면 센서들의 측정값을

받아올 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <Arduino_LSM9DS1.h> //Include the library for 9-axis IMU
#include <Arduino_LPS22HB.h> //Include library to read Pressure 
#include <Arduino_HTS221.h> //Include library to read Temperature and Humidity 
#include <Arduino_APDS9960.h> //Include library for colour, proximity and gesture recognition
 
void setup(){
  Serial.begin(9600); //Serial monitor to display all sensor values 
 
  if (!IMU.begin()) //Initialize IMU sensor 
  { Serial.println("Failed to initialize IMU!"); while (1);}
 
  if (!BARO.begin()) //Initialize Pressure sensor 
  { Serial.println("Failed to initialize Pressure Sensor!"); while (1);}
 
  if (!HTS.begin()) //Initialize Temperature and Humidity sensor 
  { Serial.println("Failed to initialize Temperature and Humidity Sensor!"); while (1);}
 
  if (!APDS.begin()) //Initialize Colour, Proximity and Gesture sensor 
  { Serial.println("Failed to initialize Colour, Proximity and Gesture Sensor!"); while (1);}
 }
 
float accel_x, accel_y, accel_z;
float gyro_x, gyro_y, gyro_z;
float mag_x, mag_y, mag_z;
float Pressure;
float Temperature, Humidity;
int Proximity;
 
void loop()
{
  //Accelerometer values 
  if (IMU.accelerationAvailable()) {
    IMU.readAcceleration(accel_x, accel_y, accel_z);
    Serial.print("Accelerometer = ");Serial.print(accel_x); Serial.print(", ");Serial.print(accel_y);Serial.print(", ");Serial.println(accel_z);
  }
delay (200);
 
  //Gyroscope values 
  if (IMU.gyroscopeAvailable()) {
    IMU.readGyroscope(gyro_x, gyro_y, gyro_z);
    Serial.print("Gyroscope = ");Serial.print(gyro_x); Serial.print(", ");Serial.print(gyro_y);Serial.print(", ");Serial.println(gyro_z);
  }
delay (200);
 
  //Magnetometer values 
  if (IMU.magneticFieldAvailable()) {
    IMU.readMagneticField(mag_x, mag_y, mag_z);
    Serial.print("Magnetometer = ");Serial.print(mag_x); Serial.print(", ");Serial.print(mag_y);Serial.print(", ");Serial.println(mag_z);
  }
delay (200);
 
  //Read Pressure value
  Pressure = BARO.readPressure();
  Serial.print("Pressure = ");Serial.println(Pressure);
  delay (200);
 
  //Read Temperature value
  Temperature = HTS.readTemperature();
  Serial.print("Temperature = ");Serial.println(Temperature);
  delay (200);
 
  //Read Humidity value
  Humidity = HTS.readHumidity();
  Serial.print("Humidity = ");Serial.println(Humidity);
  delay (200);
 
  //Proximity value
  if (APDS.proximityAvailable()) {
    Proximity = APDS.readProximity();
    Serial.print("Proximity = ");Serial.println(Proximity); 
    }
  delay (200);
 
  Serial.println("_____________________________________________________"); 
  delay(1000);
}
cs


아두이노 나노 33 BLE 제품은 아래링크에서 구매할 수 있습니다.


Arduino Nano 33 BLE Sense with headers
https://www.devicemart.co.kr/goods/view?no=10919317


Arduino Nano 33 BLE Sense
https://www.devicemart.co.kr/goods/view?no=10919318


감사합니다.


댓글 쓰기

0 댓글