সুচিপত্র:

Esp32 এবং Thingsio.ai প্ল্যাটফর্ম ব্যবহার করে মাটির আর্দ্রতা সামগ্রী পরিমাপ: 6 টি ধাপ
Esp32 এবং Thingsio.ai প্ল্যাটফর্ম ব্যবহার করে মাটির আর্দ্রতা সামগ্রী পরিমাপ: 6 টি ধাপ
Anonim
Esp32 এবং Thingsio.ai প্ল্যাটফর্ম ব্যবহার করে মাটির আর্দ্রতা সামগ্রী পরিমাপ
Esp32 এবং Thingsio.ai প্ল্যাটফর্ম ব্যবহার করে মাটির আর্দ্রতা সামগ্রী পরিমাপ

এই টিউটোরিয়ালে আমি esp32 ব্যবহার করে মাটির আর্দ্রতা পড়ার বিষয়ে ব্যাখ্যা করতে যাচ্ছি এবং তারপর thingsio.ai IoT ক্লাউড প্ল্যাটফর্মে মান পাঠাচ্ছি।

ধাপ 1: উপাদান

উপাদান
উপাদান
উপাদান
উপাদান

হার্ডওয়্যার উপাদান:

1. esp32 উন্নয়ন বোর্ড

2. মাটির সেন্সর

3. জাম্পার তারের

সফটওয়্যার:

1. Arduino IDE

2. Thingsio.ai

ধাপ 2: সংযোগ

সংযোগ
সংযোগ

মৃত্তিকা আর্দ্রতা সেন্সর ---------------------- esp32 বোর্ড

VCC --------------------------------------- 3V3

GND -------------------------------------- GND

A0 ---------------------------------------- ভিপি

ধাপ 3: কোডিং:

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

int count = 0, i, m, j, k;

int টি;

int sensor_pin = A0;

int মান;

/////////////////////////////////////////// সকল ঘোষণা

ক্লাউডের জন্য ////////////////////////////////

const char* host = "api.thingsai.io"; // অথবা হোস্ট =

devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // অথবা

/api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; // এটি টাইমস্ট্যাম্প রূপান্তর করা হয়

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

"api.thingsai.io"; // সার্ভার ইউআরএল

চার টাইমস্ট্যাম্প [10];

WiFiMulti WiFiMulti;

// টিসিপি সংযোগ তৈরি করতে ওয়াইফাই ক্লায়েন্ট ক্লাস ব্যবহার করুন

ওয়াইফাই ক্লায়েন্ট ক্লায়েন্ট;

///////////////////////////////////////// টাইমস্ট্যাম্প

গণনা ফাংশন //////////////////////////////////////////

int GiveMeTimestamp ()

{

স্বাক্ষরবিহীন দীর্ঘ

সময়সীমা = মিলিস ();

// ওয়াইফাই ক্লায়েন্ট ক্লায়েন্ট;

যখন

(client.available () == 0)

{

যদি (মিলিস () -

সময়সীমা> 50000)

{

client.stop ();

রিটার্ন 0;

}

}

যখন (client.available ())

{

স্ট্রিং লাইন =

client.readStringUntil ('\ r'); // indexOf () smthng অনুসন্ধান করার জন্য একটি ফাংশন, এটি না পাওয়া গেলে -1 প্রদান করে

int pos =

line.indexOf ("\" টাইমস্ট্যাম্প / ""); // সাড়া শুরু থেকে "\" টাইমস্ট্যাম্প / "" অনুসন্ধান করুন এবং এর পরে সমস্ত ডেটা অনুলিপি করুন, এটি আপনার টাইমস্ট্যাম্প হবে

যদি (pos> =

0)

{

int j = 0;জন্য (j = 0; j <10; j ++)

{টাইমস্ট্যাম্প [জে] = লাইন [পোজ + 12 + জে];

}

}

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////

অকার্যকর সেটআপ()

{Serial.begin (115200);Serial.println ("সেন্সর থেকে পড়া …");

বিলম্ব (2000);

// আমরা শুরু করি

একটি ওয়াইফাই নেটওয়ার্কে সংযোগ করা হচ্ছে

WiFiMulti.addAP ("Wifi_name", "ওয়াইফাই_প্যাসওয়ার্ড");

Serial.println ();

Serial.println ();সিরিয়াল.প্রিন্ট ("ওয়াইফাইয়ের জন্য অপেক্ষা করুন …");যখন (WiFiMulti.run ()! = WL_CONNECTED) {সিরিয়াল.প্রিন্ট ("।");

বিলম্ব (500);

}Serial.println ("");Serial.println ("ওয়াইফাই সংযুক্ত");

Serial.println ( IP

ঠিকানা: );Serial.println (WiFi.localIP ());

বিলম্ব (500);

}

অকার্যকর লুপ ()

{

{

///////////////////////////////////////// প্রশ্ন পাঠান এবং

প্রতিক্রিয়া গ্রহণ করুন /////////////////////////

মান =

analogRead (sensor_pin);

// মান =

মানচিত্র (মান, 550, 0, 0, 100);সিরিয়াল.প্রিন্ট ("মসজিদ:");সিরিয়াল.প্রিন্ট (মান);Serial.println ("%");বিলম্ব (1000);সিরিয়াল.প্রিন্ট ("সাথে সংযুক্ত");Serial.println (হোস্ট); // উল্টোভাবে সংজ্ঞায়িত:- হোস্ট = devapi2.thethingscloud.com বা 139.59.26.117

////////////////////////////////////// টাইমস্ট্যাম্প কোড স্নিপেট

/////////////////////////

Serial.println ("ভিতরে টাইমস্ট্যাম্প পান / n");

যদি

(! client.connect (time_server, {

প্রত্যাবর্তন;

//*-*-*-*-*-*-*-*-*-*

}client.println ("GET/api/timestamp HTTP/1.1"); // এই অংশটি কি করছে, আমি পাইনিclient.println ("হোস্ট: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("পোস্টম্যান-টোকেন: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp ();

// এটি ফাংশনটি কল করবে যা সার্ভার থেকে টাইমস্ট্যাম্প প্রতিক্রিয়া পাবে

Serial.println ("টাইমস্ট্যাম্প প্রাপ্ত");

Serial.println (টাইমস্ট্যাম্প);Serial.println ("ThingsCloudPost এর ভিতরে");

স্ট্রিং পোস্টভ্যালু =

"{" device_id / ": 61121695918, \" slave_id / ": 2";

PostValue =

PostValue + "," dts / ":" + টাইমস্ট্যাম্প;

PostValue =

PostValue +"," data / ": {" MOIST / ":" +value +"}" +"}";Serial.println (PostValue);

/ * WiFiClientSecure এর একটি উদাহরণ তৈরি করুন */

WiFiClientSecure ক্লায়েন্ট;Serial.println ("পোর্ট 443 এর মাধ্যমে সার্ভারে সংযোগ করুন");

যদি

(! client.connect (সার্ভার, 443)) {Serial.println ("সংযোগ ব্যর্থ!");

} অন্য {Serial.println ("সার্ভারে সংযুক্ত!");

/* HTTP তৈরি করুন

অনুরোধ */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("হোস্ট: api.thingsai.io");//client.println ("সংযোগ: বন্ধ");client.println ("বিষয়বস্তু-প্রকার: অ্যাপ্লিকেশন/json");

client.println ( ক্যাশে-নিয়ন্ত্রণ:

নো-ক্যাশে ");client.println ("অনুমোদন: বহনকারী eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9।client.print ("বিষয়বস্তু-দৈর্ঘ্য:");

client.println (PostValue.length ());client.println ();client.println (PostValue);

///////////////////////////////////// এ তথ্য পোস্ট করা হচ্ছে

ক্লাউড হয়ে গেছে এবং এখন ক্লাউড সার্ভারের প্রতিক্রিয়া ফর্ম পান //////////////////

Serial.print ( প্রতিক্রিয়ার জন্য অপেক্ষা করছি

);

যখন

(! client.available ()) {

বিলম্ব (50);

//সিরিয়াল.প্রিন্ট ("।");

}

/* যদি ডেটা হয়

উপলব্ধ তারপর টার্মিনালে */ রিসিভ করুন এবং মুদ্রণ করুন

যখন

(client.available ()) {

char c = client.read ();Serial.write (c);

}

/* যদি

সার্ভার বিচ্ছিন্ন, ক্লায়েন্ট বন্ধ করুন */

যদি

(! client.connected ()) {Serial.println ();Serial.println ("সার্ভার বিচ্ছিন্ন");

client.stop ();

}

}

Serial.println ( /////////////////////// শেষ

///////////////////// );

বিলম্ব (3000);

}

}

ধাপ 4: আউটপুট:

আউটপুট
আউটপুট

কোডের আউটপুট দেখানো হয়েছে।

ধাপ 5: গ্রাফ

চিত্রলেখ
চিত্রলেখ

এটি সেন্সর থেকে পড়া মানগুলির গ্রাফিকাল উপস্থাপনা।

ধাপ 6:

এখানে প্রকল্পের সম্পূর্ণ ভিডিও। ধন্যবাদ.

প্রস্তাবিত: