Sisukord:

Mulla niiskusesisalduse mõõtmine platvormi Esp32 ja Thingsio.ai abil: 6 sammu
Mulla niiskusesisalduse mõõtmine platvormi Esp32 ja Thingsio.ai abil: 6 sammu

Video: Mulla niiskusesisalduse mõõtmine platvormi Esp32 ja Thingsio.ai abil: 6 sammu

Video: Mulla niiskusesisalduse mõõtmine platvormi Esp32 ja Thingsio.ai abil: 6 sammu
Video: 【好市多牛肉塊】用在Costco買的2公斤牛肉塊製作健康絶品料理 / Costco購買品介紹 / 無麩質料理 Gluten free / 烤牛肉 / 燉牛筋番茄醬 / 米粉100%披薩 / 馬鈴薯玉棋 2024, November
Anonim
Mulla niiskusesisalduse mõõtmine, kasutades Esp32 ja Thingsio.ai platvormi
Mulla niiskusesisalduse mõõtmine, kasutades Esp32 ja Thingsio.ai platvormi

Selles õpetuses selgitan mullas oleva niiskusesisalduse lugemist esp32 abil ja seejärel väärtuste saatmist asjade Interneti pilvplatvormile.

1. samm: KOMPONENDID

KOMPONENDID
KOMPONENDID
KOMPONENDID
KOMPONENDID

Riistvara komponendid:

1. esp32 arendusplaat

2. Mullaandur

3. Jumper juhtmed

Tarkvara:

1. Arduino IDE

2. Thingsio.ai

2. samm: ÜHENDUSED

ÜHENDUSED
ÜHENDUSED

Mulla niiskusandur ---------------------- esp32 Board

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

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

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

3. samm: KOODIMINE:

#kaasake

#kaasake

#kaasake

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

int t;

int sensor_pin = A0;

int väärtus;

//////////////////////////////////////////////////////// KÕIK DEKLARATSIOONID

PILVE jaoks //////////////////////////////

const char* host = "api.thingsai.io"; // VÕI host =

devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // VÕI

/api/v2/thingscloud2/_table/data_ac

const char* ajaserver =

"baas.thethingscloud.com"; // see on ajatempli teisendamiseks

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

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

sümboli ajatempel [10];

WiFiMulti WiFiMulti;

// Kasutage WiFi -kliendi klassi TCP -ühenduste loomiseks

WiFiClient klient;

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

Funktsioon ARVUTAMINE ///////////////////////////////////////

int GiveMeTimestamp ()

{

allkirjata pikk

timeout = millis ();

// WiFiClient klient;

samas

(client.available () == 0)

{

kui (millis () -

ajalõpp> 50000)

{

client.stop ();

tagasitulek 0;

}

}

samas (client.available ())

{

Stringirida =

client.readStringUntil ('\ r'); // indexOf () on funktsioon smthng otsimiseks, tagastab -1, kui seda ei leita

int pos =

line.indexOf ("\" ajatempel / ""); // otsi vastuse algusest "\" ajatempel / "" ja kopeeri pärast seda kõik andmed, see on sinu ajatempel

kui (pos> =

0)

{

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

{ajatempel [j] = rida [pos + 12 + j];

}

}

}

}

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

tühine seadistus ()

{Seriaalne algus (115200);Serial.println ("Andurilt lugemine …");

viivitus (2000);

// Alustame

WiFi -võrguga ühenduse loomine

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

Serial.println ();

Serial.println ();Serial.print ("Oota WiFi …");samas (WiFiMulti.run ()! = WL_CONNECTED) {Seeria.print (".");

viivitus (500);

}Serial.println ("");Serial.println ("WiFi ühendatud");

Serial.println ( IP

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

viivitus (500);

}

tühine tsükkel ()

{

{

///////////////////////////////////////////////////////////////////////////////////////-

VASTA VASTUS ///////////////////////

väärtus =

analogRead (sensor_pin);

// väärtus =

kaart (väärtus, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (väärtus);Serial.println ("%");viivitus (1000);Serial.print ("ühenduse loomine");Serial.println (host); // määratletud tagurpidi:- host = devapi2.thethingscloud.com või 139.59.26.117

/////////////////////////////////////////////////-

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

Serial.println ("inside get timestamp / n");

kui

(! client.connect (time_server, {

tagasipöördumine;

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

}client.println ("GET/api/ajatempel HTTP/1.1"); // Mida see osa teeb, ma ei saanud aruclient.println ("Host: baas.thethingscloud.com");client.println ("Vahemälu kontroll: vahemälu puudub");client.println ("Postimees-märk: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

klient.println ();

GiveMeTimestamp ();

// see kutsub funktsiooni, mis saab serverilt ajatempli vastuse

Serial.println ("ajatempel saadud");

Serial.println (ajatempel);Serial.println ("sees ThingsCloudPost");

String PostValue =

"{" seadme_id / ": 61121695918, \" orja_id / ": 2";

PostValue =

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

PostValue =

PostValue +", \" andmed / ": {" MOIST / ":" +väärtus +"}" +"}";Serial.println (PostValue);

/ * looge WiFiClientSecure'i eksemplar */

WiFiClientSecure klient;Serial.println ("Ühenda serveriga pordi 443 kaudu");

kui

(! client.connect (server, 443)) {Serial.println ("Ühendus ebaõnnestus!");

} muud {Serial.println ("Ühendatud serveriga!");

/* luua

taotlus */client.println ("POST/seadmed/seadmeandmed HTTP/1.1");client.println ("Host: api.thingsai.io");//client.println("Connection: close ");client.println ("Sisu tüüp: rakendus/json");

client.println ( cache-control:

vahemälu puudub ");client.println ("Autoriseerimine: kandja eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2k2kvkclient.print ("Sisu-pikkus:");

klient.println (PostValue.length ());klient.println ();klient.println (PostValue);

//////////////////////////////////////////////// ning andmete postitamine

pilv on tehtud ja hankige nüüd vastusvorm pilveserver //////////////////

Serial.print ( Ootan vastust

);

samas

(! client.available ()) {

viivitus (50);

//Seeria.print (".");

}

/* kui andmed on

saadaval, seejärel võtke vastu ja printige terminali */

samas

(client.available ()) {

char c = klient.lugemine ();Serial.write (c);

}

/* kui

server on lahti ühendatud, peatage klient */

kui

(! client.connected ()) {Serial.println ();Serial.println ("Server on lahti ühendatud");

client.stop ();

}

}

Serial.println ( ////////////////////// LÕPP

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

viivitus (3000);

}

}

4. samm: VÄLJUND:

VÄLJUND
VÄLJUND

Kuvatakse koodi väljund.

5. samm: GRAFIK

GRAFIK
GRAFIK

See on andurilt loetud väärtuste graafiline esitus.

6. samm:

Siin on projekti täielik video. Aitäh.

Soovitan: