JXCT Soil Sensor 7-in-1 v3.4.9 (June 2025)
Professional IoT soil monitoring system with ESP32, Modbus RTU, MQTT, and advanced compensation algorithms
Загрузка...
Поиск...
Не найдено
Файл main.cpp

Главный файл проекта JXCT датчика Подробнее...

#include <WiFiClientSecure.h>
#include <WiFiClient.h>
#include <Arduino.h>
#include "version.h"
#include "wifi_manager.h"
#include "modbus_sensor.h"
#include "mqtt_client.h"
#include "thingspeak_client.h"
#include "jxct_config_vars.h"
#include <WiFiUdp.h>
#include <NTPClient.h>
#include <esp_task_wdt.h>
#include "fake_sensor.h"
#include "debug.h"
#include "logger.h"
#include "sensor_factory.h"
#include "ota_manager.h"
#include <esp_ota_ops.h>

См. исходные тексты.

Функции

bool initPreferences ()
 
void setupWiFi ()
 
void setupModbus ()
 Инициализация Modbus и SP3485E.
 
void loadConfig ()
 
void startRealSensorTask ()
 
void startFakeSensorTask ()
 
void handleWiFi ()
 
void handleMQTT ()
 
void resetButtonTask (void *parameter)
 
void setup ()
 
void loop ()
 

Переменные

unsigned long lastDataPublish = 0
 
unsigned long lastNtpUpdate = 0
 
WiFiUDP ntpUDP
 
NTPClient * timeClient = nullptr
 
const int RESET_BUTTON_PIN = 0
 
const unsigned long STATUS_PRINT_INTERVAL = 30000
 
unsigned long lastStatusPrint = 0
 

Подробное описание

Главный файл проекта JXCT датчика

См. определение в файле main.cpp

Функции

◆ handleMQTT()

void handleMQTT ( )

См. определение в файле mqtt_client.cpp строка 311

Перекрестные ссылки config, connectMQTT(), getOtaStatus(), getOtaStatusTopic(), logMQTT(), logSuccess(), logWarn() и mqttClient.

Используется в loop().

◆ handleWiFi()

void handleWiFi ( )

См. определение в файле wifi_manager.cpp строка 129

Перекрестные ссылки AP, config, currentWiFiMode, dnsServer, logError(), logSuccess(), logWarn(), logWiFi(), setLedBlink(), setLedOn(), STA, startAPMode(), startSTAMode(), updateLed(), webServer, WIFI_RECONNECT_INTERVAL, WIFI_RETRY_DELAY_MS и wifiConnected.

Используется в loop().

◆ initPreferences()

bool initPreferences ( )

См. определение в файле main.cpp строка 196

Перекрестные ссылки preferences.

Используется в setup().

◆ loadConfig()

void loadConfig ( )

См. определение в файле config.cpp строка 39

Используется в setup().

◆ loop()

◆ resetButtonTask()

void resetButtonTask ( void * parameter)

См. определение в файле main.cpp строка 53

Перекрестные ссылки BUTTON_HOLD_TIME_MS, DEBUG_PRINTLN, logError(), logWarn(), RESET_BUTTON_PIN и resetConfig().

Используется в setup().

◆ setup()

◆ setupModbus()

void setupModbus ( )

Инициализация Modbus и SP3485E.

Настраивает пины управления SP3485E и инициализирует UART для Modbus. Важно: DE и RE управляются раздельно для лучшего контроля над временем переключения

См. определение в файле modbus_sensor.cpp строка 80

Перекрестные ссылки COLOR_CYAN, COLOR_GREEN, JXCT_MODBUS_ID, logPrintHeader(), logSuccess(), logSystem(), modbus, MODBUS_DE_PIN, MODBUS_RE_PIN, MODBUS_RX_PIN, MODBUS_TX_PIN, postTransmission() и preTransmission().

Используется в ModbusSensorAdapter::ModbusSensorAdapter().

◆ setupWiFi()

void setupWiFi ( )

См. определение в файле wifi_manager.cpp строка 99

Перекрестные ссылки COLOR_GREEN, config, loadConfig(), logDebug(), logPrintHeader(), logPrintSeparator(), logSystem(), logWiFi(), setLedBlink(), startAPMode(), startSTAMode() и STATUS_LED_PIN.

Используется в setup().

◆ startFakeSensorTask()

void startFakeSensorTask ( )

См. определение в файле fake_sensor.cpp строка 98

Перекрестные ссылки fakeSensorTask().

Используется в FakeSensorAdapter::FakeSensorAdapter() и setup().

◆ startRealSensorTask()

void startRealSensorTask ( )

См. определение в файле modbus_sensor.cpp строка 541

Перекрестные ссылки realSensorTask().

Используется в setup().

Переменные

◆ lastDataPublish

unsigned long lastDataPublish = 0

См. определение в файле main.cpp строка 29

Используется в loop().

◆ lastNtpUpdate

unsigned long lastNtpUpdate = 0

См. определение в файле main.cpp строка 30

Используется в loop().

◆ lastStatusPrint

unsigned long lastStatusPrint = 0

См. определение в файле main.cpp строка 50

Используется в loop().

◆ ntpUDP

WiFiUDP ntpUDP

См. определение в файле main.cpp строка 42

Используется в sendSensorJson() и startSTAMode().

◆ RESET_BUTTON_PIN

const int RESET_BUTTON_PIN = 0

См. определение в файле main.cpp строка 46

◆ STATUS_PRINT_INTERVAL

const unsigned long STATUS_PRINT_INTERVAL = 30000

См. определение в файле main.cpp строка 47

Используется в loop().

◆ timeClient

NTPClient* timeClient = nullptr

См. определение в файле main.cpp строка 43

Используется в loop(), publishSensorData(), sendSensorJson() и startSTAMode().