ESP32 와 SEN0557(LD2410) 연결

정유빈·2024년 8월 27일

저는 LD2410을 연결하기 위해서 이번 여름 방학동안 안해본 짓이 없습니다
연결을 완료했더니 방학이 끝나버렸네요

포트 드라이버 깔아서 연결 해줬잖아, 라이브러리 설치해서 해줬잖아,
SoftwareSerial로도 해줬잖아, HardwareSerial위치도 바꿔줬잖아
HomeAssistant 해줬잖아, Virtual Box도 해줬잖아
그냥 다 해줬잖아
메이플 정상화 진행중..

근데 그렇게 날 매정하게 버리더니.. 내 간절한 신호는 응답도 안하더니

이런 젠장
내가 모아온 정보와 코드들을 좀 쌈뽕하게 섞어주고 오류난 부분은 고쳐달라고 요청해서 챗 지피티가 한 번 만져주니 바로 작동을 해버리다니

내가 그렇게 지금까지 너에게 전력을 공급해주고 연결해주던 그 오랜 시간들은 잊어버린거냐구!

그래 챗지피티..너가 이겼다 그래서!!
넌 내가 무료로 쓰기 미안해서 유료 결제 해주려고 한다

언제든지 찾아가서 너의 머릿속에있는 정보들을 하나하나 탐해줄거야🥵🥵

사실 내가 앞에 저렇게 노가다를 뛰어서 한 번에 너가 성공한건 아닐까 싶어 반박시 챗지피티 냉각수로 넣어버림

이런 나의 노력과 챗지피티의 비상한 머리의 작품은 아래 코드로 제가 이쁘게 드리겠습니다
저처럼 착한 사람있어서 딸깍으로 가져갈 수 있겠네요

기억해주세요 이 곳에 내가 잠시 살았다는걸

이 글을 작성하고 있는 in KwangWoon Univ 제 3열람실 26번

major in Information Convergence

His name is Yu Bin Jeong...

미래에 왕이 될 남자

#include <HardwareSerial.h>

HardwareSerial mySerial(2);

size_t readN(uint8_t *buf, size_t len);

bool recdData(uint8_t *buf);

uint8_t Cache[23] = {0};    //Cache

void setup()
{
  Serial.begin(115200); // Use default UART0 for debugging
  mySerial.begin(57600, SERIAL_8N1, 17, 16); // UART2, RX on GPIO17, TX on GPIO16
}

void loop()
{
  recdData(Cache);
}

size_t readN(uint8_t *buf, size_t len)
{
  size_t offset = 0, left = len;
  int16_t Tineout = 1500;
  uint8_t  *buffer = buf;
  long curr = millis();
  while (left) {
    if (mySerial.available()) {
      buffer[offset] = mySerial.read();
      offset++;
      left--;
    }
    if (millis() - curr > Tineout) {
      break;
    }
  }
  return offset;
}

bool recdData(uint8_t *buf)
{
  int16_t Tineout = 50000;
  long curr = millis();
  uint8_t ch;
  bool ret = false;
  while (!ret) {
    if (millis() - curr > Tineout) {
      break;
    }
    if (readN(&ch, 1) == 1) {
      if (ch == 0xF4) {
        buf[0] = ch;
        if (readN(&ch, 1) == 1) {
          if (ch == 0xF3) {
            buf[1] = ch;
            if (readN(&ch, 1) == 1) {
              if (ch == 0xF2) {
                buf[2] = ch;
                if (readN(&ch, 1) == 1) {
                  if (ch == 0xF1) {
                    buf[3] = ch;
                      if (readN(&buf[4], 19) == 19) {
//                        printdf(buf, 23); //Print raw data
                        uint16_t Adistance = buf[10] << 8 | buf[9];
                        uint16_t Sdistance = buf[13] << 8 | buf[12];
                        uint16_t Distance = buf[16] << 8 | buf[15];
                        switch (buf[8]) {
                          case 0x00 : Serial.println("Detected status: nobody"); break;
                          case 0x01 : Serial.println("Detected status: moving"); break;
                          case 0x02 : Serial.println("Detected status: stationary"); break;
                          case 0x03 : Serial.println("Detected status: moving & stationary object"); break;
                        }
//                        Serial.print("Energy value of moving object:");
//                        Serial.println(buf[11]);
//                        Serial.print("Energy value of stationary object:");
//                        Serial.println(buf[14]);
//                        Serial.print("Distance to the moving object in CM:");
//                        Serial.println(Adistance);
//                        Serial.print("Distance to the stationary object in CM:");
//                        Serial.println(Sdistance);
                        Serial.print("Detection distance CM:");
                        Serial.println(Distance);
                        break;
                      }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return ret;
}

void printdf(uint8_t *buf, int len)
{
  for (int i = 0; i < len; i++) {
    if (buf[i] < 0x10) {
      Serial.print("0");
    }

    Serial.print(buf[i], HEX);
    Serial.print(" ");
  }
  Serial.println();
}

그래서 다들 물어보죠
이 코드를 실행하면 무엇이 나오냐고
그러면 나는 대답하죠

너가 원하는 그 무엇이든 이 안에 담겨져 있다

실행 결과

이것만 보아서는 감이 잘 오지 않을거야
왜냐구? 너는 노가다를 안했기 때문이야
진흙밭을 굴러야지 그게 진흙인줄 안다
똥밭을 굴러야지 내가 있는곳이 똥밭인줄 안다

그래 맞아 이것은 바로 거리 탐지기다!! (두둥)

그래프로 쌈뽕하게 보여주지

센서를 통해서 앞에 사람이 얼마만큼 떨어져있는지 인식하는 이 IoT 의 능력

음하하

내가 앞뒤로 움직였는데 저렇게 나타나있음을 그래프로 보여주지

그리고 아래는 해당 센서에 대한 기술을 작성한 표이니 한 번씩 보고가도록

그럼 20000

profile
대한민국의 미래를 묻는다면 고개를 들어 나를 쳐다보거라

0개의 댓글