JXCT Soil Sensor 7-in-1 3.10.1
IoT система мониторинга почвы на базе ESP32
Загрузка...
Поиск...
Не найдено
Файл crop_recommendation_engine.cpp

Реализация движка рекомендаций по культурам Подробнее...

Граф включаемых заголовочных файлов для crop_recommendation_engine.cpp:

Классы

struct  RecommendationParams
 
struct  RecommendationParams::Builder
 

Функции

else if (cropName=="blueberry"||cropName=="черника")
 
 if (soilType==SoilType::CLAY||soilType==SoilType::CLAY_LOAM)
 

Переменные

<<<<<<< HEAD float CropRecommendationEngine::compensatePH(const CropCompensationParams &params) { return getCompensationService().correctPH(params.temperature, params.rawValue);} float CropRecommendationEngine::compensateEC(float EC_raw, float temperature, float humidity, SoilType soilType) { return getCompensationService().correctEC(EC_raw, soilType, temperature, humidity);} NPKReferences CropRecommendationEngine::compensateNPK(float N_raw, float P_raw, float K_raw, float temperature, float humidity, SoilType soilType) { NPKReferences npk{N_raw, P_raw, K_raw};getCompensationService().correctNPK(temperature, humidity, soilType, npk);return npk;} float CropRecommendationEngine::compensateEC(float EC_raw, float temperature) { return compensateEC(EC_raw, temperature, 60.0F, SoilType::LOAM);} float CropRecommendationEngine::compensateNPK(float NPK_raw, float temperature, float moisture) { NPKReferences npk{NPK_raw, NPK_raw, NPK_raw};getCompensationService().correctNPK(temperature, moisture, SoilType::LOAM, npk);return npk.nitrogen;} SoilType CropRecommendationEngine::parseSoilType(const String &soilTypeStr) { if(soilTypeStr=="sand") { return SoilType::SAND;} if(soilTypeStr=="loam") { return SoilType::LOAM;} if(soilTypeStr=="clay") { return SoilType::CLAY;} if(soilTypeStr=="peat") { return SoilType::PEAT;} if(soilTypeStr=="sandpeat") { return SoilType::SANDPEAT;} return SoilType::LOAM;=======String CropRecommendationEngine::generateCropSpecificRecommendations(const String &cropName, const NPKReferences &npk, SoilType soilType, float pH) { String recommendations="";if(cropName=="tomato"||cropName=="томат") { if(pH< 6.5F) { recommendations+="🍅 Томаты требуют кальций для предотвращения вершинной гнили. ";recommendations+="Рекомендуется: внести кальциевую селитру (Ca(NO3)2)\n";} if(npk.potassium > 200.0F) { recommendations+="🍅 Высокий калий может блокировать магний у томатов. ";recommendations+="Рекомендуется: внести сульфат магния (MgSO4)\n";} if(npk.nitrogen > 150.0F &&npk.phosphorus< 100.0F) { recommendations+="🍅 Томаты нуждаются в сбалансированном питании. ";recommendations+="Рекомендуется: увеличить фосфор для развития корневой системы\n";} if(pH > 7.0F||npk.potassium > 300.0F) { recommendations+="🍅 Томаты требуют бор для предотвращения деформации плодов. ";recommendations+="Рекомендуется: внести борную кислоту (H3BO3)\n";} } else if(cropName=="cucumber"||cropName=="огурец") { if(npk.potassium< 200.0F) { recommendations+="🥒 Огурцы требуют много калия для плодоношения. ";recommendations+="Рекомендуется: внести калийную селитру (KNO3)\n";} if(pH > 7.0F) { recommendations+="🥒 Щелочная почва снижает доступность бора для огурцов. ";recommendations+="Рекомендуется: внести борную кислоту (H3BO3)\n";} if(npk.potassium > 200.0F &&npk.nitrogen< 150.0F) { recommendations+="🥒 Огурцы требуют магний для фотосинтеза. ";recommendations+="Рекомендуется: внести сульфат магния (MgSO4)\n";} } else if(cropName=="pepper"||cropName=="перец") { if(npk.phosphorus > 100.0F) { recommendations+="🌶️ Высокий фосфор может блокировать цинк у перца. ";recommendations+="Рекомендуется: внести хелатный цинк (Zn-EDTA)\n";} if(pH< 6.5F) { recommendations+="🌶️ Перец требует кальций для качества плодов. ";recommendations+="Рекомендуется: внести кальциевую селитру\n";} if(pH > 7.0F||npk.potassium > 300.0F) { recommendations+="🌶️ Перец требует бор для завязывания плодов. ";recommendations+="Рекомендуется: внести борную кислоту (H3BO3)\n";} } else if(cropName=="lettuce"||cropName=="салат") { if(npk.nitrogen > 250.0F) { recommendations+="🥬 Высокий азот требует серу для синтеза белка у салата. ";recommendations+="Рекомендуется: внести сульфат аммония ((NH4)2SO4)\n";} if(pH > recommendations = "Рекомендуется: внести хелатное железо (Fe-EDTA)\n"
 

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

Реализация движка рекомендаций по культурам

Вычисляет агрономические рекомендации на основе типа культуры и условий

Функции

◆ if() [1/2]

else if ( cropName  = = "blueberry" || cropName == "черника")

◆ if() [2/2]

if ( soilType  = SoilType::CLAY || soilType == SoilType::CLAY_LOAM)

Переменные

◆ recommendations

return recommendations = "Рекомендуется: внести хелатное железо (Fe-EDTA)\n"