Nhà thông minh là ngôi nhà được trang bị các hệ thống tự động thông minhcù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 trong ngôi nhà theo thói quen
CƠ SỞ LÝ THUYẾT VỀ LINH KIỆN VÀ CÁC PHẦN MỀM SỬ DỤNG
Lựa chọn linh kiện cho đề tài
2.1.1 Khối điều khiển trung tâm
Khối điều khiển trung tâm có nhiệm vụ điều khiển toàn bộ hệ thống Phù hợp với nhu cầu điều khiển có một số module như sau:
Module arduino như Uno, R3, Mega…
Bảng so sánh một số nhu cầu trong đồ án của từng module thông dụng làm khối điều khiển trung tâm
Bảng 2 1: So sánh các module cho khối điều khiển trung tâm
Nhu cầu Arduino PIC, AVR ESP8266
Hệ thống nhỏ Phù hợp Không phù hợp Phù hợp
Giá rẻ Phù hợp Phù hợp Phù hợp
Tích hợp wifi Không Không Có
Cộng đồng hỗ trợ Lớn Nhỏ Lớn
Thiết kế lại mạch Không cần Có cần Không cần
Dễ lập trình Dễ dàng Khó khăn Dễ dàng
Giao tiếp UART Có Có Có
Nhỏ gon Nhỏ Trung bình Trung bình
Căn cứ vào bảng trên và để đáp ứng nhiệm vụ điều khiển emm lựa chọn module Arduino Uno với những ưu nhược điểm sau: a Ưu điểm
Giá thành rẻ, phù hợp với sinh viên
Thích hợp với các hệ thống mô hình nhỏ
Nhỏ gọn, dễ dàng lập trình, phù hợp giao tiếp với máy tính
Cộng động hỗ trợ lớn, nhiều mã nguồn mở
Hoạt động ổn định, tuổi thọ linh kiện cao b Nhược điểm
Linh kiện từ Trung Quốc do vậy tồn tại hiện tượng nhiễu
Chì phù hợp với hệ thống nhỏ, đơn giản Hiệu năng điều khiển chưa đủ nhanh
2.1.2 Khối kết nối wifi Để đáp ứng nhiệm vụ điều khiển một số ngoại vi như đèn và giao tiếp với điện thoại Em lựa chọn module ESP8266 với những ưu nhược điểm sau: a Ưu điểm
Giá thành rẻ, phù hợp với sinh viên
Thích hợp với các hệ thống mô hình nhỏ
Tích hợp sẵn module wifi, phù hợp giao tiếp với điện thoại
Cộng động hỗ trợ lớn, nhiều mã nguồn mở
Hoạt động ổn định, tuổi thọ linh kiện cao b Nhược điểm
Linh kiện từ Trung Quốc do vậy tồn tại hiện tượng nhiễu
Chì phù hợp với hệ thống nhỏ, đơn giản Hiệu năng điều khiển chưa đủ nhanh
2.1.3 Các loại cảm biến Để đo dữ liệu nhiệt độ phòng, em lựa chọn DHT11, khí ga em lựa chọn MQ2, cảm biến lửa sử dụng cảm biến hồng ngoại với những lý do sau a Ưu điểm
Giá thành rẻ, phù hợp với sinh viên
Thích hợp với các hệ thống mô hình nhỏ
Dễ tìm kiếm trên thị trường
Kết nối tới vi điều khiển dễ dàng b Nhược điểm
Dữ liệu đo nhiệt độ và khí ga chưa hoàn toàn chính xác, tuy nhiên với phạm vi đồ án việc này không ảnh hưởng quá nhiều
Bị nhiễu bởi môi trường ngoài
Hệ thống bao gồm những linh kiện hoạt động với dải điện áp thấp Module nguồn 24V 1-2A được em lựa chọn sử dụng Nguồn dễ dàng tìm kiếm tại các quán điện tử trên thị trường Tuy nhiên, do nguồn nhập từ Trung Quốc nên còn dễ hỏng và nhiễu nguồn.
Ngoài các thành phần chính, hệ thống sử dụng các linh kiện khác như:
Màn hình LCD 16x2 Đây là màn hình phổ biến, dễ sử dụng, ứng dụng nhiều cho các đồ án mô hình
Module relay để bật hoặc tắt thiết bị điện
Đèn led để mô phỏng đèn trong ngôi nhà
Còi báo mini để cảnh báo cháy
Mạch chuyển đổi điện áp thành dòng điện
Các linh kiện sử dụng
Arduino Uno chính là sự lựa chọn hàng đầu khi sử dụng Arduino bởi kích thước nhỏ gọn, tính ứng dụng cao và hoạt động ổn định Với những ưu điểm vượt trội này, Arduino Uno trở thành dòng mạch lập trình được ưa chuộng và được nhắc đến đầu tiên trong thế giới Arduino.
Một vài thông số của Arduino Uno
Bảng 2 2: Thông số của Arduino Uno
Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader
EEPROM 1 KB (ATmega328) a Vi điều khiển
Hình 2 2: Vi điều khiển ATmega328 và các GPIO trên Arduino Uno
Arduino Uno sử dụng vi điều khiển họ 8bit AVR là ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD Thiết kế tiêu chuẩn của Arduino Uno sử dụng vi điều khiển ATmega328 với giá khoảng 90.000đ
Bo mạch Arduino Uno có thể được cấp nguồn bằng điện áp 5V từ cổng USB hoặc nguồn điện ngoài từ 7-12V DC (điện áp khuyên dùng), giới hạn trong khoảng 6-20V Trong trường hợp không sử dụng nguồn USB, thì việc cấp nguồn bằng pin vuông 9V được xem là phù hợp nhất Cần lưu ý rằng, nếu cấp nguồn vượt quá giới hạn trên, bo mạch Arduino Uno có thể bị hư hỏng.
GND (Ground): Cực âm của nguồn điện cấp cho Arduino Uno.
5V: Cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.
3.3V: Cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là
Vin (Voltage Input): Để cấp nguồn ngoài cho Arduino Uno
IOREF: Điện áp hoạt động của vi điều khiển trên Arduino Uno có thể được đo ở chân này Điện áp luôn là 5V.
RESET: Việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ. b Bộ nhớ.
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
32KB bộ nhớ Flash: Những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader
2KB cho SRAM (Static Random Access Memory): Giá trị các biến bạn khai báo khi lập trình sẽ lưu ở đây Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
1KB cho EEPROM: Đây giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM. c Các cổng ra vào.
Hình 2 3: Các cổng vào ra trên Arduino Uno
Arduino Uno có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối).
Một số chân digital có các chức năng đặc biệt như sau:
2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận
(receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 2 8 -1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.
LED 13: trên Arduino Uno có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng.
Arduino Uno có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu10bit (0 → 2 10 -1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board, có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu cấp điện áp 2.5V vào chân này thì có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.Đặc biệt, Arduino Uno có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếpI2C/TWI với các thiết bị khác.
Module ESP8266 là module wifi được đánh giá rất cao cho các ứng dụng liê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ác module RF khác với khoảng cách truyền lên tới 100 mét (Môi trường không có vật cản) Trên 400m với anten và router thích hợp.
- ESP8266 cung cấp một giải pháp kết nối mạng Wi-Fi hoàn chỉnh 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ăng kết nối mạng Wi-Fi từ một bộ xử lý ứng dụng.
- Khi ESP8266 là máy chủ các ứng dụng hay khi nó chỉ là bộ vi xử lý ứng dụng có trong thiết bị, nó có thể khởi động trực tiếp từ một flash ngoài Nó có tích hợp bộ nhớ cache để cải thiện hiệu suất của hệ thống trong các ứng dụng này, và để giảm thiểu các yêu cầu bộ nhớ.
Các phần mềm sử dụng
2.3.1 Giới thiệu phần mềm lập trình
Arduino IDE là một phần mềm với một mã nguồn mở, được sử dụng chủ yếu để viết và biên dịch mã vào các module Arduino, ESP32, ESP8266 Nó bao gồm phần cứng và phần mềm Phần cứng chứa đến 300,000 board mạch được thiết kế sẵn với các cảm biến, linh kiện
Khi người dùng viết mã và biên dịch, IDE sẽ tạo file Hex cho mã File Hex là các file thập phân Hexa được Arduino hiểu và gửi đến bo mạch bằng cáp USB Mỗi bo Arduino đều được tích hợp một bộ vi điều khiển, bộ vi điều khiển sẽ nhận file Hex và chạy theo mã được viết
Chức năng của từng phần như sau:
Nút kiểm tra chương trình: Dùng để kiểm tra xem chương trình được viết có lỗi không Nếu chương trình bị lỗi thì phần mềm Arduino IDE sẽ hiển thị thông tin lỗi ở vùng thông báo thông tin.
Nút nạp chương trình xuống bo Arduino: Dùng để nạp chương trình được viết xuống mạch Arduino Trong quá trình nạp, chương trình sẽ được kiểm tra lỗi trước sau đó mới thực hiện nạp xuống mạch Arduino.
Hiển thị màn hình giao tiếp với máy tính: Khi nhấp vào biểu tượng cái kính lúp thì phần giao tiếp với máy tính sẽ được mở ra Phần này sẽ hiển thị các thông số mà người dùng muốn đưa lên màn hình Muốn đưa lên màn hình phải có lệnh Serial.print() mới có thể đưa thông số cần hiển thị lên màn hình
Vùng lập trình: Vùng này để người lập trình thực hiện việc lập trình cho chương trình của mình.
Vùng thông báo thông tin: Có chức năng thông báo các thông tin lỗi của chương trình hoặc các vấn đề liên quan đến chương trình được lập.
Sử dụng một số menu thông dụng trên phần mềm Arduino IDE: Có vài menu trong phần mềm IDE, tuy nhiên thông dụng nhất vẫn là menu File, ngoài những tính năng như mở một file mới hay lưu một file, phần menu này có một mục đáng chú ý là Example Phần Example (ví dụ) đưa ra các ví dụ sẵn để người lập trình có thể tham khảo, giảm bớt thời gian lập trình.Hình bên dưới thể hiện việc chọn một ví dụ cho led chớp tắt (blink) để nạp cho mạch Arduino Ví dụ về led chớp tắt này thường được dùng để kiểm tra bo khi mới mua về.
Blynk được thiết kế cho Internet of Things Nó có thể:
- Điều khiển các thiết bị phần cứng từ xa
- Hiển thị dữ liệu cảm biến
Blynk hoạt động như thế nào?
Có ba thành phần chính trong nền tảng:
- Blynk App - cho phép tạo giao diện cho sản phẩm của bạn bằng cách kéo thả các widget khác nhau mà nhà cung cấp đã thiết kế sẵn.
- Blynk Server - chịu trách nhiệm xử lý dữ liệu trung tâm giữa điện thoại, máy tính bảng và phần cứng Bạn có thể sử dụng Blynk Cloud của Blynk cung cấp hoặc tự tạo máy chủ Blynk riêng Vì đây là mã nguồn mở, người dùng có thể dễ dàng thêm sửa xóa các thiết bị và thậm chí có thể sử dụng Raspberry Pi làm server trên app blynk.
- Library Blynk – support cho hầu hết tất cả các nền tảng phần cứng phổ biến
- cho phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và đi.
Tương tự thiết bị phần cứng sẽ truyền dữ liệu ngược lại đến server.
Hình 2 21: Các thành phần của Blynk
- Cung cấp API & giao diện người dùng tương tự cho tất cả các thiết bị và phần cứng được hỗ trợ
- Kết nối với server bằng cách sử dụng:
Các tiện ích trên giao diện được nhà cung cấp dễ sử dụng
- Thao tác kéo thả trực tiếp giao diện mà không cần viết mã
- Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng các cổng kết nối ảo được tích hợp trên blynk app
- Theo dõi lịch sử dữ liệu
- Thông tin liên lạc từ thiết bị đến thiết bị bằng Widget
- Gửi email, tweet, thông báo realtime, v.v
- Được cập nhật các tính năng liên tục!
- Hardware: Bao gồm các thiết bị phần cứng như Arduino, Raspberry Pi, Esp8266, esp32 ….
- Smartphone: Hiện tại thì Blynk hỗ trợ 2 nền tảng là Android và IOS Các bạn có thể search trên Blynk trên AppStore và GooglePlay.
- Internet: chắc chắn là phải cần internet thì các thiết bị có thể giao tiếp được với nhau nhỉ.
- Library: Chắn chắn mỗi thiết bị sẽ phải cài các thư viện khác nhau:
Hình 2 22: Thư viện cho Blynk trên Arduino
Kết luận chương 2
Dựa trên kiến thức về các linh kiện, thành phần của hệ thống khóa két sắt từ Chương 2, Chương 3 sẽ tập trung vào việc thiết kế phần cứng và phần mềm cho hệ thống Quá trình thiết kế phần cứng sẽ xác định cấu trúc vật lý của hệ thống, bao gồm vị trí và kết nối của các linh kiện Thiết kế phần mềm sẽ bao gồm việc phát triển các thuật toán và chương trình để điều khiển hoạt động của hệ thống, bao gồm cả giao diện người dùng và các chức năng bảo mật.
THIẾT KẾ HỆ THỐNG
Thiết kế sơ đồ khối
Hình 3 1: Sơ đồ khối khối nguồn
Nhiệm vụ và chức năng các khối:
Nguồn 12V: Sử dụng nguồn 12V cung cấp điện cho toàn hệ thống, nguồn 12V cấp trực tiếp cho đèn Led 12V
Khối hạ áp 5V: Hạ áp từ 12V xuống 5V cung cấp điện cho module relay tắt bật đèn
Khối chuyển đổi điện áp: Chuyển đổi điện áp thành dòng điện cung cấp cho hệ thống, giúp tín hiệu đi xa hơn trong nhà thông minh
3.1.2 Tính toán điều phối điện áp của khối chuyển đổi điện áp a Lý do sử dụng khối chuyển đổi điện áp
Với hệ thống nhà thông minh, cần sử dụng bộ chuyển đổi điện áp với các lý do đặc thù sau:
Các cảm biến sẽ đặt xa bộ điều khiển trung tâm, do đó, để tín hiệu được truyền đúng và chính xác, cần có bộ chuyển đổi điện áp.
Tín hiệu 4->20mA không bị suy giảm khi chuyền xa: Khoảng cách từ cảm biến đến bộ điều khiển có thể lên đến vài trăm mét, mà dòng điện I trên một đường dây không đổi tức là không bị suy giảm, do đó không gây sai số
Khả năng chống nhiễu của tín hiệu 4->20 mA đến từ trở kháng đầu vào lớn của nó, giúp giảm thiểu tác động của nhiễu công nghiệp Theo định luật Ohm, dòng điện nhiễu I tỷ lệ nghịch với tổng trở Z Do Z rất lớn nên I gần như không đáng kể, ngăn ngừa dòng điện nhiễu làm ảnh hưởng đến dòng đầu ra của cảm biến truyền đến bộ điều khiển.
Hình 3.3.1 Sơ đồ các chân pin của mạch chuyển áp
Trong hệ thống , nguồn điện áp ra được tính bởi công thức tính điện áp hiệu dụng :
Với U L , U C , U R , là các điện áp hiệu dụng và tứ thời của hệ thống.
Từ công thức trên ta thấy điện áp đầu ra U sẽ bị hao hụt khi nội trở trong
Hình 3.3.2 sơ đồ hệ thống mạch chuyển áp
XTR105 là bộ phát dòng 2 dây 4mA đến 20mA kết hợp các nguồn dòng, bộ khuếch đại thiết bị đầu cuối tương tự (cung cấp độ lợi) và mạch tuyến tính hóa nhằm giao tiếp trực tiếp với cảm biến nhiệt độ RTD (không có bộ vi điều khiển), nơi không thể kết nối điện thế IRET đến tiềm năng GND cung cấp vòng lặp Bộ truyền dòng điện hai dây nói chung được cấp nguồn trực tiếp từ nguồn cung cấp vòng lặp và mức tiêu thụ dòng điện chung của bộ truyền dòng điện 2 dây + mạch cảm biến tổng thể không được vượt quá 4mA
Trên ứng dụng này, vấn đề là bạn đang kết nối XTR105 IRET của thiết bị với GND cung cấp vòng lặp ở phía máy thu, gây ra sự cố; IRET phải được phép thả nổi đối với nguồn cung cấp vòng lặp và không được kết nối với GND của vòng lặp Vì XTR105 là bộ truyền dòng điện 2 dây nên XTR105 chỉ có thể cấp nguồn cho cảm biến và mạch thông qua bộ điều chỉnh miễn là mức tiêu thụ dòng điện của toàn bộ bộ truyền và mạch cảm biến nhỏ hơn 4mA Mức tiêu thụ của XTR105 là 2,2mA điển hình (1,8mA đến 2,6mA), do đó, dòng điện mà bộ vi điều khiển và cảm biến tiêu thụ cần phải nhỏ hơn 1,8mA
Có khả năng đạt tới dòng 4mA do đó hệ thống có thể thử sử dụng bộ cách ly tương tự hoặc bộ khuếch đại cách ly để điều khiển XTR105 và cấp nguồn cho bộ vi điều khiển/cảm biến bằng nguồn cung cấp bên ngoài.
Khi chuyển đổi đầu ra vi điều khiển và truyền dẫn qua bộ phát dòng điện 2 dây, nên sử dụng XTR115 hoặc XTR116 Nếu dòng tiêu thụ tổng thể vượt quá 4mA, nên tạo tín hiệu PWM rồi cấp nguồn qua bộ lọc RC, đồng thời cách ly kỹ thuật số và cung cấp nguồn riêng cho vi điều khiển và cảm biến để truyền tín hiệu xa hơn và đảm bảo chất lượng tín hiệu ổn định.
Kết nối điện áp nguồn 24V Đầu cực dương 24V được kết nối với đầu trên của ba cực bên phải và cực âm được kết nối với đầu dưới của ba cực bên phải.
Điều chỉnh zero: Hai đầu cực bên trái được ngắn mạch Điều chỉnh núm điều chỉnh zero để kết thúc đầu ra (giữa ba đầu nối bên phải) 4mA.
Điều chỉnh phạm vi: kết nối đầu trên bên trái với 10V sẽ được chuyển đổi và đầu dưới bên trái với điện áp âm sẽ được chuyển đổi Điều chỉnh núm điều chỉnh phạm vi sao cho đầu ra dòng (chân giữa bên phải) là 20mA.
Điện áp được thay đổi trong khoảng 0-10V và dòng điện đầu ra thay đổi tuyến tính trong vòng 4-20mA.
3.1.3 Sơ đồ khối toàn hệ thống
Hình 3 2: Sơ đồ khối hệ thống
Nhiệm vụ và chức năng các khối:
- Khối nguồn đảm nhận vai trò cấp nguồn điện ổn định cho toàn bộ các linh kiện điện tử trong mạch điện.
Khối xử lý trung tâm: Đây là khối xử lý trung tâm, có nhiệm vụ o Đọc dữ liệu từ khối cảm biến o Giao tiếp trao đổi dữ liệu với khối wifi o Xuất tín hiệu điều khiển khối hiển thị để hiển thị thông tin o Xuất tín hiệu điều khiển khối còi báo động để cảnh báo kịp thời
Khối WiFi đóng vai trò kết nối tín hiệu không dây và thực hiện nhiệm vụ nhận lệnh điều khiển từ ứng dụng Blynk trên điện thoại thông minh, từ đó điều khiển trực tiếp các thiết bị ngoại vi Đối với dữ liệu, khối WiFi đảm nhận nhiệm vụ nhận thông tin từ khối xử lý trung tâm và chuyển tiếp dữ liệu này lên ứng dụng Blynk Nhờ đó, người dùng có thể theo dõi và điều khiển hệ thống từ xa một cách thuận tiện.
Khối cảm biến: Bao gồm o Cảm biến nhiệt độ độ ẩm để thu thập dữ liệu nhiệt độ, độ ẩm và gửi về khối xử lý trung tâm o Cảm biến gas để phát hiện rò rỉ khí gas báo cháy o Cảm biến lửa để phát hiện đốm lửa báo cháy
Khối hiển thị: Hiển thị thông tin dữ liệu nhiệt độ, độ ẩm trong phòng
Khối còi báo: Nhận lệnh điều khiển từ khối xử lý trung tâm để kêu còi cảnh báo
Khối relay: Nhận lệnh từ khối wifi để bật tắt thiết bị tương ứng
3.1.4 Nguyên lý hoạt động của toàn hệ thống
Hoạt động của mô hình chia ra làm các phần riêng biệt như sau:
Hệ thống giám sát nhiệt độ, độ ẩm phỏng: Cảm biến nhiệt độ, độ ẩm DHT11 thu thập dữ liệu và gửi dữ liệu về khối xử lý trung tâm Khối xử lý trung tâm nhận dữ liệu, xuất tín hiệu hiển thị lên LCD và gửi dữ liệu thông qua giao tiếp UART tới khối wifi Sau đó, khối wifi gửi dữ liệu lên App Blynk để hiển thị cho chủ nhà.
Hệ thống giám sát cháy nổ: Hệ thống dựa vào khối cảm biến lửa và cảm biến khí gas Hai cảm biến này thu thập dữ liệu và gửi dữ liệu về khối xử lý trung tâm Nếu phát hiện cháy, khối xử lý trung tâm sẽ điều khiển còi kêu cảnh báo Đồng thời, khối xử lý trung tâm gửi tín hiệu cảnh báo cho khối wifi và thực hiện cảnh báo trên App cho chủ nhà
Hệ thống điều khiển thiết bị: Việc điều khiển thiết bị thông qua internet.App Blynk gửi dữ liệu điều khiển đến khối wifi, nhận được dữ liệu, khối wifi sẽ điều khiển bật tắt các thiết bị tương ứng.
Thiết kế phần cứng và phần mềm
3.2.1 Thiết kế sơ đồ nguyên lý
Hình 3 3: Sơ đồ nguyên lý
Sơ đồ nguyên lý bao gồm:
Khối nguồn: Nguồn adapter 12V qua hạ áp LM2596 xuống 5V và qua module chuyển đổi điện áp cung cấp điện cho toàn hệ thống
Khối hiển thị sử dụng giao tiếp I2C qua 2 tín hiệu SCL và SDA kết nối tới khối xử lý trung tâm
Khối cảm biến o Cảm biến nhiệt độ, độ ẩm kết nối tới khối xử lý trung tâm qua chân D2 o Cảm biến khí gas kết nối tới khối xử lý trung tâm tâm qua chân A0 o Cảm biến lửa kết nối tới khối xử lý trung tâm qua chân D3
Khối còi báo động được điều khiển bởi khối xử lý trung tâm qua chân D4
Khối truyền thông wifi kết nối giao tiếp với khối xử lý trung tâm quaUART, 2 tín hiệu kết nối là: o Trên Arduino Uno kết nối qua 2 chân TX và RX o Trên module wifi kết nối tới 2 chân D5 (RX) và D6 (TX)
Khối đèn điều khiển thông qua relay, kết nối tới module wifi ESP8266 qua các tín hiệu D16, D5, D4, D12
Hình 3 4:Lưu đồ thuật toán tổng quát hệ thống
Thuật toán hệ thống đi theo các trình tự sau:
Bước 1: Hệ thống khởi động và khởi tạo thư viện, khởi tạo các module và khởi tạo các chân vào ra
Bước 2: Thực hiện chương trình kiểm soát nhiệt độ phòng
Bước 3: Thực hiện chương trình giám sát cháy nổ
Hình 3 5: Lưu đồ thuật toán hệ thống kiểm soát nhiệt độ phòng
Thuật toán hệ thống như sau:
Bước 1: Khởi tạo cảm biến, khởi tạo LCD
Bước 2: Đọc giá trị nhiệt độ, độ ẩm từ cảm biến
Bước 3: Hiển thị dữ liệu lên LCD cho người dùng
Bước 4: Gửi dữ liệu qua UART tới khối wifi
Hình 3 6: Lưu đồ thuật toán giám sát cháy nổ
Bước 1: Khởi tạo cảm biến, khởi tạo LCD
Bước 2: Đọc giá trị cảm biến khí gas
Bước 3: Đọc giá trị cảm biến lửa
Bước 4: Kiểm tra dữ liệu vừa đọc được nếu nồng độ khí gas vượt ngưỡng hoặc có tín hiệu cảnh báo đốm lửa Nếu đúng, hệ thống bật còi cảnh báo và gửi dữ liệu cảnh báo cho khối wifi Nếu sai, tắt còi cảnh báo
Ở thuật toán này, khi có dữ liệu gửi qua UART từ khối xử lý trung tâm, khối wifi giải mã dữ liệu và gửi dữ liệu cập nhật lên App Blynk.
Hình 3 8: Lưu đồ thuật toán điều khiển thiết bị
Với hệ thống điều khiển thiết bị, khối wifi nhận lệnh điều khiển từ App Blynk và điều khiển bật tắt hệ thống đèn tương ứng.
Thi công và thử nghiệm
Mô hình thi công qua các bước:
Chuẩn bị toàn bộ linh kiện cần thiết
Chuẩn bị tấm fomex làm mô hình
Kết nối các thiết bị theo đúng sơ đồ nguyên lý
Tạo hình mô hình nhà thông minh
Lắp đặt các linh kiện lên nhà và hoàn thiện mô hình
Hình 3 9: Mô hình hoàn thiện sau khi thi công
Về phần cứng: Gồm 6 board mạch:
Board đo và giám sát nhiệt độ sử dụng DHT11 và hiện thị lên text LCD
Board cảm biến hống ngoại dùng để phát hiện vật thể khi lên xuống cầu thang để bật tắt đèn cầu thang.
Board thiết bị nhận tín hiệu điều khiển từ vi điều khiển bằng mức điện áp để kích transistor làm dẫn relay, dẫn nguồn qua thiết bị công suất nhỏ.
Board Arduino Uno R3 làm nhiệm vụ chính xử lý thông tin và truyền đi.
Board ESP8266 có nhiệm vụ tiếp nhận dữ liệu và đưa lên app và thiết bị.
Về phần mềm: Hoàn thành cho Arduino Uno R3 với các tính năng sau:
Hệ thống có tính bảo mất cao vì muốn điều khiển phải nhập đúng cú pháp điều khiển, và thông báo nhận được chỉ được gửi cho điện thoại đã được cài đặt.
Hệ thống điều khiển được nhiều thiết bị độc lập nhau.
Có khả năng kiểm tra trạng thái của thiết bị bằng app trước khi điều khiển.
Phát hiện khi có khí gas rò rỉ, hay có cháy từ đó cảnh báo lên thiết bị giám sát cũng như còi báo động sẽ kêu.
Đo và giám sát nhiệt độ, độ ẩm từ đó phát hiện và cảnh báo khi nhiệt độ quá cao.
3.3.2.1 Thử nghiệm độ chính xác của cảm biến nhiệt độ Để thực hiện thử nghiệm này, môi trường phỏng điều hòa được sử dụng để tham chiếu kết quả đo nhiệt độ Đọc cảm biến trên hiển thị lên LCD và so sánh với nhiệt độ phòng.
Kết quả mong muốn: Độ lệch nhiệt độ phòng và cảm biến không quá 0.5 độ Độ lệch giữa độ ẩm phỏng và cảm biến đo độ ẩm không quá 1%
Bảng 3 1: Bảng so sánh kết quả đo nhiệt độ
Lần đo thứ Nhiệt độ phòng Cảm biến đo nhiệt
Bảng 3 2: Bảng so sánh kết quả đo độ ẩm
Lần đo thứ Độ ẩm phòng Cảm biến đo độ ẩm
Hình 3 10: Kết quả đo nhiệt độ hiển thị lên LCD
Sau 10 lần thử nghiệm, độ chính xác của cảm biến đạt 90% Đạt yêu cầu với mong muốn đề ra.
3.3.2.2 Thử nghiệm hệ thống báo cháy
Khi chủ nhà vắng mặt, chế độ báo cháy được kích hoạt và khối báo cháy sẽ liên tục giám sát cảm biến khí gas đặt trong phòng bếp Trong trường hợp phát hiện rò rỉ khí gas, hệ thống sẽ lập tức hú còi báo động và đồng thời gửi tin nhắn khẩn cấp đến điện thoại của chủ nhà.
Bảng 3 3: Bảng kết quả thử nghiệm hệ thống báo cháy khí gas
Với hệ thống cảnh báo phát hiện lửa, giả lập bật lửa làm đám cháy Sử dụng bật lửa và bật trước cảm biến Quan sát hệ thống báo động hoạt động
Hình 3 11: Hơ lửa trước cảm biến Bảng 3 4: Bảng kết quả thử nghiệm hệ thống báo cháy khi phát hiện lửa
Hình 3 12: Giao diện cảnh báo trên App
Sau 5 lần thử nghiệm, đánh giá hoạt động của khối cảnh báo cháy như sau:
Hệ thống ổn định, độ trễ thấp, cảm biến gas có độ nhạy lớn phản hồi ngay lập tức, có báo động đúng lúc kịp thời
3.3.2.3 Thử nghiệm giám sát và điều khiển trên App Blynk
Là thử nghiệm cho việc điều khiển và giao tiếp qua App Blynk với hai tác vụ chính là điều khiển chế độ hoạt động và giám sát thông số nhiệt độ, độ ẩm
- Trong thử nghiệm này khi giao tiếp với nút bấm trên trên giao diện người dùng, ngay lập tức sẽ nhận được tín hiệu phản hồi nhanh chóng, độ trễ thấp
- Với đồ thị thể hiện giám sát nhiệt độ, độ ẩm, khí gas được truyền ổn định
Khi sử dụng ứng dụng Blynk để điều khiển thiết bị bật/tắt hệ thống đèn thông minh, hệ thống đèn dưới nhà sẽ hoạt động theo đúng nhu cầu điều khiển của người dùng Việc đăng nhập vào tài khoản người dùng sẽ dẫn đến giao diện điều khiển của hệ thống đèn.
Hình 3 13: Giao diện người dùng trên App
Đánh giá tốc độ điều khiển:
- Tốc độ điều khiển truyền, nhận gói tin nhanh chóng và tin cậy.
Đánh giá về phản hồi từ client:
- Tín hiệu phản hồi nhanh chóng, chính xác do kích thước bản tin nhỏ
Kiểm tra tính ổn định của hệ thống:
Hệ thống hoạt động khá ổn định, ngoài ra hệ thống vẫn có thể lưu thông tin của hệ thống khi mất nguồn điện, khi có điện trở lại thì hệ thống hoạt động bình thường
3.3.3 Hướng dẫn sử dụng mô hình
Mục tiêu: hướng dẫn người dùng biết cách vận hành toàn bộ mô hình khoá cửa đa năng.
Cấp nguồn cho mô hình hoạt động
Hình 3 14: Vị trí cắm nguồn
Ta cắm nguồn 12V vào jack DC để cho mạch hoạt động như trên hình trên, sau khi cấp nguồn mô hình bắt đầu hoạt động.
Chế độ điều khiển thiết bị
Để điều khiển bật/tắt bóng đèn ở các phòng riêng biệt, người dùng thực hiện thao tác trên giao diện ứng dụng Nút "on" tương ứng với bóng đèn đã bật, trong khi nút "off" tương ứng với trạng thái tắt Khi nhấn nút bật/tắt, khối relay tương ứng với từng phòng sẽ hoạt động theo yêu cầu, giúp kiểm soát việc bật/tắt bóng đèn trong ngôi nhà.
Chế độ giám sát nhiệt độ, độ ẩm trên App
Ngoài ra như trên giao diện cho thấy số liệu về nhiệt độ và độ ẩm mà cảm biến đo được một cách chính xác và rõ ràng.
Chế độ cảnh báo cháy qua App
Khi không có cháy, trên App Blynk sẽ không hiển thị cảnh báo như hình dưới đây. ấy
Hình 3 16: Khi không có rò rĩ khí gas hoặc cháy Để thử nghiệm rò khỉ và cảnh báo, thực hiện thử nghiệm như 3.4.2.2 và quan sát hiện tượng
Hình 3 17: Khi có rò rĩ khí gas hoặc cháy
Khi có cháy hoặc rò rĩ khí gas cảm biến sẽ gửi thông báo đẩy lên app blynk được thể hiện như ở hình trên.
Kết quả thực nghiệm và đánh giá
Sau hơn 4 tháng thực hiện đề tài, em đã hoàn thành việc thiết kế và thi công mô hình ngôi nhà thông minh được điều khiển từ xa bằng điện thoại qua thiết bị smatphone, hệ thống đã được test thử và chạy rất ổn định: Ưu điểm:
Phần cứng được thiết kế đơn giản, sử dụng số linh kiện tối thiều, kết nối chân ra đáp ứng nhu cầu phát triển của đề tài sau này.
Hệ thống có dùng LCD hiện thị các lệnh và quá trình làm việc của hệ thống nên dễ dàng phát hiện các lỗi sai.
Hệ thống khả dễ dàng thi công và lắp đặt.
Hệ thống chỉ dùng được ở những nơi có phủ sóng mạng.
Hệ thống thống có phạm vi hoạt động không dài nên cần những thiết bị hỗ trợ khác.
Cảm biến nhiệt độ và độ ẩm DHT11 với khả năng sai số khá cao, nhiệt độ đo được chưa thực sự chính xác.
Cảm biến hồng ngoại hay bị nhiễu với ánh sáng mặt trời.
Khóa hoạt động tốt, đúng, đủ yêu cầu đã đề ra Về kỹ thuật và ứng dụng, mô hình hoạt động chính xác Song còn một số điểm hạn chế: kết cấu khóa cửa chưa được chắc chắn, chưa tối ưu được tất cả các chức năng linh kiện…
Do hạn chế về mặt thời gian và kiến thức nên sản phẩm còn nhiều thiếu xót Rất mong nhận được những góp ý của thầy cô giáo cùng các bạn sinh viên để sản phẩm ngày càng được hoàn thiện hơn.
Kết luận chương 3
Trong quá trình thực nghiệm, hệ thống hoạt động ổn định và đáp ứng các mục tiêu đề ra Thiết kế của hệ thống được tối ưu hóa để đơn giản hóa quá trình sử dụng Luồng xử lý thuật toán đã được xây dựng và lưu đồ biểu diễn Chương trình điều khiển mạch điện được hoàn thiện nhằm đáp ứng các yêu cầu về chức năng của hệ thống.