Memprogram ESP8266 dengan RTOS SDK (Bagian 2)
Tulisan Ini adalah bagian kedua tentang bagaimana memprogram ESP8266 menggunakan ESP8266 RTOS SDK. Jika pembaca belum memahami apa itu RTOS, disarankan untuk membaca terlebih dahulu artikel sebelumnya di tautan ini.
Kali ini embeddednesia akan membahas bagaimana membuat program sederhana hello world menggunakan ESP8266 RTOS SDK. Langkah – langkah yang nanti dijelaskan disini tidak akan berbeda jauh jika pembaca memprogram ESP32 menggunakan ESP-IDF. Bagi mereka yang sudah pernah mengikuti tutorial tentang ESP-IDF, pasti tidak akan banyak menemui kesulitan mengikuti pembahasan ini.
- Menentukan workspace
Yang pertama harus dilakukan adalah membuat direktori workspace tempat program nanti yang nanti dibuat. Misalnya penulis akan membuat direktori workspace di D:\\esp8266
. Berikutnya copy template program hello world ke direktori workspace. Sampel template program hello world dapat ditemui di alamat berikut
C:\msys32\home\{user.name}\esp\ESP8266_RTOS_SDK\examples\get-started\project_template
Setelah selesei , rename menjadi HelloESP8266
.
- Menuconfig
Jalankan msys shell melalui C:\mysys32\msys2.exe
. Menggunakan jendela terminal tersebut, bernavigasilah ke direktori HelloESP8266
dengan menggunakan perintah cd HelloESP8266
. Lalu atur konfigurasi project dengan menggunakan perintah menuconfig
Dari perintah tersebut, akan tampil blue screen dimana programmer bisa melakukan konfigurasi dari SDK. Kemudian pilih Serial flasher config
lalu tekan enter.
Adverstiment
Pada halaman berikutnya enter label Default serial port
lalu masukan port serial yang digunakan (dapat dilihat pada Device Manager). Sebagaimana pernah dijelaskan di dalam bagian pertama tulisan ini, penulis menggunakan COM3. Sesuaikan nilai ini dengan nomer port serial pada masing – masing environment.
Perhatikan nilai Default Serial Port akan berubah. Sesuaikan nilai pengaturan lainnya sebagaimana tangkapan layar berikut
Adverstiment
Save pengaturan dengan menggerakan panah keyboard ke <Save>
lalu enter. Halaman berikutnya hanyalah halaman konfirmasi untuk menyimpan konfigurasi di file yang telah diatur. Biarkan saja pada kondisi default, pilih OK
Setelah proses konfigurasi SDK selesei, kini jalankan Eclipse CDT sebagaimana yang telah diinstall pada tulisan sebelumnya. Pilih direktori workspace yang telah dibuat (di D:/esp8266/workspace
).
Saat Eclipse IDE telah berjalan. Import project melalui menu File > Import. Kemudian pada jendela dialog Import pilih C/C++ > Existing Code as Makefile Project dan klik Next.
Berikutnya, isikan Existing Code Location
dengan direktori project HelloESP8266. Project Name akan muncul otomatis, sama dengan nama direktori template yang di-clone. Pada jendela dialog yang sama didalam panel Toolchain for Indexer Settings, uncheck checkbox“Show only available toolchains that support this platform
“, sehingga muncul beberapa daftar, pilih Cygwin GCC. lalu Finish.
- Advertisement -
Direktori project baru akan terbentuk di dalam Project Explorer, akan ada beberapa indikasi error di dalam project tersebut, tapi jangan kuati, hal tersebut adalah normal, pada akhir proses konfigurasi project pada langkah berikutnya, error tersebut tidak akan muncul lagi.
- Konfigurasi Project
Klik kanan project tersebut dan pilih Properties. Pada jendela Dialog Propeties, pilih C/C++ Build dan hilangkan centang Use default build command
dan masukkan build command
berikut
python ${IDF_PATH}/tools/windows/eclipse_make.py
Pada properties C/C++ Build > Environment . Klik button Add dan masukan nama BATCH_BUILD
dengan nilai 1. Klik Add lagi, lalu masukkan IDF_PATH dan masukan nilai berdasarkan keluaran dari terminal MSYS2 ketika dimasukan perintah berikut
Berikut adalah screenshoot dari dari hasil akhir perubahan tersebut. Klik Apply
Advertisement
Hal berikutnya yang perlu diatur adalah pada bagian C/C++ General > Preprocessor Include Paths, Macros, etc. klik tab Provider, kemudian pada daftar provider klik opsi CDT GCC Built-in Compiler Settings Cygwin
di bawah Command to get compiler specs
replace teks dengan berikut
xtensa-lx106-elf-gcc ${FLAGS} -E -P -v -dD "${INPUTS}"
Langkah berikutnya, klik opsi CDT GCC Build Output Parser
dan replace nilai yang ada di compiler command pattern
dengan nilai berikut
xtensa-lx106-elf-((g?cc)|([gc]\+\+)|(clang))
Begitu semua pengaturan selesei dilakukan, klik button Apply and Close
- Building dan Flashing Project
Setelah pengaturan project tersebut, berikutnya copy and paste code berikut pada main/user_main.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
This example code is in the Public Domain (or CC0 licensed, at your option.) | |
Unless required by applicable law or agreed to in writing, this | |
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR | |
CONDITIONS OF ANY KIND, either express or implied. | |
*/ | |
#include <stdio.h> | |
#include "esp_system.h" | |
#include "freertos/FreeRTOS.h" | |
#include "freertos/task.h" | |
#include "esp_system.h" | |
#include "esp_spi_flash.h" | |
/****************************************************************************** | |
* FunctionName : app_main | |
* Description : entry of user application, init user function here | |
* Parameters : none | |
* Returns : none | |
*******************************************************************************/ | |
void app_main(void) | |
{ | |
printf("Hello world!\n"); | |
printf("SDK version:%s\n", esp_get_idf_version()); | |
esp_restart(); | |
} |
simpan code tersebut dengan Ctrl+S. Kemudian klik kanan pada direktori project di project explorer. Pilih Build Targets > Create. Saat jendela pop-up muncul. Masukkan sebuah nama, misalkan flash
sebagai Target name lalu OK.
Untuk memulai proses build , pilih Build Targets pada project explorer lalu klik kanan flash
> Build Target. Proses build akan terjadi beberapa menit. Tunggu hingga Toolchain selesei melakukan build dan melakukan flashing pada ESP8266 sebagaimana pada tangkapan layar berikut
Untuk melihat result program yang telah di-flash pada ESP8266. Buka terminal mingw32.exe dan ketikan perintah make monitor
pada direktori HelloESP8266