Satura rādītājs:

Augsnes mitruma satura mērīšana, izmantojot Esp32 un Thingsio.ai platformu: 6 soļi
Augsnes mitruma satura mērīšana, izmantojot Esp32 un Thingsio.ai platformu: 6 soļi

Video: Augsnes mitruma satura mērīšana, izmantojot Esp32 un Thingsio.ai platformu: 6 soļi

Video: Augsnes mitruma satura mērīšana, izmantojot Esp32 un Thingsio.ai platformu: 6 soļi
Video: Augsnes auglības saglabāšana, izmantojot augsnes apstrādes tehnoloģijas 2024, Jūnijs
Anonim
Augsnes mitruma satura mērīšana, izmantojot Esp32 un Thingsio.ai platformu
Augsnes mitruma satura mērīšana, izmantojot Esp32 un Thingsio.ai platformu

Šajā apmācībā es paskaidrošu, kā nolasīt mitruma saturu augsnē, izmantojot esp32, un pēc tam nosūtot vērtības Thingsio.ai IoT mākoņa platformai.

1. darbība: SASTĀVDAĻAS

SASTĀVDAĻAS
SASTĀVDAĻAS
SASTĀVDAĻAS
SASTĀVDAĻAS

Aparatūras komponenti:

1. esp32 attīstības padome

2. Augsnes sensors

3. Jumper vadi

Programmatūra:

1. Arduino IDE

2. Thingsio.ai

2. darbība: SAVIENOJUMI

SAVIENOJUMI
SAVIENOJUMI

Augsnes mitruma sensors ---------------------- esp32 Board

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

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

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

3. darbība: KODĒŠANA:

#iekļaut

#iekļaut

#iekļaut

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

int t;

int sensors_tapa = A0;

int vērtība;

///////////////////////////////////////////////////////////////////// VISAS DEKLARĀCIJAS

CLOUD ///////////////////////////////

const char* saimnieks = "api.thingsai.io"; // VAI saimniekdators =

devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // VAI

/api/v2/thingscloud2/_table/data_ac

const char* laika_serveris =

"baas.thethingscloud.com"; // tas ir laika zīmoga konvertēšana

const int httpPort = 80;

const int httpsPort = 443;

const char* serveris =

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

simbolu laika zīmogs [10];

WiFiMulti WiFiMulti;

// Izmantojiet WiFiClient klasi, lai izveidotu TCP savienojumus

WiFiClient klients;

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

APRĒĶINA funkcija ////////////////////////////////////////

int GiveMeTimestamp ()

{

neparakstīts ilgi

taimauts = milis ();

// WiFiClient klients;

kamēr

(client.available () == 0)

{

ja (milis () -

taimauts> 50000)

{

client.stop ();

atgriezties 0;

}

}

kamēr (client.available ())

{

Stīgu līnija =

client.readStringUntil ('\ r'); // indexOf () ir funkcija smthng meklēšanai, tā atgriež -1, ja tā netiek atrasta

int pos =

line.indexOf ("\" laika zīmogs / ""); // no atbildes sākuma meklējiet "\" timestamp / "" un pēc tam nokopējiet visus datus, tas būs jūsu laika zīmogs

ja (pos> =

0)

{

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

{laika zīmogs [j] = līnija [pos + 12 + j];

}

}

}

}

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

anulēts iestatījums ()

{Serial.begin (115200);Serial.println ("Nolasīšana no sensora …");

kavēšanās (2000);

// Mēs sākam ar

izveidojot savienojumu ar WiFi tīklu

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

Sērijas.println ();

Sērijas.println ();Serial.print ("Pagaidiet WiFi …");kamēr (WiFiMulti.run ()! = WL_CONNECTED) {Sērijas nospiedums (".");

kavēšanās (500);

}Serial.println ("");Serial.println ("savienots WiFi");

Serial.println ( IP

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

kavēšanās (500);

}

tukša cilpa ()

{

{

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

SAŅEMT ATBILDI ///////////////////////

vērtība =

analogRead (sensor_pin);

// vērtība =

karte (vērtība, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (vērtība);Serial.println ("%");kavēšanās (1000);Serial.print ("savienojums ar");Serial.println (resursdators); // definēts otrādi:- resursdators = devapi2.thethingscloud.com vai 139.59.26.117

////////////////////////////////////////////////////////////////// LAIKAS ZĪMES KODA SNIPPETS

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

Serial.println ("iekšā iegūt laika zīmogu / n");

ja

(! client.connect (time_server, {

atgriešanās;

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

}client.println ("GET/api/timestamp HTTP/1.1"); // Ko dara šī daļa, es nesaņēmuclient.println ("Saimnieks: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Pastnieks-marķieris: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

klients.println ();

GiveMeTimestamp ();

// tas izsauks funkciju, kas no servera saņems atbildi uz laika zīmogu

Serial.println ("saņemts laika zīmogs");

Serial.println (laika zīmogs);Serial.println ("iekšā ThingsCloudPost");

String PostValue =

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

PostValue =

PostValue + ", \" dts / ":" + laika zīmogs;

PostValue =

PostValue +", \" dati / ": {" MOIST / ":" +vērtība +"}" +"}";Serial.println (PostValue);

/ * izveidot WiFiClientSecure gadījumu */

WiFiClientSecure klients;Serial.println ("Savienojuma izveide ar serveri, izmantojot portu 443");

ja

(! client.connect (serveris, 443)) {Serial.println ("Savienojums neizdevās!");

} vēl {Serial.println ("Savienojums ar serveri!");

/* izveidot

pieprasījums */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Saimnieks: api.thingsai.io");//klients.println ("Savienojums: aizvērt ");client.println ("Satura tips: lietojumprogramma/json");

client.println ( cache-control:

bez kešatmiņas ");client.println ("Autorizācija: nesējs eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2kvkclient.print ("Content-Length:");

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

////////////////////////////////////////////////&Hl=lv lai datus publicētu

mākonis ir pabeigts un tagad iegūstiet atbildes veidlapu mākoņa serverī ///////////////////

Serial.print ( Gaida atbildi

);

kamēr

(! client.available ()) {

kavēšanās (50);

//Sērijas nospiedums (".");

}

/* ja dati ir

pieejams, tad saņemiet un izdrukājiet terminālī */

kamēr

(client.available ()) {

char c = klients.lasīt ();Serial.write (c);

}

/* ja

serveris ir atvienots, apturiet klientu */

ja

(! client.connected ()) {Sērijas.println ();Serial.println ("Serveris atvienots");

client.stop ();

}

}

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

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

kavēšanās (3000);

}

}

4. solis: IZEJA:

Izeja
Izeja

Tiek parādīta koda izvade.

5. darbība: GRAFIKA

GRAFIKA
GRAFIKA

Tas ir no sensora nolasīto vērtību grafiskais attēlojums.

6. darbība:

Šeit ir pilns projekta video. Paldies.

Ieteicams: