Lab1 IOTs ESPIDELEDK20

15 1 0
Lab1 IOTs ESPIDELEDK20

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo cáo Lab1 môn cơ sở ứng dụng IoTs So sánh chuẩn truyền thông Wifi và chuẩn truyền thông Zigbee So sánh ESP8266 và ESP32 Sơ đồ chân kết nối ESP32 (hoặc ESP8266) (lập bảng chức năng các chân) Các bước cài đặt và giao tiếp ESP32 (hoặc ESP 8266) với phần mềm Arduino IDE Các bước thực hiện và giải thích code chương trình chớp tắt LED kết hợp giao tiếp nút nhấn trên ESP32 (hoặc ESP8266) và hình ảnh chụp các kết quả Thực hiện giao tiếp ESP32 và 2 Led đơn điều khiển chớp tắt 2 Led (có sử dụng FreeRTOS). Giải thích code và chụp hình ảnh

BỘ MƠN KỸ THUẬT MÁY TÍNH – VIỄN THƠNG CƠ SỞ VÀ ỨNG DỤNG IOTS MMH: ITFA436064 Thời gian thực hiện: 01 buổi Nhóm:Trần Quốc Hùng 20119342 Nguyễn Tùng Lâm 20119354 Bùi Quang Huy 20119343 Trương Văn Cao 20119324 Đinh Hữu Giác 20119069 So sánh chuẩn truyền thông Wifi chuẩn truyền thông Zigbee WIFI Chuẩn truyền thông Wi-Fi công nghệ mạng không dây xây dựng dựa chuẩn IEEE 802.15.4 Wi-Fi, mạng cục (LAN) sử dụng để cung cấp dịch vụ internet phạm vi cố định, sử dụng phổ biến hộ gia đình cá nhân, khơng gian công cộng trường học, quán cà phê, trạm xe bus… cần tiện lợi cho thiết bị nhỏ gọn không kết nối dây rườm rà [1] ZIGBEE Zigbee công nghệ không dây thiết kế để gửi lượng nhỏ liệu khoảng cách ngắn Zigbee giống với công nghệ Bluetooh sử dụng mạng lưới (mesh) khác với Wifi sử dụng dạng peer to peer mạng Zigbee thiết bị trao đổi thông tin với có định hướng, nghĩa tin mạng gửi cách có địa đường xác định trước [1] Wifi sử dụng tần số vô tuyến điện truyền liệu Zigbee sử dụng chủ yếu dải tần 2.4GHz toàn cầu mức tần số 2.4GHz- 5GHz [2] [2] Wifi mạng cục không dây (wireless local Sử dụng WPAN – Wireless personal area network area network) [2] [2] Wifi sử dụng cho phạm vi kết nối lớn 30m-100m lớn tiêu thụ tương đối nhiều Zigbee có phạm vi bé khoảng 30m nên điện [2] không cần nhiều điện [2] Không sử dụng kỹ thuật điều chế BPSK QPSK [2] Sử dụng kỹ thuật điều chế BPSK QPSK [2] Hỗ trợ nhiều thiết bị kết nối với [2] CRC32bit để kiểm tra lỗi [2] Phát sóng khoảng 100m [2] Số lượng thiết bị tối đa kết nối cịn hạn chế [2] Có khả kiểm tra lỗi , dùng CRC16 [2] Wifi bảo mật sơ với Zigbee [2] Khả phát sóng vơ tuyến bán kính 10m đến hàng trăm mét [2] Yêu cầu băng thông rộng [2] Khả bảo mật tốt [2] Tần số ổn định [2] Không yêu cầu băng thông rộng [2] Dùng cho ứng dụng mạng LAN [2] Tần số ổn định [2] Sử dunh cho kết nối di động nội Dùng cho ứng dụng mạng WAN [2] (Smartphone, laptop…) [2] Chủ yếu sử dụng hệ thống tự động thông minh nhà [2] CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 So sánh ESP8266 ESP32 ESP8266 - ESP32 nâng cấp ESP8266, kế thừa ưu điểm ESP8266 đồng thời nhiều ưu điểm vượt trội tốc độ chân GPIO giá thành có phần cao [3] - ESP32 kèm với khuếch đại tiếng ồn thấp có sẵn kết hợp trở kháng giúp nhà phát triển thiết kế ứng dụng dễ dàng điểm quan trọng cần ghi nhớ có hai lõi, nghĩa thực nhiều tác vụ đồng thời làm cho trở nên mạnh mẽ [4] ESP32 - ESP8266 mô-đun giá thành thấp hạn chức mô-đun hoàn chỉnh với chức nên sử dụng nhiều dự án đơn giản [3] - ESP8266 có độ bền cao: mơi trường khác có phần khắc nghiệt ESP8266 hoạt động ổn định [3] - ESP8266 có độ tích hợp chip cao, hiểu cho phép người dùng sử dụng mạch tham chiếu [3] - ESP8266 có kích thước nhỏ sử dụng lõi đơn 32-bit đồng thời việc tìm kiếm thơng tin hỗ trợ cách diễn đàng dễ mắt sớm ESP32 [5] - Tần số xung clock vượt trội từ 160Mhz tới - Chỉ có 80Mhz sử dụng Xtensa lõi đơn 32-bit 240Mhz sử dụng lõi Xtensa Dual-Core 32-bit L106 [5] LX6 với 600 DMIPS [3] [5] - Sở hữu nhiều cảm biến cảm biến nhiệt độ, - Không sở cảm biến có, ethernet cảm biến chạm, cảm biến hall, ethernet sở hữu điều khiển không dây Bluetooth hỗ trợ kết nội Bluetooth 4.2, BLE giúp cho việc đáp ứng dự ngoại vi cảm biến tính khác án ESP32 trở nên hiệu [5] [5] [6] - Bảo mật tốt sở hữu mã hóa flash khởi động - Thiếu bảo mật không sở hữu mã hóa [3] bảo mật an tồn OTP 1024-bit [3] - ESP32 có 39 chân GPIO nhiều nên - Sở hữu 17 chân GPOI với nhớ SRAM 160kB thực nhiều công việc dự án khơng có nhớ ROM [3] lớn có nhớ SRAM 512kB sở hữu nhớ ROM 448kB [3] Sơ đồ chân kết nối ESP32 (hoặc ESP8266) (lập bảng chức chân) Sơ đồ chân ESP32 [7] CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 Bảng sơ đồ chức chân [8] Tên chân Phân loại chân Chức Micro-USB, 3.3V, 5V, GND Power Micro-USB: ESP32 cấp nguồn qua cổng USB 3.3V: Nguồn quy định cấp cho chân 3.3V GND: Chân nối đất En ADC1_0 to ADC1_5 and ADC2_0 to ADC2_9 Enable Analog Pins (Chân Analog) DAC1 and DAC2 DAC pins (Chân DAC) GPIO0 to GPIO39 Input/Output Pins (Chân I/O) T0 to T9 Chân cảm ứng điện dung RTCIO0 to RTCIO17 RTC GPIO Rx, Tx Serial (Chân nối tiếp) Tất chân GPIO ExternaI Interrupts (Chân ngắt ngoài) Tất chân GPIO PWM GPIO23 (MOSI), GPIO19(MISO), GPIO18(CLK) and GPIO5 (CS) GPIO13 (MOSI), GPIO12(MISO), GPIO14(CLK) and GPIO15 (CS) GPIO21(SDA), GPIO22(SCL) AREF VSPI Chân reset vi điều khiển Sử dụng giải điện áp khoảng từ - 3,3V 18 kênh với 12-bit Chuyển đổi tín hiệu từ số sang tương tự 39 chân GPIO, sử dụng làm chân đầu vào đầu 0V (thấp) 3,3V (cao) Nhưng từ chân 34->39 dùng cho đầu vào Có thể sử dụng 10 chân để làm chân cảm ứng với miếng điện dung Dùng để đánh thức ESP32 chế độ ngủ Dùng để nhận truyền liệu nối tiếp TTL(logic bóng bán dẫn) Bất kì chân GPIO sử dụng để kích hoạt ngắt 16 chân GPIO có sẵn chân thực điều chế xung (PWM) thông qua phần mềm Dùng để giao tiếp SPI-1 HSPI Dùng để giao tiếp SPI-2 IIC Dùng để giao tiếp I2C AREF Cung cấp điện áp tham chiếu cho điện áp đầu vào CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 Các bước cài đặt giao tiếp ESP32 (hoặc ESP 8266) với phần mềm Arduino IDE Yêu cầu: Cài đặt Arduino IDE cách tải cài đặt từ web arduino.cc ( Các phiên cập nhật web này) Sau cài đặt thành công tiến hành cài đặt thư viện ESP Bước : Khởi động phần mềm Arduino IDE , Chọn File công cụ → chọn tiếp Preferences [9] Cửa sổ Preferences CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 Bước : Nhập đường dẫn vào mục “ Additional boards manager URLs” tương ứng:   ESP32: https://dl.espressif.com/dl/package_esp32_index.json ESP8266: http://arduino.esp8266.com/stable/package_esp8266com_index.json Trường hợp nhập phải ngăn cách dấu “,” Khi hoàn tất “OK” [9] CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 Bước 3: Chọn Tools cộng cụ → chọn Board → chọn Board Manager [9] Cửa sổ Board Manager Bước : Trên tìm kiếm , Tìm ESP32 với từ khóa “esp32” ESP8266 tìm với từ khóa “esp8266” Trong mục kết tìm kiếm ta chọn “esp32 by Espressif Systems” , nhấn Install chờ cài đặt [9] CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 Màn hình hiển thị trình cài đặt Bước 5: Sau cài đặt hồn tất, ta kiểm tra cách chọn Tools → Boards, thấy xuất ESP32 Dev Module thành công [9] CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 Các bước thực giải thích code chương trình chớp tắt LED kết hợp giao tiếp nút nhấn ESP32 (hoặc ESP8266) hình ảnh chụp kết (link đến video clip upload youtube có) Để thực việc nạp code vào ESP32 ta thực bước sau: Bước 1: Kết nối ESP32 với máy tính thơng qua cổng USB Bước 2: Lắp mạch theo yêu cầu CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 Bước 3: Chọn Board ESP32 cách: Chọn Tools công cụ → Chọn Board: “ESP32 Dev Module” → Chọn ESP32 Arduino → Chọn ESP32 Dev Module [9] Bước 4: Để nạp code ta cần chọn ngõ gắn với Board cách: Chọn Tools → Chọn Port →Chọn Port gắn với board ESP32 (nếu khơng thấy xuất board cài driver Arduino IDE kiểm tra đầu nối xem có lỏng không) [9] CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 Bước 5: Trong cửa sổ sau chọn Board , lập trình cho ESP32 theo yêu cầu vào khung trắng (nếu chưa có tạo) ,sau hoàn tất ta nhấn nút mũi tên “Upload” để nạp code vào board Lưu ý : Với số board ESP32 cần phải giữ nút boots để nạp code [9] Giải thích code chương trình chớp tắt LED kết hợp giao tiếp nút nhấn ESP32 CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 #define BUTTON - Khai báo biến BUTTON vào chân số - Khai báo biến LED vào chân số pinMode(LED, OUTPUT); - Cấu hình GPIO4 OUTPUT pinMode(BUTTON, INPUT_PULLUP); - Cấu hình GPIO2 INPUT_PULLUP - Khai báo biến instate gán giá trị ban đầu - Khai báo biến ledstate instate=digitalRead(BUTTON); - if(instate==1) - Đọc tín hiệu BUTTON gán cho biến instate Trường hợp đè nút nhấn #define LED void setup() { } int instate=HIGH; bool ledstate; void loop() { { ledstate= !ledstate; - Đảo trạng thái tương ứng với chớp tắt LED digitalWrite(LED,ledstate); - delay(500); - Xuất giá trị ledstate biến LED (chân số 4) Tạo trễ 0,5s } else digitalWrite(LED,LOW); } CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 - Trường hợp khơng đè nút nhấn LED mức thấp tương ứng với led tắt Hình minh họa: Link video minh họa: https://www.youtube.com/watch?v=DnEaiNCI5A0 Thực giao tiếp ESP32 Led đơn điều khiển chớp tắt Led (có sử dụng FreeRTOS) Giải thích code chụp hình ảnh (kèm clip có) kết thực TaskHandle_t Task1; - Khai báo Task - Gọi hàm setup() : TaskHandle_t Task2; void setup() { xTaskCreate(Task1 , "Task1" , 1024 , NULL , , NULL ); xTaskCreate(Task2, "Task2" , 1024 , NULL, 1, NULL ); } CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 - Tạo tác vụ với cấu trúc xTaskCreate( TaskFunction_t pvTaskCode, const char * const pcName, unsigned short usStackDepth, void *pvParameters, UBaseType_t uxPriority, TaskHandle_t *pxCreatedTask); - Trong đó:  pvTaskCode : Trỏ đến hàm cần thực tạo task  pcName: chuỗi mô tả tên task  usStackDepth: độ lớn trỏ ngăn xếp, chọn cho lớn độ lớn trỏ ngăn xếp thực hàm  pvParameters: trỏ đến tham số cần truyền vào hàm task khởi tạo  uxPriority: mức độ ưu tiên task  pxCreatedTask: trỏ đến biến kiểu TaskHandle_t - Gọi hàm loop() với mục đích lệnh chạy lặp lặp lại liên tục tạo thành chuỗi - Để trống task thực bên - Gọi hàm Task1 pinMode(2, OUTPUT); - Cấu hình GPIO2 OUTPUT while (1) - Tạo vòng lặp while digitalWrite(2, HIGH); - vTaskDelay( 1000 ); - Chân GPIO2 lên mức cao cấp nguồn Tạo trễ 1s digitalWrite(2, LOW); - Chân GPIO2 xuống mức thấp vTaskDelay( 1000 ); - Tạo trễ 1s void loop() {} void Task1(void *led) { (void) led; { } →Vậy Task1 điều khiển LED sáng tắt liên tục với chu kì 2s ngõ GPIO2 } void Task2(void *led) - Gọi hàm Task2 - Cấu hình GPIO4 OUTPUT - Tạo vòng lặp while - Chân GPIO4 lên mức cao cấp nguồn { (void) led; pinMode(4, OUTPUT); while (1) { digitalWrite(4, HIGH); CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 - Tạo trễ 2s - Chân GPIO4 xuống mức thấp - Tạo trễ 2s vTaskDelay( 2000 ); digitalWrite(4, LOW); vTaskDelay(2000 ); } } →Vậy Task2 điều khiển LED sáng tắt liên tục với chu kì 4s ngõ GPIO4 Link video minh họa: https://www.youtube.com/watch?v=BRDmXknEbLA CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064 Tài liệu tham khảo (liệt kê theo IEEE) [1] "SO SÁNH ĐẶC ĐIỂM CỦA CÔNG NGHỆ KHÔNG DÂY: WIFI, ZIGBEE VÀ BLUETOOTH," [Online] Available: https://rangdong.com.vn/faq/so-sanh-dac-diem-cua-3-cong-nghe-khong-day-wifi-zigbee-bluetooth.html [Accessed 30 10 2022] [2] "Difference between Zigbee and Wi-Fi," 12 2022 [Online] Available: https://www.geeksforgeeks.org/difference-between-zigbee-and-wi-fi/ [Accessed 30 10 2022] [3] Ashwak, “ESP32 vs ESP8266 – Which One To Choose?,” 2021 [Trực tuyến] Available: https://www.electronicshub.org/esp32-vs-esp8266/ [Đã truy cập 11 2022] [4] E Fahad, “ESP32 Vs ESP8266 Nodemcu, ESP32 Vs Nodemcu, ESP8266 Vs ESP32,” 19 2021 [Trực tuyến] Available: https://www.electroniclinic.com/esp32-vs-esp8266-nodemcu-esp32-vs-nodemcu-eps8266-vs-esp32/ [Đã truy cập 11 2022] [5] S Santos, “ESP32 vs ESP8266 – Pros and Cons,” 2021 [Trực tuyến] Available: https://makeradvisor.com/esp32-vs-esp8266/ [Đã truy cập 11 2022] [6] Tessie, "ESP32 vs ESP8266: Which is better?," 12 2021 [Online] Available: https://www.utmel.com/components/esp32-vs-esp8266-which-is-better?id=921 [Accessed 11 2022] [7] "Getting Started with the ESP32 Development Board," 2021 [Online] Available: https://microdigisoft.com/getting-started-with-the-esp32-development-board/ [Accessed 31 11 2022] [8] "ESP32 - DevKitC," 19 10 2020 [Online] Available: https://components101.com/microcontrollers/esp32-devkitc [Accessed 31 10 2022] [9] T Q Phuc, "Internet of Things: How to Install IDE for ESP8266 ESP32," 2021 [Online] Available: https://www.youtube.com/watch?v=0LXdQJtj9Eg&t=1s [Accessed 31 10 2022] CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064

Ngày đăng: 14/05/2023, 02:17

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan