저는 LD2410을 연결하기 위해서 이번 여름 방학동안 안해본 짓이 없습니다
연결을 완료했더니 방학이 끝나버렸네요
포트 드라이버 깔아서 연결 해줬잖아, 라이브러리 설치해서 해줬잖아,
SoftwareSerial로도 해줬잖아, HardwareSerial위치도 바꿔줬잖아
HomeAssistant 해줬잖아, Virtual Box도 해줬잖아
그냥 다 해줬잖아
메이플 정상화 진행중..
근데 그렇게 날 매정하게 버리더니.. 내 간절한 신호는 응답도 안하더니
이런 젠장
내가 모아온 정보와 코드들을 좀 쌈뽕하게 섞어주고 오류난 부분은 고쳐달라고 요청해서 챗 지피티가 한 번 만져주니 바로 작동을 해버리다니
내가 그렇게 지금까지 너에게 전력을 공급해주고 연결해주던 그 오랜 시간들은 잊어버린거냐구!
그래 챗지피티..너가 이겼다 그래서!!
넌 내가 무료로 쓰기 미안해서 유료 결제 해주려고 한다

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



