|
|
@ -7,31 +7,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
#include "fdrs_config.h"
|
|
|
|
#include "fdrs_config.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ESP8266
|
|
|
|
|
|
|
|
#include <ESP8266WiFi.h>
|
|
|
|
|
|
|
|
#include <espnow.h>
|
|
|
|
|
|
|
|
#elif defined(ESP32)
|
|
|
|
|
|
|
|
#include <esp_now.h>
|
|
|
|
|
|
|
|
#include <WiFi.h>
|
|
|
|
|
|
|
|
#include <esp_wifi.h>
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <ArduinoJson.h>
|
|
|
|
|
|
|
|
#ifdef USE_WIFI
|
|
|
|
|
|
|
|
#include <PubSubClient.h>
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef USE_LORA
|
|
|
|
|
|
|
|
#include <LoRa.h>
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef USE_LED
|
|
|
|
#ifdef USE_LED
|
|
|
|
#include <FastLED.h>
|
|
|
|
#include <FastLED.h>
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#include "fdrs_gateway.h"
|
|
|
|
#include "fdrs_gateway.h"
|
|
|
|
#include "fdrs_config.h"
|
|
|
|
#include "fdrs_config.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define USE_WIFI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef USE_LED
|
|
|
|
#ifdef USE_LED
|
|
|
|
CRGB leds[NUM_LEDS];
|
|
|
|
CRGB leds[NUM_LEDS];
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -39,19 +20,21 @@ CRGB leds[NUM_LEDS];
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t selfAddress[6] = {MAC_PREFIX, UNIT_MAC};
|
|
|
|
uint8_t selfAddress[6] = {MAC_PREFIX, UNIT_MAC};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(ESP_GET) || defined(ESP_SEND)
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ESPNOW_PEER_1
|
|
|
|
#ifdef ESPNOW_PEER_1
|
|
|
|
uint8_t ESPNOW1[] = {MAC_PREFIX, ESPNOW_PEER_1};
|
|
|
|
uint8_t ESPNOW1[] = {MAC_PREFIX, ESPNOW_PEER_1};
|
|
|
|
#else
|
|
|
|
|
|
|
|
uint8_t ESPNOW1[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ESPNOW_PEER_2
|
|
|
|
#ifdef ESPNOW_PEER_2
|
|
|
|
uint8_t ESPNOW2[] = {MAC_PREFIX, ESPNOW_PEER_2};
|
|
|
|
uint8_t ESPNOW2[] = {MAC_PREFIX, ESPNOW_PEER_2};
|
|
|
|
#else
|
|
|
|
#endif
|
|
|
|
uint8_t ESPNOW2[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(LORA_GET) || defined(LORA_SEND)
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef LORA_PEER_1
|
|
|
|
#ifdef LORA_PEER_1
|
|
|
|
uint8_t LoRa1[6] = {MAC_PREFIX, LORA_PEER_1};
|
|
|
|
uint8_t LoRa1[6] = {MAC_PREFIX, LORA_PEER_1};
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -60,10 +43,20 @@ uint8_t LoRa1[6] = {MAC_PREFIX, LORA_PEER_1};
|
|
|
|
uint8_t LoRa2[6] = {MAC_PREFIX, LORA_PEER_2};
|
|
|
|
uint8_t LoRa2[6] = {MAC_PREFIX, LORA_PEER_2};
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(MQTT_GET) || defined(MQTT_SEND)
|
|
|
|
|
|
|
|
|
|
|
|
MQTT_FDRSGateWay MQTT(WIFI_SSID,WIFI_PASS,MQTT_ADDR,MQTT_PORT);
|
|
|
|
MQTT_FDRSGateWay MQTT(WIFI_SSID,WIFI_PASS,MQTT_ADDR,MQTT_PORT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(ESP_GET) || defined(ESP_SEND)
|
|
|
|
ESP_FDRSGateWay ESPNow;
|
|
|
|
ESP_FDRSGateWay ESPNow;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(SER_GET) || defined(SER_SEND)
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(ESP32)
|
|
|
|
#if defined(ESP32)
|
|
|
|
Serial_FDRSGateWay SerialGW(&Serial1,115200);
|
|
|
|
Serial_FDRSGateWay SerialGW(&Serial1,115200);
|
|
|
@ -71,8 +64,15 @@ Serial_FDRSGateWay SerialGW(&Serial1,115200);
|
|
|
|
Serial_FDRSGateWay SerialGW(&Serial,115200);
|
|
|
|
Serial_FDRSGateWay SerialGW(&Serial,115200);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(LORA_GET) || defined(LORA_SEND)
|
|
|
|
|
|
|
|
|
|
|
|
LoRa_FDRSGateWay LoRaGW(MISO,MOSI,SCK,SS,RST,DIO0,BAND,SF);
|
|
|
|
LoRa_FDRSGateWay LoRaGW(MISO,MOSI,SCK,SS,RST,DIO0,BAND,SF);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void setup() {
|
|
|
|
void setup() {
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef USE_LED
|
|
|
|
#ifdef USE_LED
|
|
|
@ -81,8 +81,11 @@ void setup() {
|
|
|
|
FastLED.show();
|
|
|
|
FastLED.show();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(MQTT_GET) || defined(MQTT_SEND)
|
|
|
|
MQTT.init();
|
|
|
|
MQTT.init();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(ESP_GET) || defined(ESP_SEND)
|
|
|
|
ESPNow.init(selfAddress);
|
|
|
|
ESPNow.init(selfAddress);
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ESPNOW_PEER_1
|
|
|
|
#ifdef ESPNOW_PEER_1
|
|
|
@ -93,41 +96,67 @@ void setup() {
|
|
|
|
ESPNow.add_peer(ESPNOW2);
|
|
|
|
ESPNow.add_peer(ESPNOW2);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(SER_GET) || defined(SER_SEND)
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(ESP32)
|
|
|
|
#if defined(ESP32)
|
|
|
|
SerialGW.init(SERIAL_8N1,RXD2,TXD2);
|
|
|
|
SerialGW.init(SERIAL_8N1,RXD2,TXD2);
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
SerialGW.init();
|
|
|
|
SerialGW.init();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef USE_LORA
|
|
|
|
|
|
|
|
LoRaGW.init(selfAddress);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ESPNOW_PEER_1
|
|
|
|
|
|
|
|
ESPNow.add_peer(ESPNOW1);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ESPNOW_PEER_2
|
|
|
|
#if defined(LORA_GET) || defined(LORA_SEND)
|
|
|
|
ESPNow.add_peer(ESPNOW2);
|
|
|
|
LoRaGW.init(selfAddress);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void loop() {
|
|
|
|
void loop() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(LORA_GET)
|
|
|
|
LoRaGW.get();
|
|
|
|
LoRaGW.get();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(SER_GET)
|
|
|
|
SerialGW.get();
|
|
|
|
SerialGW.get();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(ESP_SEND)
|
|
|
|
ESPNow.release();
|
|
|
|
ESPNow.release();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(MQTT_SEND)
|
|
|
|
MQTT.release();
|
|
|
|
MQTT.release();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(SER_SEND)
|
|
|
|
SerialGW.release();
|
|
|
|
SerialGW.release();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(LORA_SEND)
|
|
|
|
LoRaGW.release();
|
|
|
|
LoRaGW.release();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
//It does not matter witch one you call.
|
|
|
|
//It does not matter witch one you call.
|
|
|
|
//it will clear all the data that has been received.
|
|
|
|
//it will clear all the data that has been received.
|
|
|
|
|
|
|
|
#if defined(ESP_SEND)
|
|
|
|
ESPNow.flush();
|
|
|
|
ESPNow.flush();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(MQTT_SEND)
|
|
|
|
MQTT.flush();
|
|
|
|
MQTT.flush();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(SER_SEND)
|
|
|
|
SerialGW.flush();
|
|
|
|
SerialGW.flush();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(LORA_SEND)
|
|
|
|
LoRaGW.flush();
|
|
|
|
LoRaGW.flush();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|