الاتصال بالهاتف الخط الساخن: +8618073152920
الاتصال بالهاتف
العربية
اتصل بنا/ اتصل بنا
خدمة العملاء +8618073152920
Changsha Zoko Link Technology Co., Ltd.

البريد الإلكتروني: sales@niubol.com

الهاتف / WhatsApp: +8615367865107

العنوان: الغرفة 102، المبنى D، مجمع هوهو الصناعي، حي يويلو، مدينة تشانغشا، مقاطعة هونان، الصين

الدعم الفني

كود اردوينو لحساس رطوبة التربة

الوقت:2024-06-29 21:07:28 المشاهدات:5472

حساس رطوبة التربة 8 في 1Rs485 لاردوينو

في هذا الدليل، سنستكشف كيفية ربط مستشعر درجة حرارة ورطوبة التربة 8 في 1 مع Arduino باستخدام بروتوكول RS485. سيسمح لنا هذا الإعداد بمراقبة محتوى الرطوبة ودرجة حرارة التربة، وهي عوامل حاسمة للزراعة والبستنة.

تقوم أجهزة استشعار رطوبة التربة بقياس محتوى الماء الحجمي في التربة. ومن خلال فهم مستويات الرطوبة، يمكن للمزارعين والبستانيين اتخاذ قرارات مستنيرة بشأن الري، مما يضمن النمو الأمثل للنباتات. تلعب درجة حرارة التربة أيضًا دورًا مهمًا في صحة النبات، مما يؤثر على نمو الجذور وامتصاص العناصر الغذائية.

مستشعر التربة المتكامل 8 في 1.jpg

في هذا المشروع، سوف نستخدم جهاز استشعار رطوبة ودرجة حرارة التربة Niubol8 في 1، والذي تم تصميمه خصيصًا للقياسات الأرضية.

لذلك نحن نستخدم مستشعر التربة من الدرجة الصناعية لهذا المشروع. لربط المستشعر مع Arduino، سنستخدم بروتوكول الاتصال RS485. سيتم عرض البيانات من مستشعر رطوبة ودرجة حرارة التربة على شاشة OLED متصلة بالاردوينو.

فيما يلي الأسلاك الأربعة للمستشعر:

السلك البني:  VCC (5 فولت - 24 فولت)

السلك الأسود: GND

السلك الأصفر:RS485-A

السلك الأزرق:RS485-B

المتطلبات:

الأجهزة

DFRduino UNO R3 (أو ما شابه) × 1

RS485 درع لاردوينو x1

مستشعر التربة RS485(درجة الحرارة والرطوبة وECوالملوحة وPhوNPK) × 1

البرمجيات:

اردوينو بيئة تطوير متكاملة

فيما يلي تعيين اتصال بين MAX485 ومستشعر درجة حرارة رطوبة التربة.

VCC -> 5 فولت (مستشعر التربة)

GND  -> GND (مستشعر التربة)

أ (MAX485) -> مستشعر التربة دبوس (لون أصفر)

B (MAX485) -> دبوس B لمستشعر التربة (لون أزرق)

اتصال حساس درجة حرارة رطوبة التربة مع الاردوينو. يمكنك استخدام اللوح للتجميع وأسلاك التوصيل لتوصيل المستشعر ووحدة RS485 مع Arduino.

كود المصدر/برنامج لقراءة 8 في 1 رطوبة التربة ودرجة حرارتها

برنامج كود المصدر لقراءة مستشعر رطوبة التربة.txt


#تشمل

// تحديد دبابيس اتصال RS485

#تعريف ريال عماني 2

#تعريف دي 3

#تعريف ري 8

#تعريف دي 7

#تعريف_الاستجابة_الإطار_الحجم 21

مستشعر الحرفDataTextBuffer[200]؛

بناء SoilSensorData

{

المنطق هوSensorTimeout{false};

المنطق صالح{false};

تعويم درجة الحرارة{-1.0}؛

تعويم الرطوبة{-1.0}؛

الموصلية int غير الموقعة{-1}؛

تعويمph{-1.0}؛

النيتروجين الدولي غير الموقع{-1}؛

الفوسفور غير الموقع{-1}؛

البوتاسيوم الدولي غير الموقع{-1}؛

الملوحة غير الموقعة{-1}؛

};

فئة مستشعر التربة

{

عام:

مستشعر التربة()

    {

modbus= new SoftwareSerial(RO, DI);

    }

تهيئة باطلة ()

    {

Serial.begin(9600);// تهيئة الاتصال التسلسلي لتصحيح الأخطاء

modbus->begin(9600);    // تهيئة الاتصال التسلسلي للبرنامج بمعدل باود 9600

pinMode(RE, OUTPUT); // قم بتعيين دبوس RE كمخرج

pinMode(DE, OUTPUT); // تعيين DE pi

    }

باطلة sendDataRequest ()

    {

الكتابة الرقمية (DE، عالية)؛

الكتابة الرقمية (RE، HIGH)؛

تأخير (10)؛

// أرسل إطار الطلب إلى مستشعر التربة

modbus->write(soilSensorRequest, sizeof(soilSensorRequest));

    }

    

قراءة بيانات مستشعر التربة ()

    {

SoilSensorData SoilSensorData;

// قم بإنهاء وضع الإرسال وضبط وضع الاستلام لـ RS485

الكتابة الرقمية (DE، LOW)؛

الكتابة الرقمية (RE، LOW)؛

تأخير (10)؛

// انتظر استجابة المستشعر أو المهلة بعد ثانية واحدة

وقت البدء الطويل غير الموقع = ميلي ()؛

بينما (modbus->available() < RESPONSE_FRAME_SIZE && millis() - وقت البدء < 1000)

      {

تأخير (1)؛

      }

إذا (modbus->available() >= RESPONSE_FRAME_SIZE) // في حالة تلقي استجابة صالحة

      {

// اقرأ الاستجابة من المستشعر

مؤشر البايت = 0؛

بينما (modbus->متوفر () && فهرس

        {

SoilSensorResponse[index]=modbus->read();

الفهرس++;

        }

SoilSensorData = computeData();

      }

آخر

      {

SoilSensorData.isSensorTimeout = true;

      }

إرجاع بيانات استشعار التربة؛

    } 

~مستشعر التربة()

    {

إذا (modbus!= nullptr) احذف modbus؛

حذف[] استجابة مستشعر التربة؛

    }

خاص:

const بايت التربةSensorRequest[8]={0x01, 0x03, 0x00, 0x00, 0x00, 0x08, 0x44, 0x0C};

SoftwareSerial*modbus= nullptr;

بايت التربةSensorResponse[RESPONSE_FRAME_SIZE]؛

int ConvertBytesToDecimal (إزاحة int غير الموقعة)

    {

عودة التربةSensorResponse[offset]* 256 + SoilSensorResponse[offset + 1];

    }

SoilSensorData computeData() const

    {

SoilSensorData SoilSensorData;


إذا (soilSensorResponse[0]!= 1 || SoilSensorResponse[1]!= 3 || SoilSensorResponse[2]!= 16)

      {

SoilSensorData.isValid = false;

إرجاع بيانات استشعار التربة؛

      }

SoilSensorData.isValid = true;

SoilSensorData.temperature = converterBytesToDecimal(3) / 10.0; // درجة مئوية

SoilSensorData.humidity = converterBytesToDecimal(5) / 10.0; // بالمائة

SoilSensorData.conductivity = converterBytesToDecimal(7);// ميكروسيمنز لكل سنتيمتر

SoilSensorData.ph= ConvertBytesToDecimal(9) / 100.0;

SoilSensorData.nitrogen = converterBytesToDecimal(11); // مليجرام لكل كيلوجرام

SoilSensorData.phosphorus = converterBytesToDecimal(13); // مليجرام لكل كيلوجرام

SoilSensorData.potassium = converterBytesToDecimal(15); // مليجرام لكل كيلوجرام

SoilSensorData.salinity = converterBytesToDecimal(17); // مليجرام لكل كيلوجرام

إرجاع بيانات استشعار التربة؛

    }

 };


مستشعر التربة مستشعر التربة؛

كتابة باطلةSensorDataToString(SoilSensorData وsensorData)

{

إذا (sensorData.isSensorTimeout)

  {

sprintf(sensorDataTextBuffer, "بيانات غير مكتملة أو انتهاء مهلة المستشعر");

  }

آخر

  {

إذا (sensorData.isValid)

    {

char* tempStr = malloc(6 * sizeof(char));

char* الرطوبةStr = malloc(6 * sizeof(char));

char* phStr = malloc(6 * sizeof(char));

dtostrf(sensorData.temperature, 4, 1, tempStr);

dtostrf(sensorData.humidity, 4, 1, الرطوبةStr);

dtostrf(sensorData.ph, 4, 2, phStr);

الموصلية التلقائية = بيانات الاستشعار.

auto n = SensorData.nitrogen;

auto p = SensorData.phosphorus;

auto k = SensorData.potassium;

الملوحة التلقائية = SensorData.salinity؛

sprintf(sensorDataTextBuffer, "درجة الحرارة: %s; الرطوبة: %s;الموصلية: %u؛PH: %s; ن: %u؛ ف: %u؛ ك: %u؛ الملوحة: %u"، درجة الحرارة، الرطوبة، الموصلية، phStr، n، p، k، الملوحة)؛

if (tempStr!= NULL) free(tempStr);

if (humidityStr!= NULL) free(humidityStr);

if (phStr!= NULL) free(phStr);

    }

آخر

    {

sprintf(sensorDataTextBuffer, "البيانات المقروءة من المستشعر غير صالحة");

    }

  }

}


إعداد باطل ()

{

SoilSensor.initialise();

}


حلقة باطلة ()

{

SoilSensor.sendDataRequest();

SoilSensorData SensorData = SoilSensor.read();

writeSensorDataToString(sensorData);

Serial.println(sensorDataTextBuffer);

تأخير (2000)؛ // انتظر ثانية قبل تكرار الحلقة التالية

}


شكرًا لفيل أوجون على الكود!

مستشعر التربة 8 في 1 عبارة عن مستشعر يدمج معلمات متعددة مثل درجة الحرارة والرطوبة والموصلية وNPK والملوحة وPH. باستخدام هذا المستشعر، يمكن للمستخدمين الوصول بسهولة إلى بيانات رئيسية متعددة للتربة، مما يساعدهم على فهم حالة التربة بشكل أفضل وإجراء التعديلات واتخاذ القرارات وفقًا لذلك.

من خلال قياس ثابت العزل الكهربائي للتربة، فإنه يمكن أن يعكس بشكل مباشر وثابت محتوى الرطوبة الحقيقي لمختلف أنواع التربة. إنها مناسبة لمراقبة رطوبة التربة، والتجارب العلمية، والري الموفر للمياه، والدفيئات الزراعية، والزهور والخضروات، والمراعي العشبية، واختبار التربة السريع، وزراعة النباتات، ومعالجة الصرف الصحي، والزراعة الدقيقة وغيرها من المناسبات.مصدر طاقة إدخال المستشعر، مسبار الاستشعار، إخراج الإشارة ثلاثة أجزاء معزولة تمامًا، آمنة وموثوقة، مظهر جميل، سهل التركيب، المسبار مصنوع من الفولاذ المقاوم للصدأ، مقاوم للتآكل، أداء مستقر.

ورقة بيانات مستشعر التربة:

1. ورقة بيانات مستشعر رطوبة درجة حرارة التربةNBL-S-THR

NBL-S-THR-Soil-temperature-and-moisture-sensors-Instruction-Manual-V4.0.pdf

2. ورقة بيانات مستشعرNBL-S-TMCودرجة حرارة التربة والرطوبة

NBL-S-TMC-Soil-temperature-and-moisture-conductivity-sensor.pdf

3.  ورقة بيانات مستشعر درجة حرارة رطوبة التربةNBL-S-TM

NBL-S-TM-Soil-temperature-and-moisture-sensor-Instruction-Manual-4.0.pdf

4.  جهاز استشعار متكامل لدرجة حرارة التربة والرطوبة والموصلية والملوحة

NBL-S-TMCS-Soil-Temperature-Humidity-Conductivity-and-Salinity-Sensor.pdf

5.NBL-S-TMCS-7درجة حرارة التربة، والرطوبة، وNPK، والموصلية، ومستشعرpHالمتكامل

دليل مستشعر التربة المركب 7 في 1.pdf

4.NBL-S-TMCS-8درجة حرارة التربة، الرطوبة، NPK،pH، مستشعر متكامل للتوصيل والملوحة

دليل مستشعر التربة المركب 8 في 1.pdf

توصيات ذات صلة

كتالوجات المستشعرات ومحطات الطقس

كتالوج المستشعرات الزراعية ومحطات الطقس - NiuBoL.pdf

كتالوج محطات الطقس - NiuBoL.pdf

كتالوج المستشعرات الزراعية - NiuBoL.pdf

كتالوج مستشعرات جودة المياه - NiuBoL.pdf

منتجات ذات صلة

أرسل لنا متطلباتك، وسنناقش مشروعك ونساعدك في اختيار الحل المناسب.

الاسم*

الهاتف*

البريد الإلكتروني*

الشركة*

الدولة*

الرسالة

متصل
اتصل بنا
البريد الإلكتروني
الأعلى
Xكود اردوينو لحساس رطوبة التربة-الدعم الفني-محطات الطقس التلقائية والمستشعرات الصناعية وحلول إنترنت الأشياء للزراعة والمياه والبيئة | NiuBoL

امسح رمز QR باستخدام WhatsApp

رقم WhatsApp:+8615367865107

(انقر لنسخ الرقم وإضافته في WhatsApp)

فتح WhatsApp

تم نسخ رقم WhatsApp. افتح WhatsApp للتواصل معنا!
WhatsApp