विषयसूची:

Esp32 और Thingsio.ai प्लेटफॉर्म का उपयोग करके तापमान मापन: 6 कदम
Esp32 और Thingsio.ai प्लेटफॉर्म का उपयोग करके तापमान मापन: 6 कदम

वीडियो: Esp32 और Thingsio.ai प्लेटफॉर्म का उपयोग करके तापमान मापन: 6 कदम

वीडियो: Esp32 और Thingsio.ai प्लेटफॉर्म का उपयोग करके तापमान मापन: 6 कदम
वीडियो: Why Use PlatformIO instead of Arduino? (ESP32 + Arduino series) 2024, नवंबर
Anonim
एस्प 32 और थिंग्सियो.एआई प्लेटफॉर्म का उपयोग करके तापमान मापन
एस्प 32 और थिंग्सियो.एआई प्लेटफॉर्म का उपयोग करके तापमान मापन

इस ट्यूटोरियल में मैं esp32 डेवलपमेंट बोर्ड में मौजूद इनबिल्ट टेम्परेचर सेंसर का उपयोग करके परिवेश में तापमान को मापने के बारे में समझाने जा रहा हूँ। esp32 में कई इनबिल्ट सेंसर हैं जैसे हॉल सेंसर का इस्तेमाल प्रॉक्सिमिटी सेंसर, टच सेंसर, टेम्परेचर सेंसर के रूप में किया जाता है। इस ट्यूटोरियल में हम तापमान सेंसर के बारे में चर्चा करने जा रहे हैं।

चरण 1: घटक:

अवयव
अवयव

हार्डवेयर:

1.esp32 विकास बोर्ड

सॉफ्टवेयर:

1. Arduino IDE

2. Thingsio.ai

चरण 2: Esp32. का ब्लॉक आरेख प्रतिनिधित्व

Esp32. का ब्लॉक आरेख प्रतिनिधित्व
Esp32. का ब्लॉक आरेख प्रतिनिधित्व

चरण 3: कोडिंग:

#शामिल

#शामिल

#शामिल

#शामिल

#शामिल

#ifdef _cplusplus

बाहरी "सी" {

#अगर अंत

uint8_t temprature_sens_read ();

//uint8_t g_phyFuns;

#ifdef _cplusplus

}

#अगर अंत

इंट काउंट = 0, आई, एम, जे, के;

इंट टी, टी1, टी2, टी3;

इंट आउटपुटपिन = A0;//ds18b20

///////////////////////////////////// सभी घोषणाएं

बादल के लिए /////////////////////////////

कास्ट चार* होस्ट = "एपीआई.थिंग्ससाई.आईओ"; // या होस्ट =

devapi2.thethingscloud.com

const char* post_url = "/ डिवाइस/डिवाइसडेटा"; //

या /api/v2/thingscloud2/_table/data_ac

कास्ट चार* टाइम_सर्वर =

"baas.thethingscloud.com"; // यह टाइमस्टैम्प कन्वर्ट करने के लिए है

कॉन्स्ट इंट httpPort = 80;

कॉन्स्ट इंट httpsPort = ४४३;

कास्ट चार * सर्वर =

"api.thingsai.io"; // सर्वर यूआरएल

चार टाइमस्टैम्प [10];

वाईफाईमल्टी वाईफाईमल्टी;

// टीसीपी कनेक्शन बनाने के लिए वाईफाई क्लाइंट क्लास का उपयोग करें

वाईफाई क्लाइंट क्लाइंट;

//////////////////////////////////// टाइमस्टैम्प

गणना समारोह //////////////////////////////////////

इंट गिवमीटाइमस्टैम्प ()

{

अहस्ताक्षरित लंबा

टाइमआउट = मिली ();

// वाईफाई क्लाइंट क्लाइंट;

जबकि

(ग्राहक उपलब्ध () == 0)

{

अगर (मिली () -

समयबाह्य > ५००००)

{

क्लाइंट.स्टॉप ();

वापसी 0;

}

}

जबकि (क्लाइंट.उपलब्ध ())

{

स्ट्रिंग लाइन =

client.readStringUntil('\r'); //indexOf() smthng की खोज करने के लिए एक मज़ेदार है, अगर नहीं मिला तो यह -1 लौटाता है

इंट पॉज़ =

line.indexOf("\"टाइमस्टैम्प\""); // प्रतिक्रिया की शुरुआत से "\"टाइमस्टैम्प \"" खोजें और उसके बाद सभी डेटा कॉपी करें, यह आपका टाइमस्टैम्प होगा

अगर (स्थिति>=

0)

{

इंट जे = 0;के लिए (जे = 0; जे <10; जे ++)

{टाइमस्टैम्प [जे] = लाइन [पॉज़ + 12 + जे];

}

}

}

}

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

व्यर्थ व्यवस्था()

{सीरियल.बेगिन (115200);

देरी(10);

टज़सेट ();

// हम शुरू करते हैं

वाईफाई नेटवर्क से कनेक्ट करनाWiFiMulti.addAP ("dlink_DWR-113", "मधुकर 66");

सीरियल.प्रिंट्लन ();

सीरियल.प्रिंट्लन ();Serial.print ("वाईफाई की प्रतीक्षा करें …");जबकि (WiFiMulti.run() != WL_CONNECTED) {सीरियल.प्रिंट ("।");

देरी (500);

}सीरियल.प्रिंट्लन ("");Serial.println ("वाईफाई कनेक्टेड");Serial.println ("आईपी पता:");Serial.println (वाईफाई.लोकलआईपी ());

देरी (500);

}

uint8_t temp_farenheit;

फ्लोट अस्थायी_सेल्सियस;

चार strftime_buf [६४];

टाइम_टी अब = 0;

स्ट्रक्चर टीएम टाइमइन्फो;

चार बफ [256];

शून्य लूप ()

{

// इंट एनालॉगवैल्यू =

एनालॉग रीड (आउटपुटपिन);

{

//////////////////////////////////// क्वेरी भेजें और

प्रतिक्रिया प्राप्त करें ///////////////////////

//

t1=(analogValue/1024.0) *5000;

//

सीरियल.प्रिंट ("अस्थायी:");

// सीरियल.प्रिंट्लन (टी 1);

/

/ t2=(t1/10);

//

सीरियल.प्रिंट ("सेल्क:");

//

Serial.println(t2);

/

/ t3=((t2 *

9)/5 + 32);

//

सीरियल.प्रिंट ("fhrn:");

//

Serial.println(t3); //टूटना;localtime_r (और अब, और समय सूचना);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_farenheit);सीरियल.प्रिंट ("डिग्री फ़ारेनहाइट");सीरियल.प्रिंट (temp_celsius);Serial.println ("डिग्री सेल्सियस");

देरी (1000);

अब ++;

सीरियल.प्रिंट ( कनेक्टिंग

प्रति );सीरियल.प्रिंट्लन (होस्ट); // परिभाषित उल्टा:- होस्ट = 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 ("कैश-कंट्रोल: नो-कैश");client.println ("डाकिया-टोकन: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

क्लाइंट.प्रिंट्लन ();

गिवमीटाइमस्टैम्प (); // यह कॉल करेगा

फ़ंक्शन जो सर्वर से टाइमस्टैम्प प्रतिक्रिया प्राप्त करेगा

Serial.println ("टाइमस्टैम्प प्राप्त हुआ");

Serial.println (टाइमस्टैम्प);Serial.println ("थिंग्सक्लाउडपोस्ट के अंदर");

स्ट्रिंग पोस्टवैल्यू =

"{"device_id\": 61121695920, \"slave_id\": 2";

पोस्टवैल्यू =

पोस्टवैल्यू + ", \"डीटीएस\":" +टाइमस्टैम्प;

पोस्टवैल्यू =

पोस्टवैल्यू +", \"डेटा\":{"TEMP\":" + temp_farenheit +"}"+"}";Serial.println (पोस्टवैल्यू);

/* WiFiClientSecure का एक उदाहरण बनाएं */

WiFiClientSecure क्लाइंट;Serial.println ("पोर्ट 443 के माध्यम से सर्वर से कनेक्ट करें");

अगर

(! क्लाइंट। कनेक्ट (सर्वर, 443)) {Serial.println ("कनेक्शन विफल!");

} अन्यथा {Serial.println ("सर्वर से जुड़ा!");

/* HTTP बनाएं

प्रार्थना */client.println ("पोस्ट / डिवाइस / डिवाइसडेटा HTTP / 1.1");client.println ("होस्ट: api.thingsai.io");//client.println ("कनेक्शन: बंद करें");client.println ("सामग्री-प्रकार: एप्लिकेशन/जेसन");client.println ("कैश-कंट्रोल: नो-कैश");client.println ("प्राधिकरण: वाहक eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs");क्लाइंट.प्रिंट ("सामग्री-लंबाई:");client.println (PostValue.length ());क्लाइंट.प्रिंट्लन ();क्लाइंट.प्रिंट्लन (पोस्टवैल्यू);

//////////////////////////////// पर डेटा पोस्ट करना

क्लाउड हो गया है और अब प्रतिक्रिया फॉर्म प्राप्त करें क्लाउड सर्वर //////////////////

सीरियल.प्रिंट ("प्रतीक्षा कर रहा है"

प्रतिक्रिया के लिए );

जबकि

(! ग्राहक। उपलब्ध ()) {

देरी (50);

//सीरियल.प्रिंट ("।");

}

/* यदि डेटा है

उपलब्ध है तो प्राप्त करें और टर्मिनल पर प्रिंट करें */

जबकि

(ग्राहक उपलब्ध ()) {

चार सी =

क्लाइंट.रीड ();सीरियल.राइट (सी);

}

/* अगर

सर्वर डिस्कनेक्ट हो गया है, क्लाइंट को रोकें */

अगर

(! क्लाइंट। कनेक्टेड ()) {सीरियल.प्रिंट्लन ();Serial.println ("सर्वर डिस्कनेक्ट हो गया");

क्लाइंट.स्टॉप ();

}

}

Serial.println ( ////////////////////// अंत

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

देरी (3000);

}

}

चरण 4: आउटपुट:

आउटपुट
आउटपुट

यहाँ सेंसर से पढ़े गए तापमान के मानों का आउटपुट दिया गया है।

चरण 5: ग्राफ:

ग्राफ
ग्राफ
रेखांकन
रेखांकन

ऑनबोर्ड तापमान सेंसर से पढ़े गए मानों का चित्रमय प्रतिनिधित्व।

सिफारिश की: