안녕하세요 대짜이찐입니다.
이전에 아두이노 나노 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 댓글