rfm69_ard/src/main.cpp

79 lines
1.8 KiB
C++

#include <Arduino.h>
#include <RFM69.h>
#include <RFM69_ATC.h>
#include <SPIFlash.h>
#define NODEID 122
#define FREQUENCY RF69_915MHZ
#define SERIAL_BAUD 115200
//#define IS_RFM69HW_HCW
RFM69 radio;
int networkID = 1;
long tryCount = 0;
int packetCount = 0;
bool found = false;
//SPIFlash flash(SS_FLASHMEM, 0xEF30);
void initRadio() {
radio.initialize(FREQUENCY,NODEID,networkID);
radio.spyMode(true);
//radio.setFrequency(915230000);
}
void setup() {
Serial.begin(SERIAL_BAUD);
delay(10);
Serial.println("Init started");
initRadio();
char buff[50];
sprintf(buff, "\nListening at %d Mhz...", FREQUENCY==RF69_433MHZ ? 433 : FREQUENCY==RF69_868MHZ ? 868 : 915);
Serial.println(buff);
byte temperature = radio.readTemperature(-1); // -1 = user cal factor, adjust for correct ambient
Serial.print( "Radio Temp is ");
Serial.print(temperature);
Serial.println("C");
uint32_t freq = radio.getFrequency();
Serial.print("Listening Frequency: ");
Serial.println(freq);
// Turn off LED
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
Serial.println("Starting loop()");
}
void loop() {
if (radio.receiveDone())
{
Serial.print("#[");
Serial.print(++packetCount);
Serial.print(']');
Serial.print('[');Serial.print(radio.SENDERID, DEC);Serial.print("] ");
Serial.print("to [");Serial.print(radio.TARGETID, DEC);Serial.print("] ");
for (byte i = 0; i < radio.DATALEN; i++)
Serial.print((char)radio.DATA[i]);
Serial.print(" [RX_RSSI:");Serial.print(radio.RSSI);Serial.print("]");
}
tryCount++;
if (tryCount > 180000) {
Serial.print("Network: ");
Serial.print(networkID);
Serial.println(" No packets heard, incrementing");
tryCount = 0;
networkID++;
if (networkID == 256)
networkID=1;
initRadio();
}
}