Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
3,47 MB
Nội dung
Đồ án thiết kế hệ thống nhúng HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA KĨ THUẬT ĐIỆN TỬ BÁO CÁO BÀI TẬP MÔN HỌC: ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG HỆ THỐNG VƯỜN THÔNG MINH Giảng viên: Ts Nguyễn Ngọc Minh Nhóm mơn học: 03 Hà nội - 2022 NHÓM Đồ án thiết kế hệ thống nhúng Mục lục MỞ ĐẦU I Cơ sở lý thuyết: 1) Vi điều khiển ESP32 2) Soil Moisture Sensor 3) Cảm biến ánh sáng BH1750 4) Cảm biến DHT11 .8 5) Màn hình LCD TFT 11 6) Cơ sở liệu MySQL 14 7) Socket io 15 8) HTML, CSS, JS 16 9) MQTT .17 10) RTOS 18 II Thiết kế hệ thống .19 Nguyên lý hoạt động: .19 Sơ đồ khối: 19 Lưu đồ thuật toán: 21 Hệ thống: 21 Kết quả: .24 Kết luận định hướng phát triển: 26 Phân công nhiệm vụ: 27 Tài Liệu Tham Khảo 28 LỜI CẢM ƠN 29 NHÓM Đồ án thiết kế hệ thống nhúng MỞ ĐẦU Trong kỹ thuật đại ngày nay, hệ thống tự động hóa đơn giản, nhỏ gọn hoạt động ổn định cần thiết Hiện nay, hệ thống tự động hóa ngày cảng sử dụng rộng rãi ví dụ hệ thống vườn thông minh Các hệ thống áp dụng giao thức kết nối để truyền tải liệu từ phần cứng thị lên phần mềm, web socket, web server cho phép người dùng dễ dàng quan sát theo dõi từ xa Cấu trúc hệ thống vốn không phức tạp vấn đề điều khiển tử động quan sát liệu đình kỳ, bảo đảm hoạt động ổn định mục tiêu cơng trình nghiên cứu Chúng em xin chân thành cảm ơn thầy giáo Nguyễn Ngọc Minh tận tình quan tâm hướng dẫn chúng em suốt thời gian qua Do cịn việc hạn chế trình độ ngoại ngữ, chuyên môn thiếu kinh nghiệm làm nên đồ án chúng em nhiều khiếm khuyết, sai sót Chúng em mong nhận nhiều ý kiến đóng góp lời khun hữu ích từ thầy, để thấy rõ điều cần nghiên cứu bổ sung, giúp cho việc xây dựng đề tài đạt đến kết hồn thiện NHĨM Đồ án thiết kế hệ thống nhúng Hệ thống vườn thông minh I Cơ sở lý thuyết: 1) Vi điều khiển ESP32 - Board mạch thu phát ESP32 hệ thống vi điều khiển chip (SoC) giá rẻ Espressif Systems, nhà phát triển ESP8266 SoC Nó kế thừa SoC ESP8266 có hai biến thể lõi đơn lõi kép vi xử lý 32-bit Xtensa LX6 Tensilica với Wi-Fi Bluetooth tích hợp, dùng nhiều cho thiết bị IoT, ứng dụng cần kết nối mạng wifi Hình 2.1: ESP32 NodeMCU - Sơ đồ chân: NHĨM 3 Đồ án thiết kế hệ thống nhúng Hình 2.2: Sơ đô chân ESP32 2) Soil Moisture Sensor - Cảm biến độ ẩm đất Soil Moisture Sensor thường sử dụng mơ hình tưới nước tự động, vườn thông minh, , cảm biến giúp xác định độ ẩm đất qua đầu dò trả giá trị Analog, Digital qua chân tương ứng để giao tiếp với vi điều khiển để thực vô số ứng dụng khác Hình 2.3: Cảm biến độ ẩm đất - Thông số kỹ thuật: ● Điện áp hoạt động: 3.3~5VDC ● Tín hiệu đầu ra: o Analog: theo điện áp cấp nguồn tương ứng o Digital: High Low, điều chỉnh độ ẩm mong muốn biến trở thơng qua mạch so sánh LM393 tích hợp ● Kích thước: x 1.6cm - Sơ đồ chân: Tên chân Chức VCC 3.3V ~ 5V GND Chân đất DO AO Đầu tín hiệu số mức high or low Đầu tín hiệu tương tự NHĨM Đồ án thiết kế hệ thống nhúng Hình 2.4: Sơ đồ chân cắm với vi điều khiển 3) Cảm biến ánh sáng BH1750 - Mạch cảm biến cường độ ánh sáng BH1750 cảm biến ánh sáng với chuyển đổi AD 16 bit tích hợp chip xuất trực tiếp liệu theo dạng digital Cảm biến khơng cần tính tốn cường độ ánh sáng khác - BH1750 sử dụng đơn giản xác nhiều lần so với dùng cảm biến quang trở để đo cường độ ánh sáng với liệu thay đổi điện áp dẫn đến việc sai số cao.Với cảm biến BH1750 cho liệu đo trực tiếp với dạng đơn vị LUX không cần phải tính tốn chuyển đổi thơng qua chuẩn truyền I2C Hình 2.5: Cảm biến ánh sáng BH1750 - Thơng số kỹ thuật: ● ● ● ● ● ● ● ● Chuẩn kết nối i2C Độ phân giải cao(1 - 65535 lx ) Tiêu hao nguồn Khả chống nhiễu sáng tần số 50 Hz/60 Hz Sự biến đổi ánh sáng nhỏ (+/- 20%) Độ ảnh hưởng ánh sáng hồng ngoại nhỏ Nguồn cung cấp : 3.3V-5V Kích thước board : 0.85*0.63*0.13"(21*16*3.3mm) - Cường độ tính sau: NHĨM Đồ án thiết kế hệ thống nhúng ● ● ● ● ● Ban đêm: 0.001 - 0.02 lx Trời sáng trăng: 0.02 - 0.3 lx Trời mây nhà: - 50 lx Trời mây trời: 50 - 500 lx Trời nắng nhà: 100- 1000 lx - Sơ đồ chân: Tên chân Chức VCC Chân cấp nguồn từ 3.3V ~ 5V GND Chân đất SCL Chân xung clock cấp xung nhịp cho giao thức I2C Chân truyền liệu giao thức I2C SDA ADDR Chân địa chọn địa thiết bị giao tiếp có nhiều hai module kết nối Hình 2.6: Sơ đồ cắm chân BH1750 với vi điều khiển - Chuẩn giao tiếp I2C: I2C kết hợp tính tốt SPI UART Với I2C, bạn kết nối nhiều slave với master (như SPI) bạn có nhiều master điều khiển nhiều slave Hình 2.7: Giao tiếp I2C NHÓM Đồ án thiết kế hệ thống nhúng SDA (Serial Data) - đường truyền cho master slave để gửi nhận liệu SCL (Serial Clock) - đường mang tín hiệu xung nhịp Cách hoạt động: Hình 2.8: Chu trình truyền liệu ● Điều kiện khởi động: Đường SDA chuyển từ mức điện áp cao xuống mức điện áp thấp trước đường SCL chuyển từ mức cao xuống mức thấp ● Điều kiện dừng: Đường SDA chuyển từ mức điện áp thấp sang mức điện áp cao sau đường SCL chuyển từ mức thấp lên mức cao ● Khung địa chỉ: Một chuỗi 10 bit cho slave để xác định slave master muốn giao tiếp với Hình 2.9: Khung địa ● Bit Đọc / Ghi: Một bit định master gửi liệu đến slave (mức điện áp thấp) hay yêu cầu liệu từ (mức điện áp cao) ● Bit ACK / NACK: Mỗi khung tin nhắn theo sau bit xác nhận / không xác nhận Nếu khung địa khung liệu nhận thành công, bit ACK trả lại cho thiết bị gửi từ thiết bị nhận ● Các bước truyền liệu I2C: • Master gửi điều kiện khởi động đến slave kết nối cách chuyển đường SDA từ mức điện áp cao sang mức điện áp thấp trước chuyển đường SCL từ mức cao xuống mức thấp • Master gửi cho slave địa 10 bit slave mà muốn giao tiếp, với bit đọc / ghi • Mỗi slave so sánh địa gửi từ master với địa Nếu địa trùng khớp, slave trả bit ACK cách kéo dòng SDA xuống thấp cho bit Nếu địa từ master không khớp với địa slave, slave rời khỏi đường SDA cao • Master gửi nhận khung liệu • Sau khung liệu chuyển, thiết bị nhận trả bit ACK khác cho thiết bị gửi để xác nhận nhận thành cơng khung • Để dừng truyền liệu, master gửi điều kiện dừng đến slave cách chuyển đổi mức cao SCL trước chuyển mức cao SDA NHÓM Đồ án thiết kế hệ thống nhúng 4) Cảm biến DHT11 - Cảm Biến Nhiệt Độ Và Độ Ẩm DHT11 cảm biến thơng dụng chi phí rẻ dễ lấy liệu thông qua giao tiếp wire (giao tiếp digital dây truyền liệu nhất) Bộ tiền xử lý tín hiệu tích hợp cảm biến giúp bạn có liệu xác mà khơng phải qua tính tốn Hình 2.10: DHT11 - Thông số kỹ thuật: ● Điện áp hoạt động: 3V - 5V DC ● Dòng điện tiêu thụ: 2.5mA ● Phạm vi cảm biến độ ẩm: 20% - 90% RH, sai số ±5%RH ● Phạm vi cảm biến nhiệt độ: 0°C ~ 50°C, sai số ±2°C ● Tần số lấy mẫu tối đa: 1Hz (1 giây lần) ● Kích thước: 23 * 12 * mm - Sơ đồ chân: Hình 2.11: Sơ đồ kết nối Tên chân VCC DATA Chức Chân nguồn từ 3.5V ~ 5.5V Đầu nhiệt độ độ ẩm thơng qua liệu nối tiếp NHĨM Đồ án thiết kế hệ thống nhúng GND Chân đất - Phương thức hoạt động chuẩn wire: Hình 2.12: Mơ hình kết nối chuẩn wire Chuẩn wire có phương thức sử dụng reset, write bit 0, write bit read: ● Reset: Chuẩn bị giao tiếp Master cấu hình chân data Ouput, kéo xuống khoảng H nhả để trở treo kéo lên mức Sau cấu hình Master chân Input, delay I (us) đọc giá trị slave trả Nếu = cho phép giao tiếp Nếu data = đường truyền lỗi slave bận ● Write : truyền bit 1: Master kéo xuống khoảng A(us) mức khoảng B (us) ● Write : truyền bit 0: Master kéo xuống khoảng C trả khoảng D (us) ● Read : Đọc Bit : Master kéo xuống khoảng A trả delay khoảng E(us) đọc giá trị slave gửi Các bạn phải bắt tín hiệu khoảng F Sau khoảng Slave nhả chân F trạng thái (IDLE – Rảnh rỗi) Hình 2.13: Dạng xung phương thức hoạt động chuẩn wire NHÓM Đồ án thiết kế hệ thống nhúng - MySQL tạo bảng để lưu trữ liệu, định nghĩa liên quan bảng - Client gửi yêu cầu SQL lệnh đặc biệt MySQL - Ứng dụng server phản hồi thông tin trả kết máy client 7) Socket io a) Khái niệm - Để xây dựng ứng dụng realtime cần sử dụng socketio Socketio giúp bên địa điểm khác kết nối với nhau, truyền liệu thông qua server trung gian Socketio sử dụng nhiều ứng dụng chat, game online, cập nhật kết trận đấu xảy ra, - Socketio ngôn ngữ, mà công cụ giúp thực ứng dụng realtime Vì thế, khơng thể sử dụng socketio để thay hoàn toàn cho ngôn ngữ, mà phải sử dụng kết hợp với ngơn ngữ khác Ngơn ngữ php, asp.net, nodejs, b) Cấu trúc Socket io - Cấu trúc ứng dụng realtime sử dụng socket bao gồm phần: phía server, phía client Hình 2.24: Mơ hình hệ thống - Socket io Phía server - Đây nơi cài đặt socket io Ngôn ngữ để dựng server php, asp.net, nodejs, Tuy nhiên, tùy vào ngôn ngữ lựa chọn mà cách cấu trúc server khác Ở đây, khuyến khích sử dụng nodejs để dựng server, cài trực tiếp socket io vào server Nếu sử dụng php phải cài thêm package khác, phải chuẩn bị riêng server để chạy socket io - Phía client Ở phía client xây dựng giao diện người dùng Ở sử dụng js, thư viện js jquery,… Cơ chế hoạt động socketio: NHÓM 15 Đồ án thiết kế hệ thống nhúng - Cơ chế hoạt động ứng dụng realtime thơng qua server để lắng nghe (listen) data truyền data máy client Vì cần cài khai báo sử dụng socketio phía server client Để lắng nghe data, ta sử dụng câu lệnh socket.on(), để phát liệu sử dụng lệnh socket.emit() Socket.on socket.emit có parameter thứ tên đường truyền Tên đường truyền tên bất ký, nhiên đễ truyền nhận liệu chung đường truyền tên đường truyền phải giống 8) HTML, CSS, JS a) HTML - HTML tạm dịch ngôn ngữ đánh dấu siêu văn Người ta thường sử dụng HTML việc phân chia đoạn văn, heading, links, blockquotes,… - Một Website thường chứa nhiều trang trang lại có tập tin HTML riêng Lưu ý, HTML ngôn ngữ lập trình Điều có nghĩa khơng thể thực chức “động” Hiểu cách đơn giản hơn, tương tự phần mềm Microsoft Word, HTML có tác dụng bố cục định dạng trang web HTML kết hợp với CSS JavaScript trở thành tảng vững cho giới mạng - HTML hiển thị tảng khác Linux, Windows, Max tảng độc lập - Tuy HTML đánh giá mạnh chưa đủ khả xây dựng trang web chuyên nghiệp Do đó, lập trình viên thường sử dụng HTML để thêm element dạng văn xây dựng giao diện cấu trúc cho phần nội dung trang Sau đó, họ dùng ngơn ngữ frontend CSS Javascript để tạo nên Website hoàn chỉnh b) CSS - CSS chữ viết tắt Cascading Style Sheets, ngơn ngữ sử dụng để tìm định dạng lại phần tử tạo ngôn ngữ đánh dấu (HTML) Nói ngắn gọn ngơn ngữ tạo phong cách cho trang web Bạn hiểu đơn giản rằng, HTML đóng vai trị định dạng phần tử website việc tạo đoạn văn bản, tiêu đề, bảng,…thì CSS giúp thêm style vào phần tử HTML đổi bố cục, màu sắc trang, đổi màu chữ, font chữ, thay đổi cấu trúc… NHÓM 16 Đồ án thiết kế hệ thống nhúng - Phương thức hoạt động CSS tìm dựa vào vùng chọn, vùng chọn tên thẻ HTML, tên ID, class hay nhiều kiểu khác Sau áp dụng thuộc tính cần thay đổi lên vùng chọn Một đoạn CSS bao gồm phần này: Hình 2.25: Cấu trúc CSS c) Javascript - JavaScript ngơn ngữ lập trình mang đến sinh động website Nó khác với HTML (thường chuyên cho nội dung) CSS (thường chuyên dùng cho phong cách), khác hẵn với PHP (chạy server không chạy máy client) - JavaScript giúp tăng tính tương tác website Script chạy trình duyệt người dùng thay server thường sử dụng thư viên bên thứ nên tăng thêm chức cho website mà không cần code lại từ đầu 9) MQTT - Giao thức MQTT giao thức kết nối có ý nghĩa quan trọng mơi trường IoT MQTT có chế hoạt động theo mơ hình Pub/Sub, gồm thành phần chính: MQTT client (Publisher/Subscriber) MQTT broker (máy chủ mơ giới) a) Cơ chế hoạt động Hình 2.26: Cơ chế tổng quan MQTT - MQTT hoạt động theo chế client/server, nơi mà cảm biến khách hàng (client) kết nối đến máy chủ, hiểu Máy chủ mơi giới (broker), thơng qua giao thức TCP (Transmission Control Protocol) NHĨM 17 Đồ án thiết kế hệ thống nhúng Broker chịu trách nhiệm điều phối tất thông điệp phía gửi đến phía nhận - MQTT giao thức định hướng tin Mỗi tin đoạn rời rạc tín hiệu broker khơng thể nhìn thấy Mỗi tin publish địa chỉ, hiểu kênh (Topic) Client đăng kí vào vài kênh để nhận/gửi liệu, gọi subscribe Client subscribe vào nhiều kênh Mỗi client nhận liệu trạm khác gửi liệu vào kênh đăng ký Khi client gửi tin đến kênh gọi publish b) Kiến trúc thành phần Hình 2.27: Kiến trúc thành phần MQTT - Thành phần MQTT Client (Publisher/Subscriber), Server (Broker), Sessions (tạm dịch Phiên làm việc), Subscriptions Topics - MQTT Client (Publisher/Subscriber): Clients subscribe nhiều topics để gửi nhận thông điệp từ topic tương ứng - MQTT Server (Broker): Broker nhận thông tin subscribe (Subscriptions) từ client, nhận thông điệp, chuyển thông điệp đến Subscriber tương ứng dựa Subscriptions từ client - Topic: Có thể coi Topic hàng đợi thơng điệp, có sẵn khn mẫu dành cho Subscriber Publisher Một cách logic topic cho phép Client trao đổi thông tin với ngữ nghĩa định nghĩa sẵn Ví dụ: Dữ liệu cảm biến nhiệt độ tòa nhà - Session: Một session định nghĩa kết nối từ client đến server Tất giao tiếp client server phần session - Subscription: Không giống session, subscription mặt logic kết nối từ client đến topic Khi subscribe topic, Client nhận/gửi thơng điệp (message) với topic NHĨM 18 Đồ án thiết kế hệ thống nhúng Hình 2.28: Mơ hình hệ thống - MQTT 10) RTOS - RTOS viết tắt cụm từ Real-Time operating system Đây hệ điều hành (OS) dùng để phục vụ ứng dụng thời gian thực với khả xử lý liệu siêu nhanh (vì khơng có chậm trễ đệm) - Giúp chương trình bạn dễ quản lý phát triển giúp phân chia vấn đề phức tạp thành phần nhỏ “để trị” Tăng tính linh động dễ bảo trì Dễ dàng việc chia sẻ tài nguyên CPU II Thiết kế hệ thống Nguyên lý hoạt động: - Dữ liệu từ cảm biến độ ẩm đất, cảm biến ánh sáng, DHT11 ESP32 đọc - ESP gửi liệu hiển thị lên hình TFT, đồng thời ESP32 gửi liệu lên node server qua giao thức MQTT từ node server liệu vận chuyển đến web client qua giao thức MQTT socket io để hiển thị - Từ node server, liệu vận chuyển tới database để lưu trữ đồng thời database vận chuyển liệu lưu tới web client để thị phần lịch sử đo - Khi giá giá trị đo vượt ngưỡng ta thực thao tác điều khiển thiết bị, lệnh điều khiển gửi tới node server xong đưa tới ESP32 qua giao thức NHÓM 19 ... xây dựng đề tài đạt đến kết hoàn thiện NHÓM Đồ án thiết kế hệ thống nhúng Hệ thống vườn thông minh I Cơ sở lý thuyết: 1) Vi điều khiển ESP32 - Board mạch thu phát ESP32 hệ thống vi điều khiển chip... ƠN 29 NHÓM Đồ án thiết kế hệ thống nhúng MỞ ĐẦU Trong kỹ thuật đại ngày nay, hệ thống tự động hóa đơn giản, nhỏ gọn hoạt động ổn định cần thiết Hiện nay, hệ thống tự động hóa ngày cảng... thiết Hiện nay, hệ thống tự động hóa ngày cảng sử dụng rộng rãi ví dụ hệ thống vườn thông minh Các hệ thống áp dụng giao thức kết nối để truyền tải liệu từ phần cứng thị lên phần mềm, web socket,