Ligne 202 : |
Ligne 202 : |
| | | |
| {{ADFImage|FEATHER-32U4LORA-46.png|640px}} | | {{ADFImage|FEATHER-32U4LORA-46.png|640px}} |
| + | |
| + | Ouvrez maintenant une autre instance de l'IDE Arduino - c'est pour que vous puissiez voir la sortie de la console série de la du Feather TX pendant que vous configurez le Feather RX. |
| + | |
| + | == Exemple de code récepteur == |
| + | |
| + | Ce code recevra et accusera réception d'un petit paquet de données. |
| + | Chargez ce code dans votre Receiver Arduino / Feather! |
| + | |
| + | {{tmbox text=Assurez-vous que le #define RF95_FREQ 915.0 corresponde bien à la fréquence de votre émetteur Feather!}} |
| + | |
| + | {{ambox text=Décommenter / commenter les sections définissant les broches pour Feather 32u4, Feather M0, etc selon le chipset et le câblage que vous utilisez! Les broches utilisées varieront en fonction de votre configuration!}} |
| + | |
| + | <syntaxhighlight lang="python"> |
| + | // Feather9x_RX |
| + | // -*- mode: C++ -*- |
| + | // Example sketch showing how to create a simple messaging client (receiver) |
| + | // with the RH_RF95 class. RH_RF95 class does not provide for addressing or |
| + | // reliability, so you should only use RH_RF95 if you do not need the higher |
| + | // level messaging abilities. |
| + | // It is designed to work with the other example Feather9x_TX |
| + | |
| + | #include <SPI.h> |
| + | #include <RH_RF95.h> |
| + | |
| + | /* for feather32u4 */ |
| + | #define RFM95_CS 8 |
| + | #define RFM95_RST 4 |
| + | #define RFM95_INT 7 |
| + | |
| + | /* for feather m0 |
| + | #define RFM95_CS 8 |
| + | #define RFM95_RST 4 |
| + | #define RFM95_INT 3 |
| + | */ |
| + | |
| + | /* for shield |
| + | #define RFM95_CS 10 |
| + | #define RFM95_RST 9 |
| + | #define RFM95_INT 7 |
| + | */ |
| + | |
| + | |
| + | /* for ESP w/featherwing |
| + | #define RFM95_CS 2 // "E" |
| + | #define RFM95_RST 16 // "D" |
| + | #define RFM95_INT 15 // "B" |
| + | */ |
| + | |
| + | /* Feather 32u4 w/wing |
| + | #define RFM95_RST 11 // "A" |
| + | #define RFM95_CS 10 // "B" |
| + | #define RFM95_INT 2 // "SDA" (only SDA/SCL/RX/TX have IRQ!) |
| + | */ |
| + | |
| + | /* Feather m0 w/wing |
| + | #define RFM95_RST 11 // "A" |
| + | #define RFM95_CS 10 // "B" |
| + | #define RFM95_INT 6 // "D" |
| + | */ |
| + | |
| + | /* Teensy 3.x w/wing |
| + | #define RFM95_RST 9 // "A" |
| + | #define RFM95_CS 10 // "B" |
| + | #define RFM95_INT 4 // "C" |
| + | */ |
| + | |
| + | // Change to 434.0 or other frequency, must match RX's freq! |
| + | #define RF95_FREQ 915.0 |
| + | |
| + | // Singleton instance of the radio driver |
| + | RH_RF95 rf95(RFM95_CS, RFM95_INT); |
| + | |
| + | // Blinky on receipt |
| + | #define LED 13 |
| + | |
| + | void setup() |
| + | { |
| + | pinMode(LED, OUTPUT); |
| + | pinMode(RFM95_RST, OUTPUT); |
| + | digitalWrite(RFM95_RST, HIGH); |
| + | |
| + | while (!Serial); |
| + | Serial.begin(9600); |
| + | delay(100); |
| + | |
| + | Serial.println("Feather LoRa RX Test!"); |
| + | |
| + | // manual reset |
| + | digitalWrite(RFM95_RST, LOW); |
| + | delay(10); |
| + | digitalWrite(RFM95_RST, HIGH); |
| + | delay(10); |
| + | |
| + | while (!rf95.init()) { |
| + | Serial.println("LoRa radio init failed"); |
| + | while (1); |
| + | } |
| + | Serial.println("LoRa radio init OK!"); |
| + | |
| + | // Defaults after init are 434.0MHz, modulation GFSK_Rb250Fd250, +13dbM |
| + | if (!rf95.setFrequency(RF95_FREQ)) { |
| + | Serial.println("setFrequency failed"); |
| + | while (1); |
| + | } |
| + | Serial.print("Set Freq to: "); Serial.println(RF95_FREQ); |
| + | |
| + | // Defaults after init are 434.0MHz, 13dBm, Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on |
| + | |
| + | // The default transmitter power is 13dBm, using PA_BOOST. |
| + | // If you are using RFM95/96/97/98 modules which uses the PA_BOOST transmitter pin, then |
| + | // you can set transmitter powers from 5 to 23 dBm: |
| + | rf95.setTxPower(23, false); |
| + | } |
| + | |
| + | void loop() |
| + | { |
| + | if (rf95.available()) |
| + | { |
| + | // Should be a message for us now |
| + | uint8_t buf[RH_RF95_MAX_MESSAGE_LEN]; |
| + | uint8_t len = sizeof(buf); |
| + | |
| + | if (rf95.recv(buf, &len)) |
| + | { |
| + | digitalWrite(LED, HIGH); |
| + | RH_RF95::printBuffer("Received: ", buf, len); |
| + | Serial.print("Got: "); |
| + | Serial.println((char*)buf); |
| + | Serial.print("RSSI: "); |
| + | Serial.println(rf95.lastRssi(), DEC); |
| + | |
| + | // Send a reply |
| + | uint8_t data[] = "And hello back to you"; |
| + | rf95.send(data, sizeof(data)); |
| + | rf95.waitPacketSent(); |
| + | Serial.println("Sent a reply"); |
| + | digitalWrite(LED, LOW); |
| + | } |
| + | else |
| + | { |
| + | Serial.println("Receive failed"); |
| + | } |
| + | } |
| + | } |
| + | </syntaxhighlight> |
| + | |
| + | |
| | | |
| {{FEATHER-32U4LORA-TRAILER}} | | {{FEATHER-32U4LORA-TRAILER}} |