Daftar Isi:
Video: Detektor Gerakan Menggunakan Thingsai.io Iot Cloud Platform: 6 Langkah
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Dalam tutorial ini saya akan menjelaskan tentang deteksi gerakan dengan menggunakan sensor PIR dan Esp32 bersama dengan platform cloud IOT Thingai.io
Langkah 1: Komponen
KOMPONEN PERANGKAT KERAS;
1.esp32 Dewan Pengembangan
2. Sensor PIR
3. Kabel Jumper
PERANGKAT LUNAK:
1. Arduino IDE
2. Akun Thingsai.io
Langkah 2: KONEKSI
Koneksinya tenang sederhana.
PIN PIR ------------ PIN ESP32
VCC--------------------3V3 di esp32
GND------------------GND di esp32
KELUAR ------------------- D22 di esp32
Langkah 3: KODE
Rekatkan kode ini ke Arduino IDE Anda dengan beberapa pembaruan, sensor Gerak Anda akan memberikan output dengan sempurna.
#termasuk
#termasuk
#termasuk
int hitung=0, i, m, j, k;
int t, t1, t2, t3;
int pin = 22;
////////////////////////////////////// SEMUA DEKLARASI 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 mengonversi stempel waktu
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // URL server
stempel waktu karakter[10];
WiFiMulti WiFiMulti;
// Gunakan kelas WiFiClient untuk membuat koneksi TCP
Klien WiFiClient;
///////////////////////////////////// TIMESTAMP PERHITUNGAN fungsi ///////// //////////////////////////////////////////
int BeriSayaTimestamp()
{
unsigned long timeout = milis();
// klien WiFiClient;
sementara (client.available() == 0)
{
if (milis() - batas waktu > 50.000)
{
klien.berhenti();
kembali 0;
}
}
sementara (client.available())
{
String baris = client.readStringUntil('\r'); //indexOf() adalah fungsi untuk mencari smthng, ia mengembalikan -1 jika tidak ditemukan
int pos = line.indexOf("\"timestamp\""); //cari "\"timestamp\"" dari awal respons yang didapat dan salin semua data setelah itu, itu akan menjadi stempel waktu Anda
jika (pos >= 0)
{
int j = 0;
untuk(j=0;j<10;j++)
{
timestamp[j] = baris[pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
batalkan pengaturan()
{
Serial.begin(115200);
penundaan (10);
pinMode(pin, INPUT);
// Kita mulai dengan menghubungkan ke jaringan WiFi
WiFiMulti.addAP("wifi_name", "Wifi_password");
Serial.println();
Serial.println();
Serial.print("Tunggu WiFi… ");
while(WiFiMulti.run() != WL_CONNECTED) {
Serial.print(".");
penundaan (500);
}
Serial.println("");
Serial.println("WiFi terhubung");
Serial.println("Alamat IP: ");
Serial.println(WiFi.localIP());
penundaan (500);
}
lingkaran kosong()
{
int analogValue = analogRead(pin keluaran);
{
////////////////////////////////////// KIRIM PERTANYAAN DAN TERIMA RESPONNYA//// ///////////////////
{
bool isDetected = digitalRead(pin);
jika(terdeteksi){
Serial.println("Keberadaan terdeteksi");
}
penundaan (500);
}
Serial.print("menghubungkan ke ");
Serial.println(host); //didefinisikan terbalik:- host = devapi2.thethingscloud.com atau 139.59.26.117
/////////////////////////////////// SNIPPET KODE TIMESTAMP /////////// ///////////////////////
Serial.println("di dalam dapatkan stempel waktu\n");
if (!client.connect(time_server, {
kembali; //*-*-*-*-*-*-*-*-*-*
}
client.println("DAPATKAN /api/timestamp HTTP/1.1"); // Apa yang dilakukan bagian ini, aku tidak mengerti
client.println("Host: baas.thethingscloud.com");
client.println("Kontrol Cache: tanpa cache");
client.println("Token Tukang Pos: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klien.println();
BeriSayaTimestamp(); // itu akan memanggil fungsi yang akan mendapatkan respons stempel waktu dari server
Serial.println("stempel waktu diterima");
Serial.println(stempel waktu);
Serial.println("di dalam ThingsCloudPost");
String PostValue = "{"device_id\": 61121695839, \"slave_id\": 2";
PostValue = PostValue + ", \"dts\":" +timestamp;
PostValue = PostValue +", \"data\":{"PIR\":" + pin +"}"+"}";
Serial.println(Nilai Pos);
/* membuat instance WiFiClientSecure */
Klien WiFiClientSecure;
Serial.println("Hubungkan ke server melalui port 443");
if (!klien.koneksi(server, 443)){
Serial.println("Koneksi gagal!");
} lain {
Serial.println("Tersambung ke server!");
/* membuat permintaan HTTP */
client.println( POST /devices/deviceData
client.println("Host: api.thingsai.io");
//client.println("Koneksi: tutup");
client.println("Tipe Konten: aplikasi/json");
client.println("kontrol cache: tanpa cache");
client.println( Otorisasi: Pembawa eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKylYlWNqC2PNTkXs9PKyl
client.print("Panjang Konten: ");
client.println(PostValue.length());
klien.println();
klien.println(Nilai Pos);
/////////////////////////////////POSTING data ke cloud selesai dan sekarang dapatkan respons formulir cloud server//////////////////
Serial.print("Menunggu jawaban");
while (!klien.available()){
penundaan(50); //
Serial.print(".");
}
/* jika data tersedia maka terima dan cetak ke Terminal */
while (client.available()) {
char c = klien.baca();
Serial.tulis(c);
}
/* jika server terputus, hentikan klien */
if (!klien.terhubung()) {
Serial.println();
Serial.println("Server terputus");javascript:;
klien.berhenti();
}
}
Serial.println("////////////////////// AKHIR //////////////////// ");
penundaan(3000);
}
}
Langkah 4: OUTPUT
Ini adalah representasi grafik batang dari nilai yang dibaca dari sensor di platform thingsai, io cloud,
Langkah 5: Grafik
Ini adalah representasi grafis dari nilai-nilai dari sensor. Dari grafik di atas kita dapat menganalisis penerapan sensor. Terima kasih