Esp32 Platformio Panduan Langkah Demi Langkah Untuk Pemula
Esp32 Platformio Panduan Langkah Demi Langkah Untuk Pemula
Jika Anda baru saja memulai dunia IoT dan embedded programming, mungkin pernah mendengar tentang PlatformIO. PlatformIO adalah ekosistem pengembangan open-source yang memudahkan pengembangan proyek berbasis mikrokontroler seperti ESP32, Arduino, STM32, dan banyak lagi. Dibandingkan Arduino IDE tradisional, PlatformIO menawarkan manajemen library yang lebih rapi, integrasi Git, serta dukungan untuk berbagai board dan framework.
Di blog ini, kita akan membahas Panduan Langkah Demi Langkah untuk Pemula agar Anda bisa langsung memulai proyek IoT pertama Anda.
Tutorial selengkapnya bisa diikuti di video berikut.
Dalam proyek PlatformIO, file platformio.ini berfungsi sebagai konfigurasi utama yang menentukan board target, framework yang digunakan, serta daftar library dan dependensi yang dibutuhkan proyek, sehingga PlatformIO bisa membangun dan mengunggah kode ke mikrokontroler dengan benar; main.cpp adalah file kode sumber utama yang berisi logika program, seperti inisialisasi perangkat keras di fungsi setup() dan loop program utama di loop(), sementara library BlinkModule menyediakan modul atau kelas tambahan untuk mengatur perilaku LED berkedip secara modular, sehingga kode di main.cpp menjadi lebih rapi, terstruktur, dan mudah digunakan kembali di proyek lai.
Struktur Direcotry
ProjectIoT/
|_ Project01/
| |_ src/
| |_ main.cpp
|_ shared/
|_ BlinkModule/
|_ BlinkModule.h
|_ BlinkModule.cpp
Script Program
platformio.ini
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
lib_extra_dirs = ../shared/
src/main.cpp
#include <Arduino.h>
#include "BlinkModule.h"
BlinkModule blink(2, 300);
BlinkModule blink2(5, 100);
void setup() {
Serial.begin(115200);
Serial.println("Hello, Arduino!");
blink.start();
blink2.start();
}
void loop() {
// put your main code here, to run repeatedly:
}
shared/BlinkModule/BlinkModule.h
#ifndef BLINK_MODULE_H
#define BLINK_MODULE_H
#include <Arduino.h>
class BlinkModule {
public:
BlinkModule(uint8_t pin = 2, uint16_t intervalMs = 500);
void start(); // memulai task
private:
uint8_t _pin;
uint16_t _interval;
static void task(void *param);
};
#endif
shared/BlinkModule/BlinkModule.cpp
#include "BlinkModule.h"
BlinkModule::BlinkModule(uint8_t pin, uint16_t intervalMs) {
_pin = pin;
_interval = intervalMs;
}
// Static task untuk FreeRTOS
void BlinkModule::task(void *param) {
BlinkModule *self = static_cast<BlinkModule*>(param);
pinMode(self->_pin, OUTPUT);
while (true) {
digitalWrite(self->_pin, HIGH);
vTaskDelay(self->_interval / portTICK_PERIOD_MS);
digitalWrite(self->_pin, LOW);
vTaskDelay(self->_interval / portTICK_PERIOD_MS);
}
}
// Memulai task
void BlinkModule::start() {
xTaskCreate(
BlinkModule::task,
"BlinkTask",
2048,
this,
1,
NULL
);
}
Check it out!
Tags:
Ikuti terus tutorial saya di e-Project dan channel
saya di