You are on page 1of 27

LAPORAN PRAKTIKUM 4

PEMODELAN RTOS (REAL-TIME OPERATING SYSTEM)


MENGGUNAKAN KONTROLER ESP32

0 01/05/2023 FOR APPROVAL


REV. DATE DESCRIPTION PREP. CHECK APPROVAL

Institut Teknologi Sepuluh Nopember


OWNER’S DOCUMENT NO.: VI190629_PRAKTIKUM KE - 4

DEPARTEMENT:

LABORATORIUM:

PROJECT COURSE:

Praktikum 4 Sistem Tertanam

TITLE :
PEMODELAN RTOS (REAL-TIME OPERATING SYSTEM) MENGGUNAKAN
KONTROLER ESP32
DATE SIGNATURE SCALE SHEET OF
DRAWN 01/05/2023 IDS
NONE 1 OF 19
JOB NO. Bunga Diva Camilla – 2042201009
DOC NO. VI190629 – 04 REV 0
INT. REV. 0A
SHEET 2 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

REVISION HISTORICAL SHEET

Rev No Date Description

0 01/05/2023 ISSUE FOR APPROVAL

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 3 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 4 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

DAFTAR ISI

DAFTAR ISI........................................................4

DAFTAR GAMBAR.....................................................5

1. DASAR TEORI....................................................6

1.1 Real-Time Operating System (RTOS)......................................................................................6

1.2 ESP 32......................................................................................................................................7

1.3 Visual Studio Code (VS Code)................................................................................................8

1.4 LCD (Liquid Crystal Display).................................................................................................8

1.5 DHT 11....................................................................................................................................9

2 METODE PERCOBAAN..............................................11

2.1 Persiapan Alat dan Bahan......................................................................................................11

2.2 Metode Percobaan..................................................................................................................11

3 HASIL PERCOBAAN...............................................18

4 ANALISA.......................................................20

5 KESIMPULAN....................................................21

LAMPIRAN.........................................................22

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 5 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

DAFTAR GAMBAR

Gambar 1. 1 Mikrokontroler ESP32 DevKit V1...................................................................................8


Gambar 1. 2 LCD 16x2 (Liquid Crystal Display).................................................................................9
Gambar 1. 3 Sensor DHT11................................................................................................................10
Gambar 2. 1 Tampilian VS Code...............................................................................................11
Gambar 2. 2 Tampilian platform IO IDE........................................................................12
Gambar 2. 3 Home PIO...................................................................................................................12
Gambar 2. 4 Framework Arduino...............................................................................................13
Gambar 2. 5 Menu SRC.....................................................................................................................13
Gambar 3. 1 Rangkaian 3 LED...........................................................................................................18
Gambar 3. 2 Rangkaian DHT11 dan LCD 16x2.................................................................................19
Gambar 3. 3 Rangkaian Variasi LCD, DHT, & LED.........................................................................19

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 6 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

1. DASAR TEORI

1.2 Real-Time Operating System (RTOS)

RTOS atau biasa disebut dengan Real-Time Operating System adalah sistem operasi
yang dirancang khusus untuk mengelola dan menjalankan aplikasi pada sistem tertanam
(embedded systems) dengan kebutuhan waktu respons yang ketat. Berbeda dengan sistem
operasi umum yang digunakan pada komputer desktop atau server, RTOS dioptimalkan untuk
menjalankan tugas-tugas dalam waktu yang telah ditentukan (real-time) dengan tingkat
prioritas yang ditetapkan.
RTOS dirancang untuk memberikan respons yang deterministik terhadap kejadian
yang terjadi. Ini berarti bahwa sistem mampu menjalankan tugas dalam waktu yang telah
ditentukan secara konsisten, dengan tingkat ketepatan waktu yang tinggi. Hal ini sangat
penting dalam sistem tertanam yang menghadapi batasan waktu yang ketat, seperti dalam
sistem kontrol industri atau sistem kendali pesawat terbang.
RTOS sangat cocok untuk diterapkan pada embedded system karena memiliki
beberapa keunggulan. Keunggulan tersebut diantaranya:
 Dapat berjalan pada perangkat keras dengan sumber daya yang terbatas.
 Memiliki tingkat modularitas yang tinggi.
 Dapat dikembangkan dan digunakan ulang (dalam hal ini kode dari RTOS).
 Memiliki beberapa fitur yang terdokumentasi lengkap seperti:
- Strategi scheduling.
- Maksimal waktu eksekusi untuk setiap proses
- Mekanisme internal untuk mengatur latency
- Memiliki sistem pengaturan interrupt untuk proses-proses penting
- Konfigurasi kernel dapat diatur secara detail oleh pengembang.

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 7 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

1.2 ESP 32

ESP32 adalah mikrokontroler serbaguna dan Wi-Fi/Bluetooth


system-on-a-chip (SoC). Dikembangkan oleh Espressif Systems,
dapat digunakan di berbagai aplikasi IoT. ESP32 memiliki
kinerja yang mengesankan dengan prosesor dual-core, yang
terdiri dari dua inti mikroprosesor Tensilica Xtensa LX6 yang
memungkinkan pengoperasian independen atau gabungan, sehingga
memungkinkan multitasking tanpa hambatan. ESP32 Mampu
mendukung semuanya mulai dari pemantauan sensor dasar hingga
usaha kompleks seperti robotika atau pertanian cerdas,
keserbagunaan ESP32 bersinar terang.
ESP 32 memiliki harga yang murah ditambah dengan
serangkaian fitur yang mengesankan yang menjadikannya pilihan
utama bagi para penggemar teknologi yang bekerja di proyek IoT
di mana pun.

Gambar 1. 1 Mikrokontroler ESP32 DevKit V1

1.3 Visual Studio Code (VS Code)

Visual Studio Code (VS Code) adalah editor kode sumber


gratis yang dikembangkan oleh Microsoft dan dirancang untuk
berbagai platform termasuk Windows, Linux, dan macOS. VS Code
kaya dan dapat disesuaikan, membuatnya sangat populer di
kalangan pengembang dan pengembang web.

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 8 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

Editor kode sumber yang sangat ringan namun kuat yang


dijalankan dari desktop. Ini menawarkan dukungan bawaan untuk
JavaScript, skrip, dan Node.js, dan memiliki berbagai plugin
untuk bahasa lain termasuk C++, C#, Python, dan PHP. Itu
didasarkan pada Github's Electron, versi universal dari editor
kode Atom berdasarkan JavaScript dan HTML5. Editor ini adalah
lingkungan pengembangan terintegrasi (IDE) berfitur lengkap
yang dirancang untuk pengembang yang bekerja dengan teknologi
cloud terbuka Microsoft.  

1.4 LCD (Liquid Crystal Display)

LCD (Liquid Crystal Display) adalah jenis layar panel


datar yang menggunakan kristal cair dalam bentuk operasi
utamanya. LCD mengkonsumsi daya jauh lebih sedikit daripada
LED karena LCD menghasilkan gambar menggunakan lampu latar.
Layar LCD (Liquid Crystal Display) adalah modul tampilan
elektronik dan memiliki berbagai aplikasi. Layar LCD 16x2
adalah modul yang sangat dasar dan sangat umum digunakan di
berbagai perangkat dan sirkuit. Sebuah LCD 16x2 berarti dapat
menampilkan 16 karakter per baris dan ada 2 baris tersebut.

Gambar 1. 2 LCD 16x2 (Liquid Crystal Display)

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 9 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

1.5 DHT 11

Sensor DHT11 menampilkan hasil pengukuran suhu &


kelembaban dengan output sinyal digital yang dikalibrasi.
Dengan menggunakan teknik akuisisi sinyal digital eksklusif
dan teknologi penginderaan suhu & kelembaban, sensor ini
memastikan keandalan yang tinggi dan stabilitas jangka panjang
yang sangat baik. Sensor ini mencakup komponen pengukuran
kelembaban tipe resistif dan komponen pengukuran suhu NTC, dan
terhubung ke mikrokontroler 8-bit berkinerja tinggi,
menawarkan kualitas luar biasa, respons cepat, kemampuan anti-
interferensi, dan efektivitas biaya. DHT11 output dikalibrasi
sinyal digital menggunakan teknik pengumpulan sinyal digital
eksklusif dan kelembapan teknologi penginderaan, memastikan
keandalan dan stabilitasnya. Elemen penginderaannya terhubung
dengan chip tunggal 8-bit komputer.
Setiap elemen DHT11 dikalibrasi secara ketat di
laboratorium yang sangat akurat dalam kalibrasi kelembaban.
Koefisien kalibrasi disimpan sebagai program dalam memori OTP,
yang digunakan oleh proses pendeteksian sinyal internal
sensor. Antarmuka serial kabel tunggal membuat integrasi
sistem menjadi cepat dan mudah. Ukurannya yang kecil, konsumsi
daya yang rendah, dan transmisi sinyal hingga 20 meter
menjadikannya pilihan terbaik untuk berbagai aplikasi,
termasuk yang paling menuntut. Komponennya adalah paket pin
baris tunggal 4-pin. Lebih mudah untuk terhubung dan paket
khusus dapat disediakan sesuai dengan permintaan pengguna.

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 10 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

Gambar 1. 3 Sensor DHT11

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 11 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

2 METODE PERCOBAAN

2.1 Persiapan Alat dan Bahan

Praktikum Sistem Tertanam dilakukan secara luring,


sehingga peralatan inti yang diperlukan adalah sebagai
berikut.
1. PC/Laptop
2. Software Visual Studio Code
3. Extension PlatforIO IDE (VSC)
4. Mikrokontroler ESP32
5. Breadboard

2.2 Metode Percobaan

Adapun prosedur praktikum P3 Sistem Tertanam adalah


sebagai berikut:
1. Praktikan membuka software Vscode
2. Prkatikan Memilih tab extension
3. Praktikan mensearch PlatformIO
4. Praktikan memilih PlatformIO pada list
5. Kemudian Praktikan menekan install button

Gambar 2. 1 Tampilian VS Code

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 12 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

6. Setelah selesai install akan muncul tampilan seperti


dibawah

Gambar 2. 2 Tampilian platform IO IDE

7. Klik icon platfromio


8. Pilih menu Pio Home > Open

Gambar 2. 3 Home PIO

9. Kemudian Praktikan memilih menu new projects


10. Nama project (nama project tidak boleh ada space).
11. Praktikan memilih board yang akan digunakan (ESP32),
sesuaikan tipe boardnya.
12. Framework yang digunakan adalah Arduino

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 13 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

Gambar 2. 4 Framework Arduino

13. Kemudian Praktikan menekan tombol Finish.


14. Platform IO akan mengenerate template awal project,
perhatian, dibutuhkan koneksi Internet.
15. Praktikan mengklik menu src > main.cpp

Gambar 2. 5 Menu SRC

16. Praktikan memasukan source code berikut.


a. Menghidupkan dan mematikan tiga LED dengan frekuensi
yang berbeda
#include <Arduino_FreeRTOS.h> #include <semphr.h>

#define LED1 21
#define LED2 19

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 14 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

#define LED3 17

SemaphoreHand1e_t xSerialSemaphore;

void Task LEDI (void *pvParameters); void Task LED2


(void *pvParameters); void Task LED3 (void
*pvParameters);
vola setup(){
Serial.begin(9600); if(xSerialSemaphore == NULL){
xSerialSemaphore = xSemaphoreCreateMutex();
if((xSerialSemaphore)!= NULL)
xSemaphoreGive((xSerialSemaphore));
}
xTaskCreate(Task_LED1, (const portCHAR*)"T1",128 ,NULL
1,NULL);
xTaskCreate(Task_LED2, (const portCHAR*)"T2",128 ,NULL
1,NULL);
xTaskCreate(Task_LED3, (const portCHAR*)"T3",128 ,NULL
1,NULL);
}

void Loop(){}
void Task_LED1(void*pvParameters_attribute_((unused)))
{ pinMode(LED1, OUTPUT);
for(;;){
digitalWrite(LED1,!digitaLRead(LED1)); vTaskDeIay(30);
}
}

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 15 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

void Task_LED2(void*pvParameters_attribute_((unused)))
{ pinMode(LED2, OUTPUT);
for(;;){
digitalWrite(LED2,!digitaLRead(LED2)); vTaskDeIay(60);
}
}

void Task_LED3(void*pvParameters_attribute_((unused)))
{ pinMode(LED2, OUTPUT);
for(;;){
digitalWrite(LED3,!digitaLRead(LED3)); vTaskDeIay(90);
}
}
b. Sensor DHT11 dengan LCD I2C 16x2
#include <stdio.h>
#include <freertos/FreeRTOS.h> #include
<freertos/task.h> #include "esp_system.h" #include
"dht.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define DHT_PIN GPIO_NUM_4 #define DHT_TYPE


DHT_TYPE_DHT11 #define LCD_ADDR 0x27
#define LCD_COLS 16
#define LCD_ROWS 2
LiquidCrystal_I2C lcd(LCD_ADDR, LCD_COLS, LCD_ROWS);
void dht_task(void *pvParameters) {

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 16 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

dht_sensor_t sensor; sensor.pin = DHT_PIN; sensor.type =


DHT_TYPE;

while (1) {
if (dht_read_data(&sensor) == ESP_OK) { lcd.setCursor(0,
0); lcd.print("Temp: "); lcd.print(sensor.temperature);
lcd.print(" C");

lcd.setCursor(0, 1); lcd.print("Humid: ");


lcd.print(sensor.humidity); lcd.print(" %");
} else { lcd.clear();
lcd.setCursor(0, 0); lcd.print("Error reading");
lcd.setCursor(0, 1); lcd.print("DHT sensor");
}

vTaskDelay(pdMS_TO_TICKS(2000)); // Delay 2 detik


}
}

void app_main() { lcd.begin(LCD_COLS, LCD_ROWS);


lcd.backlight();

xTaskCreate(dht_task, "dht_task", 2048, NULL, 1, NULL);


}
17. Klik menu Build
18. Lalu klik menu upload untuk memberikan program ke ESP32.
Pastikan ESP32 sudah terhubung dengan PC.
19. Gambar rangkaian

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 17 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

3 LED

DHT11 dengan LCD I2C 16x2

20. Rangkai peralatan seperti design wiring yang telah


dibuat

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 18 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

3 HASIL PERCOBAAN

3. 1 Percobaan 1
Setelah melakukan praktikum, didapat hasil percobaan 1,
yaitu rangkaian 3 LED untuk menghidupkan dan mematikan LED
dengan frekuensi yang berbeda menggunakan kontroler ESP32. LED
yang digunakan adalah berwarna hijau, kuning, merah. Dimana
tiap LED dirangkai secara seri dan membutuhkan resistor untuk
tiap LED agar LED dapat hidup.

Gambar 3. 1 Rangkaian 3 LED


3. 2 Percobaan 2
Setelah melakukan praktikum, didapat hasil hasil percobaan
2 yaitu rangkaian LCD 16X2 dan DHT menggunakan kontroler ESP32
bertujuan menampilkan hasil pengukuran dari sensor DHT 11 pada
LCD 16x2. Sensor DHT11 memiliki 3 kaki, yang tiap kakinya
disambungkan pada GND (Ground), 5V, dan pin digital input P4
pada ESP32. Hasil yang ditampilkan berupa Temperature
menggunakan satuan derajat Celcius dan Humidity menggunakan
satuan persen.

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 19 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

Gambar 3. 2 Rangkaian DHT11 dan LCD 16x2


3. 3 Variasi
Setelah melakukan praktikum, didapat hasil variasi yaitu
rangkaian LCD 16X2, DHT, dan LED.

Gambar 3. 3 Rangkaian Variasi LCD, DHT, & LED

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 20 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

4 ANALISA

Setelah dilakukan analisis pada hasil percobaan 1 dan 2 dapat


diketahui bahwa pada percobaan ini menunjukkan kemampuan kontroler
ESP32 dalam mengontrol berbagai komponen elektronik seperti LED dan
sensor, serta kemampuannya dalam menampilkan data pada layar LCD.
Namun tentunya penggunaan ESP 32 sebagai kontroler ini ditunjang
dengan di include-kan RTOSS dalam library dan dalam source code
program. Sehingga dengan adanya RTOSS ini memberikan keuntungan
yang signifikan dalam menjalankan program. Dengan adanya RTOSS
program dapat memilih tugas prioritas mana yang hrus dikerjakan
terlkebih dahulu, selain itu RTOSS hanya memakan memori perangkat
yang lebih sedikit sehingga mempersingkat waktu untuk membuid.
Kemampuan RTOSS untuk meningkatkan kinerja perangkat dalam
menjalankan program dapat terlihat jelas pada percobaan ketiga,
dimana program yang dibuat jauh lebih kompleks dan berat karena
percobaan satu dan dua digabungkan serta harus divariasikan. Pada
percobaan tiga ini sensor DHT 11 mensensing suhu dan kelembaban
kemudian hasilnya ditampilkan pada LCD, selain itu perangkat juga
diatur set point agar ketika suhu dan kelembaban melebihi set point
maka lampu led berwarna merah akan menyala sebagai warning. Dengan
demikian, penggunaan RTOSS dapat memberikan fleksibilitas,
efisiensi, serta kemudahan dalam menjalankan program.

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 21 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

5 KESIMPULAN

Berdasarkan analisis yang dilakukan, dapat diambil beberapa kesimpulan sebagai berikut:
1. Pada percobaan pertama praktikan berhasil menyalakan LED merah, hijau, dan kuning
dengan beda frekuensi sesuai perintah pada kode program
2. Pada percobaan kedua praktikan berhasil membuat sensor DHT 11 melakukan sensing
temperatur dan kelembaban serta menampilkan hasilnya pda LCD
3. Pada percobaan ketiga praktikan berhasil memvariasikan percobaan satu dan dua,
sehingga didapatkan sensor DHT 11 yang dapat mensensing temperatur dan kelembaban,
lalu menampilakn hasil pada LCD dan LED merah akan menyala sebagai safety apabila
suu dan kelembaban melabihi set poin yang telah diatur dalam source code
4. Penggunaan RTOSS (Real-Time Operating System Scheduler) dalam library dan source
code program ESP32 memberikan keuntungan signifikan. RTOSS memungkinkan
program untuk memilih prioritas tugas yang harus dikerjakan terlebih dahulu,
meningkatkan kinerja perangkat, dan mengoptimalkan penggunaan memori.
5. Pada percobaan ketiga menunjukkan fleksibilitas dan kemudahan dalam menjalankan
program berkat penggunaan kontroler ESP32 yang didukung dengan RTOSS sehingga
program yang lebih kompleks dan berat dapat dijalankan jauh lebih efisien.

LAMPIRAN
Pelaksanaan Praktikum Hari Rabu, 31 Mei 2023

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 22 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

Percobaan 1

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 23 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

Percobaan 2

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 24 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

Variasi

Source Code Variasi


#include <Wire.h>  // Pustaka Wire untuk komunikasi I2C
#include <LiquidCrystal_I2C.h>  // Pustaka LiquidCrystal_I2C untuk mengendalikan LCD
I2C
#include <Adafruit_Sensor.h>  // Pustaka Sensor dari Adafruit
#include <DHT.h>  // Pustaka DHT untuk membaca sensor DHT11
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>

// Pin untuk sensor DHT11

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 25 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

#define DHT_PIN 4

// Alamat I2C untuk LCD I2C (sesuaikan dengan alamat LCD I2C Anda)
#define LCD_ADDRESS 0x27

// Pin untuk LED merah


#define RED_LED_PIN 13

// Pin untuk LED kuning


#define YELLOW_LED_PIN 12

// Ambil instance DHT


DHT dht(DHT_PIN, DHT11);

// Objek LCD I2C


LiquidCrystal_I2C lcd(LCD_ADDRESS, 16, 2);

// Task untuk membaca sensor DHT dan mengontrol LED


void dhtTask(void *pvParameters) {
  (void) pvParameters;

  while (1) {
    // Baca suhu dan kelembaban dari sensor DHT
    float temperature = dht.readTemperature();
    float humidity = dht.readHumidity();

    // Tampilkan suhu dan kelembaban pada LCD


    lcd.setCursor(0, 0);
    lcd.print("Temp: ");
    lcd.print(temperature);
    lcd.print("C");

    lcd.setCursor(0, 1);
    lcd.print("Humidity: ");
    lcd.print(humidity);
    lcd.print("%");

    // Mengontrol LED berdasarkan nilai suhu dan kelembaban


    if (humidity > 65) {

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 26 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

      digitalWrite(RED_LED_PIN, HIGH);  // Hidupkan LED merah


    } else {
      digitalWrite(RED_LED_PIN, LOW);  // Matikan LED merah
    }

    if (temperature > 26) {


      digitalWrite(YELLOW_LED_PIN, HIGH);  // Hidupkan LED kuning
    } else {
      digitalWrite(YELLOW_LED_PIN, LOW);  // Matikan LED kuning
    }

    vTaskDelay(pdMS_TO_TICKS(2000));  // Tunda selama 2 detik


  }
}

void setup() {
  // Inisialisasi Serial
  Serial.begin(115200);

  // Inisialisasi komunikasi I2C


  Wire.begin();

  // Inisialisasi sensor DHT


  dht.begin();

  // Inisialisasi LCD
  lcd.begin(16, 2);
  lcd.backlight();  // Hidupkan backlight LCD

  // Mengatur pin LED sebagai output


  pinMode(RED_LED_PIN, OUTPUT);
  pinMode(YELLOW_LED_PIN, OUTPUT);

  // Buat task untuk membaca sensor DHT dan mengontrol LED


  xTaskCreatePinnedToCore(
    dhtTask,        // Fungsi task
    "dhtTask",      // Nama task
    4096,           // Ukuran stack task
    NULL,           // Parameter task

DEPARTEMEN TEKNIK INSTRUMENTASI


SHEET 27 OF 27

REV
JOB NO. : BUNGA DIVA C

PEMODELAN FINITE STATE MACHINE


0
DOC. NO.: VI190627 – 04
MENGGUNAKAN KONTROLER ESP32

P4 SISTER
01-05-2023

    1,              // Prioritas task


    NULL,           // Task handle
    0               // Core yang digunakan (0 atau 1)
  );
}

void loop() {
  // Tidak ada yang perlu dilakukan di loop utama
}

DEPARTEMEN TEKNIK INSTRUMENTASI

You might also like