विषयसूची:

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
Esp32 और Thingsio.ai प्लेटफॉर्म का उपयोग करके मिट्टी की नमी की मात्रा का मापन
Esp32 और Thingsio.ai प्लेटफॉर्म का उपयोग करके मिट्टी की नमी की मात्रा का मापन

इस ट्यूटोरियल में मैं esp32 का उपयोग करके मिट्टी में नमी की मात्रा को पढ़ने और उसके बाद thethingio.ai IoT क्लाउड प्लेटफॉर्म में मान भेजने के बारे में समझाने जा रहा हूं।

चरण 1: घटक

अवयव
अवयव
अवयव
अवयव

हार्डवेयर घटक:

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

2. मिट्टी सेंसर

3. जम्पर तार

सॉफ्टवेयर:

1. अरुडिनो आईडीई

2. थिंग्सियो.एआई

चरण 2: कनेक्शन

सम्बन्ध
सम्बन्ध

मृदा नमी सेंसर ---------------------- esp32 बोर्ड

वीसीसी----------------------------------------3V3

जीएनडी -------------------------------------- जीएनडी

ए0------------------------------------------वीपी

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

#शामिल

#शामिल

#शामिल

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

इंट टी;

इंट सेंसर_पिन = ए0;

इंट वैल्यू;

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

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

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

devapi2.thethingscloud.com

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

/एपीआई/वी२/थिंग्सक्लाउड२/_टेबल/डेटा_एसी

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

"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);Serial.println ("सेंसर से पढ़ना …");

देरी (2000);

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

वाईफाई नेटवर्क से कनेक्ट करना

WiFiMulti.addAP("Wifi_name", "वाईफ़ाई पासवर्ड");

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

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

देरी (500);

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

Serial.println ( आईपी

पता: );Serial.println (वाईफाई.लोकलआईपी ());

देरी (500);

}

शून्य लूप ()

{

{

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

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

मूल्य =

एनालॉग रीड (सेंसर_पिन);

// मान =

नक्शा (मान, 550, 0, 0, 100);सीरियल.प्रिंट ("मोसचर:");सीरियल.प्रिंट (मान);सीरियल.प्रिंट्लन ("%");देरी (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\": 61121695918, \"slave_id\": 2";

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

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

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

PostValue +", \"data\":{"MOIST\":" + value +"}"+"}";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 ());क्लाइंट.प्रिंट्लन ();क्लाइंट.प्रिंट्लन (पोस्टवैल्यू);

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

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

Serial.print( प्रतिक्रिया की प्रतीक्षा कर रहा है

);

जबकि

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

देरी (50);

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

}

/* यदि डेटा है

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

जबकि

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

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

}

/* अगर

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

अगर

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

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

}

}

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

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

देरी (3000);

}

}

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

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

कोड का आउटपुट दिखाया गया है।

चरण 5: ग्राफ:

ग्राफ
ग्राफ

यह उन मानों का चित्रमय प्रतिनिधित्व है जो सेंसर से पढ़े जाते हैं।

चरण 6:

यहाँ परियोजना का पूरा वीडियो है। शुक्रिया।

सिफारिश की: