mruby-esp32 项目使用教程
mruby-esp32mruby application template for ESP32项目地址:https://gitcode.com/gh_mirrors/mr/mruby-esp32
1. 项目的目录结构及介绍
mruby-esp32/
├── CMakeLists.txt
├── components/
│ ├── mruby/
│ ├── mruby-esp32-system/
│ ├── mruby-esp32-wifi/
│ ├── mruby-esp32-mqtt/
│ ├── mruby-esp32-gpio/
│ ├── mruby-esp32-ledc/
│ └── ...
├── main/
│ ├── CMakeLists.txt
│ ├── component.mk
│ ├── main.c
│ └── main.rb
├── sdkconfig
└── ...
CMakeLists.txt
: 主构建文件,用于配置整个项目的构建过程。components/
: 包含项目的所有组件,每个组件都是一个独立的模块,如mruby-esp32-system
、mruby-esp32-wifi
等。main/
: 包含项目的主文件,包括main.c
和main.rb
。sdkconfig
: 项目的配置文件,用于配置 ESP-IDF 的各种参数。
2. 项目的启动文件介绍
main/main.c
main.c
是项目的入口文件,负责初始化 ESP-IDF 框架并加载 Ruby 脚本。
#include <stdio.h>
#include "esp_system.h"
#include "esp_log.h"
#include "mruby.h"
#include "mruby/compile.h"
void app_main(void)
{
mrb_state *mrb = mrb_open();
if (mrb == NULL) {
ESP_LOGE("MRUBY", "Failed to initialize mruby");
return;
}
FILE *fp = fopen("/main.rb", "r");
if (fp == NULL) {
ESP_LOGE("MRUBY", "Failed to open main.rb");
mrb_close(mrb);
return;
}
mrb_load_file(mrb, fp);
fclose(fp);
mrb_close(mrb);
}
main/main.rb
main.rb
是 Ruby 脚本的主文件,包含项目的业务逻辑。
puts "Hello from mruby-esp32!"
# 示例代码
# require 'mruby-esp32-gpio'
# gpio = ESP32::GPIO.new(2)
# gpio.output
# gpio.high
3. 项目的配置文件介绍
sdkconfig
sdkconfig
是 ESP-IDF 的配置文件,用于配置项目的各种参数,如串口波特率、Wi-Fi 配置等。
# 示例配置
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=y
CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH=y
CONFIG_ESP32_WIFI_STATIC_IP=y
CONFIG_ESP32_WIFI_STATIC_IP_ADDRESS="192.168.1.100"
通过修改 sdkconfig
文件,可以调整项目的运行参数,以适应不同的硬件环境和需求。
以上是 mruby-esp32
项目的基本使用教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望这些内容能帮助你更好地理解和使用该项目。
mruby-esp32mruby application template for ESP32项目地址:https://gitcode.com/gh_mirrors/mr/mruby-esp32