void loop() // ----- TRANSMIT BEST PRACTICE ----- static unsigned long lastSend = 0; if (millis() - lastSend > 2000) lastSend = millis();
After setting AT+RFNETID , the modules automatically pair. No need for AT+LINK or address targeting. This is transparent broadcasting — anything one sends, all receive. Best Use Cases (With Example Sketches) 1. Wireless Sensor Node (Low Power) Send temperature every 60 seconds, then sleep the Arduino + JDY-40.
// Send data, then enter deep sleep jdy40.println("SENSOR:OK"); delay(10); // Put JDY-40 to sleep via AT command pinMode(4, OUTPUT); digitalWrite(4, LOW); jdy40.println("AT+SLEEP=2"); // Deep sleep delay(50); // Now sleep the Arduino (using LowPower library) Never send a command without an acknowledgment. jdy40 arduino example best
Out of the box, the JDY-40 works. But to eliminate interference and maximize range, you must configure it via AT commands.
// Optional: Set the module to transparent transmission (default mode) pinMode(4, OUTPUT); // SET pin digitalWrite(4, HIGH); // HIGH = Data mode, LOW = AT mode void loop() // ----- TRANSMIT BEST PRACTICE -----
void setup() Serial.begin(9600); // For debugging via USB jdy40.begin(9600); // JDY-40 default baud rate
Serial.println("JDY-40 Master/Slave Ready"); Best Use Cases (With Example Sketches) 1
If you have searched for , you are likely frustrated with vague datasheets and broken English translations. This article will provide you with the definitive guide to wiring, coding, and optimizing the JDY-40 for real-world projects. What is the JDY-40? (And Why It’s Better Than You Think) The JDY-40 is a half-duplex, 2.4GHz wireless transceiver module. Unlike the nRF24L01, which requires managing 20+ registers via SPI, the JDY-40 communicates over UART (Serial) . To your Arduino, it looks exactly like a wire replacement.