JXCT Soil Sensor 7-in-1 3.10.1
IoT система мониторинга почвы на базе ESP32
Загрузка...
Поиск...
Не найдено
sensor_types.h
См. документацию.
1
7#ifndef SENSOR_TYPES_H
8#define SENSOR_TYPES_H
9
10#include <Arduino.h>
11
15enum class SoilType : uint8_t
16{
17 SAND = 0, // Песок
18 LOAM = 1, // Суглинок
19 PEAT = 2, // Торф
20 CLAY = 3, // Глина
21 SANDPEAT = 4, // Песчано-торфяная смесь
22 SILT = 5, // Иловая почва - НОВЫЙ
23 CLAY_LOAM = 6, // Глинистый суглинок - НОВЫЙ
24 ORGANIC = 7, // Органическая почва - НОВЫЙ
25 SANDY_LOAM = 8, // Песчанистый суглинок - НОВЫЙ
26 SILTY_LOAM = 9, // Иловатый суглинок - НОВЫЙ
27 LOAMY_CLAY = 10, // Суглинистая глина - НОВЫЙ
28 SALINE = 11, // Засоленная почва - НОВЫЙ
29 ALKALINE = 12 // Щелочная почва - НОВЫЙ
30};
31
35enum class SoilProfile : uint8_t
36{
37 SAND = 0, // Песок
38 LOAM = 1, // Суглинок
39 PEAT = 2, // Торф
40 CLAY = 3, // Глина
41 SANDPEAT = 4, // Песчано-торфяная смесь
42 SILT = 5, // Иловая почва - НОВЫЙ
43 CLAY_LOAM = 6, // Глинистый суглинок - НОВЫЙ
44 ORGANIC = 7, // Органическая почва - НОВЫЙ
45 SANDY_LOAM = 8, // Песчанистый суглинок - НОВЫЙ
46 SILTY_LOAM = 9, // Иловатый суглинок - НОВЫЙ
47 LOAMY_CLAY = 10, // Суглинистая глина - НОВЫЙ
48 SALINE = 11, // Засоленная почва - НОВЫЙ
49 ALKALINE = 12 // Щелочная почва - НОВЫЙ
50};
51
55enum class EnvironmentType : uint8_t
56{
57 OUTDOOR = 0, // Открытый грунт
58 GREENHOUSE = 1, // Теплица
59 INDOOR = 2 // Закрытое помещение
60};
61
65enum class Season : uint8_t
66{
67 SPRING = 0, // Весна
68 SUMMER = 1, // Лето
69 AUTUMN = 2, // Осень
70 WINTER = 3 // Зима
71};
72
77{
78 float temperature; // Температура (°C)
79 float humidity; // Влажность (%)
80 float ec; // Электропроводность (µS/cm)
81 float ph; // pH
82 float nitrogen; // Азот (mg/kg)
83 float phosphorus; // Фосфор (mg/kg)
84 float potassium; // Калий (mg/kg)
85
87 : temperature(0.0F), humidity(0.0F), ec(0.0F), ph(0.0F), nitrogen(0.0F), phosphorus(0.0F), potassium(0.0F)
88 {
89 }
90
91 SensorData(float temp, float hum, float ec_val, float ph_val, float n, float p, float k)
92 : temperature(temp), humidity(hum), ec(ec_val), ph(ph_val), nitrogen(n), phosphorus(p), potassium(k)
93 {
94 }
95};
96
101{
102 float nitrogen; // Азот (mg/kg)
103 float phosphorus; // Фосфор (mg/kg)
104 float potassium; // Калий (mg/kg)
105
106 NPKReferences() : nitrogen(0.0F), phosphorus(0.0F), potassium(0.0F) {}
107
108 NPKReferences(float n, float p, float k) : nitrogen(n), phosphorus(p), potassium(k) {}
109};
110
115{
116 float rawValue;
119
121
122 ECCompensationParams(float raw, float temp, float factor)
123 : rawValue(raw), temperature(temp), compensationFactor(factor)
124 {
125 }
126
127 // Builder pattern для предотвращения ошибок
128 struct Builder
129 {
130 float raw = 0.0F;
131 float temp = 25.0F;
132 float factor = 1.0F;
133
134 Builder& setRawValue(float value)
135 {
136 raw = value;
137 return *this;
138 }
140 {
141 temp = value;
142 return *this;
143 }
145 {
146 factor = value;
147 return *this;
148 }
149
151 {
153 }
154 };
155
157 {
158 return Builder();
159 }
160};
161
166{
167 float rawValue;
169 float moisture;
170
172
173 CropCompensationParams(float raw, float temp, float moist) : rawValue(raw), temperature(temp), moisture(moist) {}
174};
175
180{
181 float rawValue;
183
185
186 CropECCompensationParams(float raw, float temp) : rawValue(raw), temperature(temp) {}
187};
188
189#endif // SENSOR_TYPES_H
Season
Сезоны
Definition sensor_types.h:66
EnvironmentType
Типы среды выращивания
Definition sensor_types.h:56
SoilType
Типы почвы
Definition sensor_types.h:16
SoilProfile
Профили почвы
Definition sensor_types.h:36
Параметры компенсации для культур
Definition sensor_types.h:166
CropCompensationParams(float raw, float temp, float moist)
Definition sensor_types.h:173
float temperature
Definition sensor_types.h:168
CropCompensationParams()
Definition sensor_types.h:171
float moisture
Definition sensor_types.h:169
float rawValue
Definition sensor_types.h:167
Параметры компенсации EC для культур
Definition sensor_types.h:180
CropECCompensationParams()
Definition sensor_types.h:184
CropECCompensationParams(float raw, float temp)
Definition sensor_types.h:186
float rawValue
Definition sensor_types.h:181
float temperature
Definition sensor_types.h:182
Definition sensor_types.h:129
ECCompensationParams build() const
Definition sensor_types.h:150
Builder & setCompensationFactor(float value)
Definition sensor_types.h:144
Builder & setRawValue(float value)
Definition sensor_types.h:134
float factor
Definition sensor_types.h:132
Builder & setTemperature(float value)
Definition sensor_types.h:139
float raw
Definition sensor_types.h:130
float temp
Definition sensor_types.h:131
Параметры компенсации EC.
Definition sensor_types.h:115
float temperature
Definition sensor_types.h:117
ECCompensationParams(float raw, float temp, float factor)
Definition sensor_types.h:122
float compensationFactor
Definition sensor_types.h:118
float rawValue
Definition sensor_types.h:116
static Builder builder()
Definition sensor_types.h:156
ECCompensationParams()
Definition sensor_types.h:120
NPK значения
Definition sensor_types.h:101
NPKReferences()
Definition sensor_types.h:106
NPKReferences(float n, float p, float k)
Definition sensor_types.h:108
float potassium
Definition sensor_types.h:104
float nitrogen
Definition sensor_types.h:102
float phosphorus
Definition sensor_types.h:103
Данные датчика
Definition sensor_types.h:77
float phosphorus
Definition sensor_types.h:83
float temperature
Definition sensor_types.h:78
float nitrogen
Definition sensor_types.h:82
float humidity
Definition sensor_types.h:79
SensorData(float temp, float hum, float ec_val, float ph_val, float n, float p, float k)
Definition sensor_types.h:91
SensorData()
Definition sensor_types.h:86
float ec
Definition sensor_types.h:80
float ph
Definition sensor_types.h:81
float potassium
Definition sensor_types.h:84