Isi kandungan:

Pengukuran Suhu Menggunakan Platform Esp32 dan Thingsio.ai: 6 Langkah
Pengukuran Suhu Menggunakan Platform Esp32 dan Thingsio.ai: 6 Langkah

Video: Pengukuran Suhu Menggunakan Platform Esp32 dan Thingsio.ai: 6 Langkah

Video: Pengukuran Suhu Menggunakan Platform Esp32 dan Thingsio.ai: 6 Langkah
Video: Sensor Suhu & Kelembaban | Internet of Things (IoT) | Wokwi Simulator | ESP32 | DHT22 | ThingsBoard 2024, Julai
Anonim
Pengukuran Suhu Menggunakan Platform Esp32 dan Thingsio.ai
Pengukuran Suhu Menggunakan Platform Esp32 dan Thingsio.ai

Dalam tutorial ini saya akan menerangkan tentang mengukur suhu di sekitarnya dengan menggunakan sensor suhu dalaman yang terdapat di papan pengembangan esp32. esp32 mempunyai banyak sensor dalaman seperti sensor ruang yang digunakan sebagai sensor jarak, sensor sentuh, sensor suhu. Dalam tutorial ini kita akan membincangkan mengenai sensor suhu.

Langkah 1: KOMPONEN:

KOMPONEN
KOMPONEN

Perkakasan:

1. papan pengembanganesp32

Perisian:

1. Arduino IDE

2. Thingsio.ai

Langkah 2: PERWAKILAN DIAGRAM BLOK Esp32

REPRESENTASI DIAGRAM BLOK Esp32
REPRESENTASI DIAGRAM BLOK Esp32

Langkah 3: KOD:

#sertakan

#sertakan

#sertakan

#sertakan

#sertakan

#ifdef _cplusplus

luaran "C" {

#endif

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#endif

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

//////////////////////////////////////// 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);

kelewatan (10);

tzset ();

// Kami bermula dengan

menyambung ke rangkaian WiFiWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

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 ("Alamat IP:");Serial.println (WiFi.localIP ());

kelewatan (500);

}

uint8_t temp_farenheit;

terapung temp_celsius;

char strftime_buf [64];

time_t now = 0;

struct tm timeinfo;

char buf [256];

gelung kosong ()

{

// int analogValue =

analogRead (outputpin);

{

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

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

//

t1 = (analogValue / 1024.0) * 5000;

//

Serial.print ("temp:");

// Serial.println (t1);

/

/ t2 = (t1 / 10);

//

Serial.print ("celc:");

//

Bersiri.println (t2);

/

/ t3 = ((t2 *

9)/5 + 32);

//

Serial.print ("fhrn:");

//

Bersiri.println (t3); // rehat;localtime_r (& sekarang, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "% c", & timeinfo);sprintf (buf, "scan awal% 02d:% 02d:% 02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

Cetakan bersiri

(buf);

temp_farenheit =

temprature_sens_read ();

temp_celsius = (temp_farenheit - 32) / 1.8;Serial.print ("Temp onBoard");Serial.print (temp_farenheit);Cetakan bersiri ("° F");Serial.print (temp_celsius);Serial.println ("° C");

kelewatan (1000);

sekarang ++;

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 (); // ia akan memanggil

fungsi yang akan mendapat sambutan cap waktu dari pelayan

Serial.println ("cap waktu diterima");

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

String PostValue =

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

Nilai Pos =

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

Nilai Pos =

PostValue + ", \" data / ": {" TEMP / ":" + temp_farenheit + "}" + "}";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: no-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

untuk tindak balas );

sementara

(! client.available ()) {

kelewatan (50);

//Cetakan bersiri (".");

}

/ * jika data

tersedia kemudian terima dan cetak ke Terminal * /

sementara

(pelanggan. tersedia ()) {

char c =

pelanggan.baca ();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

Berikut adalah output nilai suhu yang dibaca dari sensor.

Langkah 5: KUMPULAN:

KUMPULAN
KUMPULAN
KUMPULAN
KUMPULAN

Perwakilan grafik dari nilai yang dibaca dari sensor suhu di atas kapal.

Disyorkan: