3#include <Adafruit_BME280.h>
13#include "firmware_hash.h"
16static Adafruit_BME280
bme;
17static EthernetUDP
udp;
36 Serial.println(
"Environmental Tracker starting...");
42 "ERROR: BME280 not found. Check wiring and I2C address!");
46 Serial.println(
"BME280 OK");
49 ESP_ERROR_CHECK(esp_read_mac(
mac, ESP_MAC_ETH));
62 Serial.print(
"Server: 192.168.2.");
66 Serial.print(
"Send rate: ");
69 Serial.print(
"OTA port: ");
71 Serial.println(
"Setup complete.");
76 static unsigned long last_env_send = 0;
77 static unsigned long last_heartbeat = 0;
85 int pkt_size =
udp.parsePacket();
90 daq::PacketHeader hdr;
91 daq::ServerHeartbeatPacket data;
94 Serial.print(
"Server heartbeat received (t=");
95 Serial.print(hdr.timestamp);
101 unsigned long now =
millis();
107 float temp =
bme.readTemperature();
108 uint32_t press = (uint32_t)
bme.readPressure();
109 float hum =
bme.readHumidity();
119 Serial.printf(
"ENV: %.2f C %lu Pa %.2f %%RH\n",
temp, press, hum);
125 last_heartbeat = now;
127 daq::BoardHeartbeatPacket hb;
#define ENV_ETH_SPI_DELAY_MS
#define ENV_ETH_INIT_DELAY_MS
#define ENV_SERVER_IP_OCTET_4
#define ENV_HEARTBEAT_INTERVAL_MS
#define ENV_ETH_BEGIN_DELAY_MS
#define ENV_SEND_INTERVAL_MS
static EthernetClass Ethernet
IPAddress subnet(255, 255, 255, 0)
IPAddress gateway(0, 0, 0, 0)
static IPAddress static_ip(192, 168, 2, ENV_BOARD_ID)
static IPAddress server_ip(192, 168, 2, ENV_SERVER_IP_OCTET_4)
static Adafruit_BME280 bme
static uint8_t pkt_buf[64]
static IPAddress subnet(255, 255, 255, 0)
static IPAddress dns_ip(192, 168, 2, 1)
static IPAddress gateway(192, 168, 2, 1)
static StarOTA::Server ota_server(ENV_OTA_PORT)
void printTestMessage()
Bench-test helper: prints STAR_OTA_TEST_MESSAGE on a timer as.
bool parse_server_heartbeat_packet(const uint8_t *buffer, size_t buffer_size, PacketHeader &header_out, ServerHeartbeatPacket &data_out)
Parses a Server Heartbeat packet from buffer.
size_t create_board_heartbeat_packet(const BoardHeartbeatPacket &data, uint32_t timestamp_ms, uint8_t *buffer, size_t buffer_size)
Creates a complete Board Heartbeat packet in the provided buffer.
size_t create_environmental_data_packet(float temperature_c, uint32_t pressure_pa, float humidity_rh, uint32_t timestamp_ms, uint8_t *buffer, size_t buffer_size)
Creates a complete Environmental Data packet in the provided buffer.
PacketType
Defines the type of data contained in a packet.
*brief user defined string literal for JSON values *sa std::size_t n