Commit ff66104f by marwan

Initial commit

parent 8eb27f4c
......@@ -37,6 +37,6 @@ flash:
$(COMPONENT_IDF_PATH)/../esptool --chip esp32 --port $(port) --baud 921600 --before "default_reset" --after "hard_reset" write_flash -z --flash_mode "dio" --flash_freq "40m" --flash_size detect 0x1000 $(COMPONENT_IDF_PATH)/lib/release/bootloader.bin 0x8000 $(COMPONENT_IDF_PATH)/lib/release/default.bin 0x10000 $(BUILD_APP_DIR)/$(board).bin
flash_all:
$(COMPONENT_IDF_PATH)/../esptool --chip esp32 --port $(port) --baud 921600 --before "default_reset" --after "hard_reset" write_flash -z --flash_mode "dio" --flash_freq "40m" --flash_size detect 0x1000 $(COMPONENT_IDF_PATH)/lib/release/bootloader.bin 0x8000 $(COMPONENT_IDF_PATH)/lib/release/default.bin 0x10000 $(BUILD_APP_DIR)/$(board).bin 0x150000 $(BUILD_APP_DIR2)/$(board2).bin
# cannot use
monitor:
screen $(port) $(boadrate)
\ No newline at end of file
#include <stdio.h>
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "kidbright32.h"
#include "devman.h"
#include "mcp7940n.h"
MCP7940N mcp7940n = MCP7940N(0, MCP7940N_ONBOARD_ADDR);
void vUserAppTask(void *pvParameters) {
// init device manager
printf("test\n");
vTaskDelete(NULL);
}
......@@ -62,7 +62,8 @@ void iotTask(void *pvParameters) {
vTaskDelay(100 / portTICK_RATE_MS);
if (get_B1stateClicked() || button12.is_sw1_pressed()) {
ht16k33.scroll((char *)"sw", true);
mw_switch_app();}
mw_switch_app();
}
ESP_ERROR_CHECK(mw_init_wifi());
vTaskDelay(400 / portTICK_RATE_MS);
vTaskDelete(NULL);
......
simple_app_switching
---
---
simple_app_switching เป็นตัวอย่างที่ใช้ Lib mw_ble_gatt สำหรับการ switch เฟิร์มแวร์ โดยเฟิร์มแวร์แรกอยู่ในโฟลเดอร์ main และเฟิร์มแวร์อันที่สองอยู่ในโฟลเดอร์ main2
- เฟิร์มแวร์ใน main เป็น เฟิร์มแวร์หลักใช้ api ESP_ERROR_CHECK(mw_init_wifi()); สำหรับการเชื่อมต่อไวไฟ ตาม ssid และรหัสของ Wifi ที่บันทึกในความจำไม่ลบเลือน (์NVS) ของตนเอง
- เฟิร์มแวร์ใน main2 เป็น เฟิร์มแวร์รองใช้ API mw_init_ble_config_wifi() สำหรับการตั้งค่า Wifi ผ่าน Bluetooth และการทำงานอื่น ๆ ถูกอธิบายใน readme.md ตามเส้นทาง path mw_ble_gatt-kidbright
<br><br>
การทำงานของ Application
---
---
ESP32 สามารถสลับไปทำงานเฟิร์มแวร์หลักและเฟิร์มแวร์รองตามเงื่อนไขดังนี้
- เมื่อ ESP32 กำลังทำงานในเฟิร์มแวร์หลัก การกด SW1 ค้าง แล้วกด reset จะทำให้ ESP32 สลับไปทำงานเฟิร์มแวร์รอง
- เมื่อ ESP32 กำลังทำงานในเฟิร์มแวร์รอง การกด SW2 ค้าง และปล่อย SW2 เมื่อ LED iot กระพริบอย่างน้อย 5 ครั้ง จะทำให้ ESP32 สลับไปทำงานเฟิร์มแวร์หลัก
<br><br>
การใช้งาน เฟิร์มแวร์
---
---
ใช้คำสั่ง make all port="{ชื่อ port}" เช่น make all port="COM26" สำหรับระบบปฏิบัติการ Window หรือ make all port="/dev/ttyUSB0" สำหรับระบบปฏิบัติการ linux ตามเส้นทาง path mw_ble_gatt-kidbright/example/simple_app_switching ดังรูปที่ 1 เพื่อ build และ flash โปรแกรมไปยัง ESP32<br>
<img
src="image/1.jpg"
alt="Alt text"
title="Optional title"
style="display: inline-block; margin: 0 auto; max-width: 1000px"> <br>
รูปที่ 1 การ run เฟิร์มแวร์
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment