LD2410C 24GHz Human Presence Sensor High Accuracy

LD2410C 24GHz Human Presence Sensor High Accuracy FMCW Wave Radar Induction Module Body Heartbeat Detection Sensors


55 ₪

الناشر: ⚡ Electronic Store ⚡

القسم: Sensors

تاريخ النشر: 2025-09-08











code
نسخ
اقتباس
عرض
تنزيل
	
								
/* * Example sketch for reporting on readings from the LD2410 using whatever settings are currently configured. * * This has been tested on the following platforms... * * On ESP32, connect the LD2410 to GPIO pins 32&33 * On ESP32S2, connect the LD2410 to GPIO pins 8&9 * On ESP32C3, connect the LD2410 to GPIO pins 4&5 * On Arduino Leonardo or other ATmega32u4 board connect the LD2410 to GPIO pins TX & RX hardware serial * * The serial configuration for other boards will vary and you'll need to assign them yourself * * For ESP8266, see the basicSensorEsp8266 sibling example — it uses * SoftwareSerial because the ESP8266's hardware UARTs cannot host both the * radar and the serial monitor without colliding with strapping pins. * * For this sketch the board needs two usable hardware UARTs. * */ #if defined(ESP32) #ifdef ESP_IDF_VERSION_MAJOR // IDF 4+ #if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4 #define MONITOR_SERIAL Serial #define RADAR_SERIAL Serial1 #define RADAR_RX_PIN 32 #define RADAR_TX_PIN 33 #elif CONFIG_IDF_TARGET_ESP32S2 #define MONITOR_SERIAL Serial #define RADAR_SERIAL Serial1 #define RADAR_RX_PIN 9 #define RADAR_TX_PIN 8 #elif CONFIG_IDF_TARGET_ESP32C3 #define MONITOR_SERIAL Serial #define RADAR_SERIAL Serial1 #define RADAR_RX_PIN 4 #define RADAR_TX_PIN 5 #else #error Target CONFIG_IDF_TARGET is not supported #endif #else // ESP32 Before IDF 4.0 #define MONITOR_SERIAL Serial #define RADAR_SERIAL Serial1 #define RADAR_RX_PIN 32 #define RADAR_TX_PIN 33 #endif #elif defined(__AVR_ATmega32U4__) #define MONITOR_SERIAL Serial #define RADAR_SERIAL Serial1 #define RADAR_RX_PIN 0 #define RADAR_TX_PIN 1 #endif #include <ld2410.h> ld2410 radar; uint32_t lastReading = 0; bool radarConnected = false; void setup(void) { MONITOR_SERIAL.begin(115200); //Feedback over Serial Monitor //radar.debug(MONITOR_SERIAL); //Uncomment to show debug information from the library on the Serial Monitor. By default this does not show sensor reads as they are very frequent. #if defined(ESP32) RADAR_SERIAL.begin(256000, SERIAL_8N1, RADAR_RX_PIN, RADAR_TX_PIN); //UART for monitoring the radar #elif defined(__AVR_ATmega32U4__) RADAR_SERIAL.begin(256000); //UART for monitoring the radar #endif delay(500); MONITOR_SERIAL.print(F("\nConnect LD2410 radar TX to GPIO:")); MONITOR_SERIAL.println(RADAR_RX_PIN); MONITOR_SERIAL.print(F("Connect LD2410 radar RX to GPIO:")); MONITOR_SERIAL.println(RADAR_TX_PIN); MONITOR_SERIAL.print(F("LD2410 radar sensor initialising: ")); if(radar.begin(RADAR_SERIAL)) { MONITOR_SERIAL.println(F("OK")); MONITOR_SERIAL.print(F("LD2410 firmware version: ")); MONITOR_SERIAL.print(radar.firmware_major_version); MONITOR_SERIAL.print('.'); MONITOR_SERIAL.print(radar.firmware_minor_version); MONITOR_SERIAL.print('.'); MONITOR_SERIAL.println(radar.firmware_bugfix_version, HEX); } else { MONITOR_SERIAL.println(F("not connected")); } } void loop() { radar.read(); if(radar.isConnected() && millis() - lastReading > 1000) //Report every 1000ms { lastReading = millis(); if(radar.presenceDetected()) { if(radar.stationaryTargetDetected()) { Serial.print(F("Stationary target: ")); Serial.print(radar.stationaryTargetDistance()); Serial.print(F("cm energy:")); Serial.print(radar.stationaryTargetEnergy()); Serial.print(' '); } if(radar.movingTargetDetected()) { Serial.print(F("Moving target: ")); Serial.print(radar.movingTargetDistance()); Serial.print(F("cm energy:")); Serial.print(radar.movingTargetEnergy()); } Serial.println(); } else { Serial.println(F("No target")); } } }