add gateway voltage sending example

pull/197/head
Timm Bogner 6 months ago
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…
Cancel
Save