Innholdsfortegnelse:

Måling av jordfuktighet ved bruk av Esp32 og Thingsio.ai -plattformen: 6 trinn
Måling av jordfuktighet ved bruk av Esp32 og Thingsio.ai -plattformen: 6 trinn

Video: Måling av jordfuktighet ved bruk av Esp32 og Thingsio.ai -plattformen: 6 trinn

Video: Måling av jordfuktighet ved bruk av Esp32 og Thingsio.ai -plattformen: 6 trinn
Video: $5 WiFi Camera Setup | ESP32 Wifi Setup view on Mobile phone 2024, November
Anonim
Måling av fuktighetsinnhold i jord ved bruk av Esp32 og Thingsio.ai -plattformen
Måling av fuktighetsinnhold i jord ved bruk av Esp32 og Thingsio.ai -plattformen

I denne opplæringen skal jeg forklare om lesing av fuktighetsinnholdet i jorda ved å bruke esp32 og deretter sende verdiene inn i thingsio.ai IoT -skyplattformen.

Trinn 1: KOMPONENTER

KOMPONENTER
KOMPONENTER
KOMPONENTER
KOMPONENTER

Maskinvarekomponenter:

1. esp32 utviklingstavle

2. Jordføler

3. jumper ledninger

Programvare:

1. Arduino IDE

2. Thingsio.ai

Trinn 2: TILKOBLINGER

TILKOBLINGER
TILKOBLINGER

Jordfuktighetssensor ---------------------- esp32 Board

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

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

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

Trinn 3: KODING:

#inkludere

#inkludere

#inkludere

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

int t;

int sensor_pin = A0;

int verdi;

////////////////////////////////////////////////////////////'/

for CLOUD ////////////////////////////////////

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

devapi2.thethingscloud.com

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

/api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; // dette er å konvertere tidsstempel

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

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

røye tidsstempel [10];

WiFiMulti WiFiMulti;

// Bruk WiFiClient -klassen til å opprette TCP -tilkoblinger

WiFiClient -klient;

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

KALKULERINGSFUNKSJON /////////////////////////////////////////

int GiveMeTimestamp ()

{

usignert lang

timeout = millis ();

// WiFiClient -klient;

samtidig som

(client.available () == 0)

{

hvis (millis () -

tidsavbrudd> 50000)

{

client.stop ();

retur 0;

}

}

mens (client.available ())

{

String line =

client.readStringUntil ('\ r'); // indexOf () er en funksjon for å søke etter smthng, den returnerer -1 hvis den ikke blir funnet

int pos =

line.indexOf ("\" tidsstempel / ""); // søk etter "\" tidsstempel / "" fra begynnelsen av svaret, og kopier alle dataene etter det, det vil være ditt tidsstempel

hvis (pos> =

0)

{

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

{tidsstempel [j] = linje [pos + 12 + j];

}

}

}

}

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

ugyldig oppsett ()

{Serial.begin (115200);Serial.println ("Lesing fra sensoren …");

forsinkelse (2000);

// Vi starter med

tilkobling til et WiFi -nettverk

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

Serial.println ();

Serial.println ();Serial.print ("Vent på WiFi …");mens (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

forsinkelse (500);

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

Serial.println ( IP

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

forsinkelse (500);

}

hulrom ()

{

{

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

Motta svaret /////////////////////////

verdi =

analogRead (sensor_nål);

// verdi =

kart (verdi, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (verdi);Serial.println ("%");forsinkelse (1000);Serial.print ("koble til");Serial.println (vert); // definert oppside:- host = devapi2.thethingscloud.com eller 139.59.26.117

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

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

Serial.println ("inne få tidsstempel / n");

hvis

(! client.connect (time_server, {

komme tilbake;

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

}client.println ("GET/api/tidsstempel HTTP/1.1"); // Hva denne delen gjør, skjønte jeg ikkeclient.println ("Vert: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp ();

// det vil ringe funksjonen som vil få tidsstempelresponsen fra serveren

Serial.println ("tidsstempel mottatt");

Serial.println (tidsstempel);Serial.println ("inside ThingsCloudPost");

String PostValue =

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

PostValue =

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

PostValue =

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

/ * opprett en forekomst av WiFiClientSecure */

WiFiClientSecure -klient;Serial.println ("Koble til server via port 443");

hvis

(! client.connect (server, 443)) {Serial.println ("Tilkoblingen mislyktes!");

} annet {Serial.println ("Koblet til server!");

/* opprett

be om */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Vert: api.thingsai.io");//client.println("Connection: close ");client.println ("Innholdstype: applikasjon/json");

client.println ( cache-kontroll:

no-cache ");client.println ("Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PTYX9J5YyJ9J5WyQs9y5y9y9y9c9y9c9y9c9p5x9y9c9y9c9p5c9p5g9c5p5g5b5bc5p5bc5p6c5p6p6p6p6p6p6p6p6p6p5g59c5pfb59c5g5b5b5b059b5b5b5b5b5b5b5b059b5b5b5b5b059b5b5b5b5b5b05fb05fb05b05b05b057b5b5b5b5b5b05fb05d05client.print ("Content-Length:");

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

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

skyen er ferdig og nå får du svarskjemaet skyserver ////////////////////

Serial.print ( Venter på svar

);

samtidig som

(! client.available ()) {

forsinkelse (50);

//Serial.print (".");

}

/* hvis data er

tilgjengelig og motta og skriv ut til Terminal */

samtidig som

(client.available ()) {

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

}

/* hvis

serveren koblet fra, stopp klienten */

hvis

(! client.connected ()) {Serial.println ();Serial.println ("Server frakoblet");

client.stop ();

}

}

Serial.println ( ////////////////////////// ENDEN

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

forsinkelse (3000);

}

}

Trinn 4: UTGANG:

PRODUKSJON
PRODUKSJON

Kodens utdata vises.

Trinn 5: GRAF

KURVE
KURVE

Dette er den grafiske fremstillingen av verdiene som leses fra sensoren.

Trinn 6:

Her er hele videoen av prosjektet. Takk skal du ha.

Anbefalt: