Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
879,69 KB
Nội dung
BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG ******* BÁO CÁO ĐỒ ÁN HỆ THỐNG NHÚNG Đề tài: Xây dựng hệ thống đồng hồ hiển thị thời gian thực, nhiệt độ độ ẩm website Giảng viên: Thầy Nguyễn Ngọc Minh Nhóm mơn học: 03 Nhóm BTL: 11 Thành viên: Vũ Tuấn Anh – B18DCDT016 Đào Duy Khánh – B18DCDT108 Phạm Phú Phúc – B18DCDT187 Trần Long Thành – B18DCDT236 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh MỞ ĐẦU Ngày với phát triển mạnh mẽ ngành khoa học kỹ thuật, công nghệ kỹ thuật điện tử mà kỹ thuật tự động điều khiển đóng vai trị quan trọng lĩnh vực khoa học kỹ thuật, quản lý, công nghiệp, cung cấp thơng tin Do sinh viên chun ngành Điện – Điện tử phải biết nắm bắt vận dụng cách có hiệu nhằm góp phần vào phát triển khoa học kỹ thuật giới nói chung phát triển kỹ thuật điện tử nói riêng Bên cạnh thúc đẩy phát triển kinh tế nước nhà Như biết,nhu cầu sống ngày nâng cao,nên nhu câu tiện nghi nhà không nằm ngồi xu Các thiết bị nhà điều khiển cách tự động giám sát từ xa đem lại sống thoải mái cho thành viên gia đình Từ yêu cầu nhóm em chọn để tài :“ Xây dựng hệ thống đồng hồ hiển thị thời gian thực, nhiệt độ, độ ẩm hình website” làm đề tài mơn học Trong q trình thực có lẽ khó tránh khỏi thiếu sót, hạn chế nhóm em mong có góp ý nhắc nhở từ thầy giáo để hồn thiện đề tài Em xin trân thành cảm ơn! Mục lục CHƯƠNG I: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 1.1 LÝ DO CHỌN ĐỀ TÀI 1.2 MỤC ĐÍCH CỦA ĐỀ TÀI 1.3 MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU CHƯƠNG II: GIỚI THIỆU CÁC LINH KIỆN VÀ NGÔN NGỮ SỬ DỤNG ESP32WROOM ESP32 DevKit - Bo phát triển ESP32 ESP-IDF THÀNH PHẦN VÀ ỨNG DỤNG PHẦN MỀM HƯỚNG DẪN CÀI ĐẶT XEM TẠI LINK Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh PROJECT: 20220408_ESP32_HTTP_WS2812_PWM_LEDC_Slider_ProjeckFull TỔNG QUAN VỀ RTOS Main.c 11 12 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh CHƯƠNG I: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 1.1 LÝ DO CHỌN ĐỀ TÀI Kỹ thuật điện tử ngành công nghệ liên quan đến việc ứng dụng kỹ thuật Để tích hợp vấn đề thời gian thực, nhiệt độ độ ẩm để người dễ dàng nắm bắt lên kế hoạch cho thân gia đình Nhóm định chọn đề tài “xây dựng hệ thống đồng hồ hiển thị thời gian thực, nhiệt độ, độ ẩm hình website” để làm đề tài nghiên cứu 1.2 MỤC ĐÍCH CỦA ĐỀ TÀI Nhóm xây dựng đề tài chọn theo hướng xây dựng hệ thống sử dụng ESP32 để làm thiết bị hiển thị thời gian, nhiệt độ độ ẩm Mang lại sống tiện lợi thoải mái 1.3 MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU Nhóm thực đề tài đặt mục tiêu nghiên cứu cụ thể sau: tìm hiểu hệ điều hành thời gian thực (RTOS), nguyên tắc hoạt động cảm biến nhiệt độ, độ ẩm DHT11, hệ thống vi điều khiển ESP32, giao thức HTTP sử dụng web để làm giao diện điều khiển Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh CHƯƠNG II: GIỚI THIỆU CÁC LINH KIỆN VÀ NGÔN NGỮ SỬ DỤNG ESP32WROOM ● 30 chân GPIO ● Điện áp logic 2,7 đến 3,3 V ● Enable Button (Chân reset) User Button(GPIO 0) ● Led báo nguồn User Led (GPIO 2) ● UART: Serial Debug mặc định UART ● Clock: 240MHz ESP32 hệ thống vi điều khiển chip (SoC) giá rẻ Espressif Systems, nhà phát triển ESP8266 SoC Nó kế thừa SoC ESP8266 có hai biến thể lõi đơn lõi kép vi xử lý 32-bit Xtensa LX6 Tensilica với Wi-Fi Bluetooth tích hợp Điểm tốt ESP32, giống ESP8266 thành phần RF tích hợp khuếch đại cơng suất, khuếch đại nhận tiếng ồn thấp, công tắc ăng-ten, lọc Balun RF Điều làm cho việc thiết kế phần cứng xung quanh ESP32 dễ dàng bạn cần thành phần bên ngồi Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh Một điều quan trọng khác cần biết ESP32 sản xuất công nghệ 40nm công suất cực thấp TSMC Vì vậy, việc thiết kế ứng dụng hoạt động pin thiết bị đeo, thiết bị âm thanh, đồng hồ thông minh, , sử dụng ESP32 dễ dàng ESP32 DevKit - Bo phát triển ESP32 Espressif Systems phát hành số module dựa ESP32 lựa chọn phổ biến module ESP-WROOM-32 Nó bao gồm SoC ESP32, dao động tinh thể 40 MHz, IC Flash MB số linh kiện thụ động Ưu điểm module ESP-WROOM-32 PCB có cạnh đúc Nhờ nhà sản xuất bên thứ ba lấy module ESP-WROOM-32 thiết kế bo break-out cho module Một bo ESP32 DevKit Board Nó chứa ESP-WROOM-32 làm module số phần cứng bổ sung để dễ dàng lập trình ESP32 tạo kết nối với chân GPIO ESP-IDF ESP-IDF IoT Development Framework thức Espressif cho dịng SoC ESP32, ESP32-S ESP32-C Nó cung cấp SDK tự cung cấp cho phát triển ứng dụng chung tảng này, sử dụng ngơn ngữ lập trình C C ++ ESP-IDF cung cấp lượng cho hàng triệu thiết bị lĩnh vực cho phép xây dựng nhiều sản phẩm kết nối mạng khác nhau, từ bóng đèn đồ chơi đơn giản đến thiết bị lớn thiết bị công nghiệp ▪ Mã nguồn mở : ESP-IDF có sẵn miễn phí GitHub Phần lớn thành phần ESP-IDF có sẵn dạng nguồn theo giấy phép Apache 2.0 Các thành phần bên thứ ba có sẵn theo giấy phép phép tương thích ▪ Feature-Rich Software Components : ESP-IDF hỗ trợ số lượng lớn thành phần phần mềm, bao gồm RTOS, trình điều khiển ngoại vi, ngăn xếp mạng, triển khai giao thức khác trình trợ giúp cho trường hợp sử dụng ứng dụng phổ biến Các thành phần giúp nhà phát triển tập trung vào logic nghiệp vụ, SDK cung cấp hầu hết khối xây dựng cần thiết cho ứng dụng điển hình Các cơng cụ dành cho nhà phát triển nguồn mở có sẵn miễn phí, IDE Eclipse VSCode hỗ trợ thức đảm bảo dễ sử dụng cho nhà phát triển ▪ Documentation and Examples : ESP-IDF kèm với tài liệu mở rộng cho thành phần phần mềm khơng cấp độ sử dụng mà cấp độ thiết kế Điều giúp nhà phát triển hiểu đầy đủ ESP-IDF cung cấp chọn thứ phù hợp với ứng dụng họ ESP-IDF chứa 100 ví dụ giải thích cách sử dụng thành phần tính thiết bị ngoại vi phần cứng Những ví dụ kiểm tra tốt trì tốt cung cấp điểm khởi đầu tuyệt vời cho ứng dụng bạn Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh THÀNH PHẦN VÀ ỨNG DỤNG PHẦN MỀM RTOS Kernel : Nhân FreeRTOS sửa đổi để hỗ trợ đa lõi, với phân bổ heap dựa khả Giao diện lập trình tiêu chuẩn : Luồng POSIX & API POSIX khác, ổ cắm BSD, thư viện tiêu chuẩn C / C ++ an toàn cho luồng, hỗ trợ hệ thống tệp ảo Trình điều khiển thiết bị ngoại vi : SPI, I C, UART, GPIO, I S, ADC, DAC, Cảm ứng điện dung, Bộ hẹn giờ, LED động PWM, RMT, Bộ đếm xung, CAN / TWAI, máy chủ SD / eMMC / SDIO máy chủ phụ SDIO, trình điều khiển Ethernet Wifi : Trình điều khiển Wi-Fi tương thích với chứng nhận Wi-Fi Alliance; cung cấp hỗ trợ WPA3, giao thức lưới Wi-Fi độc quyền, giao thức điểm-tới-điểm ESP-NOW, giao thức phạm vi dài ESP-LR, chế độ giám sát giao thức cung cấp SmartConfig Bluetooth BLE : Bộ điều khiển Bluetooth hai ngăn xếp máy chủ: Bluedroid (chế độ kép) NimBLE (chỉ Bluetooth LE), hỗ trợ Bluetooth LE mesh, chứng nhận Bluetooth SIG cho tất thành phần Giao thức mạng : Ngăn xếp LwIP TCP / IP cho kết nối IPv4 IPv6, máy khách máy chủ DHCP, máy khách máy chủ TLS (tối đa 1,2), máy khách máy chủ HTTP, máy khách HTTP2, máy khách WebSocket, MQTT, mDNS, CoAP, ModBus, SNTP, SMTP Quản lý lượng : Khung quản lý lượng cho chế độ công suất thấp MCU chế độ công suất thấp Wi-Fi Bluetooth; chia tỷ lệ tần số động, hỗ trợ đồng xử lý ULP (công suất cực thấp) Kho : Trình quản lý phân vùng, lưu trữ khóa-giá trị có cấu trúc nhật ký chịu lỗi (NVS) với hỗ trợ mã hóa, hỗ trợ hệ thống tệp FAT SPIFFS Bảo vệ : Các tính bảo mật hỗ trợ phần cứng, chẳng hạn mã hóa flash khởi động an toàn, hỗ trợ tăng tốc mật mã cho RSA, SHA AES, thư viện mật mã libsodium micro-ecc Cấp phép mạng : Khung cấp phép thống cho thiết bị device on-boarding, sử dụng Bluetooth LE, Wi-Fi chế băng tần khác Xây dựng hệ thống : Hệ thống xây dựng dựa CMake hỗ trợ thành phần bên dự án ứng dụng bên Những công cụ phát triển : Chuỗi công cụ chéo GCC, trình gỡ lỗi JTAG dựa OpenOCD, phát rị rỉ nhớ, phân tích cố kết xuất lõi, theo dõi thời gian thực tương thích với cơng cụ Segger SystemView, công cụ sản xuất thiết bị HƯỚNG DẪN CÀI ĐẶT XEM TẠI LINK https://vidieukhien.xyz/2021/11/18/cai-dat-moi-truong-lap-trinh-esp32-voi-esp-idf/ PROJECT: 20220408_ESP32_HTTP_WS2812_PWM_LEDC_Slider_ProjeckFull 1) Giao Thức HTTP a Http gì? Http (HyperText Transfer Protocol) giao thức truyền tải siêu văn sử dụng www dùng để truyền tải liệu Web server đến trình duyệt Web ngược lại Giao thức sử dụng cổng 80 (port 80) chủ yếu Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh Hay bạn hiểu bạn gõ vào địa vào trình duyệt Web, lúc trình duyệt Web gửi yêu cầu qua giao thức Http đến Web server Web server nhận yêu cầu trả lại kết cho trình duyệt Web 2) ● ● ● ● Https (HyperText Transfer Protocol Secure) giao thức Http có sử dụng thêm SSL (Secure Sockets Layer) để mã hóa liệu lúc truyền tải liệu nhằm gia tăng thêm tính an tồn cho việc truyền liệu Web server trình duyệt Web Giao thức Https sử dụng cổng 433 để truyền liệu b Sự khác biệt giao thức HTTP HTTPS Hiện việc sử dụng giao thức Https chủ yếu dùng cho trang web có giao dịch trực tuyến sử dụng thẻ toán đơn hàng Nhằm đảm bảo an toàn cho giao dịch, tránh rủi ro bị lấy thông tin thể trình tốn Ngồi web sử dụng giao thức Https tín hiệu để Google xếp hạng từ khóa Việc khiến nhiều trang Web chuyển qua dùng giao thức Https để Seo tốt PWM với WS2812 WS2812 ? WS2812 thực mạch tích hợp bóng LED RGB IC điều khiển Điều đặc biệt bạn nối tiếp nhiều bóng với điều khiển tới 144 bóng riêng biệt mà cần dùng pin Arduino Dưới vài thông số loại LED (trích từ https://www.sparkfun.com/products/11821) Góc nhìn: 120 degrees Red: (620-630nm) @ 550-700mcd Green: (515-530nm) @ 1100-1400mcd Blue: (465-475nm) @ 200-400mcd ● Là mạch IC tích hợp nên giá cịn cao (18USD) cho 100 bóng Hơn bạn nhìn kỹ vào hình đầu bài, bạn thấy có sợi dây màu vàng dài dài nối phần vi mạch với ● Phải dùng với driver truyền tín hiệu Cắm trực tiếp vào nguồn không sáng ● Không phải LED tròn nên giới hạn ứng dụng 2D Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh 3) Điều Khiển độ sáng tối WEB led đơn Độ sáng led đơn thay đổi cường độ sáng giúp hệ thống đạt ngưỡng cân nhanh tạo tính ổn định tuyến tính điểm cân bằng, ứng dụng nhiều hệ thống gia nhiệt, chỉnh độ sáng cho theo trời tối thích hợp với độ sáng mơi trường để tạo độ chệnh lệch không lớn với hoạt động khác nhằm giúp tiết kiệm lượng trình hoạt động đồng thời tăng độ bền cho thiết bị 4) Xây dựng Gửi nhiệt độ vẽ đồ thị Think speak Thingspeak gì? Thingspeak tảng mà bạn hiển thị liệu Cloud Bạn truy cập để hiển thị lấy liệu từ Cloud thiết bị IOT thơng qua giao thức HTTP Thingspeak hồn tồn miễn phí giao diện đẹp nên có nhiều người giới sử dụng Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh Cách lấy API Thingspeak Tương tự cách giao tiếp với server khác, Thingspeak sử dụng API có key để định danh người sử dụng Đầu tiên đăng kí đăng nhập vào https://thingspeak.com/ Vào Channels – My channels- New channels Chuyển qua tap API Keys để lấy key example Các bạn copy Example dùng postman để kiểm thử Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh Cài thư viện DHT Để đo nhiệt độ với cảm biến DHT11 cài thư viện DHT sensor pio lib install “adafruit/DHT sensor library” Kèm theo thư viện sensor để không xảy lỗi nhé! pio lib install “adafruit/Adafruit Unified Sensor” 5) Gửi nhiệt độ, độ ẩm lên Thingspeak với ESP32 HTTP Tương tự Dự báo thời tiết với ESP32, sử dụng giao thức HTTP để gửi kết lên server Để hiểu rõ HTTP bạn đón đọc: Tất tần tật giao thức HTTP HTTPS Các bước sau: ● Đầu tiên khởi tạo Url chứa đường dẫn api key: String UrlThingspeak = "https://api.thingspeak.com/update? api_key=J69MXGIE0KLMA27C"; ● Tiếp đó, sau đọc nhiệt độ, độ ẩm, cần conver chúng từ float sang string sprintf sprintf(para,"&field1=%6.2f&field2=%6.2f",t,h); ● Tiếp tới cộng String lại để đc Url hoàn chỉnh String Url = UrlThingspeak + String(para); ● Cuối sử dụng hàm http request để truyền kết lên 10 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh TỔNG QUAN VỀ RTOS RTOS viết tắt cụm từ Real-time operating system hay hệ điều hành thời gian thực thường nhúng dòng vi điều khiển dùng để điều khiển thiết bị cách nhanh chóng đa nhiệm (multi tasking) Hệ điều hành thời gian thực (realtime): sinh cho tác vụ cần phản hồi nhanh hệ thống, thường nhúng loại vi điều khiển khơng có giao diện (GUI) tương tác với người dùng Chúng cần phản hồi nhanh đa số tác vụ tương tác với thiết bị, máy móc khác khơng phải người Các tài nguyên bên hữu hạn nên chậm trễ làm hệ thống làm việc hoàn toàn sai lệch 11 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh Main.c /* WiFi station Example 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 #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/event_groups.h" #include "esp_system.h" #include "esp_wifi.h" #include "esp_event.h" #include "esp_log.h" #include "nvs_flash.h" #include "ledc.h" #include "lwip/err.h" #include "lwip/sys.h" #include "app_http_server.h" #include "ws2812.h" 12 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh #include "dht11.h" #include "output.h" /* The examples use WiFi configuration that you can set via project configuration menu If you'd rather not, just change the below entries to strings with the config you want - ie #define EXAMPLE_WIFI_SSID "mywifissid" */ #define EXAMPLE_ESP_WIFI_SSID "PhucPham2709" #define EXAMPLE_ESP_WIFI_PASS "27092000litva" #define EXAMPLE_ESP_MAXIMUM_RETRY /* FreeRTOS event group to signal when we are connected*/ static EventGroupHandle_t s_wifi_event_group; /* The event group allows multiple bits for each event, but we only care about two events: * - we are connected to the AP with an IP * - we failed to connect after the maximum amount of retries */ #define WIFI_CONNECTED_BIT BIT0 #define WIFI_FAIL_BIT BIT1 static const char *TAG = "wifi station"; static int s_retry_num = 0; 13 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh static void event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { if (event_base WIFI_EVENT_STA_START) { == WIFI_EVENT && event_id == esp_wifi_connect(); } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) { if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY) { esp_wifi_connect(); s_retry_num++; ESP_LOGI(TAG, "retry to connect to the AP"); } else { xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); } ESP_LOGI(TAG,"connect to the AP fail"); } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip)); s_retry_num = 0; xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); } } void switch_callback(int onoff) { if(onoff == 1){ 14 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh output_set(2); } else{ output_clear(2); } } void slider_data_callback(int duty) { ledc_set_dutyxx(duty); } void rgb_callback(int r, int g, int b) { ws2812_set_all_rgb(r,g,b); } void wifi_init_sta(void) { s_wifi_event_group = xEventGroupCreate(); ESP_ERROR_CHECK(esp_netif_init()); ESP_ERROR_CHECK(esp_event_loop_create_default()); esp_netif_create_default_wifi_sta(); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_wifi_init(&cfg)); 15 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh esp_event_handler_instance_t instance_any_id; esp_event_handler_instance_t instance_got_ip; ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVE NT, ESP_EVENT_ANY_ID, &event_handler, NULL, &instance_any_id)); ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL, &instance_got_ip)); wifi_config_t wifi_config = { sta = { ssid = EXAMPLE_ESP_WIFI_SSID, password = EXAMPLE_ESP_WIFI_PASS, /* Setting a password implies station will connect to all security modes including WEP/WPA * However these modes are deprecated and not advisable to be used Incase your Access point * doesn't support WPA2, these mode can be enabled by commenting below line */ threshold.authmode = WIFI_AUTH_WPA2_PSK, pmf_cfg = { 16 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh capable = true, required = false }, }, }; ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) ); ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config) ); ESP_ERROR_CHECK(esp_wifi_start() ); ESP_LOGI(TAG, "wifi_init_sta finished."); /* Waiting until either the connection is (WIFI_CONNECTED_BIT) or connection failed for the maximum established * number of re-tries (WIFI_FAIL_BIT) The bits are set by event_handler() (see above) */ EventBits_t bits = xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT | WIFI_FAIL_BIT, pdFALSE, pdFALSE, portMAX_DELAY); /* xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually * happened */ if (bits & WIFI_CONNECTED_BIT) { ESP_LOGI(TAG, "connected to ap SSID:%s password:%s", 17 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); } else if (bits & WIFI_FAIL_BIT) { ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s", EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); } else { ESP_LOGE(TAG, "UNEXPECTED EVENT"); } /* The event will not be processed after unregister */ ESP_ERROR_CHECK(esp_event_handler_instance_unregister(IP_EVEN T, IP_EVENT_STA_GOT_IP, instance_got_ip)); ESP_ERROR_CHECK(esp_event_handler_instance_unregister(WIFI_EV ENT, ESP_EVENT_ANY_ID, instance_any_id)); vEventGroupDelete(s_wifi_event_group); switch_set_callback(switch_callback); slider_set_callback(slider_data_callback); rgb_set_callback(rgb_callback); start_webserver(); } void app_main(void) { //Initialize NVS esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES ESP_ERR_NVS_NEW_VERSION_FOUND) { || ret == ESP_ERROR_CHECK(nvs_flash_erase()); 18 Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh ret = nvs_flash_init(); } pwm_init(2); ws2812_init(23, 8); ws2812_set_all_rgb(255,0,255); vTaskDelay(100 / portTICK_PERIOD_MS); ws2812_set_all_rgb(0,255,255); vTaskDelay(100/portTICK_PERIOD_MS); ws2812_set_all_rgb(0,255,0); DHT11_init(4); ESP_LOGI(TAG, "ESP_WIFI_MODE_STA"); wifi_init_sta(); } 19 ... không sáng ● Khơng phải LED trịn nên giới hạn ứng dụng 2D Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh 3) Điều Khiển độ sáng tối WEB led đơn Độ sáng led đơn thay đổi cường độ sáng giúp hệ thống. .. ĐẶT XEM TẠI LINK Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh PROJECT: 20220408_ESP32_HTTP_WS2812_PWM_LEDC_Slider_ProjeckFull TỔNG QUAN VỀ RTOS Main.c 11 12 Đồ án hệ thống nhúng nhóm 11–Thầy... cho việc thiết kế phần cứng xung quanh ESP32 dễ dàng bạn cần thành phần bên ngồi Đồ án hệ thống nhúng nhóm 11–Thầy Nguyễn Ngọc Minh Một điều quan trọng khác cần biết ESP32 sản xuất cơng nghệ 40nm