সুচিপত্র:

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

এই টিউটোরিয়ালে আমি esp32 ডেভেলপমেন্ট বোর্ডে উপস্থিত ইনবিল্ট টেম্পারেচার সেন্সর ব্যবহার করে চারপাশের তাপমাত্রা পরিমাপ সম্পর্কে ব্যাখ্যা করতে যাচ্ছি। esp32 এর অনেক ইনবিল্ট সেন্সর রয়েছে যেমন হল সেন্সর যেমন প্রক্সিমিটি সেন্সর, টাচ সেন্সর, টেম্পারেচার সেন্সর হিসেবে ব্যবহৃত হয়। এই টিউটোরিয়ালে আমরা তাপমাত্রা সেন্সর সম্পর্কে আলোচনা করতে যাচ্ছি।

ধাপ 1: উপাদান:

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

হার্ডওয়্যার:

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

সফটওয়্যার:

1. আরডুইনো আইডিই

2. থিংসিও.এই

ধাপ 2: Esp32 এর ব্লক ডায়াগ্রাম রিপ্রেসেন্টেশন

Esp32 এর ব্লক ডায়াগ্রাম রিপ্রেসেন্টেশন
Esp32 এর ব্লক ডায়াগ্রাম রিপ্রেসেন্টেশন

ধাপ 3: কোডিং:

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

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

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

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

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

#ifdef _cplusplus

বাহ্যিক "C" {

#যদি শেষ

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#যদি শেষ

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

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

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

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

tzset ();

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

একটি ওয়াইফাই নেটওয়ার্কে সংযোগ করা হচ্ছেWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

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

বিলম্ব (500);

}Serial.println ("");Serial.println ("ওয়াইফাই সংযুক্ত");Serial.println ("IP ঠিকানা:");Serial.println (WiFi.localIP ());

বিলম্ব (500);

}

uint8_t temp_farenheit;

ভাসা temp_celsius;

char strftime_buf [64];

time_t now = 0;

struct tm timeinfo;

char buf [256];

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

{

// int analogValue =

analogRead (আউটপুটপিন);

{

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

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

//

t1 = (analogValue/1024.0) *5000;

//

Serial.print ("temp:");

// Serial.println (t1);

/

/ t2 = (t1/ 10);

//

Serial.print ("celc:");

//

Serial.println (t2);

/

/ t3 = ((t2 *

9)/5 + 32);

//

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

//

Serial.println (t3); // বিরতি;localtime_r (এবং এখন, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "স্ক্যান শুরু%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

সিরিয়াল.প্রিন্ট

(বুফ);

temp_farenheit =

temprature_sens_read ();

temp_celsius = (temp_farenheit - 32) / 1.8;Serial.print ("Temp onBoard");সিরিয়াল.প্রিন্ট (temp_farenheit);সিরিয়াল.প্রিন্ট ("° F");সিরিয়াল.প্রিন্ট (temp_celsius);Serial.println ("° C");

বিলম্ব (1000);

এখন ++;

Serial.print ( সংযোগ করা হচ্ছে

প্রতি );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 / ": 61121695920," slave_id / ": 2";

PostValue =

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

PostValue =

PostValue +", \" data / ": {" TEMP / ":" +temp_farenheit +"}" +"}";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 ("cache-control: no-cache");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: গ্রাফ

গ্রাফ
গ্রাফ
গ্রাফ
গ্রাফ

অনবোর্ড তাপমাত্রা সেন্সর থেকে পড়া মানগুলির গ্রাফিক্যাল উপস্থাপনা।

প্রস্তাবিত: