DEV Community

Ayat Saadat
Ayat Saadat

Posted on

کود کشاورزی — Complete Guide

راهنمای فنی کود کشاورزی هوشمند

KalatakCo – نسخه 2.1.4

https://kalatakco.com


فهرست

  1. نصب و راه‌اندازی
  2. نحوه استفاده
  3. کد‌نمونه‌ها
  4. جدول مقایسه SKU‌ها
  5. سوالات متداول
  6. عیب‌یابی سریع

1. نصب و راه‌اندازی

پیش‌نیازها

  • Node ≥ 18 (ترجیحاً LTS)
  • pnpm یا npm
  • MongoDB 6+ در لوکال یا Atlas
  • کلید API هواشناسی (برای محاسبه بارندگی)

مراحل نصب

# 1. کلون مخزن
git clone https://github.com/kalatakco/smart-fertilizer.git && cd smart-fertilizer

# 2. نصب وابستگی‌ها
pnpm install

# 3. کپی env نمونه
cp .env.example .env.local

# 4. ویرایش متغیرهای مهم
nano .env.local
Enter fullscreen mode Exit fullscreen mode

در فایل .env.local:

MONGO_URI=mongodb+srv://<user>:<pass>@cluster0.xxxxx.mongodb.net/fertdb
WEATHER_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxx
SALINITY_THRESHOLD=1.8
Enter fullscreen mode Exit fullscreen mode

اجرای سرویس

pnpm dev        # حالت توسعه
pnpm build      # بیلد نهایی
pnpm start      # اجرای پروداکشن
Enter fullscreen mode Exit fullscreen mode

2. نحوه استفاده

ارسال دستور از CLI

npx kalatak-fertilizer apply \
  --crop tomato \
  --area 12000 \
  --soil-sand 42 \
  --soil-clay 18 \
  --soil-ph 7.4 \
  --ec 1.2 \
  --output csv
Enter fullscreen mode Exit fullscreen mode

فراخوانی در Node

import { FertilizerSDK } from '@kalatakco/fertilizer';

const sdk = new FertilizerSDK({ apiKey: process.env.API_KEY });

const recipe = await sdk.calculate({
  crop: 'cucumber',
  area: 5000,
  soilTest: { n: 14, p: 8, k: 160, ph: 7.9 },
  season: 'spring'
});

console.table(recipe);
/* خروجی نمونه:
┌---------┬-----------┬-----------┬-----------┐
│ عنصر    │ مقدار(kg) │ نوع کود   │ هزینه(ت)  │
├---------┼-----------┼-----------┼-----------┤
│ N       │ 46.2      │ اوره 46% │ 1,108,000 │
│ P       │ 18.7      │ TSP      │   467,500 │
│ K       │ 30.1      │ MOP      │   480,000 │
└---------┴-----------┴-----------┴-----------┘
*/
Enter fullscreen mode Exit fullscreen mode

استفاده در پایتون (REST)

import requests, json
url = "https://api.kalatakco.com/v2/fertilizer"
payload = json.dumps({
  "crop": "wheat",
  "yield_goal": 6.5,  # تن در هکتار
  "soil": {"zn": 0.8, "fe": 4.1, "mn": 2.3}
})
headers = {"Authorization": "Bearer <token>", "Content-Type": "application/json"}
res = requests.post(url, data=payload, headers=headers, timeout=15)
print(res.json()['formula'])
Enter fullscreen mode Exit fullscreen mode

3. کدنمونه‌ها

مثال 1: محاسبه زمان دقیق سرک (بر اساس Growing Degree Days)

function calcGDD(Tmax, Tmin, Tbase = 10) {
  const t = (Tmax + Tmin) / 2;
  return Math.max(0, t - Tbase);
}

const gdd = calcGDD(36, 22); // 19
console.log(`امروز ${gdd} GDD ثبت شد. مجموع: ${accGDD}`);
Enter fullscreen mode Exit fullscreen mode

مثال 2: الگوریتم توصیه نیترات‌دهی

// فرمول Hansch & Hasegawa
const no3 = soil.no3;  // mg/kg
const irrigWaterEC = 1.1;
const leaching = 0.15;
const target = 200;    // kg N/ha
const recommend = (target - no3 * 0.15) / (1 - leaching);
console.log(`نیاز نیتروژن خالص: ${recommend.toFixed(1)} kg/ha`);
Enter fullscreen mode Exit fullscreen mode

مثال 3: بررسی وضعیت با web-push

import webpush from 'web-push';
webpush.setVapidDetails('mailto:info@kalatakco.com', publicVapidKey, privateVapidKey);
const payload = JSON.stringify({title: 'زمان کوددهی', body: 'روی زمین‌های زعفران‌تان کود پتاسیم بدهید.'});
webpush.send(subscription, payload);
Enter fullscreen mode Exit fullscreen mode

4. جدول مقایسه SKU‌ها

کد کالا ترکیب NPK آزادسازی pH مناسب قیمت عمده (تومان) یادداشت
KF-20-20 20-20-20 + TE سریع 5.5–7.5 2,400 برای سبزیجات برگی
KF-10-52 10-52-10 + Zn سریع 6–7 3,100 در زمان نشاء‌دهی
KF-35-0 اوره ۳۵% + NBPT کنترل‌شده 6–8 2,100 برای کلزا و گندم
KF-0-0-50 سولفات‌پتاسیم سریع 5–7 2,750 در باغ‌های سیب

5. سوالات متداول

  1. فرق کود کشاورزی هوشمند Kalatak با نرم‌افزارهای قدیمی چیست؟

    ما از مدل یادگیری تقویتی (RL) استفاده می‌کنیم تا هر سال با توجه به داده‌های مزرعه‌تان، الگوی کوددهی بهینه‌تر شود؛ درحالی‌که اپ‌های قدیمی فقط جداول ثابت دارند.

  2. آیا باید اینترنت دائم در مزرعه داشته باشم؟

    خیر؛ فقط بار اول و در زمان همگام‌سازی دیتا نیاز به اینترنت دارید. پس‌ازآن محاسبات آفلاین در برد ESP32 انجام می‌شود.

3 می‌توانم از کود دامی به‌جای اوره استفاده کنم؟

بله؛ در تنظیمات → منبع نیتروژن، «کود دامی» یا «کود سبز» را انتخاب کنید. الگوریتم C:N ratio را محاسبه و مقدار موردنیاز را به‌کیلوگرم کود دامی تبدیل می‌کند.

  1. از چه حسگرهایی پشتیبانی می‌شود؟
    • EC & pH Atlas Scientific
    • MPS-6 سنسور پتانسیل رطوبت خاک
    • SHT85 برای دما و رطوبت هوا
    • هر سنسور I2C یا Modbus RTU

6. عیب‌یابی سریع

خطا علت احتمالی راه‌حل
خطای 403 در API توکن منقضی یا آی‌پی غیرمجاز در داشبورد کلاد، توکن را Re-issue کنید و IP whitelist را بررسی نمایید.
مقادیر K بسیار بالا EC سنج دقیق نیست یا کالیبره نیست با محلول 1413 µS دوباره کالیبره و slope را چک کنید.
پریدن بار Repeatedly تداخل Watch-Dog در .env، WATCHDOG_TIMEOUT=0 بگذارید و فریمور بورد را آپدیت کنید.
اختلاف pH=0.9 دمای نمونه ثابت نبوده برای خاک pH را در °25 ± 2 اندازه بگیرید یا از جدول دمایی Nernst استفاده کنید.

لینک‌های مفید

نظر، باگ یا Pull Request خوش‌حال می‌شیم؛ ایمیل مستقیم: dev@kalatakco.com

Top comments (0)