Pada project kali ini akan memonitoring jarak benda yang berada di depan
sensor, menggunakan sensor ultrasonik dengan platform Thingspeak, melalui ESP32
yang terkoneksi dengan internet. Sebelum membuat project ini siapkan
alat-alat yang diperlukan sebagai berikut:
- ESP32
- Sensor ultrasonik
- Breadboard
- Jumper male-male (4 buah)
Selanjutnya rangkai
rangkaian seperti pada gambar dibawah ini:
Setelah terhubung
dengan baik sesuai dengan gambar, buka aplikasi Arduino IDE. Apabila belum
pernah menginstall dan mengupload program menggunakan Arduino IDE bisa pelajari
terlebih dahulu dalam postingan sebelumnya di https://alltechnologyproject.blogspot.com/2019/07/install-dan-upload-program-esp32.html.
persiapkan thingspeak, buka thingspeak.com melalui web browser. buat akun terlebih dahulu, apabila sudah buat channel baru, dengan cara klik new channel:
isi nama channel sesuai keinginan, disini menggunakan nama channel jarak benda cheklist Field1, dan klik save channel.
pada channel yang telah dibuat tadi, klik API Keys, copy key dari write API Key dan Channel ID ke program yang akan dibuat.
Download library
thingspeak terlebih dahulu pada Arduino IDE. klik Tools >> Manage
Libraries atau bias juga dengan tekan Ctrl+Shift+I, ketikkan Thingspeak ke
kolom search. Kemudian klik install, tunggu hingga proses selesai.
Selanjutnya meng-upload program sketch code ke Board ESP32. Berikut ini merupakan code program nya:
.
.
.
.
#include <ThingSpeak.h>
#include <WiFi.h>
const int trigPin = 2;
const int echoPin = 5;
// defines variables
long duration;
int distance;
//network information
const char *ssid = "rea"; //your network SSID (name)
const char *pass = "rearamada12"; //your network password
WiFiClient client;
//thingspeak settings
unsigned long channel = 847354; //your channel ID number
const char *apiKey = "6N678TNN450FWUSH"; //your channel write API Key
//int lum, i = 0;
void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(115200);
delay(10);
//connect to WiFi
Serial.print("Connecting to: "); Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected\n");
ThingSpeak.begin(client); //initialize ThingSpeak
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
// i++;
// lum = analogRead(34);
int x = ThingSpeak.writeField(channel, 1, distance, apiKey);
if (x == 200) {
Serial.println("Data " + String(distance));
Serial.print("distance: "); Serial.println(distance);
Serial.println("Update to ThingSpeak Successful.");
}
else {
Serial.println("Data " + String(distance));
Serial.println("Problem updating data. HTTP error code " + String(x));
}
Serial.println("Waiting...\n");
delay(20000);
}
#include <WiFi.h>
const int trigPin = 2;
const int echoPin = 5;
// defines variables
long duration;
int distance;
//network information
const char *ssid = "rea"; //your network SSID (name)
const char *pass = "rearamada12"; //your network password
WiFiClient client;
//thingspeak settings
unsigned long channel = 847354; //your channel ID number
const char *apiKey = "6N678TNN450FWUSH"; //your channel write API Key
//int lum, i = 0;
void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(115200);
delay(10);
//connect to WiFi
Serial.print("Connecting to: "); Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected\n");
ThingSpeak.begin(client); //initialize ThingSpeak
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
// i++;
// lum = analogRead(34);
int x = ThingSpeak.writeField(channel, 1, distance, apiKey);
if (x == 200) {
Serial.println("Data " + String(distance));
Serial.print("distance: "); Serial.println(distance);
Serial.println("Update to ThingSpeak Successful.");
}
else {
Serial.println("Data " + String(distance));
Serial.println("Problem updating data. HTTP error code " + String(x));
}
Serial.println("Waiting...\n");
delay(20000);
}
Karena
memerlukan koneksi internet untuk mengupload data jarak dari sensor ultrasonik,
ubah ssid dan password sesuai dengan hotspot yang akan digunakan. Ganti
API key sesuai dengan channel thngspeak yang digunakan. buka channel yang telah dibuat dan jarak yang benda yang dideteksi oleh sensor ultrasonik akan muncul pada channel thingspeak.
Tidak ada komentar:
Posting Komentar