Tìm Hiểu Vi Điều Khiển ESP8266 và Ứng Dụng Đo Nhiệt Độ - Điều Khiển Bơm Tưới Tự Động

Tài liệu nghiên cứu Tìm hiểu về vi điều khiển esp8266 và thực hành mô hình đo nhiệt độ độ ẩm, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2023

77
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

MỞ ĐẦU

LỜI CAM ON

1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ STM32

1.1. Giới Thiệu Về Vi Điều Khiển ARM

1.1.1. Lịch sử phát triển của ARM

1.1.2. Giới thiệu chung về ARM Cortex

1.1.3. Giới thiệu ARM Cortex M3

1.2. Tìm hiểu chung về STM32

1.3. Kết nối với các giao tiếp khác

1.4. Các chế độ sử dụng công suất tiêu thụ thấp

1.5. Sự tiêu thụ công suất của nguồn dự phòng

1.6. Hỗ trợ Debug

2. CHƯƠNG 2: TÌM HIỂU CÁC HỌ CỦA STM32

3. CHƯƠNG 3: THỰC HÀNH LẬP TRÌNH TRÊN KIT STM32F103C8T6

3.1. Công cụ lập trình ARM STM32 M3

3.2. Lập trình trên KIT phát triển STM32F103C8T6

3.2.1. Nguồn Clock trong STM32

3.2.2. Lập trình STM32 GPIO

3.2.3. Lập trình Timer STM32 chớp tắt Led dùng ngắt

3.2.4. Lập trình hiển thị LCD 1602

3.2.5. Lập trình hiển thị Led 7 đoạn

DANH MỤC TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tìm Hiểu Vi Điều Khiển ESP8266 Khám Phá Công Nghệ Mới

Vi điều khiển ESP8266 đã trở thành một trong những công nghệ phổ biến trong lĩnh vực Internet of Things (IoT). Với khả năng kết nối Wi-Fi, ESP8266 cho phép các thiết bị giao tiếp và tương tác với nhau một cách dễ dàng. Việc tìm hiểu về ESP8266 không chỉ giúp hiểu rõ hơn về cấu trúc và chức năng của nó mà còn mở ra nhiều cơ hội ứng dụng trong các dự án thực tiễn.

1.1. Giới Thiệu Về Vi Điều Khiển ESP8266

ESP8266 là một vi điều khiển tích hợp Wi-Fi, cho phép kết nối Internet dễ dàng. Nó được sử dụng rộng rãi trong các ứng dụng IoT nhờ vào khả năng tiết kiệm năng lượng và chi phí thấp. Việc lập trình ESP8266 cũng rất đơn giản, giúp người dùng dễ dàng phát triển các ứng dụng.

1.2. Cấu Trúc và Chức Năng Của ESP8266

ESP8266 bao gồm một bộ vi xử lý 32-bit, bộ nhớ flash và các giao tiếp như GPIO, I2C, SPI. Điều này cho phép nó thực hiện nhiều chức năng khác nhau, từ điều khiển thiết bị đến thu thập dữ liệu từ cảm biến.

II. Thách Thức Trong Việc Đo Nhiệt Độ Tự Động Với ESP8266

Mặc dù ESP8266 mang lại nhiều lợi ích, nhưng việc ứng dụng nó trong đo nhiệt độ tự động cũng gặp phải một số thách thức. Các vấn đề như độ chính xác của cảm biến, khả năng kết nối mạng và quản lý dữ liệu là những yếu tố cần được xem xét kỹ lưỡng.

2.1. Độ Chính Xác Của Cảm Biến Nhiệt Độ

Độ chính xác của cảm biến nhiệt độ là yếu tố quan trọng trong việc đo lường. Cảm biến cần được hiệu chỉnh thường xuyên để đảm bảo kết quả đo chính xác và đáng tin cậy.

2.2. Khả Năng Kết Nối Mạng Của ESP8266

Kết nối Wi-Fi của ESP8266 có thể bị ảnh hưởng bởi nhiều yếu tố như khoảng cách, vật cản. Việc tối ưu hóa vị trí lắp đặt và cấu hình mạng là cần thiết để đảm bảo kết nối ổn định.

III. Phương Pháp Đo Nhiệt Độ Tự Động Bằng ESP8266

Để thực hiện việc đo nhiệt độ tự động, có thể sử dụng các cảm biến như DS18B20 hoặc DHT11 kết hợp với ESP8266. Việc lập trình và cấu hình hệ thống là rất quan trọng để đảm bảo hoạt động hiệu quả.

3.1. Sử Dụng Cảm Biến DS18B20 Với ESP8266

Cảm biến DS18B20 là một trong những lựa chọn phổ biến cho việc đo nhiệt độ. Nó có khả năng đo nhiệt độ trong khoảng từ -55°C đến +125°C với độ chính xác cao. Kết nối với ESP8266 rất đơn giản và dễ dàng lập trình.

3.2. Lập Trình ESP8266 Để Đo Nhiệt Độ

Lập trình ESP8266 để thu thập dữ liệu từ cảm biến nhiệt độ có thể thực hiện bằng ngôn ngữ lập trình Arduino. Việc sử dụng thư viện phù hợp giúp đơn giản hóa quá trình lập trình và tối ưu hóa hiệu suất.

IV. Ứng Dụng Thực Tiễn Của Hệ Thống Đo Nhiệt Độ Tự Động

Hệ thống đo nhiệt độ tự động sử dụng ESP8266 có thể được ứng dụng trong nhiều lĩnh vực khác nhau như nông nghiệp, y tế và quản lý môi trường. Những ứng dụng này không chỉ giúp tiết kiệm thời gian mà còn nâng cao độ chính xác trong việc giám sát nhiệt độ.

4.1. Ứng Dụng Trong Nông Nghiệp

Trong nông nghiệp, hệ thống đo nhiệt độ tự động giúp theo dõi điều kiện môi trường, từ đó tối ưu hóa quy trình trồng trọt và chăm sóc cây trồng.

4.2. Ứng Dụng Trong Y Tế

Trong lĩnh vực y tế, việc theo dõi nhiệt độ cơ thể bệnh nhân là rất quan trọng. Hệ thống tự động giúp cung cấp dữ liệu chính xác và kịp thời cho bác sĩ.

V. Kết Luận Về Vi Điều Khiển ESP8266 Và Ứng Dụng Đo Nhiệt Độ

Vi điều khiển ESP8266 đã chứng minh được giá trị của mình trong việc phát triển các ứng dụng IoT, đặc biệt là trong lĩnh vực đo nhiệt độ tự động. Với những ưu điểm vượt trội, ESP8266 hứa hẹn sẽ tiếp tục phát triển và mở rộng ứng dụng trong tương lai.

5.1. Tương Lai Của ESP8266 Trong IoT

Với sự phát triển không ngừng của công nghệ, ESP8266 sẽ tiếp tục được cải tiến và mở rộng ứng dụng trong nhiều lĩnh vực khác nhau, từ công nghiệp đến đời sống hàng ngày.

5.2. Khuyến Khích Nghiên Cứu Thêm Về ESP8266

Việc nghiên cứu và phát triển các ứng dụng mới dựa trên ESP8266 sẽ giúp nâng cao hiệu quả và tính ứng dụng của công nghệ này trong thực tiễn.

09/07/2025
Tìm hiểu về vi điều khiển esp8266 và thực hành mô hình đo nhiệt độ độ ẩm đất và điều khiển bơm tưới tự động

Trích đoạn nội dung tài liệu

CHƯƠNG 1: CO SO LY THUYET VE STM32 Chế độ One Pulse Ở các chế độ đã trình bày trên, ta thây xung nhịp PWM được tạo có dạng dãy các tín hiệu liên tiếp nhau. Khối Timer còn cung cấp một chế độ hoạt động riêng cho phép tạo duy nhất một xung PWM với tần số, bề rộng xung cùng với thời gian trễ có khả năng được cầu hình một cách linh động. ' ' ' ' i ' I i ' I ! thưa, —œ 4— Trine > + Hình 1.15 Chế độ One Pulse - Đồng bộ hóa định thời Mặc dù các bộ định thời hoạt động hoàn toàn độc lập với nhau, tuy nhiên chúng có thé duoc đồng bộ hóa từng đôi một hay toàn bộ. TIM1CLK TIM2CLK TRG Trigger Trigger Controller Controller TI1FP1 TI1EP1 TI2FP2 TIM4 TIM3CLK TIM4CLK >| TRG TRG1>-> TRG2>-> Trigger TRG3>»r+ Trigger lraoo TRG4 Controller Controller TI1FP1 TI1FP1 1 TI2FP2 TI2FP2 - Hình 1.16 Mỗi khối Timer có đầu vào là các xung sự kiện Mối khôi Timer 3 đường vào hồ trợ các xung sự kiện từ 3 khôi Timers còn lại.

Ngoài ra chan Capture từ Timer1 và Timer2(TIFPI và TIFP2) cũng được đưa khối điều khiến sự kiện của mỗi Timer.Nguyễn Mạnh Hùng 25 SVTH:Nguyễn Khắc Hiên BAO CAO THUC TAP CHUONG 1: CO SO LY THUYET VE STM32 MEIASTER Timer1 wwscals | Trigger TROT > | Controller mini SLAVE/ MASTER Timer2 j | ' Tngger me) > pevecaber i} ¢ ontrother | SLAVE li s ' "" n.— le Timer 3 |@| mee©dle ai counter TRM2 Tims | 1Roo| 3) Trigger tRọo, 3) Trigger | Coetroller Controller External Trigger Hinh 1.17 Cau hinh cac khéi Timer két hop lại tạo thành mảng céc Timer Ở mô hỉnh tạo thành một mang Timer, mot Timer dong vai tro Master, cac Timer còn lai dong vai tro la Slave. RTC va cac thanh ghi Backup STM32 bao g6m 2 khéi nguén chinh: ngu6én danh cho nhan CPU, cac thiét bị ngoại vi và nguồn dành cho khối dự phòng. Cùng được thiết kế chung với khối dự phòng là 10 thanh ghi 16-bit, đồng hồ thời gian thực RTC và một khối Watchdog déc lap. Cac thanh ghi dự phòng đơn giản chỉ là 10 vùng nhớ để lưu các giá trị dữ liệu quan trọng khi hệ thống đi vào chế độ Standby và nguồn chính của hệ thống bị ngắt.

Ở chế độ tiết kiệm năng lượng, đồng hỗ RTC và Watchdog có thể được dùng kích hoạt hệ thống hoạt động trở lại. STM32 có một đồng hồ thời gian thực với thanh ghi đếm 32-bit và giá trị tăng lên một sau mỗi giây nếu xung nhịp đầu vào của nó là 32. Khi cầu hình xung nhịp hoạt động hệ thống, xung nhịp nguồn cho đồng hồ RTC này có thể duoc lay từ 3 nguồn: LSI, LSE, HSE với giá trị chia la 128.Nguyễn Mạnh Hùng 26 SVTH:Nguyễn Khắc Hiên BAO CAO THUC TAP CHUONG 1: CO SO LY THUYET VE STM32 HSE OSC Alarm!T OverflowIT Second IT _ Hình 1.18 Khỗi RTC c6 thé ldy nguén xung nhịp từ LSI, LSE và HSE _ Bộ đêm RTC có thê tạo được 3 sự kiện: tăng giá trị đêm, bộ đêm tràn và ngắt báo động. Ngắt báo động khi giá trị bộ đếm trùng với g1á trỊ được cầu hình trong thanh ghi Alarm.

RTC được đặt trong khối dự phòng với nguồn cung Vbat và tín hiệu ngắt Alarm được kết nối với chân nhận xung EXTI17. Điều đó có nghĩa khi hệ thống vảo trạng thái hoạt động của mức năng lượng thấp, RTC vẫn hoạt động. Và thông qua su kién Alarm, toan bộ hệ thống có thê được kích hoạt đề hoạt động trở lại ở chế độ bình thường.3 Kết nỗi với các giao tiếp khác ; STM32 hé tro 5 loai giao tiép ngoai vi khac nhau. STM32 có giao diện SPI va I2C đề giao tiếp với các mạch tích hợp khác.

Hỗ trợ giao tiếp CAN cho cdc module, USB cho giao tiếp PC và giao tiếp USART. SPI Hỗ trợ giao tiếp tốc độ cao với các mạch tích hợp khác, STM cung cấp 2 khối điều khiến SPI có khả năng chạy ở chế độ song công(Full duplex) với tốc độ truyền đữ liệu lên tới IS§MHz. Khối SPI tốc độ cao nằm trên APB2, khối SPI tốc độ thấp nằm trên APBI. Mỗi khối SPI có hệ thống thanh phi cầu hình độc lập, đữ liệu truyền có thế GVHD: Th§.Nguyễn Mạnh Hùng 27 SVTH:Nguyễn Khắc Hiên BAO CAO THUC TAP CHUONG 1: CO SO LY THUYET VE STM32 dưới dạng 8-bit hoặc 16-bit, thi tự hỗ trợ MSB hay LSB.

Chúng ta có thể cấu hình mỗi khối SPI đóng vai trò master hay slave. — 5)! n Rit MOSI ——— fle q ° aT e MISO —— s{u tịp SN SGK m— Hardware CRC NSS — —— a _ Hình I.19 Giao tiếp SPI Dé hồ trợ truyền đữ liệu tốc độ cao, mỗi khôi SPI có 2 kênh DMA dành cho gửi và nhận dữ liệu. Thêm vào đó là khối CRC dành cho cả truyền và nhận dữ liệu. Khối CRC déu co thé hé tro kiém tra CRC8 va CRC16.

Các đặc tính này rất cần thiết khi sử dung SPI dé giao tiếp với MMC/SD card. Voo Voo — R=47KQ2 Hình 1.20 giao tiếp SPI với SD card b. 2C Tương tự như SPI, chuẩn I2C cũng được STM32 hỗ trợ nhằm giao tiếp với các mạch tích hợp ngoài. Giao diện I2C có thể được cấu hình hoạt động ở chế độ slave, master hay đóng vai trò bộ phân xử đường trong hệ thống multi-master.

Giao diện I2C hỗ trợ tốc độ truyền chuân 100kHz hay tốc độ cao 400kHz. Ngoài ra còn hỗ trợ 7 hoặc 10 bít địa chỉ. Được thiết kế nhằm đơn giản hóa quá trình trao đối với 2 kênh DMA cho truyền và nhận dữ liệu. Hai ngắt một cho nhân Cortex, một cho định địa chỉ và truyền nhận.Nguyễn Mạnh Hùng 28 SVTH:Nguyễn Khắc Hiên BAO CAO THUC TAP CHUONG 1: CO SO LY THUYET VE STM32 f ‘ = 7 Bus Event =| Interrupt Requests 2 SA — mm C2 7 Error ==] Interrupt = Requests SMB = Alert — 0 M SMBUS | PMBUS q——| A — ee Hình 1.21 Giao tiếp 12C Thêm nữa đề đảm bảo tính chính xác đữ liệu truyền, khối kiểm tra lỗi đữ liệu( PAC — packet error checking) được tích hợp thêm vào giao diện I2C cho phép kiểm tra mã CRC-8 bit.

Thao tác này được thực hiện hoàn toàn tự động bởi phần cứng. PEC Value calculated and transmitted by master transmitter mm mh ae) | II , _—= az ậ 4 (Dal Nak Thủ) ‘AK Bi r băn VA] \ i) A) — = LÍ quan cenowiedgement UV Hình 1.22 Kiểm tra lỗi trên I2C c. USART Mặc dù các giao diện trao đôi đữ liệu dạng nối tiếp dần dần không con được hỗ trợ trên máy tính, chúng vẫn còn được sử dụng rất nhiều trong lĩnh vực nhúng bởi sự tiện ích và tính đơn giản. STM32 có đến 3 khối USART, mỗi khối có khả năng hoạt động đến tốc độ 4.

Một khối USART nằm trên APBI với xung nhịp hoạt động 72MHz, các khối còn lại năm trên APB2 hoạt động ở xung nhịp 36MHz.Nguyễn Mạnh Hùng 29 SVTH:Nguyễn Khắc Hiên BAO CAO THUC TAP CHUONG 1: CO SO LY THUYET VE STM32 Interrupt 7 USART x3 Requests Smart IrDA | Modem | LIN Card Fractional Baudrate Generator SCLK Hinh 1.23 Giao diện USART có khả năng hỗ trợ giao tiếp không đồng bộ UARTS, modem cũng HÌữt giao tiếp hông ngoại và Smdrfcard Với mạch tích hợp cho phép chia nhỏ tốc độ BAUD chuẩn thành nhiều tốc độ khác nhau thích hợp với nhiều kiểu trao đổi dữ liệu khác nhau. Mỗi khối USART có hai kênh DMA dành cho truyền và nhận dữ liệu. Khi hỗ trợ giao tiếp dạng UART, USART cung cấp nhiều chế độ giao tiếp. Có thể trao đôi dữ liệu theo kiểu chế độ haflfl-duplex trên đường truyền Tx.

Khi hỗ trợ giao tiếp modem và giao tiếp có sử dung diéu khién luéng (hardware flow control) USART cung cấp thêm các tín hiệu diéu khién CTS va RTS.24 Hỗ trợ giao tiếp ở chế độ hafl-duplex dựa trên một đường truyền Ngoài ra USART còn có thê dùng đề tạo các giao tiếp nội (local interconnect bus). Đây là mô hình cho phép nhiều vi xử lý trao đôi đữ liệu lẫn nhau. USART còn có khối encoder/decoder dung cho giao tiếp hồng ngoại với tốc độ hỗ trợ có thể đạt đến 1115200bps, hoạt động ở chế độ hafl-duplex NRZ khi xung nhịp hoạt động khoảng từ 1.4MHz cho đến 2. Đề thực hiện giao tiếp với smartcard, USART còn hỗ trợ chuẩn ISO 7618-3.Nguyễn Mạnh Hùng 30 SVTH:Nguyễn Khắc Hiên BAO CAO THUC TAP CHUONG 1: CO SO LY THUYET VE STM32 USART Tx _ Hinh 1.25 Giao tiép smartcard va hồng ngoại ; Người dùng có thê câu hình khôi USART cho các g1ao tiếp đông bộ tôc độ cao dựa trên 3 đường tín hiệu riêng biệt như SPI.

Khi hoạt động ở chế độ nay, khéi USART sé đóng vai trò là SPI master và có khả năng cấu hình Clock Polarity/Phase nên hoàn toàn có thé giao tiếp với các SPI slave khác.26 Hỗ trợ giao tiếp đồng bộ SPI d. CAN Khối điều khiến CAN cung cấp một điểm giao tiếp CAN day du hé tro chuan CAB 2.0B Active và Passive với tốc độ truyền dữ liệu 1 Mbit⁄s. Ngoài ra khối CAN còn có khối mở rộng hỗ trợ giao tiép truyén dtr ligu dang deterministic dia trén thé thoi gian Time-trigger CAN(TTCAN). Transmit Receive [— CAN Tx and receive CAN 2.0 Filter Blocks mailboxes BÀ Hình 1.27 khối điều khiên CAN GVHD: Th§.Nguyễn Mạnh Hùng 31 SVTH:Nguyễn Khắc Hiên BAO CAO THUC TAP CHUONG 1: CO SO LY THUYET VE STM32 Tên đầy đủ của CAN là bxCAN, trong đó bx là viết tat cla Base eXtended.

Mét giao diện cơ bản CAN tối thiểu phải hỗ trợ bộ đệm đơn truyền và nhận dữ liệu, trong khi đó các giao diện mở rộng cung cấp nhiều bộ đệm. bxCan là sự kết hợp giữa hai kiến trúc trên. bxCan có 3 bộ đệm dữ liệu cho truyền và 2 bộ đệm nhận, các bộ đệm này thường được gọi là mailbox(hộp thư). Mỗi mailbox được tổ chức như một FIFO hàng đợi.

r— TX Mailboxes ID ID ID Timestamp | | Timestamp | | Timestamp DLL DLL DLL DATA DATA Data ——==——ẺỄẺỄễỄẺễẽẻẻ Hình 1.28 Khỗi CAN có 3 mailbox cho truyền dữ liệu với đánh nhãn thời gian tự động cho chuẩn TTAN Một điểm quan trọng nữa của CAN là lọc gói tin nhận(receive message filter). Vi giao thức CAN truyền dữ liệu dựa trên địa chỉ đích nhận, do đó gói tin sẽ được phát trên toàn bộ mạng, chỉ có điểm nào có địa chỉ giống như địa chỉ nhận trên gói tin sẽ dùng gói tin đó. Lọc gói tin giúp các điểm trên mạng CAN tránh xử lý các gói tin không phủ hợp.STM32 cung cấp 14 bộ lọc(14 filters bank) được đánh số từ 0 -13 cho phép lọc toàn bộ các gói tin không cần thiết. Mỗi bộ lọc gồm 2 thanh ghi 32-bit CAN_FxR0 vaCAN FxR1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Tìm Hiểu Vi Điều Khiển ESP8266 và Ứng Dụng Đo Nhiệt Độ Tự Động" cung cấp cái nhìn sâu sắc về vi điều khiển ESP8266, một trong những thiết bị phổ biến trong lĩnh vực IoT (Internet of Things). Tài liệu này không chỉ giải thích cách thức hoạt động của ESP8266 mà còn hướng dẫn cách ứng dụng nó để xây dựng hệ thống đo nhiệt độ tự động. Những lợi ích mà tài liệu mang lại cho người đọc bao gồm việc nắm bắt kiến thức cơ bản về lập trình vi điều khiển, cũng như khả năng áp dụng vào thực tiễn để phát triển các dự án IoT.

Nếu bạn muốn mở rộng kiến thức của mình về các ứng dụng liên quan, hãy tham khảo tài liệu Luận văn thạc sĩ ứng dụng mạng reservoir trong nhận dạng và điều khiển, nơi bạn có thể tìm hiểu về các phương pháp nhận dạng và điều khiển trong hệ thống thông minh. Bên cạnh đó, tài liệu Nghiên cứu ứng dụng phần mềm thời gian thực xenomai trong điều khiển robot công nghiệp sẽ giúp bạn khám phá thêm về việc ứng dụng phần mềm trong điều khiển tự động. Cuối cùng, tài liệu Luận văn thạc sĩ ứng dụng vi điều khiển psoc điều khiển động cơ một chiều theo phương pháp pid sẽ cung cấp cho bạn cái nhìn sâu sắc về điều khiển động cơ bằng vi điều khiển, mở rộng thêm kiến thức về các phương pháp điều khiển hiện đại.