Hơ tất cả, những kiến thức về vi xử lý, tạo phần mềm nhúng vào, chúng em đã được học trong môn “Hệ thống nhúng”.Với phương châm “Học đi đôi với hành”, nhóm em đã cùng nhau thực hiện một
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
PHẦN MỞ ĐẦU 3
1 Lời nói đầu 3
2 Đặt vấn đề 3
2.1 Tính cấp thiết của đề tài 3
3 Lý do chọn đề tài 4
4 Mục tiêu đề tài 4
5 Đối tượng và phạm vi nghiên cứu 5
6 Nội dung đề tài 5
PHẦN NỘI DUNG 6
1 Giới thiệu vi xử lý 6
1.1 Vi xử lý RISC Tensilica Xtensa® 32-bit LX106 6
1.2 Đặng điểm của vi xử lý RISC Tensilica Xtensa® 32-bit LX106 6
2 Cấu trúc chung của KIT 8
2.1 Giới thiệu ESP8266 12-E NodeMCU Kit Pinout 8
2.2 Thông số kỹ thuật 8
2.3 Các thành phần ESP8266 12-E NodeMCU Kit 9
chế độ thời gian chuyển định dạng SPI 16
3 Giới thiệu về Module counter IR FC-03 17
3.1 Module counter IR FC-03 là gì? 17
Trang 34.1 Bộ điều khiển cầu nối USB-to-UART 17
4.2 Firebase với cơ sở dữ liệu thời gian thực 18
5 Ứng dụng 20
5.1 Cách ghép mạch 20
5.2 Truyền code 20
5.3 Cài đặt Arduino IDE 20
5.4 Cài đặt thư viện, Board 24
5.5 Tạo project 27
5.6 Code 28
5.7 Nạp code vào KIT ESP8266 31
5.8 Mô tả ứng dụng 32
PHẦN KẾT LUẬN 33
1 Kết quả đạt được 33
2 Ưu nhược điểm 33
2.1 Ưu điểm 33
2.2 Nhược điểm 33
3 Hướng phát triển 33
TÀI LIỆU THAM KHẢO 34
Trang 5LỜI CAM ĐOAN
Chúng em xin cam đoan đây là công trình nghiên cứu của chúng em Các số liệu vàkết quả đều là trung thực Nếu không đúng như đã nêu trên, chúng em xin hoàn toàn chịutrách nhiệm về đề tài của mình
Trang 6PHẦN MỞ ĐẦU
1 Lời nói đầu
Như chúng ta đã biết, cuộc sống con người ngày càng nâng cao về cả chất và lượng.Bất kỳ nơi đâu chúng ta cũng có thể dễ dàng bắt gặp các sản phẩm điện tử phục vụ cuộcsống con người từ chiếc điện thoại nhỏ nhắn cho đến hệ thống gửi xe to lớn… Tất cả nhữngsản phẩm đó ra đời nhằm phục vụ cuộc sống con người tốt đẹp hơn Chúng không những lànhững con chp, những mạch điện, mà bên trong nó còn là cả một phần mềm được nhúng vàođể đuể điều khiển các thiết bị trở nên thông minh hơn, phục vụ con người tốt hơn
Và đó là sứ mạng của Hệ thống nhúng Tạo ra những mạch điện tử tối ưu cùng vớiphần mềm tốt sẽ là tiền đề cho ra đời những sản phẩm tuyệt vời Hơ tất cả, những kiến thức
về vi xử lý, tạo phần mềm nhúng vào, chúng em đã được học trong môn “Hệ thống nhúng”.Với phương châm “Học đi đôi với hành”, nhóm em đã cùng nhau thực hiện một đề tàiđể áp dụng kiến thức đã học vào thực tiễn, tạo ra sản phẩm nhúng đầu tiên của bản thân Đềtài nhóm em là “Hệ thống đăng ký bãi đậu xe thông minh”
Do thời gian thực hiện khá ngắn cũng như kiến thức còn hạn cheesneen có thể có saisót trong quá trình thực hiện đề tài Nhóm em rất mong nhận được sự bổ sung đóng góp quýbáu từ thầy và các bạn
2 Đặt vấn đề
2.1 Tính cấp thiết của đề tài
Ngày nay với sự phát triển của ngành điện tử và ứng dụng điện tử đã giúp sự sáng tạocủa con người trở thành hiện thực Các lĩnh vực của cuộc sống đều áp dụng những thiết bịđiện tử và dường như nhìn đâu trong gia đình chúng ta cũng có thiết bị điện tử Ngành điện
tử và ứng dụng điện tử đã tạo chỗ đứng và khẳng định được tầm quan trọng của mình đối vớinhu cầu của con người
Với những ứng dụng cho các hệ thống nhúng ngày càng trở nên phổ biến: từ những
Trang 7cáo dùng Led ma trận, một đồng hồ thời gian thực Đến các ứng dụng phức tạp như hệ thốngđiều khiển robot, bộ kiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượnghạt nhân Các hệ thống tự động trước đây sử dụng nhiều công nghệ khác nhau như các hệthống tự động hoạt động bằng nguyên lý khí nén, thủy lực, rơle cơ điện, mạch điện tử số, cácthiết bị máy móc tự động bằng các cam chốt cơ khí Các thiết bị, hệ thống này có chức năng
xử lý và mức độ tự động thấp so với các hệ thống tự động hiện đại được xây dựng trên nềntảng của các hệ thống nhúng
Ngày nay với sự phát triển của ngành điện tử và ứng dụng điện tử đã giúp sự sáng tạocủa con người trở thành hiện thực Các lĩnh vực của cuộc sống đều áp dụng những thiết bịđiện tử và dường như nhìn đâu trong gia đình chúng ta cũng có thiết bị điện tử Ngành điện
tử và ứng dụng điện tử đã tạo chỗ đứng và khẳng định được tầm quan trọng của mình đối vớinhu cầu của con người
Với những ứng dụng cho các hệ thống nhúng ngày càng trở nên phổ biến: từ nhữngứng dụng đơn giản như điều khiển một chốt đèn giao thông định thời, đếm sản phẩm trongmột dây chuyền sản xuất, điều khiển tốc độ động cơ điện một chiều, thiết kế một biển quảngcáo dùng Led ma trận, một đồng hồ thời gian thực Đến các ứng dụng phức tạp như hệ thốngđiều khiển robot, bộ kiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượnghạt nhân Các hệ thống tự động trước đây sử dụng nhiều công nghệ khác nhau như các hệthống tự động hoạt động bằng nguyên lý khí nén, thủy lực, rơle cơ điện, mạch điện tử số, cácthiết bị máy móc tự động bằng các cam chốt cơ khí Các thiết bị, hệ thống này có chức năng
xử lý và mức độ tự động thấp so với các hệ thống tự động hiện đại được xây dựng trên nềntảng của các hệ thống nhúng
Trang 84 Mục tiêu đề tài
Mục tiêu chính của đề tài này là tạo ra ứng dụng cài trên điện thoại giúp người dùngxác định những vị trí còn trống ở các bãi đậu xe miễn phí trong thành phố
5 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
Vi xử lý RISC Tensilica Xtensa® 32-bit LX106
KIT ESP8266 12-E NodeMCU Kit Pinout
Phạm vi nghiên cứu
Giới thiệu về vi xử lý RISC Tensilica Xtensa® 32-bit LX106
Tìm hiểu cấu trúc chung của KIT ESP8266 12-E NodeMCU Kit Pinout
Cách thức đồng bộ dữ liệu lên firebase
6 Nội dung đề tài
Trong đề tài này, nhóm em sẽ giới thiệu về vi xử lý RISC Tensilica Xtensa® 32-bitLX106 cũng như ứng dụng minh họa (app điện thoại)
Trang 9Các lõi cấu hình Xtensa
Bộ xử lý Xtensa bao gồm từ bộ vi điều khiển nhỏ, bộ nhớ cache công suất thấp chođến bộ xử lý SIMD 16 chiều hiệu suất cao, lõi DSP VLIW 3 vấn đề hoặc bộ xử lý mạngthần kinh 1 TMAC / giây Tất cả các DSP tiêu chuẩn Cadence đều dựa trên kiến trúcXtensa Kiến trúc Xtensa cung cấp một tập lệnh tùy chỉnh người dùng thông qua cáccông cụ tùy chỉnh tự động có thể mở rộng tập lệnh cơ sở Xtensa, bao gồm các hướng dẫnSIMD, các tệp đăng ký mới
Tập lệnh Xtensa
Các Xtensa tập lệnh là một kiến trúc 32-bit với một bộ hướng dẫn 16- và 24-bit nhỏgọn Tập lệnh cơ sở có 80 lệnh RISC và bao gồm ALU 32 bit, tối đa 64 thanh ghi 32 bitcho mục đích chung và sáu thanh ghi cho mục đích đặc biệt
1.2 Đặng điểm của vi xử lý RISC Tensilica Xtensa® 32-bit LX106
Xtensa LX cũng phù hợp lý tưởng như một bộ xử lý điều khiển truyền thống trong cácứng dụng nhúng Khả năng lập trình vốn có của bộ xử lý giúp các nhà thiết kế linh hoạt sửalỗi và thêm các tính năng hoàn toàn trong phần mềm tại bất kỳ thời điểm nào - trễ trong chu
kỳ thiết kế hoặc lâu sau khi giao hàng đầu tiên Tensilica cung cấp một môi trường phát triểnđược cấp bằng sáng chế, tự động và đồng thời tạo ra một triển khai phần cứng được tối ưuhóa, chuỗi công cụ phần mềm được tùy chỉnh tương ứng và một bộ hoàn chỉnh các mô hình
Trang 10và tập lệnh EDA Các lựa chọn cấu hình và tiện ích mở rộng do nhà thiết kế thực hiện đểgiải quyết các yêu cầu cho một ứng dụng nhất định sẽ được phản ánh ngay lập tức và tựđộng trong toàn bộ chuỗi công cụ phần mềm.
ESP8266EX cung cấp giải pháp Wi-Fi SoC tích hợp cao để đáp ứng nhu cầu liên tụccủa người dùng về sử dụng năng lượng hiệu quả, thiết kế nhỏ gọn và hiệu suất đáng tin cậytrong ngành công nghiệp Internet of Things
Với khả năng kết nối mạng Wi-Fi hoàn chỉnh và khép kín, ESP8266EX có thể hoạtđộng như một ứng dụng độc lập hoặc là phụ thuộc của MCU máy chủ Khi ESP8266EX lưutrữ ứng dụng, nó sẽ nhanh chóng khởi động từ đèn flash Bộ nhớ cache tốc độ cao tích hợpgiúp tăng hiệu năng hệ thống và tối ưu hóa bộ nhớ hệ thống
Ngoài ra, ESP8266EX có thể được áp dụng cho bất kỳ thiết kế vi điều khiển nào dướidạng bộ điều hợp Wi-Fi thông qua giao diện SPI / SDIO hoặc UART
ESP8266EX tích hợp các công tắc ăng-ten, balun RF, bộ khuếch đại công suất, bộkhuếch đại thu nhiễu thấp, bộ lọc và mô-đun quản lý nguồn Thiết kế nhỏ gọn giảm thiểukích thước PCB và yêu cầu các mạch ngoài tối thiểu
Bên cạnh các chức năng Wi-Fi, ESP8266EX cũng tích hợp một phiên bản nâng caocủa bộ xử lý 32-bit Tensilica L L Diamond Diamond và SRAM trên chip Nó có thể đượcgiao tiếp với các cảm biến bên ngoài và các thiết bị khác thông qua GPIO Bộ phát triểnphần mềm (SDK) cung cấp mã mẫu cho các ứng dụng khác nhau
Nền tảng kết nối thông minh (ESCP) của Hệ thống cho phép các tính năng tinh vi kểcả:
Chuyển đổi nhanh giữa chế độ ngủ và thức dậy cho mục đích tiết kiệm năng lượng;
Xu hướng vô tuyến thích ứng cho hoạt động năng lượng thấp
Xử lý tín hiệu trước
Cơ chế hủy bỏ và cơ chế đồng tồn tại RF cho di động chung, Bluetooth, …
Giảm thiểu nhiễu DDR, LVDS, LCD
Trang 11Hình 1: Sơ đồ khối ESP8266
2 Cấu trúc chung của KIT
2.1 Giới thiệu ESP8266 12-E NodeMCU Kit Pinout
ESP 12E ESP8266 là module wifi giá rẻ và được đánh giá rất cao cho các ứng dụngliên quan đến Internet và Wifi cũng như các ứng dụng truyền nhận sử dụng thay thế cho cácmodule RF khác
ESP8266 là một chip tích hợp cao, được thiết kế cho nhu cầu của một thế giới kết nốimới, thế giới Internet of thing (IOT) Nó cung cấp một giải pháp kết nối mạng Wi-Fi đầy đủ
và khép kín, cho phép nó có thể lưu trữ các ứng dụng hoặc để giảm tải tất cả các chức năngkết nối mạng Wi-Fi từ một bộ xử lý ứng dụng
ESP 12E ESP8266 có khả năng xử lý và lưu trữ mạnh mẽ cho phép nó được tích hợpvới các bộ cảm biến, vi điều khiển và các thiết bị ứng dụng cụ thể khác thông qua GPIOs vớimột chi phí tối thiểu và một PCB tối thiểu
ESP8266 12E có kích thước nhỏ gọn, ra chân đầy đủ của IC ESP8266, mạch được thiết
kế và gia công chất lượng tốt với vỏ bọc kim loại chống nhiễu và anten Wifi PCB tích hợpcho khoảng các truyền xa và ổn định
2.2 Thông số kỹ thuật
IC chính: Wifi SoC ESP8266
Điện áp sử dụng: 3.0V~3.6V (Optimal 3.3V)
Trang 12 Working current: ≈70 ma (170mA MAX), standby<200uA
Dòng tiêu thụ 10 uA, dòng điện năng chờ < 5 uA
30 chân (10 GPIO, every GPIO can be PWM, I2C, 1-wire)
MCU Frequency: 80-160 MHz, 32-bit micro MCU
SRAM size: 36 KB
ROM size: 4 MB (SPI External Flash)
Antena on PCB
Transmission data rate: 110-460800bps
10 bit precission ADC pinout on board (0~1V)
WiFi @ 2.4 GHz, supports WPA / WPA2 security mode
Wi-Fi Connectivity (802.11 b/ g/ n)
Support UART/GPIO data communication interface
Support STA/AP/STA+AP 3 working modes
Built-in TCP/IP protocol stack, maximum 5 clients
Trang 13b Thông số năng lượng
Vì dải điện áp hoạt động của ESP8266 là 3V đến 3,6V bo mạch đi kèm với bộ điềuchỉnh điện áp LDO để giữ điện áp ổn định ở mức 3,3V Nó có thể cung cấp đáng tin cậy tới600mA, mức này là quá đủ khi ESP8266 kéo tới 80mA trong khi truyền RF (tín hiệu vôtuyến) Đầu ra của bộ điều chỉnh cũng được chia ra một trong các cạnh của bảng và đượcdán nhãn là 3V3 Pin này có thể được sử dụng để cung cấp năng lượng cho các thành phầnbên ngoài
Cấp nguồn cho NodeMCU ESP8266 được cung cấp qua đầu nối MicroB USB trên bomạch
Trang 14c Thiết bị ngoại vi và I / O
ESP8266 NodeMCU có tổng số 17 chân GPIO được chia ra cho các tiêu đề pin ở cảhai phía của bảng phát triển Các chân này có thể được gán cho tất cả các loại nhiệm vụngoại vi, bao gồm:
Kênh ADC - Kênh ADC 10 bit
Giao diện UART - Giao diện UART được sử dụng để tải mã ser seri
Đầu ra PWM - Chân PWM để làm mờ đèn LED hoặc điều khiển động cơ
Giao diện SPI, I2C & I2S - Giao diện SPI và I2C để kết nối tất cả các loại cảm biến vàthiết bị ngoại vi
Giao diện I2S - Giao diện I2S nếu bạn muốn thêm âm thanh vào dự án của mình
Trang 15d Công tắc và chỉ số LED
ESP8266 NodeMCU có hai nút Một đánh dấu là RST nằm ở góc trên cùng bên trái lànút Reset, tất nhiên được sử dụng để đặt lại chip ESP8266 Nút FLASH khác ở góc dưới bêntrái là nút tải xuống được sử dụng trong 2khi nâng cấp chương trình cơ sở
Bảng cũng có đèn LED được người dùng lập trình và được kết nối với chân D0 củabảng
Trang 16e Truyền nối tiếp
Bộ điều khiển cầu nối USB-to-UART CP2102 từ Silicon Labs, giúp chuyển đổi tínhiệu USB thành nối tiếp và cho phép máy tính của bạn lập trình và giao tiếp với chipESP8266
f Sơ đồ chân ESP8266 NodeMCU
ESP8266 NodeMCU có tổng cộng 30 chân giao diện với thế giới bên ngoài Các kếtnối như sau:
Trang 17Nhãn GPIO Đầu vào Đầu ra Ghi chú
ngắt trợ PWM hoặcKhông hỗ
I2C
CAO khikhởi động được sử dụngđể hoạt động từgiấc ngủ sâu
được sử dụngnhư SCL(I2C)
được sử dụngnhư SDA (I2C)
FLASH, khởiđộng thất bạinếu kéo THẤP
khởi động được kết nốivới đèn LEDtrên bo mạch,khởi độngkhông thànhcông nếu kéoTHẤP
khởi động
đầu ra gỡ lỗikhởi động khikhởi động,khởi động thất
Trang 18bại nếu kéoTHẤP
analog
X
Phân ra các chân có chức năng tương tự nhau bao gồm:
Chân cắm điện (3.3V, VIN) Có bốn chân nguồn viz một chân VIN & ba chân 3,3V.Chân VIN có thể được sử dụng để cung cấp trực tiếp cho ESP8266 và các thiết bị ngoại vicủa nó, nếu bạn có nguồn điện áp 5V quy định Các chân 3,3V là đầu ra của bộ ổn áp trên bomạch Các chân này có thể được sử dụng để cung cấp năng lượng cho các thành phần bênngoài
GND là một pin căn cứ của ban phát triển ESP8266 NodeMCU
Chân I2C được sử dụng để kết nối tất cả các loại cảm biến và thiết bị ngoại vi I2Ctrong dự án của bạn Cả I2C Master và I2C Slave đều được hỗ trợ Chức năng giao diện I2C
có thể được hiện thực hóa bằng lập trình và tần số xung nhịp tối đa là 100 kHz Cần lưu ýrằng tần số xung nhịp I2C phải cao hơn tần số xung nhịp chậm nhất của thiết bị phụ
Chân GPIO ESP8266 NodeMCU có 17 chân GPIO có thể được gán cho các chức năngkhác nhau như I2C, I2S, UART, PWM, Điều khiển từ xa IR, Đèn LED và Nút theo chươngtrình Mỗi GPIO được kích hoạt kỹ thuật số có thể được cấu hình để kéo lên hoặc kéo xuốngbên trong hoặc đặt thành trở kháng cao Khi được cấu hình làm đầu vào, nó cũng có thểđược đặt thành kích hoạt cạnh hoặc kích hoạt mức để tạo ra các ngắt CPU
Kênh ADC NodeMCU được nhúng với ADC ADC chính xác 10 bit Hai chức năng cóthể được thực hiện bằng cách sử dụng ADC viz Kiểm tra điện áp nguồn của pin VDD3P3
và kiểm tra điện áp đầu vào của pin TOUT Tuy nhiên, chúng không thể được thực hiệncùng một lúc
Các chân UART ESP8266 NodeMCU có 2 giao diện UART, tức là UART0 vàUART1, cung cấp giao tiếp không đồng bộ (RS232 và RS485) và có thể giao tiếp với tốc độ
Trang 19dụng để liên lạc Nó hỗ trợ kiểm soát chất lỏng Tuy nhiên, UART1 (chân TXD1) chỉ có tínhnăng truyền tín hiệu dữ liệu, do đó, nó thường được sử dụng để in nhật ký.
Chân SPI ESP8266 có hai SPI (SPI và HSPI) ở chế độ phụ và chủ Các SPI này cũng
hỗ trợ các tính năng SPI cho mục đích chung sau:
chế độ thời gian chuyển định dạng SPI
Lên đến 80 MHz và xung nhịp chia 80 MHz
Lên đến 64-byte
Chân SDIO ESP8266 có Giao diện đầu vào / đầu ra kỹ thuật số an toàn (SDIO) được
sử dụng để giao tiếp trực tiếp thẻ SD Hỗ trợ 4 bit 25 MHz SDIO v1.1 và 4 bit 50 MHzSDIO v2.0
Các chân PWM Bảng mạch có 4 kênh Điều chế độ rộng xung (PWM) Đầu ra PWM cóthể được thực hiện theo chương trình và được sử dụng để điều khiển động cơ kỹ thuật số vàđèn LED Dải tần số PWM được điều chỉnh từ 1000 to đến 10000 μs, tức là trong khoảng từs, tức là trong khoảng từ
Chân RST - Chân RST được sử dụng để đặt lại chip ESP8266
Pin WAKE - Pin Wake được sử dụng để đánh thức chip khỏi giấc ngủ sâu
3 Giới thiệu về Module counter IR FC-03
3.1 Module counter IR FC-03 là gì?
Module counter IR FC-03 có tính năng chính là phát hiện vật cản đi quang khe hở giữa
2 đầu thu-phát tia hồng ngoại của module Với tính năng này, người dùng có thể sử dụngmodule cho các tính năng đo tốc độ động cơ, đếm xung, …