Talaan ng mga Nilalaman:

Pagsukat ng Nilalaman ng Moisture ng Lupa Gamit ang Esp32 at Thingsio.ai Platform: 6 na Hakbang
Pagsukat ng Nilalaman ng Moisture ng Lupa Gamit ang Esp32 at Thingsio.ai Platform: 6 na Hakbang

Video: Pagsukat ng Nilalaman ng Moisture ng Lupa Gamit ang Esp32 at Thingsio.ai Platform: 6 na Hakbang

Video: Pagsukat ng Nilalaman ng Moisture ng Lupa Gamit ang Esp32 at Thingsio.ai Platform: 6 na Hakbang
Video: Display Temperature on LCD1602 using LM35 Temperature Sensor with Arduino 2024, Nobyembre
Anonim
Pagsukat ng Nilalaman ng Moisture na Lupa Gamit ang Esp32 at Thingsio.ai Platform
Pagsukat ng Nilalaman ng Moisture na Lupa Gamit ang Esp32 at Thingsio.ai Platform

Sa tutorial na ito ay ipapaliwanag ko ang tungkol sa pagbabasa ng nilalaman ng kahalumigmigan sa lupa sa pamamagitan ng paggamit ng esp32 at pagkatapos ay pagpapadala ng mga halaga sa platform ng cloud ng cloud na myio.

Hakbang 1: Mga KOMPONente

Mga Kumpanya
Mga Kumpanya
Mga Kumpanya
Mga Kumpanya

Mga Bahagi ng Hardware:

1. esp32 development board

2. Sensor ng soil

3. Jumper Wires

Software:

1. Arduino IDE

2. Thingsio.ai

Hakbang 2: Mga koneksyon

Mga koneksyon
Mga koneksyon

Soil Moisture Sensor ----------------- Esp32 Board

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

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

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

Hakbang 3: CODING:

# isama

# isama

# isama

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

int t;

int sensor_pin = A0;

int halaga;

// ///

para sa CLOUD // ///.

const char * host = "api.thingsai.io"; // O host =

devapi2.thethingscloud.com

const char * post_url = "/ aparato / aparatoData"; // O

/ api / v2 / bagaycloud2 / _table / data_ac

const char * time_server =

"baas.thethingscloud.com"; // ito ay upang i-convert ang timestamp

const int httpPort = 80;

const int httpsPort = 443;

const char * server =

"api.thingsai.io"; // Server URL

timestamp ng char [10];

WiFiMulti WiFiMulti;

// Gumamit ng klase ng WiFiClient upang lumikha ng mga koneksyon sa TCP

Client ng WiFiClient;

// ///

Pag-andar ng CALCULATION // ///.

int GiveMeTimestamp ()

{

matagal na hindi pinirmahan

timeout = millis ();

// client ng WiFiClient;

habang

(client.available () == 0)

{

kung (millis () -

timeout> 50000)

{

client.stop ();

ibalik ang 0;

}

}

habang (client.available ())

{

String line =

client.readStringUntil ('\ r'); // indexOf () ay isang funtion upang maghanap para sa smthng, nagbabalik ito ng -1 kung hindi nahanap

int pos =

line.indexOf ("\" timestamp / ""); // search for "\" timestamp / "" mula sa simula ng pagtanggap nakuha at kopyahin ang lahat ng data pagkatapos nito, ito ang magiging timestamp mo

kung (pos> =

0)

{

int j = 0;para sa (j = 0; j <10; j ++)

{timestamp [j] = linya [pos + 12 + j];

}

}

}

}

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

walang bisa ang pag-setup ()

{Serial.begin (115200);Serial.println ("Pagbasa Mula sa Sensor …");

pagkaantala (2000);

// Nagsisimula kami sa pamamagitan ng

kumokonekta sa isang WiFi network

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

Serial.println ();

Serial.println ();Serial.print ("Maghintay para sa WiFi …");habang (WiFiMulti.run ()! = WL_CONNected) {Serial.print (".");

pagkaantala (500);

}Serial.println ("");Serial.println ("Konektado sa WiFi");

Serial.println ( IP

address: );Serial.println (WiFi.localIP ());

pagkaantala (500);

}

walang bisa loop ()

{

{

// ///

TANGGAPIN ANG RESPONSE // ///.

halaga =

analogRead (sensor_pin);

// halaga =

mapa (halaga, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (halaga);Serial.println ("%");pagkaantala (1000);Serial.print ("pagkonekta sa");Serial.println (host); // tinukoy nang paitaas: - host = devapi2.thethingscloud.com o 139.59.26.117

// ///.

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

Serial.println ("sa loob makakuha ng timestamp / n");

kung

(! client.connect (time_server, {

bumalik;

//*-*-*-*-*-*-*-*-*-*

}client.println ("GET / api / timestamp HTTP / 1.1"); // Ano ang ginagawa ng bahaging ito, hindi ko nakuhaclient.println ("Host: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp ();

// tatawagan nito ang pagpapaandar na makakakuha ng tugon ng timestamp mula sa server

Serial.println ("natanggap ang timestamp");

Serial.println (timestamp);Serial.println ("sa loob ng ThingsCloudPost");

String PostValue =

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

PostValue =

PostValue + ", \" dts / ":" + timestamp;

PostValue =

PostValue + ", \" data / ": {" MOIST / ":" + halaga + "}" + "}";Serial.println (PostValue);

/ * Lumikha ng isang halimbawa ng WiFiClientSecure * /

Client ng WiFiClientSecure;Serial.println ("Kumonekta sa server sa pamamagitan ng port 443");

kung

(! client.connect (server, 443)) {Serial.println ("Nabigo ang koneksyon!");

} iba pa {Serial.println ("Nakakonekta sa server!");

/ * lumikha ng

hiling */client.println ("POST / aparato / aparatoData HTTP / 1.1");client.println ("Host: api.thingsai.io");//client.println("Connection: close ");client.println ("Uri ng Nilalaman: application / json");

client.println ( cache-control:

walang-cache ");client.println ("Awtorisasyon: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT6X79f9)client.print ("Haba ng Nilalaman:");

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

// ///

tapos na ang ulap at makuha ngayon ang form ng pagtugon cloud server // ///.

Serial.print ( Naghihintay para sa tugon

);

habang

(! client.available ()) {

antala (50);

//Serial.print (".");

}

/ * kung ang data ay

magagamit pagkatapos ay tumanggap at mag-print sa Terminal * /

habang

(client.available ()) {

char c = client.read ();Serial.write (c);

}

/ * kung ang

naka-disconnect ang server, itigil ang client * /

kung

(! client.connected ()) {Serial.println ();Serial.println ("Nakakonekta ang server");

client.stop ();

}

}

Serial.println ( // ///. / / / / / // THE END

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

pagkaantala (3000);

}

}

Hakbang 4: OUTPUT:

OUTPUT
OUTPUT

Ang Output ng code ay ipinapakita.

Hakbang 5: GRAPH

GRAPH
GRAPH

Ito ang grapikong representasyon ng mga halagang binabasa mula sa sensor.

Hakbang 6:

Narito ang kumpletong video ng proyekto. Salamat.

Inirerekumendang: