С помощью библиотеки arduino RadioHead эти модули были проверены на работоспособность. После чего одна из демо программ была модернизирована для приемника.
СпойлерПоказать
#include <SPI.h>
#include <RH_RF69.h>
RH_RF69 rf69;
void setup()
{
Serial.begin(9600);
while (!Serial);
if (!rf69.init())
Serial.println("init failed");
if (!rf69.setFrequency(868.0))
Serial.println("setFrequency failed");
rf69.setModemConfig(RH_RF69::FSK_Rb2Fd5);
Serial.println("Start loop");
}
void loop()
{
if (rf69.available())
{
Serial.println("RF69 SEND MESSAGE");
uint8_t buf[RH_RF69_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (rf69.recv(buf, &len))
{
Serial.print("got request: ");
Serial.println((char*)buf);
uint8_t data[] = "And hello back to you";
rf69.send(data, sizeof(data));
rf69.waitPacketSent();
Serial.println("Sent a reply");
}
else
{
Serial.println("recv failed");
}
}
}
#include <RH_RF69.h>
RH_RF69 rf69;
void setup()
{
Serial.begin(9600);
while (!Serial);
if (!rf69.init())
Serial.println("init failed");
if (!rf69.setFrequency(868.0))
Serial.println("setFrequency failed");
rf69.setModemConfig(RH_RF69::FSK_Rb2Fd5);
Serial.println("Start loop");
}
void loop()
{
if (rf69.available())
{
Serial.println("RF69 SEND MESSAGE");
uint8_t buf[RH_RF69_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (rf69.recv(buf, &len))
{
Serial.print("got request: ");
Serial.println((char*)buf);
uint8_t data[] = "And hello back to you";
rf69.send(data, sizeof(data));
rf69.waitPacketSent();
Serial.println("Sent a reply");
}
else
{
Serial.println("recv failed");
}
}
}
Помогите разобраться с работой этого модуля. Может я что то не так понял и делаю?