1
BÁO CÁO BÀI TẬP
Chủ đề :
Thiết kế hệ thống thông gió điều khiển từ xa
Giảng viên hướng dẫn: Ts. Ngơ Thanh Bình
Sinh viên:
Đặng Đồng Tuấn Anh - 181413497
Giáp Kim Anh - 181401811
Nguyễn Trọng Lâm - 1814000398
Bùi Trọng Nghĩa - 181412037
Phạm Minh Phương - 181401833
Lớp :
Kỹ thuật Điện tử & Tin học Công nghiệp 1 - K59
Môn
:
Thiết kế Hệ thống Nhúng
2
I. Phân tích yêu cầu đề bài
II. Lý thuyết chung
BI.
Phần cứng
IV. Phần mềm
3
I.
1)
Phân tích yêu cầu đề bài
Ý tưởng
Xây dựng hệ thống nhúng sử dụng vi xử lý ESP32 ứng dụng trong điều khiển cách ly thu thập dữ liệu qua mạng wifi.
2) Mục tiêu
Xây dựng được mạch thu thập dữ liệu và điều khiển relay từ xa hướng tới ứng dụng trong hệ thống thơng gió trong sinh hoạt.
3) Hướng phát triển
Phát triển thêm các chức năng điều khiển đèn, điều hòa
Xây dựng hệ thống báo cháy
Ứng dụng thêm vào mạng Lora, ESP-Now
...
4
AI.
Lý thuyết chung
1)
Cơ sở lý thuyết
2)
Các giao thức
Giao thức HTTP
- HTTP là tên viết tắt của cụm từ HyperText Transfer Protocol - giao thức truyền tải siêu văn bản, được sử dụng
trong www dùng để truyền tải dữ liệu giữa Web server đến các trình duyệt Web và ngược lại.
- HTTP lần đầu được giới thiệu vào những năm 90. Cho đến ngày nay, nó khơng ngừng được mở rộng và chiếm
một vị trí rất quan trọng trong thế giới Internet. HTTP được coi như là một giao thức ứng dụng của bộ các giao
thức nền tảng cho Internet TCP/IP. Nó cũng có thể được gửi thơng qua kết nối TCP được mã hóa TLS.
a)
5
AI.
b)
-
Lý thuyết chung
Cấu trúc cơ bản của HTTP
Cấu trúc hoạt động của HTTP rất đơn giản và dễ hiểu. HTTP là
một nền tảng cho phép sự giao tiếp giữa 2 phía là Client và
Server. Client ở đây là người dùng, thường truy cập vào HTTP
thông qua một công cụ bất kỳ như trình duyệt web. Cịn Server
sẽ đại diện cho phía website, đằng sau giao diện web gồm có
kịch bản phản ứng từ máy chủ và cơ sở dữ liệu.
Quá trình giao tiếp của Client và Server sẽ dựa trên các
message độc lập. Đầu tiên, phía khách hàng sẽ gửi một
message đến cho máy chủ, thường là các yêu cầu lợi ích
khiến khách hàng truy cập website này. Sau khi tiếp
nhận yêu cầu và xử lý, máy chủ sẽ trả lại một message
được gọi là phản hồi.
-
6
AI.
d)
Lý thuyết chung
Giao thức WebSocket
Websocket là giao thức hỗ trợ giao tiếp hai chiều giữa client và server để
tạo một kết nối trao đổi dữ liệu. Giao thức này không sử dụng HTTP mà
thực hiện nó qua TCP. Mặc dù được thiết kế để chuyên sử dụng cho các
ứng dụng web, lập trình viên vẫn có thể đưa chúng vào bất kì loại ứng
dụng nào.
Ưu điểm: WebSocket cung cấp giao thức giao tiếp hai chiều
mạnh mẽ. Nó có độ trễ thấp và dễ xử lý lỗi. Websocket thường
được sử dụng cho những trường hợp yêu cầu real time như
chat, hiển thị biểu đồ hay thơng tin chứng khốn.
Cấu trúc WebSocket
7
BI.
1)
Phần cứng
Linh kiện sử dụng trong mạch
1 Kit Arduino Wifi BLE SoC ESP32 WeMos D1 R32
1 LCD keypad shield 1602
1 Module relay 1 kênh 5V10A RL1-0510
1 cảm biến nhiệt độ, độ ẩm DTH11
1 bộ nguồn adapter 12V
Điện thoại và máy tính
8
BI.
a)
Phần cứng
Giới thiệu về ESP32
ESP32 là một series các vi điều khiển trên một vi mạch giá rẻ, năng lượng thấp có hỗ trợ WiFi và dual-mode Bluetooth (tạm
dịch: Bluetooth chế độ kép). Dòng ESP32 sử dụng bộ vi xử lý Tensilica Xtensa LX6 ở cả hai biến thể lõi kép và lõi đơn, và bao
gồm các công tắc antenna tích hợp, RF balun, bộ khuếch đại cơng suất, bộ khuếch đại thu nhiễu thấp, bộ lọc và module quản lý
năng lượng.
Nhà chế tạo
Loại
Ngày ra mắt
CPU
Bộ nhớ
Năng lượng
Sản phẩm trước
Sản phẩm sau
9
BI.
a)
Phần cứng
Giới thiệu về ESP32
Sơ đồ chân ESP32
Sơ đồ khối chức năng của ESP32
10
BI.
Phần cứng
Hệ thống xung nhịp:
CPU Clock, RTC Clock và Audio PLL Clock
Bộ nhớ nội:
o
448 KB bộ nhớ ROM cho việc booting và các tính năng
lõi
o
520 KB bộ nhớ SRAM trên chip cho dữ liệu và tập lệnh
Kết nối không dây:
o
Wi-Fi: 802.11 b/g/n
o
Bluetooth: v4.2 BR/EDR và BLE (chia sẻ sóng vơ
tuyến với Wi-Fi)
Kit ESP32 của hãng: WeMos model: Arduino uno
11
BI.
Phần cứng
34 GPIO pad vật lý với các ngoại vi:
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ADC SAR 12 bit, 18 kênh
DAC 2 × 8-bit
10 touch sensor
3 SPI (SPI, HSPI và VSPI)
2 I²S
2 I²C
3 UART (UART0, UART1, UART2) với tốc độ lên đến 5 Mbps
SD/SDIO/CE-ATA/MMC/eMMC host controller
SDIO/SPI slave controller
Ethernet MAC interface cho DMA và IEEE 1588 Precision Time Protocol (tạm dịch: Giao thức thời gian chính xác IEEE 1588)
CAN bus 2.0
Bộ điều khiển hồng ngoại từ xa (TX/RX, lên đến 8 kênh)
PWM cho điều khiển động cơ
LED PWM (lên đến 16 kênh)
Cảm biến hiệu ứng Hall
Bộ tiền khuếch đại analog công suất cực thấp (Ultra low power analog pre-amplifier)
12
III. Phần cứng
Bảo mật:
o
o
o
o
o
Hỗ trợ tất cả các tính năng bảo mật chuẩn IEEE 802.11
Secure boot (tạm dịch: khởi động an tồn)
Mã hóa flash
1024-bit OTP, lên đến 768-bit cho khách hàng
Tăng tốc mã hóa phần cứng: AES, SHA-2, RSA, elliptic curve
cryptography (ECC - mật mã đường cong ellip), trình tạo số
ngẫu nhiên (random number generator - RNG)
Quản lý năng lượng:
o
o
o
o
Bộ ổn áp nội với điện áp rơi thấp (internal low-dropout regulator)
Miền nguồn riêng (individual power domain) cho RTC
Dòng 5μA cho chế độ deep sleep
Trở lại hoạt động từ ngắt GPIO, timer, đo ADC, ngắt với cảm
ứng điện dung.
13
BI.
b)
Phần cứng
Giới thiệu 1602 LCD Keypad Shield
LCD1602 Keypad Shield được phát triển và tương thích với các board Arduino, nhằm tạo một giao diện người dùng thân
thiện, cho phép người dùng đơn giản hóa q trình điều chỉnh và làm mạch.
Thông số kỹ thuật
LCD1602 Keypad Shield hoạt động ở điện áp 5V.
Bao gồm LCD 2×16 và 6 nút nhấn.
Sử dụng chân 4,5,6,7,8,9,10 và chân A0 của
Arduino để giao tiếp với LCD.
Không cần sử dụng chân 10 sau khi LCD đã được kết
nối.
Đèn nền xanh dương với chứ màu trắng.
Sử dụng thư viện LCD 4bit.
Điều chỉnh độ sáng đèn nền qua biến trở.
14
III. Phần cứng
Sơ đồ chân LCD1602 Keypad Shield
Chân
Chức năng
Digital4
DB4
Digital5
DB5
Digital6
DB6
Digital7
DB7
Digital8
RS (data or signa
Digital9
Enable
Analog0
Buttons (select, u
15
BI.
c)
Phần cứng
Module relay 1 kênh 5V10A RL1-0510
Điều khiển thiết bị qua Relay
- Tính hiệu vào điều khiển: 5VDC
- Mặc định điều khiển:
•
Bật 0 - Tắt 1
- Thay đổi J1, J0 để thay đổi mức điều khiển
- Đầu ra:
•
Tiếp điểm relay 250V 10A (khơng phải điện áp ra)
•
NC : Thường đóng
•
NO: Thường mở
- Ký hiệu nguồn:
VCC, GND là nguồn chung với điều khiển
•
VSS+ , VSS- là nguồn của Relay
Nếu muốn cách ly thì sử dụng 2 nguồn riêng
Nếu dùng chung nguồn, cần Jump Chốt để nối VCC -- VSS+ ;
GND -- VSS•
16
BI.
d)
Phần cứng
Cảm biến nhiệt độ, độ ẩm DTH11
Cảm biến độ ẩm và nhiệt độ DHT11 là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp
1 wire (giao tiếp digital 1 dây truyền dữ liệu duy nhất). Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp bạn có được dữ liệu
chính xác mà khơng phải qua bất kỳ tính tốn nào.
Thơng số kỹ thuật:
Nguồn: 3 - 5 VDC.
Dòng sử dụng: 2.5mA max
Khoảng đo độ ẩm: 20%-90% RH (± 5%RH)
Khoảng đo nhiệt độ: 0-50°C (± 2°C)
Tần số lấy mẫu tối đa: 1Hz (1 giây / lần)
Kích thước 15mm x 12mm x 5.5mm.
17
BI.
e)
Phần cứng
Nguồn adapter 12V
Nguồn adapter 12V - 1A được thiết kế để chuyển đổi điện áp từ nguồn xoay chiều 110/220VAC thành nguồn 12VDC
để cung cấp cho các thiết bị hoạt động.
Thông số kỹ thuật
Điện áp đầu vào: AC100-240V 50 / 60HZ
Đầu cắm AC: chuẩn Hoa Kỳ
Điện áp đầu ra: DC12V
Dòng đầu ra tối đa: 1A
Tổng chiều dài nguồn ~ 1m5
Hiệu quả: > 85%
Jack cắm DC : 5.5*2.5mm (tương thích 5.5 * 2.1mm)
Trọng lượng: 215g
18
BI.
2)
Phần cứng
Sơ đồ khối phần cứng
19
BI.
3)
Phần cứng
Mạch đấu nối
Thiết
bị đấu
nối
DHT11
Relay
Sơ đồ đấu nối trên Fritzing
Mạch đấu nối thực tế
20
IV. Phần mềm
1)
Mơi trường lập trình
Visual Studio Code
• Visual Studio Code là một trình biên tập mã được phát triển bởi
Microsoft dành cho Windows, Linux và macOS. Nó hỗ trợ chức năng
debug, đi kèm với Git, có syntax highlighting, tự hồn thành mã
thơng minh, snippets, và cải tiến mã nguồn.
a)
•
•
Visual Studio Code được dựa trên Electron, một nền tảng được sử
dụng để triển khai các ứng dụng Node.js máy tính cá nhân chạy trên
động cơ bố trí Blink.
Trong cuộc khảo sát vào năm 2018 trên Stack Overflow, Visual
Studio Code được xếp hạng là trình biên tập mã phổ biến nhất.
21
IV. Phần mềm
Tính năng:
• Visual Studio Code hỗ trợ nhiều ngơn ngữ và chức
năng tùy vào ngơn ngữ sử dụng.
• Nhiều chức năng của Visual Studio Code không
hiển thị ra trong các menu tùy chọn hay giao diện
người dùng. Thay vào đó, chúng được gọi thơng
qua khung nhập lệnh hoặc qua một tập tin .json (ví
dụ như tập tin tùy chỉnh của người dùng).
• Khung nhập lệnh là một giao diện theo dịng lệnh.
Tuy nhiên, nó biến mất khi người dùng nhấp bất cứ
nơi nào khác, hoặc nhấn tổ hợp phím để tương tác
với một cái gì đó ở bên ngồi đó.
Giao diện của Visual Studio Code
22
IV. Phần mềm
Chức năng
Syntax highlighting
Snippets
Tự động hồn thành mã thơng minh CSS, HTML, JavaScript, JSON, Less, Sass, TypeScript
Cải tiến mã nguồn
Debugging
Visual Studio Code có thể được mở rộng qua plugin. Điều này giúp bổ sung thêm chức năng cho trình biên tập và hỗ trợ
thêm ngơn ngữ. Một tính năng đáng chú ý là khả năng tạo phần mở rộng để phân tích mã, như là các linter và cơng cụ phân tích,
sử dụng Language Server Protocol.
23
IV. Phần mềm
b)
Platform IO-IDE
•
PlatformIO là một hệ sinh thái mã
nguồn mở được viết trên Python để
phát triển IoT và là một IDE đa nền
tảng với trình gỡ lỗi hợp nhất chạy
trên Windows, Mac và Linux.
•
PlatformIO đi kèm với trình quản lý
thư viện cho các nền tảng như
Arduino hay MBED cùng với kiểm
thử phần mềm và cập nhật firmware.
•
PlatformIO hỗ trợ một số platform,
framework, board như Arduino,
ESP32, ESP8266 và đi kèm với một
số ví dụ và thư viện.
Giao diện lập trình của Platform IO trên VSCode
24
IV. Phần mềm
Những ưu điểm của PlatformIO:
•
PlatformIO giúp người dùng viết chương trình nhanh chóng với các tính năng như hồn tất code C/C ++ và cơng cụ
hỗ trợ viết code thông minh Linter để phát triển dự án chuyên nghiệp và nhanh chóng. Nó cũng đi kèm với điều
hướng code và định dạng code.
•
Trình gỡ lỗi hợp nhất với hỗ trợ cho nhiều kiến trúc và nền tảng phát triển cho phép gỡ lỗi nhiều board nhúng với
Zero-Configuration. Trình gỡ lỗi có các tính năng như điểm ngắt có điều kiện (Conditional Breakpoint), biểu thức
(Expression) và điểm theo dõi (Watchpoint), trình xem bộ nhớ (Memory Viewer), khởi động lại nóng phiên gỡ lỗi
đang hoạt động.
•
PlatformIO Core được viết bằng Python và hoạt động trên Windows, macOS, Linux, FreeBSD và thậm chí cả các máy
tính có kích thước nhỏ dựa trên ARM như Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK, v.v...
25