Project #3 ESP32 Sensor - Internal Sensor



Halo, apa kabar semuanya? Perkenalkan kembali saya Muhammad Vito Ibrahim. Pada kesempatan kali ini saya akan mencoba sensor internal yaitu sensor yang terdapat pada board ESP32 atau yang sudah tertanam pada board bawaan ESP32.

Nah , project kali ini juga merangkap sebagai rekam jejak atau laporan saya untuk mata kuliah ( II2260 Sistem Embedded ). Agar lebih detail kali ini saya akan memanfaatkan sensor internal akan tetapi pada kali ini saya akan mengujinya saja. Adapun hal yang akan dilakukan untuk menguji sensor internal yaitu menguji touch sensor, hall effect sensor dan temperature sensor. Sebelum memulai project, akan dijelaskan terlebih dahulu mengenai perangkat dan komponen yang akan digunakan.


SENSOR INTERNAL ESP32

Perangkat dan komponen yang digunakan:

a. Touch Sensor

1. Mikrokontroler ESP32 Development Board
2. Arduino IDE
3. Laptop/Desktop dengan USB port
4. Kabel micro usb to USB A ( kabel data/charger biasanya )
5. Breadboard
6. LED 5mm (warna LED bebas)
7. Resistor 330k
8. Kabel Jumper ( siapkan ketiga jenis model kabel yaitu F-F, F-M, dan M-M untuk antisipasi)

b. Hall Effect Sensor

1. Mikrokontroler ESP32 Development Board
2. Arduino IDE
3. Laptop/Desktop dengan USB port
4. Kabel micro usb to USB A ( kabel data/charger biasanya )
5. Breadboard
6. Magnet

c. Temperature Sensor

1. Mikrokontroler ESP32 Development Board
2. Arduino IDE
3. Laptop/Desktop dengan USB port
4. Kabel micro usb to USB A ( kabel data/charger biasanya )
5. Breadboard

Penjelasan beberapa perangkat dan komponen:


1. Mikrokontroler adalah sebuah komputer kecil yang dikemas dalam bentuk chip IC (Integrated Circuit) dan dirancang untuk melakukan tugas atau operasi tertentu.

2. ESP-32 Development Board adalah adalah mikrokontroler chip dengan rangkaian sistem hemat biaya dan rendah daya pada dilengkapi Wi-Fi yang terintegrasi dan Bluetooth.

3. Arduino IDE (Integrated Development Environment) adalah software yang di gunakan untuk memprogram di arduino, dengan kata lain Arduino IDE sebagai media untuk memprogram board Arduino. Pada kali ini bisa juga digunakan untuk memprogram mikrokontoler lainnya yaitu ESP32 dengan konfigurasi tambahan.

4. Breadboard adalah papan tempat komponen elektronik tanpa harus disolder.

5. Kabel jumper adalah kawat listrik, atau kabel, dengan konektor atau pin di setiap ujungnya, yang biasanya digunakan untuk menghubungkan komponen pada breadboard.

6. Resistor merupakan komponen elektronik yang memiliki dua pin dan didesain untuk mengatur tegangan listrik dan arus listrik atau secara ringkas merupakan penghambat arus listrik misalnya untuk mencegah kerusakan pada komponen yang dialiri arus listrik berlebih .

7. Lampu LED adalah lampu yang dialiri listrik yang pancarannya merupakan reaksi dioda.

8. Magnet adalah benda yang memiliki kemampuan menarik benda–benda lain yang ada disekitarnya. Magnet memiliki sifat kemagnetan yang mampu menarik benda-benda lain yang ada disekitarnya. Magnet merupakan suatu objek yang didalamnya terdapat medan magnet.


Pendahuluan :

Kali ini saya akan mencoba tiga macam sensor bawaan yang terdapat pada board ESP32.
Pertama adalah touch sensor, dengan menggunakan sentuhan jari atau tangan ESP32 dapat membaca perubahan aliran listrik. Kedua adalah Hall Effect Sensor yaitu menguji sensor medan magnet yang terdapat pada Board ESP32 dengan mendekatkan atau menjauhkan magnet, sensor medan magnet dapat mendeteksinya. Ketika adalah mencoba sensor temperatur namun karena tidak menggunakan sensor eksternal maka pembacaan hasil yang akan tertera adalah suhu dari ESP32nya itu sendiri.

Langkah pengerjaan :


a. Touch Sensor

- Siapkan komponen dan perangkat serta ESP32






- Jalankan ArduinoIDE yang telah dikonfigurasi addon ESP32


- Pasang kabel jumper pada pin GPIO4 yang terdapat di ESP32


dapat menggunakan breadboard dengan kabel jumper M-M
ataupun langsung pada board dengan kabel jumper F-M

- Masukkan kode berikut  atau dapat diakses dengan membuka File > Example > ESP32 > Touch > Touch Read

void setup()
{
  Serial.begin(115200);
  delay(1000); // give me time to bring up serial monitor
  Serial.println("ESP32 Touch Test");
}

void loop()
{
  Serial.println(touchRead(T0));  // get value using T0
  delay(1000);
}

Penjelasan kode di atas adalah :
setup (),  menginisialisasi Serial Monitor untuk menampilkan pembacaan sensor.
loop (), ketika sensor membaca
touchRead (), memberikan berikan pin yang ingin dibaca oleh komponen eksternal. Dalam hal ini, contoh menggunakan T0, yaitu sensor sentuh 0, di GPIO 4.Saya dapat meneruskan nomor sensor sentuh (T0) atau nomor GPIO (4).

- Compile and run




- Buka tools > Serial Monitor sesuaikan baud pada jendela serial monitor sesuai yang terdapat pada kode

- Pegang atau sentuh dan lepas ujung pin pada kabel jumper yang terhubung ke GPIO4 untuk mengamati perubahan



- Perhatikan serial monitor dan amati perubahan



a.1 Touch Sensor untuk menyalakan LED 

- Siapkan komponen dan perangkat 






- Masukkan kode berikut pada ArduinoIDE

// set pin numbers
const int touchPin = 4; 
const int ledPin = 16;

// change with your threshold value
const int threshold = 20;
// variable for storing the touch pin value 
int touchValue;

void setup(){
  Serial.begin(115200);
  delay(1000); // give me time to bring up serial monitor
  // initialize the LED pin as an output:
  pinMode (ledPin, OUTPUT);
}

void loop(){
  // read the state of the pushbutton value:
  touchValue = touchRead(touchPin);
  Serial.print(touchValue);
  // check if the touchValue is below the threshold
  // if it is, set ledPin to HIGH
  if(touchValue < threshold){
    // turn LED on
    digitalWrite(ledPin, HIGH);
    Serial.println(" - LED on");
  }
  else{
    // turn LED off
    digitalWrite(ledPin, LOW);
    Serial.println(" - LED off");
  }
  delay(500);
}

Penjelasan kode di atas adalah :

Kode ini membaca nilai sentuh dari pin yang telah ditentukan, dan menyalakan LED ketika nilainya di bawah batasan (threshold). maka saat meletakkan jari pada ujung pin, LED akan menyala


- Pasang dan sambung komponen dengan mengikuti referensi pada skema ini



agar memudahkan proses demo saya memasang komponen dengan skema seperti berikut, yang paling utama komponen dipasang sesuai pada tempatnya dengan mengikuti kode.




-  Compile and run


- Buka tools > Serial Monitor sesuaikan baud pada jendela serial monitor sesuai yang terdapat pada kode


- Pegang atau sentuh dan lepas ujung pin pada kabel jumper yang terhubung ke GPIO4 untuk mengamati perubahan







atau dapat menggunakan tambahan alumunium foil pada ujung pin kabel jumper yang terhubung ke GPIO4






- Perhatikan serial monitor dan amati perubahan








b. Hall Effect Sensor

- Siapkan komponen dan perangkat 




- Masukkan kode berikut pada ArduinoIDE

int val = 0;

void setup() {
  Serial.begin(9600);
}

// put your main code here, to run repeatedly
void loop() {
  // read hall effect sensor value
  val = hallRead();
  // print the results to the serial monitor
  Serial.println(val); 
  delay(1000);
}

Penjelasan kode di atas adalah :

kode bagian ini membaca pengukuran sensor Hall Effect dan menampilkannya di serial monitor
val = hallRead ();
Serial.println (val);

bagian ini menambah jeda 1 detik sehingga saya dapat membacanya pada serial monitor agar hasil yang keluar tidak terlalu cepat ditampilkan pada serial monitor
delay (1000);



- Compile and run

- Buka tools > Serial Monitor sesuaikan baud pada jendela serial monitor sesuai yang terdapat pada kode program

Saya mencoba menggunakan magnet pada ujung obeng



Berikut bacaan sebelum didekatkan oleh magnet 




Berikut ini adalah hasil pembacaan setelah diddekatkan dengan magnet, naik sekitar 3-5 angka sehingga pembacaan menjadi sekitar 16-19






Kali ini saya mencoba menggunakan magnet kulkas




Seperti yang terlihat hasilnya berubah secara signifikan








Pembacaan pada serial plotter dapat dibuka melalui Tools > Serial Plotter



Grafik  pada plotter meningkat drastis dengan menggunakan magnet yang lebih kuat medannya




c. Temperature Sensor

- Masukkan kode berikut ke Arduino IDE kemudian compile dan upload

#ifdef __cplusplus
extern "C" {
#endif
uint8_t temprature_sens_read();
#ifdef __cplusplus}
#endif
uint8_t temprature_sens_read();

void setup() {

  Serial.begin(115200);

}

void loop() {

  Serial.print("Temperature: ");

// Convert raw temperature in F to Celsius degrees

Serial.print((temprature_sens_read() - 32) / 1.8);
Serial.println(" C");
delay(1000);
}

- Buka tools > Serial Monitor > Set baud ke 115200 sesuai kode program di atas

- Kemudian amati output





Error dan Troubleshooting :

Pada project kali ini, hampir semua berjalan cukup lancar dan tidak muncul berbagai permasalahan atau error yang rumit atau complicated, namun pada awalnya saya sempat bingung untuk mendapatkan magnet sehingga saya berpikir untuk menggunakan magnet obeng lalu saya juga teringat terdapat magnet yang terpasang pada pintu kulkas sehingga saya tidak perlu membeli magnet tambahan.


Kompilasi video pengerjaan :


Kesimpulan:

ESP32 memiliki sensor bawaan yang tertanam pada boardnya, sensor internal tersebut dapat digunakan untuk berbagai keperluan dan dapat dibuhungkan dengan komponen luar melalui pin GPIO. Untuk Hall Effect Sensor kekuatan magnet berpengaruh pada pembacaan hasil sensor.

Referensi :

1. randomnerdtutorials.com
2. wikipedia

Terimakasih, sampai jumpa pada project berikutnya!

Posting Komentar

0 Komentar