Internet of Thing Untuk Pembelajaran Sains: Pemantauan Kualitas Udara (Bagian 4)

Mempersiapkan Program

Dalam pengembangan sistem Internet of Things (IoT), dibutuhkan lingkungan kerja yang efisien, fleksibel, dan mendukung proses simulasi sebelum implementasi pada perangkat keras nyata. Salah satu kombinasi tools yang banyak digunakan adalah PlatformIO sebagai lingkungan pengembangan (IDE berbasis Visual Studio Code) dan Wokwi Simulator sebagai media simulasi rangkaian elektronik.


PlatformIO sebagai Development Environment

PlatformIO merupakan ekosistem pengembangan embedded system yang mendukung berbagai board seperti ESP32, ESP8266, Arduino, dan lainnya. Keunggulan PlatformIO antara lain:

  1. Manajemen library otomatis
  2. Struktur proyek yang rapi
  3. Integrasi dengan Visual Studio Code
  4. Mendukung banyak framework (Arduino, ESP-IDF, dll)

Agar program yang dibuat dapat dijalankan di Wokwi, diperlukan sinkronisasi antara file konfigurasi dan struktur proyek, yaitu:

  • diagram.json → konfigurasi rangkaian
  • platformio.ini → konfigurasi board dan library

Struktur Proyek

Berikut contoh struktur proyek yang digunakan:

project/
|-- src/
|   |-- main.cpp
|-- lib/
|   |-- LEDController/
|   |   |-- LedController.h
|   |   |-- LedController.cpp
|   |-- BuzzerController/
|   |   |-- BuzzerController.h
|   |   |-- BuzzerController.cpp
|   |-- TermistorModule/
|   |   |-- TermistorModule.h
|   |   |-- TermistorModule.cpp
|   |-- OledModule/
|   |   |-- OledModule.h
|   |   |-- OledModule.cpp
|   |-- WiFiModule/
|   |   |-- WiFiModule.h
|   |   |-- WiFiModule.cpp
|   |-- WebModule/
|   |   |-- WebModule.h
|   |   |-- WebModule.cpp
|-- diagram.json
|-- wokwi.toml
|-- platformio.ini

Alur Pengembangan

Alur umum penggunaan PlatformIO dengan Wokwi:

  1. Inisiasi proyek
  2. Konfigurasi platformio.ini
  3. Menulis kode di main.cpp
  4. Membuat library di folder lib
  5. Menambahkan library ke platformio.ini
  6. Menggunakan library di main.cpp
  7. Build dan debugging
  8. Uji di simulator

Inisiasi dan Simulasi Awal

Buka terminal di Visual Studio Code, lalu jalankan:

pio init

Perintah ini akan membuat struktur proyek secara otomatis.


Pengaturan platformio.ini

Buka file platformio.ini, lalu tambahkan konfigurasi berikut:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino

lib_deps =

Penjelasan:

  • [env:esp32dev] → harus sama dengan konfigurasi di wokwi.toml
  • platform = espressif32 → platform resmi ESP32
  • board = esp32dev → jenis board
  • framework = arduino → framework yang digunakan
  • lib_deps → daftar library

Membuat Program Pertama

Buat file src/main.cpp, lalu tuliskan kode berikut:

#include <Arduino.h>

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

void loop() {
    Serial.println("Hello IoT");
    delay(1000);
}

Penjelasan:

  • #include <Arduino.h> → memanggil library Arduino
  • setup() → dijalankan sekali saat awal
  • Serial.begin(115200) → komunikasi serial
  • loop() → berjalan terus menerus
  • Serial.println() → menampilkan teks
  • delay(1000) → jeda 1 detik

Pengujian Code Program

Untuk melakukan build program, jalankan:

pio run

Jika berhasil, akan muncul pesan:

Successfully created esp32 image.

File hasil build tersimpan di:

.pio/build/esp32dev/

File penting:

  • firmware.bin
  • firmware.elf

Upload ke Serial Monitor (Opsional)

Untuk melihat output serial secara langsung:

pio device monitor

Output yang muncul:

Hello IoT
Hello IoT
Hello IoT

Mensimulasikan Hasil

Untuk menjalankan simulasi di Wokwi:

  1. Klik ikon Wokwi di sidebar
  2. Klik Start Simulation

Jika tidak ada error:

  • Simulator akan berjalan
  • Program mulai dieksekusi
  • Serial output dapat diamati

Tips Debugging

Jika simulasi tidak berjalan:

  • Pastikan platformio.ini sesuai dengan wokwi.toml
  • Pastikan file firmware.bin sudah terbentuk
  • Pastikan tidak ada error saat pio run
  • Gunakan:
pio run --target clean
pio run

Dengan tahap ini, Anda sudah berhasil:

  • Menyiapkan environment IoT
  • Membuat program pertama
  • Melakukan build
  • Menjalankan simulasi
Written by: Harjito
Category: 3D design & IoT Tutorials
Related Articles
Categories