๐Ÿง  ์ดˆ์ŒํŒŒ ์„ผ์„œ ๊ฐ€๊นŒ์›Œ์งˆ์ˆ˜๋ก ์ƒ‰์ด ๋ฐ”๋€๋‹ค / ๋„ค์˜คํ”ฝ์…€ LED ์‹œ๊ฐํ™” ์‹คํ—˜

(Sensloop Lab Research Log / Part.2)

โš ๏ธ ์‹คํ—˜ ์•ˆ๋‚ด (Safety Notice)

์ด ๊ธ€์—๋Š” ๋ฆฌํŠฌ์ด์˜จ ์…€ยท๋ฐฐํ„ฐ๋ฆฌํŒฉยท์ „์ž๋ถ€ํ’ˆ์„ ํ™œ์šฉํ•œ ์‹คํ—˜ ๊ณผ์ •์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ก์€ Sensloop Lab์˜ ํ†ต์ œ๋œ ํ™˜๊ฒฝ์—์„œ ์ˆ˜ํ–‰๋œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

์•ˆ์ „ํ•œ ์‹คํ—˜์„ ์œ„ํ•ด ๋‹ค์Œ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค:

  • ์ ˆ์—ฐ ์žฅ๋น„์™€ ๋ณดํ˜ธ์žฅ๊ตฌ(์žฅ๊ฐ‘ยท๋ณด์•ˆ๊ฒฝ ๋“ฑ)๋ฅผ ์ฐฉ์šฉํ•˜์„ธ์š”.
  • ์ž‘์—… ์ „ ์ „์•• ํ™•์ธ๊ณผ ์ ˆ์—ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•˜์„ธ์š”.
  • ๊ณ ์ „์•• ๋ฐฐํ„ฐ๋ฆฌํŒฉ ์‹คํ—˜์€ ์ˆ™๋ จ์ž๊ฐ€ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ตฌ์› ์—ฌ๋Ÿฌ๋ถ„, ์•ˆ๋…•ํ•˜์„ธ์š”. ๐Ÿ”ฌ
์ด๋ฒˆ ๊ธ€์€ ์ง€๋‚œ ์‹œ๊ฐ„์— ์ง„ํ–‰ํ–ˆ๋˜ ใ€ŒJSN-SR04T ์ดˆ์ŒํŒŒ ์„ผ์„œ, ์ •๋ง ์ •ํ™•ํ• ๊นŒ?ใ€ ์‹คํ—˜์˜ ์—ฐ์žฅ์„ ์— ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋•Œ ์šฐ๋ฆฌ๋Š” ์ดˆ์ŒํŒŒ ์„ผ์„œ๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋А ์ •๋„์˜ ๊ฑฐ๋ฆฌ ์ •ํ™•๋„๋ฅผ ๊ฐ€์ง€๋Š”์ง€,
20cm๋ถ€ํ„ฐ 50cm๊นŒ์ง€ ๊ตฌ๊ฐ„๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ธก์ •ํ•˜๋ฉฐ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ผ์„œ์˜ ์‹ ๋ขฐ์„ฑ์„ ๊ฒ€์ฆํ–ˆ๋‹ค๋ฉด,
์ด๋ฒˆ์—๋Š” ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ โ€˜๋ˆˆ์œผ๋กœ ๋ณด์ด๊ฒŒโ€™ ํ‘œํ˜„ํ•ด๋ณด๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
๋ฐ”๋กœ, ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ LED ์ƒ‰์ƒ์ด ๋ฐ”๋€Œ๋Š” ์‹œ๊ฐํ™” ์‹คํ—˜์ด์ฃ .
์„ผ์„œ๊ฐ€ ๊ฐ์ง€ํ•œ ์ˆซ์ž ๋ฐ์ดํ„ฐ๋ฅผ โ€˜๋น›์˜ ์ƒ‰โ€™์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด๋ผ,
๋ˆ„๊ตฌ๋‚˜ ํ•œ๋ˆˆ์— ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐ŸŽฏ ์‹คํ—˜์˜ ํ™•์žฅ ์˜๋„

์ „ํŽธ์—์„œ ์„ผ์„œ์˜ ๋™์ž‘ ์›๋ฆฌ์™€ ๋ฐฐ์„ ์€ ์ด๋ฏธ ๋‹ค๋ค˜๊ธฐ ๋•Œ๋ฌธ์—
์ด๋ฒˆ์—๋Š” ๊ทธ ๋‚ด์šฉ์„ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ณ , ์ถœ๋ ฅ ์žฅ์น˜(๋„ค์˜คํ”ฝ์…€) ์—ฐ๊ฒฐ๋ถ€๋งŒ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

(์ „ํŽธ์„ ์•„์ง ๋ณด์ง€ ์•Š์œผ์‹  ์—ฐ๊ตฌ์›๋ถ„๋“ค์€
๐Ÿ‘‰ ์ดˆ์ŒํŒŒ ์„ผ์„œ, ์ •๋ง ์ •ํ™•ํ• ๊นŒ? JSN-SR04T ์•„๋‘์ด๋…ธ ์‹ค์ธก ๋ฐ์ดํ„ฐ
๊ธ€์„ ๋จผ์ € ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ดํ•ด๊ฐ€ ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค.)

์ด๋ฒˆ ์‹คํ—˜์˜ ๋ชฉ์ ์€ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.
๊ฑฐ๋ฆฌ๊ฐ’์— ๋”ฐ๋ผ LED์˜ ์ƒ‰์ด ๋ณ€ํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ.
์˜ˆ๋ฅผ ๋“ค์–ด,

  • 25cm ์ดํ•˜์—์„œ๋Š” โ€œ์œ„ํ—˜ ๊ตฌ๊ฐ„โ€์œผ๋กœ ๋นจ๊ฐ•,
  • 30cm ๊ทผ์ฒ˜์—์„œ๋Š” ์ฃผํ™ฉ,
  • 35cm์—์„œ๋Š” ๋…ธ๋ž‘,
  • 40cm์—์„œ๋Š” ์ดˆ๋ก –
    ์ด๋ ‡๊ฒŒ ๊ฐ€๊นŒ์›Œ์งˆ์ˆ˜๋ก ์ƒ‰์ด ๋” ๊ฐ•๋ ฌํ•ด์ง€๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๐Ÿ”Œ ์‹คํ—˜ ๊ตฌ์„ฑ

ํ•ญ๋ชฉ๋‚ด์šฉ
์‚ฌ์šฉ ๋ณด๋“œArduino Mega 2560
์„ผ์„œ ๋ชจ๋“ˆJSN-SR04T (๋ฐฉ์ˆ˜ํ˜• ์ดˆ์ŒํŒŒ ์„ผ์„œ)
์ถœ๋ ฅ ์žฅ์น˜๋„ค์˜คํ”ฝ์…€(WS2812B) 8๊ฐœ ๋ง ๋ชจ๋“ˆ
์ „์› ๊ณต๊ธ‰USB 5V (๋˜๋Š” SMPS 5V ๋ณด๊ฐ• ๊ฐ€๋Šฅ)
ํ™˜๊ฒฝ ์กฐ๊ฑด์‹ค๋‚ด ์•ฝ 23 ยฐC, ํ‰๋ฉด ๋ฐ˜์‚ฌ์ฒด ๊ธฐ์ค€

๐Ÿงฉ ํšŒ๋กœ ์—ฐ๊ฒฐ

๋ชจ๋“ˆํ•€์•„๋‘์ด๋…ธ
JSN-SR04TVCC5V
JSN-SR04TGNDGND
JSN-SR04TTrigD7
JSN-SR04TEchoD6
๋„ค์˜คํ”ฝ์…€ ๋งDinD5
๋„ค์˜คํ”ฝ์…€ ๋งVCC5V
๋„ค์˜คํ”ฝ์…€ ๋งGNDGND

๐Ÿ’ก ์ฃผ์˜: ๋„ค์˜คํ”ฝ์…€์€ ์ „๋ฅ˜๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ „์› ๋ถ€์กฑ ์‹œ LED ๋ฐ๊ธฐ๋ฅผ 120~140 ์ •๋„๋กœ ๋‚ฎ์ถ”๊ฑฐ๋‚˜, ๋ณ„๋„์˜ 5V SMPS๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.


๐Ÿ’ป ์‹คํ—˜ ์ฝ”๋“œ

JSN-SR04T + NeoPixel – ๊ฑฐ๋ฆฌ๋ณ„ ์ƒ‰์ƒ ํ‘œ์‹œ (25 / 30 / 35 / 40 cm)

#include <Adafruit_NeoPixel.h>

// ============================================
// ๐Ÿ”ง ํ•˜๋“œ์›จ์–ด ์„ค์ •
// ============================================
#define TRIG_PIN    7
#define ECHO_PIN    6
#define PIXEL_PIN   5
#define NUM_PIXELS  8
Adafruit_NeoPixel strip(NUM_PIXELS, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

// ============================================
// ๐Ÿงฉ ์ƒํƒœ(enum) โ€” โ˜…๋ฐ˜๋“œ์‹œ ํ•จ์ˆ˜๋“ค๋ณด๋‹ค ์œ„โ˜…
/*  ํƒ€์ž…๋ช…์„ ColorZone_e๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ ์ œ๊ฑฐ  */
enum ColorZone_e { CZ_OFF, CZ_GREEN, CZ_YELLOW, CZ_ORANGE, CZ_RED };
ColorZone_e lastZone = CZ_OFF;

// ============================================
// โš™๏ธ ํ™˜๊ฒฝ/๋ณด์ • & ํƒ€์ด๋ฐ
// ============================================
const float     TEMP_C        = 23.0;
const float     SOUND_SPEED   = 331.0 + 0.6 * TEMP_C;    // m/s
const float     CM_OFFSET     = 1.0;                     // +1 cm ๋ณด์ •
const uint32_t  TIMEOUT_US    = 38000UL;
const uint16_t  UPDATE_MS     = 200;
uint32_t        lastUpdateMs  = 0;

// ============================================
// ๐ŸŽฏ ์ž„๊ณ„๊ฐ’
// ============================================
const float TH_RED = 25.0;  // <25 โ†’ ๋นจ๊ฐ•
const float TH_ORG = 30.0;  // <30 โ†’ ์ฃผํ™ฉ
const float TH_YEL = 35.0;  // <35 โ†’ ๋…ธ๋ž‘
const float TH_GRN = 40.0;  // <40 โ†’ ์ดˆ๋ก
const float BOUNDARY_RANGE = 1.0; // ๊ฒฝ๊ณ„ ๊ตฌ๊ฐ„ ๋ณด์ •(ยฑ1cm)

// ============================================
// ๐ŸŒˆ ์ƒ‰์ƒ
// ============================================
static inline uint32_t COL(uint8_t r,uint8_t g,uint8_t b){ return strip.Color(r,g,b); }
const uint32_t RED = COL(200,  0,  0);
const uint32_t ORG = COL(220, 90,  0);
const uint32_t YEL = COL(200,170,  0);
const uint32_t GRN = COL(  0,180,  0);
const uint32_t OFF = COL(  0,  0,  0);

// ============================================
// ๐Ÿ“ ๊ฑฐ๋ฆฌ ์ธก์ •(5ํšŒ ํ‰๊ท )
// ============================================
float measureDistanceCm() {
  float sum = 0.0f; int n = 0;
  for (int i = 0; i < 5; i++) {
    digitalWrite(TRIG_PIN, LOW);  delayMicroseconds(2);
    digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10);
    digitalWrite(TRIG_PIN, LOW);

    unsigned long dur = pulseIn(ECHO_PIN, HIGH, TIMEOUT_US);
    if (dur > 0) {
      float cm = dur * ((SOUND_SPEED * 100.0) / 1000000.0) / 2.0 + CM_OFFSET;
      sum += cm; n++;
    }
    delay(2);
  }
  if (n == 0) return NAN;
  return sum / n;
}

// ============================================
// ๐Ÿšฆ ๊ตฌ๊ฐ„ ํŒ์ • (๊ฒฝ๊ณ„ ๊ตฌ๊ฐ„ ๋ณด์ • ํฌํ•จ)
// ============================================
ColorZone_e getZone(float cm) {
  if (isnan(cm)) return lastZone;

  ColorZone_e z =
    (cm < TH_RED) ? CZ_RED :
    (cm < TH_ORG) ? CZ_ORANGE :
    (cm < TH_YEL) ? CZ_YELLOW :
    (cm < TH_GRN) ? CZ_GREEN  :
                    CZ_OFF;

  // ๊ฒฝ๊ณ„ ๊ตฌ๊ฐ„ ๋ณด์ •
  if (z != lastZone) {
    switch (lastZone) {
      case CZ_RED:
        if (cm < TH_RED + BOUNDARY_RANGE) z = CZ_RED;
        break;
      case CZ_ORANGE:
        if (cm < TH_ORG + BOUNDARY_RANGE && cm >= TH_RED - BOUNDARY_RANGE) z = CZ_ORANGE;
        break;
      case CZ_YELLOW:
        if (cm < TH_YEL + BOUNDARY_RANGE && cm >= TH_ORG - BOUNDARY_RANGE) z = CZ_YELLOW;
        break;
      case CZ_GREEN:
        if (cm < TH_GRN + BOUNDARY_RANGE && cm >= TH_YEL - BOUNDARY_RANGE) z = CZ_GREEN;
        break;
      case CZ_OFF:
        if (cm >= TH_GRN - BOUNDARY_RANGE) z = CZ_OFF;
        break;
    }
  }
  return z;
}

// ============================================
// ๐Ÿ’ก LED ํ‘œ์‹œ
// ============================================
void showColor(uint32_t color) {
  for (int i = 0; i < NUM_PIXELS; i++) strip.setPixelColor(i, color);
  strip.show();
}

// ============================================
// ๐Ÿง  setup / ๐Ÿ” loop
// ============================================
void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);

  strip.begin();
  strip.setBrightness(150);
  strip.clear();
  strip.show();

  Serial.println(F("=== SR04T + NeoPixel | EDU thresholds: 25/30/35/40 cm ==="));
}

void loop() {
  if (millis() - lastUpdateMs < UPDATE_MS) return;
  lastUpdateMs = millis();

  float cm = measureDistanceCm();
  if (isnan(cm)) return;

  ColorZone_e z = getZone(cm);
  if (z != lastZone) {
    lastZone = z;
    switch (z) {
      case CZ_RED:    showColor(RED); break;
      case CZ_ORANGE: showColor(ORG); break;
      case CZ_YELLOW: showColor(YEL); break;
      case CZ_GREEN:  showColor(GRN); break;
      default:        showColor(OFF); break; // 40cm ์ด์ƒ ์†Œ๋“ฑ
    }
  }

  Serial.print(F("cm=")); Serial.print(cm, 1);
  Serial.print(F("  zone="));
  Serial.println((z==CZ_RED)?"RED":(z==CZ_ORANGE)?"ORG":(z==CZ_YELLOW)?"YEL":(z==CZ_GREEN)?"GRN":"OFF");
}

์ด ์ฝ”๋“œ๋Š” JSN-SR04T ์ดˆ์ŒํŒŒ ์„ผ์„œ๋กœ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ •ํ•˜๊ณ ,
๋„ค์˜คํ”ฝ์…€ LED ๋ง์„ ํ†ตํ•ด 4๋‹จ๊ณ„ ์ƒ‰์ƒ์œผ๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ต์œก์šฉ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

25cm ๋ฏธ๋งŒ์—์„œ๋Š” ๋นจ๊ฐ•,
30cm ๋ฏธ๋งŒ์—์„œ๋Š” ์ฃผํ™ฉ,
35cm ๋ฏธ๋งŒ์—์„œ๋Š” ๋…ธ๋ž‘,
40cm ๋ฏธ๋งŒ์—์„œ๋Š” ์ดˆ๋ก์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉฐ,
40cm ์ด์ƒ์€ ์†Œ๋“ฑ๋ฉ๋‹ˆ๋‹ค.

๐ŸŒก ๊ฒฝ๊ณ„ ๊ตฌ๊ฐ„ ๋ณด์ •(Boundary Correction)
์„ผ์„œ๊ฐ’์ด ๊ฒฝ๊ณ„ ๊ทผ์ฒ˜์—์„œ ์กฐ๊ธˆ์”ฉ ๋ณ€ํ•  ๋•Œ LED๊ฐ€ ๊นœ๋นก์ด๋Š” ํ˜„์ƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด,
ยฑ1cm์˜ ์—ฌ์œ  ๊ตฌ๊ฐ„์„ ์„ค์ •ํ•˜์—ฌ ์•ˆ์ •์ ์œผ๋กœ ์ƒ‰์ด ์ „ํ™˜๋˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿงฉ ์‹คํ—˜ ํŒ

  • ๊ฑฐ๋ฆฌ ๋ฒ”์œ„๋ฅผ ๋ฐ”๊พธ๋ ค๋ฉด TH_RED~TH_GRN ๊ฐ’์„ ์กฐ์ •ํ•˜์„ธ์š”.
  • LED ๋ฐ๊ธฐ๋Š” strip.setBrightness()์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฑฐ๋ฆฌ ๋ณ€ํ™” ์†๋„๊ฐ€ ๋น ๋ฅผ ๊ฒฝ์šฐ UPDATE_MS(๊ฐฑ์‹  ์ฃผ๊ธฐ)๋ฅผ ์ค„์—ฌ๋ณด์„ธ์š”.

๐Ÿ“ท ์‹คํ—˜ ํ˜„์žฅ ์Šค๋ƒ…

์ด๋ฒˆ ์‹คํ—˜์—์„œ๋Š” ๋ณ„๋„์˜ ๊ฑฐ์น˜๋Œ€๋ฅผ ์“ฐ์ง€ ์•Š๊ณ ,
์„ผ์„œ๋ฅผ ๋‚˜๋ฌด์ “๊ฐ€๋ฝ์œผ๋กœ ์‚ด์ง ๊ณ ์ •ํ•œ ์ƒํƒœ์—์„œ ์ธก์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜„
Sensloop Lab์˜ ์‹คํ—˜์€ ํ•ญ์ƒ โ€œ์ง€๊ธˆ ๊ฐ€์ง„ ์žฌ๋ฃŒ๋งŒ์œผ๋กœ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•โ€์„ ์ถ”๊ตฌํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ,
๋ณต์žกํ•œ ํ”„๋ ˆ์ž„ ์—†์ด ์„ผ์„œ์™€ LED, ์ ํผ์„ ๋งŒ์œผ๋กœ ์‹คํ—˜ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

(์‚ฌ์ง„ ์† ์ “๊ฐ€๋ฝ ๊ณ ์ •์€ ์‹คํ—˜ ์ค‘ ์ž ์‹œ์˜ ์›ƒ์Œ ํฌ์ธํŠธ๊ฐ€ ๋˜์—ˆ์ฃ .
โ€œ์ด๊ฒŒ ๋ฐ”๋กœ ์ง„์งœ ํ˜„์žฅํ˜• ์‹คํ—˜์ด๋‹ค!โ€๋ผ๋Š” ๋ง์ด ๋‚˜์˜ฌ ์ •๋„์˜€์Šต๋‹ˆ๋‹ค.)


๐Ÿ“Š ์‹คํ—˜ ๊ฒฐ๊ณผ ์š”์•ฝ

์ธก์ • ๊ฑฐ๋ฆฌํ‘œ์‹œ ์ƒ‰์ƒ์˜๋ฏธ
< 25 cm๐Ÿ”ด ๋นจ๊ฐ•๋งค์šฐ ๊ทผ์ ‘ (์œ„ํ—˜)
25โ€“30 cm๐ŸŸ  ์ฃผํ™ฉ์ฃผ์˜ ๊ตฌ๊ฐ„
30โ€“35 cm๐ŸŸก ๋…ธ๋ž‘์ธ์‹ ์•ˆ์ •
35โ€“40 cm๐ŸŸข ์ดˆ๋ก์•ˆ์ „ ๊ฑฐ๋ฆฌ
โ‰ฅ 40 cmโšซ ๊บผ์ง๊ฐ์ง€ ์—†์Œ

LED๊ฐ€ ์ƒ‰์ƒ์œผ๋กœ ๋ฐ”๋€Œ๋Š” ๊ตฌ๊ฐ„์ด ๋งค์šฐ ๋ช…ํ™•ํ•˜๊ณ ,
ยฑ1 cm ๊ฒฝ๊ณ„ ๋ณด์ • ๋•๋ถ„์— ๋น ๋ฅด๊ฒŒ ์›€์ง์ด๋Š” ๋ฌผ์ฒด์—๋„ ์ƒ‰์ด ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.


๐Ÿง  ์—ฐ๊ตฌ์› ์ฝ”๋ฉ˜ํŠธ

์ด๋ฒˆ ์‹คํ—˜์€ ์„ผ์„œ ์ž…๋ ฅ โ†’ LED ์ถœ๋ ฅ์˜ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ์‹œ๊ฐํ™” ์‹ค์Šต์ž…๋‹ˆ๋‹ค.
ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๊ฒฝ๊ณ„ ๊ตฌ๊ฐ„ ๋ณด์ •(ยฑ1 cm) ์œผ๋กœ ์ƒ‰์ƒ ์ „ํ™˜ ์‹œ ๊นœ๋นก์ž„ ์ตœ์†Œํ™”
  2. 5ํšŒ ํ‰๊ท ๊ฐ’์œผ๋กœ ๊ฑฐ๋ฆฌ ์ธก์ • ์˜ค์ฐจ ์™„ํ™”
  3. ์ฝ”๋“œ ๊ตฌ์กฐ ๋‹จ์ˆœํ™” – ์ดˆ๋ณด ์—ฐ๊ตฌ์›๋„ ์†์‰ฝ๊ฒŒ ์‘์šฉ ๊ฐ€๋Šฅ

์ด ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š”
๐Ÿ‘‰ ๋ธ”๋ฃจํˆฌ์Šค ๋ชจ๋“ˆ(HC-05) ๋ฅผ ์—ฐ๊ฒฐํ•ด
์Šค๋งˆํŠธํฐ ์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ๋กœ ์‹ค์‹œ๊ฐ„ ๊ฑฐ๋ฆฌ๊ฐ’์„ ํ‘œ์‹œํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.


์•„์ง๋„ ์ „ํŽธ์„ ๋ณด์ง€ ๋ชปํ•˜์…จ๋‹ค๋ฉด ?

๐Ÿ‘‰ ๋งLED ์‹คํ—˜์˜ ์ฒซํฌ์ŠคํŒ…์„ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด ?!

๐Ÿ‘‰ ์ดˆ์ŒํŒŒ ์„ผ์„œ, ์ •๋ง ์ •ํ™•ํ• ๊นŒ? JSN-SR04T ์•„๋‘์ด๋…ธ ์‹ค์ธก ๋ฐ์ดํ„ฐ

๐Ÿ‘‰์•„๋‘์ด๋…ธ ์šฐ๋…ธvs๋ฉ”๊ฐ€ ์•„์ง ๋ณด๋“œ๋ฅผ ์„ ํƒ์„ ๋ชปํ–ˆ๋‹ค๋ฉด ?

๋Œ“๊ธ€ ๋‚จ๊ธฐ๊ธฐ