Isi kandungan:

Pengukuran Kandungan Kelembapan Tanah Menggunakan Platform Esp32 dan Thingsio.ai: 6 Langkah
Pengukuran Kandungan Kelembapan Tanah Menggunakan Platform Esp32 dan Thingsio.ai: 6 Langkah

Video: Pengukuran Kandungan Kelembapan Tanah Menggunakan Platform Esp32 dan Thingsio.ai: 6 Langkah

Video: Pengukuran Kandungan Kelembapan Tanah Menggunakan Platform Esp32 dan Thingsio.ai: 6 Langkah
Video: Pemantauan Kualitas Air Berbasis Internet of Things 2024, November
Anonim
Pengukuran Kandungan Kelembapan Tanah Menggunakan Platform Esp32 dan Thingsio.ai
Pengukuran Kandungan Kelembapan Tanah Menggunakan Platform Esp32 dan Thingsio.ai

Dalam tutorial ini saya akan menerangkan mengenai pembacaan kandungan kelembapan di tanah dengan menggunakan esp32 dan kemudian mengirim nilai ke platform cloud thingsio.ai IoT.

Langkah 1: KOMPONEN

KOMPONEN
KOMPONEN
KOMPONEN
KOMPONEN

Komponen Perkakasan:

1. lembaga pengembangan esp32

2. Sensor tanah

3. Wayar Pelompat

Perisian:

1. Arduino IDE

2. Thingsio.ai

Langkah 2: SAMBUNGAN

HUBUNGAN
HUBUNGAN

Soil Moisture Sensor ---------------------- Papan esp32

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

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

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

Langkah 3: KOD:

#sertakan

#sertakan

#sertakan

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

int t;

int sensor_pin = A0;

nilai int;

//////////////////////////////////////// SEMUA PENGAKUAN

untuk CLOUD //////////////////////////////

const char * host = "api.thingsai.io"; // ATAU tuan rumah =

devapi2.thethingscloud.com

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

/ api / v2 / thingscloud2 / _table / data_ac

const char * time_server =

"baas.thethingscloud.com"; // ini untuk menukar cap waktu

const int httpPort = 80;

const int httpsPort = 443;

const char * pelayan =

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

cap masa char [10];

WiFiMulti WiFiMulti;

// Gunakan kelas WiFiClient untuk membuat sambungan TCP

Pelanggan WiFiClient;

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

Fungsi PENGHITUNGAN ///////////////////////////////////////

int GiveMeTimestamp ()

{

tidak bertanda panjang

tamat masa = milis ();

// Pelanggan WiFiClient;

sementara

(pelanggan. tersedia () == 0)

{

jika (milis () -

tamat masa> 50000)

{

pelanggan.stop ();

pulangan 0;

}

}

sementara (klien. tersedia ())

{

Garisan tali =

client.readStringUntil ('\ r'); // indexOf () adalah fungsi untuk mencari smthng, ia mengembalikan -1 jika tidak dijumpai

int pos =

line.indexOf ("\" cap waktu / ""); // cari "\" cap waktu / "" dari awal respons diterima dan salin semua data selepas itu, ini akan menjadi cap waktu anda

jika (pos> =

0)

{

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

{cap waktu [j] = garis [pos + 12 + j];

}

}

}

}

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

persediaan tidak sah ()

{Serial.begin (115200);Serial.println ("Membaca Dari Sensor …");

kelewatan (2000);

// Kami bermula dengan

menyambung ke rangkaian WiFi

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

Bersiri.println ();

Bersiri.println ();Serial.print ("Tunggu WiFi …");semasa (WiFiMulti.run ()! = WL_CONNECTED) {Cetakan bersiri (".");

kelewatan (500);

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

Serial.println ( IP

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

kelewatan (500);

}

gelung kosong ()

{

{

/////////////////////////////////////// HANTAR PERTANYAAN DAN

TERIMA RESPON ///////////////////////

nilai =

analogRead (sensor_pin);

// nilai =

peta (nilai, 550, 0, 0, 100);Serial.print ("Mositure:");Cetakan bersiri (nilai);Serial.println ("%");kelewatan (1000);Serial.print ("menyambung ke");Serial.println (hos); // ditentukan terbalik: - host = devapi2.thethingscloud.com atau 139.59.26.117

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

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

Serial.println ("masuk mendapat cap waktu / n");

sekiranya

(! client.connect (time_server, {

kembali;

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

}client.println ("GET / api / cap waktu HTTP / 1.1"); // Apa bahagian ini lakukan, saya tidak fahamclient.println ("Host: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

pelanggan.println ();

BerikanMeTimestamp ();

// akan memanggil fungsi yang akan mendapat respons cap waktu dari pelayan

Serial.println ("cap waktu diterima");

Serial.println (cap waktu);Serial.println ("di dalam ThingsCloudPost");

String PostValue =

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

Nilai Pos =

PostValue + ", \" dts / ":" + cap waktu;

Nilai Pos =

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

/ * buat contoh WiFiClientSecure * /

Pelanggan WiFiClientSecure;Serial.println ("Sambungkan ke pelayan melalui port 443");

sekiranya

(! client.connect (pelayan, 443)) {Serial.println ("Sambungan gagal!");

} lain {Serial.println ("Bersambung ke pelayan!");

/ * buat

permintaan * /client.println ("POST / devices / deviceData HTTP / 1.1");client.println ("Host: api.thingsai.io");//client.println("Connection: close ");client.println ("Jenis Kandungan: aplikasi / json");

client.println ( cache-control:

tanpa cache ");client.println ("Keizinan: Pembawa eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkX_9mF99F9MF9MF9MFNMXFXMBFXBFF1MfFXBF3Bf3f3client.print ("Panjang Kandungan:");

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

//////////////////////////////// POSTING data ke

cloud selesai dan sekarang dapatkan borang respons pelayan cloud //////////////////

Serial.print ( Menunggu tindak balas

);

sementara

(! client.available ()) {

kelewatan (50);

//Cetakan bersiri (".");

}

/ * jika data

tersedia kemudian terima dan cetak ke Terminal * /

sementara

(pelanggan. tersedia ()) {

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

}

/ * jika

pelayan terputus, hentikan pelanggan * /

sekiranya

(! client.connected ()) {Bersiri.println ();Serial.println ("Pelayan terputus");

pelanggan.stop ();

}

}

Serial.println ( ////////////////////// AKHIRNYA

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

kelewatan (3000);

}

}

Langkah 4: KELUARAN:

PENGELUARAN
PENGELUARAN

Hasil kod ditunjukkan.

Langkah 5: GRAF

GRAF
GRAF

Ini adalah gambaran grafik dari nilai-nilai yang dibaca dari sensor.

Langkah 6:

Berikut adalah video projek yang lengkap. Terima kasih.

Disyorkan: