সুচিপত্র:

থিংসাই ক্লাউড ব্যবহার করে এলডিআর: 13 টি ধাপ
থিংসাই ক্লাউড ব্যবহার করে এলডিআর: 13 টি ধাপ

ভিডিও: থিংসাই ক্লাউড ব্যবহার করে এলডিআর: 13 টি ধাপ

ভিডিও: থিংসাই ক্লাউড ব্যবহার করে এলডিআর: 13 টি ধাপ
ভিডিও: ESP32 Project 35 - Plant Monitor, soil, temperature and light | SunFounder's ESP32 IoT Learnig kit 2024, জুলাই
Anonim
থিংসাই ক্লাউড ব্যবহার করে এলডিআর
থিংসাই ক্লাউড ব্যবহার করে এলডিআর

হেই….. আজ আমরা আলোর তীব্রতা পরিমাপ এবং ESP32 ব্যবহার করে থিংসাই আইওটি ক্লাউড প্ল্যাটফর্মে মানগুলি পোস্ট করার বিষয়ে শিখব।

এই প্রকল্পটি করার প্রয়োজনীয়তাগুলি হল

1. ESP32 ডেভেলপমেন্ট বোর্ড (আমি ESP32 DEVKIT V1 ব্যবহার করেছি)

2. এলডিআর সেন্সর

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

4. থিংসাই আইওটি প্ল্যাটফর্মে অ্যাকাউন্ট

ধাপ 1: থিংসিও প্ল্যাটফর্ম তৈরি এবং লগ ইন করুন

থিংসিও প্ল্যাটফর্মে তৈরি এবং লগ ইন
থিংসিও প্ল্যাটফর্মে তৈরি এবং লগ ইন

থিংস এআই অ্যাকাউন্টে লগইন করুন। আপনি যদি নতুন হন তবে রেজিস্টার বোতাম টিপে অ্যাকাউন্টে নিবন্ধন করুন এবং সমস্ত শংসাপত্র পূরণ করুন। আপনার অ্যাকাউন্ট তৈরি করা হবে এবং তারপর থেকে আপনি ক্লাউড প্ল্যাটফর্মে কাজ করতে পারবেন এবং আপনার কাস্টম প্রজেক্ট তৈরি করতে পারবেন

ধাপ 2: নতুন প্রকল্প তৈরি করা

নতুন প্রকল্প তৈরি করা
নতুন প্রকল্প তৈরি করা

অ্যাকাউন্টে লগ ইন করার পর, একটি প্রকল্প তৈরি করতে নতুন প্রকল্পে ক্লিক করুন এবং তারপর প্রকল্পের নাম দিন।

ধাপ 3: একটি নতুন ডিভাইস তৈরি করা

একটি নতুন ডিভাইস তৈরি করা হচ্ছে
একটি নতুন ডিভাইস তৈরি করা হচ্ছে

প্রজেক্ট তৈরির পর পরবর্তী কাজটি আপনাকে করতে হবে একটি নতুন ডিভাইস তৈরি করতে হবে ডিভাইসের নাম দিন এবং ডিভাইস আইডি ম্যানুয়ালি অথবা সিস্টেম জেনারেট করুন।

ধাপ 4: ডিভাইস প্যারামিটার সংজ্ঞায়িত করা

ডিভাইস প্যারামিটার সংজ্ঞায়িত করা
ডিভাইস প্যারামিটার সংজ্ঞায়িত করা

ডিভাইসের প্যারামিটার দিন এবং তারপর প্যারামিটারের ধরন নির্বাচন করুন

ধাপ 5: ডিভাইস আপডেট করা

ডিভাইস আপডেট করা হচ্ছে
ডিভাইস আপডেট করা হচ্ছে

প্যারামিটার নির্বাচন করুন এবং তারপরে ডিভাইসটি আপডেট করুন

ধাপ 6: কোডিং

কোডিং
কোডিং

নমুনা কোডগুলি থেকে esp32 এর কোড নির্বাচন করুন এটি অনুলিপি করুন এবং তারপরে এটিকে আরডুইনো আইডিইতে পেস্ট করুন এবং প্রয়োজনীয়তা অনুসারে প্রয়োজনীয় পরিবর্তন করুন। আমি নীচের কোডটি দিয়েছি

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

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

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

int টি; int outputpin = A0; // ds18b20

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);

বিলম্ব (10);

// আমরা একটি ওয়াইফাই নেটওয়ার্কে সংযোগ দিয়ে শুরু করি

WiFiMulti.addAP ("wifi", "pswrd");

Serial.println ();

Serial.println ();

সিরিয়াল.প্রিন্ট ("ওয়াইফাইয়ের জন্য অপেক্ষা করুন …");

যখন (WiFiMulti.run ()! = WL_CONNECTED)

{

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

বিলম্ব (500);

}

Serial.println ("");

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

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

বিলম্ব (500);

}

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

{

int analogValue = analogRead (outputpin);

{//////////////////////////////////////// প্রশ্ন পাঠান এবং উত্তর পান /////////////////////

sensorvalue = analogRead (A0); // এনালগ ইনপুট পিন 0 পড়ুন

সেন্সরভ্যালু = সেন্সরভ্যালু/100;

Serial.print (sensorvalue, DEC); // পড়া মান প্রিন্ট করে

সিরিয়াল.প্রিন্ট ("\ n"); // সংখ্যার মধ্যে একটি স্থান প্রিন্ট করে

বিলম্ব (1000); // পরবর্তী পড়ার জন্য 100ms অপেক্ষা করুন

সিরিয়াল.প্রিন্ট ("সাথে সংযুক্ত"); 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 / ": 61121695844, \" slave_id / ": 2";

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

PostValue = PostValue +", \" data / ": {" INTENSITY / ":" +\ sensorvalue +"}" +"}";

Serial.println (PostValue);

/ * WiFiClientSecure */ WiFiClientSecure ক্লায়েন্টের একটি উদাহরণ তৈরি করুন;

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

যদি (! client.connect (সার্ভার, 443))

{

Serial.println ("সংযোগ ব্যর্থ!");

}

অন্য

{Serial.println ("সার্ভারে সংযুক্ত!"); / * HTTP অনুরোধ তৈরি করুন */

client.println ( POST/devices/deviceData

client.println ("হোস্ট: api.thingsai.io"); //client.println ("সংযোগ: বন্ধ"); cl

ient.println ("বিষয়বস্তু-প্রকার: অ্যাপ্লিকেশন/json");

client.println ("cache-control: no-cache");

client.println ("অনুমোদন: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9। client.print ("বিষয়বস্তু-দৈর্ঘ্য:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue); ///////////////////////////////////// ক্লাউডে ডেটা পোস্ট করা হয়েছে এবং এখন ক্লাউড প্রতিক্রিয়া ফর্ম পান সার্ভার //////////////////

সিরিয়াল.প্রিন্ট ("প্রতিক্রিয়ার অপেক্ষায়");

while (! client.available ()) {

বিলম্ব (50); //

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

} / * যদি ডেটা পাওয়া যায় তাহলে রিসিভ করুন এবং টার্মিনালে প্রিন্ট করুন * /

যখন (client.available ())

{

char c = client.read ();

Serial.write (c);

}

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

যদি (! client.connected ())

{

Serial.println ();

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

client.stop ();

}

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

বিলম্ব (3000); }}

ধাপ 7: বোর্ড এবং কম পোর্ট নির্বাচন

বোর্ড এবং কম পোর্ট নির্বাচন
বোর্ড এবং কম পোর্ট নির্বাচন

সরঞ্জামগুলি থেকে বোর্ড নির্বাচন করুন এবং তারপরে কম পোর্ট নির্বাচন করুন

ধাপ 8: সার্কিট সংযোগ

সার্কিট সংযোগ
সার্কিট সংযোগ
সার্কিট সংযোগ
সার্কিট সংযোগ
সার্কিট সংযোগ
সার্কিট সংযোগ

কোডিং করা হয় তারপর নীচের উল্লেখ হিসাবে নিম্নলিখিত সংযোগগুলি তৈরি করুন

সংযোগ:

Esp32 এর GND থেকে LDR সেন্সরের GND

3V3 0f esp32 LDR এর Vcc তে

LDR এর A0 থেকে esp32 এর ভিপি

ধাপ 9: কম্পাইল করুন এবং আপলোড করুন

কম্পাইল এবং আপলোড করুন
কম্পাইল এবং আপলোড করুন

কোডটি সংকলন করুন এবং esp32 এ আপলোড করুন এবং তারপরে সিরিয়াল মনিটর থেকে রিডিংগুলি পড়ুন। এটি এমন একটি ফলাফল দেখাবে

ধাপ 10: সিরিয়াল মনিটর

সিরিয়াল মনিটর
সিরিয়াল মনিটর

মানগুলি সিরিয়াল মনিটরে প্রাপ্ত হয় এবং তারপর সেগুলি THINGSAI IOT ক্লাউড প্ল্যাটফর্মে পাঠানো হয়।

ধাপ 11: পড়া

পড়া
পড়া

এটি esp32 বোর্ড থেকে প্রাপ্ত মানগুলি দেখায়।

ধাপ 12: গ্রাফিক্যাল রিপ্রেজেন্টেশন

গ্রাফিকাল উপস্থাপনা
গ্রাফিকাল উপস্থাপনা

এটি প্রাপ্ত মানগুলির গ্রাফিকাল উপস্থাপনা। টিউটোরিয়াল এর শেষ। আশা করি আপনি বুঝতে পেরেছেন। ধন্যবাদ

প্রস্তাবিত: