add gateway voltage sending example
parent
6f283852a3
commit
a9dba95df5
@ -0,0 +1,31 @@
|
||||
#define GTWY_READING_ID 42
|
||||
#define INTERVAL_SECONDS 60
|
||||
#define ADC_PIN 34
|
||||
|
||||
#include "fdrs_gateway_config.h"
|
||||
#include <fdrs_gateway.h>
|
||||
int vref = 1100;
|
||||
|
||||
float getVoltage() {
|
||||
uint16_t v = analogRead(ADC_PIN);
|
||||
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
|
||||
String voltage = "Voltage :" + String(battery_voltage) + "V";
|
||||
DBG(voltage);
|
||||
return battery_voltage;
|
||||
}
|
||||
void sendReading() {
|
||||
float v = getVoltage();
|
||||
loadFDRS(v, VOLTAGE_T, GTWY_READING_ID);
|
||||
sendFDRS();
|
||||
}
|
||||
|
||||
void setup() {
|
||||
beginFDRS();
|
||||
sendReading();
|
||||
scheduleFDRS(sendReading, INTERVAL_SECONDS * 1000);
|
||||
sendReading();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
loopFDRS();
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
// FARM DATA RELAY SYSTEM
|
||||
//
|
||||
// GATEWAY CONFIGURATION
|
||||
|
||||
//Addresses
|
||||
#define UNIT_MAC 0x02 // The address of this gateway
|
||||
|
||||
#define ESPNOW_NEIGHBOR_1 0x01 // Address of ESP-NOW neighbor #1
|
||||
#define ESPNOW_NEIGHBOR_2 0x04 // Address of ESP-NOW neighbor #2
|
||||
#define LORA_NEIGHBOR_1 0x00 // Address of LoRa neighbor #1
|
||||
#define LORA_NEIGHBOR_2 0x00 // Address of LoRa neighbor #2
|
||||
|
||||
// Interfaces
|
||||
#define USE_ESPNOW
|
||||
//#define USE_LORA
|
||||
//#define USE_WIFI // Will cause errors if used with ESP-NOW. Use a serial link instead!
|
||||
//#define USE_ETHERNET
|
||||
|
||||
// Routing
|
||||
// Options: sendESPNowNbr(1 or 2); sendESPNowPeers(); sendLoRaNbr(1 or 2); broadcastLoRa(); sendSerial(); sendMQTT();
|
||||
#define ESPNOWG_ACT sendESPNowNbr(1);
|
||||
#define LORAG_ACT
|
||||
#define SERIAL_ACT
|
||||
#define MQTT_ACT
|
||||
#define INTERNAL_ACT sendESPNowNbr(1);
|
||||
#define ESPNOW1_ACT sendESPNowNbr(2); sendESPNowPeers();
|
||||
#define ESPNOW2_ACT sendESPNowNbr(1);
|
||||
#define LORA1_ACT
|
||||
#define LORA2_ACT
|
||||
|
||||
// LoRa Configuration
|
||||
#define RADIOLIB_MODULE SX1276
|
||||
#define LORA_SS 18
|
||||
#define LORA_RST 14
|
||||
#define LORA_DIO 26
|
||||
#define LORA_BUSY 33
|
||||
//#define USE_SX126X
|
||||
|
||||
#define LORA_TXPWR 17 // LoRa TX power in dBm (: +2dBm - +17dBm (for SX1276-7) +20dBm (for SX1278))
|
||||
|
||||
//#define CUSTOM_SPI
|
||||
#define LORA_SPI_SCK 5
|
||||
#define LORA_SPI_MISO 19
|
||||
#define LORA_SPI_MOSI 27
|
||||
|
||||
#define FDRS_DEBUG // Enable USB-Serial debugging
|
||||
|
||||
// OLED -- Displays console debugging messages on an SSD1306 I²C OLED
|
||||
///#define USE_OLED
|
||||
#define OLED_HEADER "FDRS"
|
||||
#define OLED_PAGE_SECS 30
|
||||
#define OLED_SDA 4
|
||||
#define OLED_SCL 15
|
||||
#define OLED_RST 16
|
||||
|
||||
// UART data interface pins (if available)
|
||||
#define RXD2 14
|
||||
#define TXD2 15
|
||||
|
||||
//#define USE_LR // Use ESP-NOW LR mode (ESP32 only)
|
||||
|
||||
// WiFi and MQTT Credentials -- These will override the global settings
|
||||
//#define WIFI_SSID "Your SSID"
|
||||
//#define WIFI_PASS "Your Password"
|
||||
|
||||
//#define MQTT_ADDR "192.168.0.8"
|
||||
//#define MQTT_PORT 1883 // Default MQTT port is 1883
|
||||
//#define MQTT_AUTH //Enable MQTT authentication
|
||||
//#define MQTT_USER "Your MQTT Username"
|
||||
//#define MQTT_PASS "Your MQTT Password"
|
||||
|
||||
// NTP Time settings
|
||||
#define USDST
|
||||
// #define EUDST
|
||||
#define TIME_SERVER "0.us.pool.ntp.org" // NTP time server to use. If FQDN at least one DNS server is required to resolve name
|
||||
#define STD_OFFSET (-6) // Local standard time offset in hours from UTC - if unsure, check https://time.is
|
||||
#define DST_OFFSET (STD_OFFSET + 1) // Local savings time offset in hours from UTC - if unsure, check https://time.is
|
||||
#define TIME_FETCHNTP 15 // Time, in minutes, between fetching time from NTP server
|
||||
#define TIME_PRINTTIME 10 // Time, in minutes, between printing local time to debug
|
||||
#define TIME_SEND_INTERVAL 15 // Time, in minutes, between sending out time to remote devices, set to 0 to only send when time is received
|
Loading…
Reference in New Issue