Thiết lập mô hình mạng điều khiển từ internet đến board điều khiển trung tâm, rồi từ đó đi đến các nút mạng khác. Giao tiếp dữ liệu qua mạng wifi thành công giữa board điều khiển trung tâm và các thiết bị hay cảm biến Xây dựng chương trình điều khiển là một server ứng dụng app điện thoại được tích hợp trên board, cho phép điều khiển khi có wifi. Thiết kế và thi công một số cảm biến như: cảm biến nhiệt độ độ ẩm, cảm biến độ ẩm đất và cảm biến ánh sáng.
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 22
MỤC LỤC
LỜI NÓI ĐẦU 3
I TỔNG QUAN VỀ VƯỜN TỰ ĐỘNG 4
1 Giới thiệu đề tài 4
2 Mục đích đề tài 4
3 Mô tả yêu cầu 4
4 Mục tiêu thực hiện 4
5 Sơ lược các bước thực hiện đề tài 4
II LINH KIỆN VÀ CÁC CHUẨN GIAO TIẾP SỬ DỤNG 5
1 Các linh kiện sử dụng và chức năng 5
1.1 Linh kiện sử dụng 5
1.2 Giới thiệu linh kiện 5
2 Các chuẩn giao tiếp sử dụng 13
2.1 Hệ điều hành FREERTOS 13
2.2 Giao tiếp UART 14
2.3 Chuyển đổi ADC 16
2.4 Giao tiếp API 18
2.5 Giao tiếp One Wire 19
2.6 Giao thức MQTT 20
III THIẾT KẾ MẠCH 22
1 Sơ đồ khối 22
1.1 Khối đầu vào 22
1.2 Khối xử lý STM32F103C8T6 22
1.3 Khối truyền nhận ESP8266 22
1.4 Khối hiển thị Web 22
1.5 Khối đầu ra 23
2 Thiết kế mạch phần cứng 23
2.1 Sơ đồ nguyên lý 23
2.2 PCB 23
2.3 Mạch hoàn thiện 24
IV KẾT LUẬN 25
Trang 33
LỜI NÓI ĐẦU
Ngày nay, với sự phát triển vượt bậc của khoa học kỹ thuật (KHKT), các công
cụ, máy móc hỗ trợ ngày càng ăn sâu vào các lĩnh vực của đời sống: từ những ngành truyền thống lâu đời như dệt may, nông nghiệp… đến những ngành công nghệ cao, đòi hỏi sự tỉ mỉ và chính xác cực cao Ngoài ra chúng cũng là công cụ giải trí, liên lạc,… giúp con người liên lạc, giao tiếp với nhau một cách dễ dàng, nhanh chóng và cần thiết, nhất là trong đại dịch Covid – 19, khi con người phải hạn chế việc giao tiếp trực tiếp với nhau
Song song với những tiến bộ mà KHKT mang lại, chúng ta lại càng quan tâm đến mối liên hệ giữa năng lượng - môi trường Chúng ta cần phải phối hợp giữa
sự phát triển của kỹ thuật và bảo vệ môi trường thì mới gọi là phát triển bền vững
Từ đó, các loại năng lượng sạch được con người cho ra đời như điện gió , điện mặt trời… giúp giảm thiểu tác hại ô nhiễm môi trường
Vườn tự động được trang bị các hệ thống tự động thông minh cùng với cách
bố trí hợp lý, các hệ thống này có khả năng tự điều phối các hoạt động theo thói quen của người sử dụng và loại cây trồng Các thiết bị này có thể tự đưa ra cách
xử lý tình huống được lập trình trước, hoặc là được điều khiển và giám sát từ xa
Từ nhu cầu thực tế muốn ước mơ về sử dụng thiết bị điện dân dụng tự động đến với mọi người dân, đồ án của chúng em đề xuất và xây dựng đề tài “Thiết kế
mô hình vườn cây tự động ứng dụng vi điều khiển” Chúng em xin chân thành cảm ơn giảng viên thầy Nguyễn Ngọc Minh, cảm ơn các thầy cô giáo trong khoa
Kỹ thuật Điện tử I đã tận tình giúp đỡ chúng em để đề tài của chúng em được hoàn thành đúng thời hạn
Trang 44
I TỔNG QUAN VỀ VƯỜN TỰ ĐỘNG
1 Giới thiệu đề tài
Vườn tự động là kiểu vườn được lắp đặt các thiết bị điện, điện tử có thể được điều khiển hoặc tự động hoá hoặc bán tự động Thay thế con người trong thực hiện một hoặc một số thao tác quản lý, điều khiển Hệ thống điện tử này giao tiếp với người dùng thông qua bảng điện tử đặt trong nhà, ứng dụng trên điện thoại di động, máy tính bảng hoặc một giao diện web
2 Mục đích đề tài
Bạn có thể kiểm soát và xem những gì đang diễn ra trong vườn cây của mình Ngay cả khi bạn không ở đó sử dụng điện thoại thông minh, máy tính bảng hoặc đôi khi là máy tính Vừa dễ dàng để sinh viên vận dụng những kiến thức tiếp thu được trên giảng đường vào nó và phù hợp để sinh viên học tập và nghiên cứu thêm về ngành Điện tử một cách cụ thể
3 Mô tả yêu cầu
Đảm bảo đầy đủ các yếu tố cơ bản nhất mô phỏng một vườn tự động thu nhỏ
Có tính khả thi và thực hiện được trong thời gian ngắn Đảm bảo phát triển theo mục tiêu của đề tài đặt ra: điều khiển và quản lý các thiết bị thông qua mạng internet
4 Mục tiêu thực hiện
Thiết lập mô hình mạng điều khiển từ internet đến board điều khiển trung tâm, rồi từ đó đi đến các nút mạng khác Giao tiếp dữ liệu qua mạng wifi thành công giữa board điều khiển trung tâm và các thiết bị hay cảm biến
Xây dựng chương trình điều khiển là một server ứng dụng app điện thoại được tích hợp trên board, cho phép điều khiển khi có wifi
Thiết kế và thi công một số cảm biến như: cảm biến nhiệt độ độ ẩm, cảm biến độ ẩm đất và cảm biến ánh sáng
5 Sơ lược các bước thực hiện đề tài
• Bước 1: Thảo luận đề tài, tìm hiểu về các linh kiện, đọc các tài liệu liên quan
• Bước 2: Thống kê các linh kiện, chọn giá sản phẩm phù hợp với nhu cầu và tiến hành đi mua linh kiện cần thiết
• Bước 3: Thiết kế mô hình mô phỏng vườn tự động
Trang 55
• Bước 4: Thực nghiệm kiểm tra các linh kiện, nghiên cứu cách hoạt động
• Bước 5: Nạp thử nghiệm
• Bước 6: Lắp ráp các linh kiện cần thiết và kiểm thử sản phẩm
• Bước 7: Làm báo cáo, thuyết trình, kết luận
II LINH KIỆN VÀ CÁC CHUẨN GIAO TIẾP SỬ DỤNG
1 Các linh kiện sử dụng và chức năng
Kit RF thu phát Wifi ESP8266 NodeMCU Lua CP2102 được dùng cho các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi, đặc biệt là các ứng dụng liên quan đến IoT
Trang 66
Module ESP8266
Thông số kỹ thuật :
✓ IC chính: ESP8266
✓ Phiên bản firmware: NodeMCU Lua
✓ Chip nạp và giao tiếp UART: CP2102
✓ GPIO tương thích hoàn toàn với firmware Node MCU
✓ Cấp nguồn: 5VDC MicroUSB hoặc Vin
✓ GIPO giao tiếp mức 3.3VDC
✓ Tích hợp Led báo trạng thái, nút Reset, Flash
✓ Tương thích hoàn toàn với trình biên dịch Arduino
✓ Kích thước: 25 x 50 mm
Trang 7STM32F103 là vi điều khiển 32 bit, tốc độ tối đa là 72Mhz
Giá thành cũng khá rẻ so với các loại vi điều khiển có chức năng tương tự Mạch nạp cũng như công cụ lập trình khá đa dạng và dễ sử dụng.\
Trang 88
Kit STM32F103C8T6
Thông số kỹ thuật:
thành 3.3VDC qua IC nguồn và cấp cho Vi điều khiển chính
tiếp: CAN, I2C, SPI, UART, USB,…
• Module relay 4 kênh 5V
Gồm 4 relay , điện áp hoạt động 5 v điều khiển đầu ra tối đa
220VAC/10A và 30VDC/10A Đầu vào IN1, IN2, IN3 IN4 nhận tín hiệu cực thấp
Module relay 4 kênh nhỏ thiết kế gọn chuyên nghiệp , khả năng chống nhiễu tốt và khả năng cách điện tốt An toàn đáng tin cậy Có sẵn header rất
Trang 9Mạch điều khiển relay 4 kênh này sử dụng chân kích mức Thấp (0V): khi có tín hiệu 0V vào chân IN thì relay sẽ nhảy qua thường Mở của Relay
Module relay 4 kênh 5V
• Module đo nhiệt độ và độ ẩm DHT11
Cảm biến nhiệt độ độ ẩm DHT11
Trang 1010
DHT11 là cảm biến nhiêt độ và độ ẩm giao tiếp với 1 chân dữ liệu, DHT11
đo được giá trị độ ẩm từ 20% đến 90%RH và nhiệt độ từ 0oC đến 50oC, độ chính xác: ± 5%RH và ±2oC
Cấu tạo cảm biến gồm 2 phần: một điện trở nhiệt và một cảm biến độ
ẩm điện dung Ngoài ra bên trong module còn có các mạch chuyển đổi tương
tự sang số Cảm biến được tích hợp bộ tiền xử lý giúp cho dữ liệu nhận về được chính xác mà không cần phải qua bất kỳ khâu phân tích hay tính toán nào.
Thông số kỹ thuật :
✓ Điện áp hoạt động: 5VDC
✓ Chuẩn giao tiếp: TTL, 1 wire
✓ Khoảng đo độ ẩm: 20%-80%RH sai số ± 5%RH
✓ Khoảng đo nhiệt độ: 0-50°C sai số ± 2°C
✓ Tần số lấy mẫu tối đa 1Hz (1 giây / lần)
Cảm biến bao gồm một biến trở để đặt ngưỡng độ ẩm mong muốn Đầu
ra kỹ thuật số có thể được kết nối với một bộ điều khiển vi mô để cảm nhận mức độ ẩm Cảm biến cũng xuất ra một đầu ra tương tự có thể được kết nối với ADC của bộ điều khiển vi mô để có được mức độ ẩm chính xác trong đất, phù hợp để thực hiện các dự án làm vườn bằng nước, cảm biến nước, v.v
Trạng thái đầu ra mức thấp (0V), khi đất thiếu nước đầu ra sẽ là mức cao (5V), độ nhạy cao chúng ta có thể điều chỉnh được bằng biến trở Cảm biến
Trang 11ra DO sẽ chuyển trạng thái từ mức thấp lên mức cao
✓ Sử dung chip LM393 để so sánh, ổn định làm việc
✓ Đầu kết nối sử dụng 3 dây
+ DO: Đầu ra tín hiệu số (mức cao hoặc mức thấp)
+ AO: Đầu ra tín hiệu tương tự (Analog)
Trang 12✓ DO: Đầu ra tín hiệu số (0 và 1)
✓ Mô tả sơ đồ chân của module cảm biến ánh sáng
+ DO: Tín hiệu ra digital + GND: Nối Mass - Cực âm + VCC: Nối nguồn 3.3V đến 5V
• Cách hoạt động
- Khi mức ánh sáng xung quanh chưa đạt đến ngưỡng, DO ở mức cao Khi mức ánh sáng xung quanh vượt quá ngưỡng được thiết lập, đầu ra DO ở mức thấp
- Đầu ra DO có thể được kết nối trực tiếp với vi điều khiển hoặc các
module khác (có thể là các mạch điều khiển ánh sáng)
- Đầu ra AO có thể được kết nối với vi điều khiển thông qua chức năng ADC, bạn có thể nhận được các giá trị cường độ ánh sáng xung quanh chính xác hơn
Trang 13Hệ điều hành (tiếng Anh: Operating System – viết tắt: OS) là một phần mềm dùng để điều hành, quản lý toàn bộ tất cả thành phần (bao gồm cả phần cứng và phần mềm) của thiết bị điện tử
Hệ điều hành giống như hội đồng quản trị vậy Họ có quyền quyết định ai làm gì và thời gian như thế nào Các nhân viên cũng như các ứng dụng, nhận lệnh của cấp trên và thực thi các công việc theo đúng chức năng của mình
Hệ điều hành thời gian thực (realtime): sinh ra cho các tác vụ cần sự phản hồi nhanh của hệ thống, thường được nhúng trong các loại vi điều khiển và 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 bởi vì đa
số các tác vụ tương tác với thiết bị, máy móc khác chứ không phải con người Các tài nguyên bên trong rất hữu hạn nên chỉ một sự chậm trễ cũng có thể làm hệ thống làm việc hoàn toàn sai lệch
• Hệ điều hành thời gian thực còn chia thành 2 loại:
• Soft-realtime: Sử dụng cho các ứng dụng cruise control (điều khiển hành trình) trong ô tô và các ứng dụng viễn thông
Trang 14RTOS khá phức tạp, nói một cách dễ hiểu hơn là nó thực hiện việc xử lý các trạng thái máy (State Machine) Các bạn có thể tìm hiểu tại bài viết States
Machine và lập trình nhúng
Nhân Kernel sẽ điều phối sự hoạt động của các tác vụ (Task), mỗi task sẽ có một mức ưu tiên (prioritize) và thực thi theo chu kì cố định Nếu có sự tác động như ngắt, tín hiệu hoặc tin nhắn giữa các Task, Kernel sẽ điều phối chuyển tới Task tương ứng với Code đó
Sự chuyển dịch giữa các Task rất linh động, độ trễ thấp mang lại độ tin cậy cao cho chương trình
Thay thì chạy từ trên xuống trong cùng một chương trình thì chúng sẽ được chạy theo các Task khác nhau Được chia nhỏ và chạy đồng thời
2.2 Giao tiếp UART
UART hay bộ thu-phát không đồng bộ đa năng là một trong những hình thức giao tiếp kỹ thuật số giữa thiết bị với thiết bị đơn giản và lâu đời nhất Bạn có thể tìm thấy các thiết bị UART trong một phần của mạch tích hợp (IC) hoặc dưới dạng các thành phần riêng lẻ Các UART giao tiếp giữa hai nút riêng biệt bằng cách sử dụng một cặp dẫn và một nối đất chung
Trang 1515
Chân Tx (truyền) của một chip kết nối trực tiếp với chân Rx (nhận) của chip kia và ngược lại Thông thường, quá trình truyền sẽ diễn ra ở 3.3V hoặc 5V UART là một giao thức một master, một slave, trong đó một thiết bị được thiết lập để giao tiếp với duy nhất một thiết bị khác
Dữ liệu truyền đến và đi từ UART song song với thiết bị điều khiển (ví dụ: CPU)
Khi gửi trên chân Tx, UART đầu tiên sẽ dịch thông tin song song này thành nối tiếp và truyền đến thiết bị nhận
UART thứ hai nhận dữ liệu này trên chân Rx của nó và biến đổi nó trở lại thành song song để giao tiếp với thiết bị điều khiển của nó
UART truyền dữ liệu nối tiếp, theo một trong ba chế độ:
- Full duplex: Giao tiếp đồng thời đến và đi từ mỗi master và slave
- Half duplex: Dữ liệu đi theo một hướng tại một thời điểm
- Simplex: Chỉ giao tiếp một chiều
Dữ liệu truyền qua UART được tổ chức thành các gói Mỗi gói chứa 1 bit bắt đầu, 5 đến 9 bit dữ liệu (tùy thuộc vào UART), một bit chẵn lẻ tùy chọn và 1 hoặc 2 bit dừng
UART là giao thức không đồng bộ, do đó không có đường clock nào điều chỉnh tốc độ truyền dữ liệu Người dùng phải đặt cả hai thiết bị để giao tiếp ở cùng tốc độ Tốc độ này được gọi là tốc độ truyền, được biểu thị bằng bit trên giây hoặc bps Tốc độ truyền thay đổi đáng kể, từ 9600 baud đến 115200 và hơn nữa Tốc độ truyền giữa UART truyền và nhận chỉ có thể chênh lệch khoảng 10% trước khi thời gian của các bit bị lệch quá xa
Trang 1616
• Ưu và nhược điểm của UART
Không có giao thức truyền thông nào là hoàn hảo, nhưng UART thực hiện khá tốt công việc của nó Dưới đây là một số ưu và nhược điểm để giúp bạn quyết định xem nó có phù hợp với nhu cầu của bạn hay không
• Ưu điểm
+ Chỉ sử dụng hai dây
+ Không cần tín hiệu clock
+ Có một bit chẵn lẻ để cho phép kiểm tra lỗi
+ Cấu trúc của gói dữ liệu có thể được thay đổi miễn là cả hai bên đều được thiết lập cho nó
+ Phương pháp có nhiều tài liệu và được sử dụng rộng rãi
• Nhược điểm
+ Kích thước của khung dữ liệu được giới hạn tối đa là 9 bit
+ Không hỗ trợ nhiều hệ thống slave hoặc nhiều hệ thống master
+ Tốc độ truyền của mỗi UART phải nằm trong khoảng 10% của nhau
2.3 Chuyển đổi ADC
ADC là từ viết tắt của Analog to Digital Converter hay bộ chuyển đổi analog sang kỹ thuật số là một mạch chuyển đổi giá trị điện áp liên tục (analog) sang giá trị nhị phân (kỹ thuật số) mà thiết bị kỹ thuật số có thể hiểu được sau đó có thể được sử dụng để tính toán kỹ thuật số Mạch ADC này có thể là vi mạch ADC hoặc được nhúng vào một bộ vi điều khiển
Trang 1717
Thiết bị điện tử ngày nay hoàn toàn là kỹ thuật số, không còn là thời kỳ của máy tính analog Thật không may cho các hệ thống kỹ thuật số, thế giới chúng ta đang sống vẫn là analog và đầy màu sắc, không chỉ đen và trắng
Ví dụ, một cảm biến nhiệt độ như LM35 tạo ra điện áp phụ thuộc vào nhiệt
độ, trong trường hợp của thiết bị cụ thể nó sẽ tăng 10mV khi nhiệt độ tăng lên mỗi độ Nếu chúng ta kết nối trực tiếp thiết bị này với đầu vào kỹ thuật số, nó sẽ ghi là cao hoặc thấp tùy thuộc vào các ngưỡng đầu vào, điều này là hoàn toàn vô dụng
Thay vào đó, chúng ta sử dụng một bộ ADC để chuyển đổi đầu vào điện áp analog thành một chuỗi các bit có thể được kết nối trực tiếp với bus dữ liệu của
bộ vi xử lý và được sử dụng để tính toán
• Cách thức ADC hoạt động
Một cách rất hay để xem xét hoạt động của ADC là tưởng tượng nó như một
bộ chia tỷ lệ toán học Tỷ lệ về cơ bản là ánh xạ các giá trị từ dải này sang dải khác, vì vậy ADC ánh xạ một giá trị điện áp sang một số nhị phân
Những gì chúng ta cần là một thứ có thể chuyển đổi điện áp thành một loạt các mức logic, ví dụ như trong một thanh ghi Tất nhiên, các thanh ghi chỉ có thể chấp nhận các mức logic làm đầu vào, vì vậy nếu bạn kết nối tín hiệu trực tiếp với đầu vào logic, kết quả sẽ không tốt Vì vậy cần có một giao diện ở giữa logic
và điện áp đầu vào analog
• Điện áp tham chiếu
Tất nhiên, không có ADC nào là tuyệt đối, vì vậy điện áp được ánh xạ tới giá trị nhị phân lớn nhất được gọi là điện áp tham chiếu Ví dụ: trong bộ chuyển đổi
10 bit với 5V làm điện áp tham chiếu, 1111111111 (tất cả các bit một, số nhị phân 10 bit cao nhất có thể ) tương ứng với 5V và 0000000000 (số thấp nhất tương ứng với 0V) Vì vậy, mỗi bước nhị phân lên đại diện cho khoảng 4,9mV,
vì có thể có 1024 chữ số trong 10 bit Số đo điện áp trên mỗi bit này được gọi là
độ phân giải của ADC
Trang 1818
Điều gì sẽ xảy ra nếu điện áp thay đổi dưới 4,9mV mỗi bước? Nó sẽ đặt ADC vào vùng chết, do đó kết quả chuyển đổi luôn có một lỗi nhỏ Có ngăn chặn lỗi này bằng cách sử dụng ADC có độ phân giải cao hơn ví dụ như bộ ADC lên đến 24 bit, mặc dù tần số chuyển đổi thấp
• Tốc độ mẫu
Số lượng chuyển đổi từ analog sang kỹ thuật số mà bộ chuyển đổi có thể thực hiện mỗi giây được gọi là tốc độ mẫu Ví dụ: một bộ ADC thực sự tốt có thể có tốc độ mẫu là 300Ms / s Đơn vị này được đọc là megasamples trên giây, nghĩa là một triệu mẫu mỗi giây Lưu ý rằng tiền tố SI áp dụng ở đây
Tốc độ lấy mẫu phụ thuộc hoàn toàn vào loại bộ chuyển đổi và độ chính xác cần thiết Nếu cần đọc rất chính xác, ADC thường dành nhiều thời gian hơn để xem xét tín hiệu đầu vào (thường là lấy mẫu và giữ hoặc đầu vào tích hợp) và nếu không cần độ chính xác cao thì nó có thể đọc rất nhanh
Nguyên tắc chung là tốc độ và độ chính xác tỷ lệ nghịch với nhau, điều quan trọng là phải chọn ADC tùy thuộc vào ứng dụng
2.4 Giao tiếp API
API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác
Nó là viết tắt của Application Programming Interface – giao diện lập trình ứng dụng API cung cấp khả năng cung cấp khả năng truy xuất đến một tập các hàm hay dùng Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng