This example demonstrates "headless' use of a server, without a gateway device like Raspberry Pi/Linux.
#define OUTPUT_BUFFER_SIZE MAX_PAYLOAD_SIZE - 14
#define USE_NRF24
#ifdef USE_NRF24
#include <RF24.h>
#include <RF24Network.h>
#include "RF24Mesh.h"
RF24 radio(7, 8);
RF24Network network(radio);
RF24Mesh mesh(radio, network);
#else
#include <nrf_to_nrf.h>
#include <RF24Network.h>
#include "RF24Mesh.h"
nrf_to_nrf radio;
RF52Network network(radio);
RF52Mesh mesh(radio, network);
#endif
#if defined(ARDUINO_ARCH_ESP8266)
#define LED_PIN BUILTIN_LED
#else
#define LED_PIN A3
#endif
static unsigned short generate_tcp_stats();
void setup() {
Serial.begin(115200);
while (!Serial) {}
Serial.println("start");
pinMode(LED_PIN, OUTPUT);
IPAddress myIP(10, 1, 3, 1);
IPAddress gwIP(10, 1, 3, 2);
mesh.setNodeID(0);
Serial.println(mesh.getNodeID());
mesh.begin(65);
server.begin();
server.setTimeout(30000);
}
uint32_t mesh_timer = 0;
void loop() {
uint8_t pageReq = 0;
char requestBuffer[20];
memset(requestBuffer, 0, sizeof(requestBuffer));
uint16_t bytesRead = 0;
uint32_t timeout = millis();
while (client.connected() && (millis() - timeout < 100)) {
if (client.available()) {
char c = client.read();
if (c == '/') {
if (client.available() >= 2) {
client.readBytes(requestBuffer, 2);
}
break;
}
}
}
if (strncmp(requestBuffer, "ON", 2) == 0) {
pageReq = 1;
} else if (strncmp(requestBuffer, "OF", 2) == 0) {
pageReq = 1;
} else if (strncmp(requestBuffer, "ST", 2) == 0) {
pageReq = 2;
} else if (strncmp(requestBuffer, "CR", 2) == 0) {
pageReq = 3;
} else {
pageReq = 4;
}
client.flush();
switch (pageReq) {
}
client.stop();
Serial.println(F("********"));
}
}
static unsigned short generate_tcp_stats() {
return 1;
}
void main_page(EthernetClient &_client)
void stats_page(EthernetClient &_client)
void credits_page(EthernetClient &_client)
RF24EthernetClass RF52EthernetClass
RF24EthernetClass RF24Ethernet