Სარჩევი:

ნიადაგის ტენიანობის შემცველობის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი
ნიადაგის ტენიანობის შემცველობის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი

ვიდეო: ნიადაგის ტენიანობის შემცველობის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი

ვიდეო: ნიადაგის ტენიანობის შემცველობის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი
ვიდეო: ნიადაგი და მისი ნაყოფიერება 2024, ივნისი
Anonim
ნიადაგის ტენიანობის შემცველობის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით
ნიადაგის ტენიანობის შემცველობის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით

ამ გაკვეთილში მე ვაპირებ აგიხსნათ ნიადაგში ტენიანობის შემცველობის წაკითხვის შესახებ esp32 გამოყენებით და შემდეგ ღირებულებების გაგზავნა thingsio.ai IoT ღრუბლოვან პლატფორმაზე.

ნაბიჯი 1: კომპონენტები

კომპონენტები
კომპონენტები
კომპონენტები
კომპონენტები

აპარატურის კომპონენტები:

1. esp32 განვითარების დაფა

2. ნიადაგის სენსორი

3. Jumper Wires

პროგრამული უზრუნველყოფა:

1. Arduino IDE

2. თინგიო.აი

ნაბიჯი 2: კავშირები

კავშირები
კავშირები

ნიადაგის ტენიანობის სენსორი ---------------------- esp32 დაფა

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

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

A0 ---------------------------------------- VP

ნაბიჯი 3: კოდირება:

#ჩართეთ

#ჩართეთ

#ჩართეთ

int რაოდენობა = 0, i, m, j, k;

int t;

int sensor_pin = A0;

int ღირებულება;

//////////////////////////////////////// ყველა დეკლარაცია

CLOUD– ისთვის ///////////////////////////////

const char* host = "api.thingsai.io"; // ან მასპინძელი =

devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // ან

/api/v2/thingscloud2/_table/data_ac

const char* დროის_სერვერი =

"baas.thethingscloud.com"; // ეს არის დროის ნიშნულის გარდაქმნა

const int httpPort = 80;

const int httpsPort = 443;

const char* სერვერი =

"api.thingsai.io"; // სერვერის URL

char დროის ნიშნული [10];

WiFiMulti WiFiMulti;

// გამოიყენეთ WiFiClient კლასი TCP კავშირების შესაქმნელად

WiFiClient კლიენტი;

//////////////////////////////////////// TIMESTAMP

კალკულაციის ფუნქცია ///////////////////////////////////////

int GiveMeTimestamp ()

{

ხელმოუწერელი გრძელი

დროის გასვლა = მილი ();

// WiFiClient კლიენტი;

ხოლო

(client.available () == 0)

{

თუ (მილი () -

დროის გასვლა> 50000)

{

client.stop ();

დაბრუნება 0;

}

}

ხოლო (client.available ())

{

სიმებიანი ხაზი =

client.readStringUntil ('\ r'); // indexOf () არის smthng– ის ძებნის ფუნქცია, ის აბრუნებს -1 თუ არ არის ნაპოვნი

int pos =

line.indexOf ("\" დროის ნიშნული / ""); // მოძებნეთ "\" დროის ნიშნული / "" პასუხის დასაწყისიდან და დააკოპირეთ ყველა მონაცემი ამის შემდეგ, ეს იქნება თქვენი დროის ნიშნული

თუ (pos> =

0)

{

int j = 0;for (j = 0; j <10; j ++)

{დროის ნიშნული [j] = ხაზი [pos + 12 + j];

}

}

}

}

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

ბათილად დაყენება ()

{Serial.begin (115200);Serial.println ("კითხვა სენსორიდან …");

დაგვიანება (2000);

// ვიწყებთ იმით

დაკავშირება WiFi ქსელთან

WiFiMulti.addAP ("Wifi_name", "Wifi_Password");

Serial.println ();

Serial.println ();Serial.print ("დაელოდეთ WiFi …");ხოლო (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

დაგვიანება (500);

}Serial.println ("");Serial.println ("WiFi დაკავშირებულია");

Serial.println ( IP

მისამართი: );Serial.println (WiFi.localIP ());

დაგვიანება (500);

}

ბათილი მარყუჟი ()

{

{

/////////////////////////////////////// გაუგზავნოთ შეკითხვა და

მიიღეთ პასუხი ///////////////////////

მნიშვნელობა =

analogRead (სენსორის_პინი);

// მნიშვნელობა =

რუკა (მნიშვნელობა, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (მნიშვნელობა);Serial.println ("%");დაგვიანება (1000);Serial.print ("დაკავშირება");Serial.println (მასპინძელი); // განსაზღვრული თავდაყირა:- მასპინძელი = devapi2.thethingscloud.com ან 139.59.26.117

////////////////////////////////////// TIMESTAMP CODE SNIPPET

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

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

client.println ();

GiveMeTimestamp ();

// ის დაურეკავს იმ ფუნქციას, რომელიც მიიღებს სერვერის დროის ნიშნულს

Serial.println ("მიღებულია დროის ნიშნული");

Serial.println (დროის ნიშნული);Serial.println ("ThingsCloudPost შიგნით");

სიმებიანი PostValue =

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

PostValue =

PostValue + ", \" dts / ":" + დროის ნიშნული;

PostValue =

PostValue +", \" data / ": {" MOIST / ":" +მნიშვნელობა +"}" +"}";Serial.println (PostValue);

/ * შექმენით WiFiClientSecure მაგალითი */

WiFiClientSecure კლიენტი;Serial.println ("სერვერთან დაკავშირება 443 პორტის საშუალებით");

თუ

(! client.connect (სერვერი, 443)) {Serial.println ("კავშირი ვერ მოხერხდა!");

} სხვა {Serial.println ("დაკავშირებულია სერვერთან!");

/* შექმენით

მოთხოვნა */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("მასპინძელი: api.thingsai.io");//client.println(" კავშირი: დახურვა ");client.println ("შინაარსი-ტიპი: პროგრამა/json");

client.println ( ქეში-კონტროლი:

არა-ქეში ");client.println ("ავტორიზაცია: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AG7ajfVlY");client.print ("შინაარსი-სიგრძე:");

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

//////////////////////////////////// მონაცემების განთავსება

ღრუბელი დასრულებულია და ახლა მიიღეთ პასუხის ფორმა ღრუბლოვანი სერვერი ///////////////////

Serial.print ( ველოდები პასუხს

);

ხოლო

(! client.available ()) {

დაგვიანება (50);

//Serial.print (".");

}

/* თუ მონაცემები არის

ხელმისაწვდომია შემდეგ მიიღეთ და დაბეჭდეთ ტერმინალში */

ხოლო

(client.available ()) {

char c = client.read ();სერიული. დაწერეთ (გ);

}

/* თუ

სერვერი გათიშულია, გააჩერე კლიენტი */

თუ

(! client.connected ()) {Serial.println ();Serial.println ("სერვერი გათიშულია");

client.stop ();

}

}

Serial.println ( ////////////////////// ბოლო

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

დაგვიანება (3000);

}

}

ნაბიჯი 4: გამოსავალი:

გამომავალი
გამომავალი

ნაჩვენებია კოდის გამომავალი.

ნაბიჯი 5: გრაფიკა

გრაფა
გრაფა

ეს არის მნიშვნელობების გრაფიკული წარმოდგენა, რომლებიც იკითხება სენსორიდან.

ნაბიჯი 6:

აქ არის პროექტის სრული ვიდეო. Გმადლობთ.

გირჩევთ: