Đặt vấn đề Ngày nay với sự phát triển nhanh chóng của công nghệ, công việc giám sát và điều khiển thiết bị tại nhà tại bất cứ nơi nào ngày càng quan trọng hơn hết để giúp chúng ta tránh những rủi ro về lãng phí điện năng tiêu thụ. Vì thế mà em đã thực hiện đề tài: “THIẾT KẾ HỘP ĐIỀU KHIỂN GIÁM SÁT THIẾT BỊ THÔNG MINH” nhằm mục đích kiểm soát được sự hoạt động của các thiết bị điện đang tiêu thụ tại nhà. Tính cấp thiết của đề tài Theo tính toán, mức lãng phí điện năng của Việt Nam cao gấp 1,5 - 6 lần so với thế giới, còn tổng hợp của Bộ Công Thương cho thấy mức lãng phí của điện của ta rất cao, từ 10 - 50%. Hiện tượng lãng phí trong sử dụng điện có thể bắt gặp ở bất cứ đâu, từ hộ gia đình cho đến các cơ quan và doanh nghiệp.
Nhiều người cứ nghĩ tắt đi một bóng đèn, một tấm biển quảng cáo hay chiếc quạt cũng chẳng tiết kiệm được điện năng là bao nhiêu. Tuy nhiên, theo các tính toán, chỉ cần tắt một bóng đèn, rút các thiết bị điện khi không sử dụng, hay dùng các thiết bị trong gia đình đúng cách có thể tiết kiệm điện từ 10-15% hàng tháng. Chính vì vậy hệ thống này có các mục hẹn cài đặt tắt giờ hoặc là giám sát, điều khiển sự hoạt động các thiết bị dễ dàng trên màn hình LCD hoặc ứng dụng trên điện thoại Android. Mục tiêu đề tài Mục tiêu đề tài lần này của em là: Thực hiện một thiết bị giám sát sự hoạt động, điều khiển những đồ dùng điện trong nhà, đọc được nhiệt độ tại phòng tự động bật quạt hay điều hòa trong phòng.
Hê thống còn có thể cài đặt được các giá trị hẹn bật/tắt thiết bị trong nhà qua một màn hình cảm ứng. Ngoài ra hê thống còn có thể kiểm soát ở bất cứ nơi nào thông qua mạng bằng ứng dụng trên điện thoại 1. Giới hạn đề tài Đề tài lần này của em là một đề tài không quá mới, tuy nhiên bước đầu làm quen với vi điều khiển ARM để giao tiếp với các module thiết bị và tài liệu hạn chế rất nhiều đa phần là bằng tiếng Anh. Vì vậy sai sót là vẫn còn, kính mong thầy/cô bỏ qua những sai sót lần này.
1 Luan van Chương 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN 2. Giới thiệu về phần mềm lập trình Keil uVison5 Phần mềm lập trình cho vi điều khiển ARM có nhiều chương trình khác nhau, sau đây em sẽ sử dụng một chương trình thông dụng và dễ dàng tiếp cận là Keil uVision5. Để sử dụng thì đầu tiên phải cài đặt chương trình Keil uVision5, nên làm theo hướng dẫn của phần mềm. Biểu tượng Keil uVision5 sau khi cài xong xuất hiện trên desktop như hình sau: Hình 2.1 Biểu tượng phần mềm Keil uVision5.
- Hướng dẫn sử dụng phần mềm Keil uVision5: + Biên soạn chương trình cơ bản Bước 1: Nên tạo một thư mục để lưu và quản lý các chương trình lập trình cho vi điều khiển. Bước 2: Khởi tạo chương trình Keil uVision5, giao diện xuất hiện như hình 2.2 Thông thường thì phần mềm sẽ khởi tạo và mở một chương trình soạn thảo sau cùng hoặc mở một ứng dụng có trong phần mềm.2 Giao diện phần mềm Keil uVision5 2 Luan van Bước 3: Tải thư viện cho dòng chip ARM đang sử dụng, dòng chip em đang sử dụng là STM32F407VET6, tiến hành tải thư viện theo thứ tự 1,2,3 trong hình 2.3, trong thứ tự 4 thì nếu chưa có thì bấm Install, nếu có rồi thì bấm Update kiểm tra cập nhật.3: Tải thư viện cho phần mềm Bước 4: Tiến hành chọn biểu tượng open, rồi mục “Project” và chọn “New uVision Project” theo thứ tự 1,2 trong hình 2.3 Tạo project mới 3 Luan van Chọn thư chứa file nguồn và đặt tên Project theo ý muốn như hình 2.4 làm theo thứ tự 1 và 2.4 Đặt tên thư mục mới 4 Luan van Bước 5: Chọn dòng chip sử dụng, làm theo thứ tự 1,2,3,4,5 trong hình 2.5: Chọn chip sử dụng Giao diện sau xuất hiện như hình 2.6 và trong file chưa có gì.6: Màn hình soạn thảo 5 Luan van Bước 6: Tạo file main.c cho chương trình chính của vi điều khiển bằng tổ hợp phím “Ctrl+N”, nhấn tiếp tổ hợp phím “Ctrl+S” để lưu file. Nhớ lưu chung địa chỉ của Project và đặt đúng tên là main. Ngôn ngữ KeilC uVision có phân biệt chữ hoa hay chữ thường.
Tuy nhiên phần mềm này có hỗ trợ gợi ý khi viết câu lệnh. Sau đó tiến hành viết code và biên dịch bằng cách nhấn phím F9. Nếu không sai cú pháp thì chương trình sẽ hiện thông báo biên dịch thành công như hình 2.7 Thông báo biên dịch thành công Bước 7: Tiến hành nạp code bằng cách nhấn F8 hoặc Load như hình để nạp code vào chip. Sau đó tiến hành kiểm tra trên Board.8 Nạp code vào board Lưu ý: Phần cứng và phần mềm nên đồng bộ với nhau, nếu phần cứng kết nối với Port nào thì phần mềm phải khởi tạo chính Port đó.
Nếu không thì mạch sẽ không hoạt động như mong muốn. Giới thiệu phần mềm lập trình Arduino IDE Trong hệ thống thiết kế này, để có thể giao tiếp qua Wifi thì nhóm em sử dụng Module ESP8266. Để viết code cho Module này nhóm em sử dụng phần mềm lập trình là Arduino IDE. Để sử dụng phần mềm này thì chúng ta nên làm theo các hướng dẫn của phần mềm.
Biểu tượng Arduino IDE sau khi cài xong xuất hiện trên desktop như hình sau: Hình 2. Phần mềm lập trình Arduino IDE 6 Luan van Bước 1: Nên tạo một thư mục để lưu và quản lý các chương trình lập trình cho vi điều khiển. Bước 2: Khởi tạo chương trình Keil uVision5, giao diện xuất hiện như hình 2.10 Thông thường thì phần mềm sẽ khởi tạo và mở một chương trình soạn thảo sau cùng hoặc mở một ứng dụng có trong phần mềm.10 Giao diện phần mềm Arduino IDE Bước 3: Tải thư viện cho dòng chip ESP đang sử dụng, dòng chip em đang sử dụng là ESP8266, tiến hành tải thư viện bằng cách nhấn tổ hợp phím “Ctrl+Shift+I” và làm theo các thứ tự như hình 2.11 để tiến hành cài đặt thư viện cho ESP8266. + Ở thứ tự thứ 1: ta nhập “ESP8266” vào textbox để tìm kiếm thư viện về ESP8266.
+ Ở thứ tự thứ 2: ta tiến hành “Install” cài đặt thư viện ở hình 2.11 do em đã cài trước nên không hiện. 7 Luan van Hình 2.11 Cài đặt thư viện cho ESP8266 Bước 4: Tiến hành nhấn tổ hợp phím “Ctrl+N” để tạo một Project mới.12 Hình ảnh sau khi tạo Project mới 8 Luan van Bước 5: Chọn dòng chip sử dụng, làm theo thứ tự 1,2 như trong hình 2.13 Chọn Board cần sử dụng Bước 6: Sau khi viết code xong tiến hành nạp code bằng cách nhấn vào phím Upload như trong hình 2.14 Nạp và kiểm tra lỗi 2. Giới thiệu phần mềm lập trình Android Studio Đây là phần mềm lập trình ứng dụng cho các điện thoại chạy hệ điều hành Android. Trong phần thiết kế lần này, nhóm em có sử dụng điện thoại để giao tiếp chung với hệ thống.
Vì thế để sử dụng phần mềm này thì ta nên làm theo các bước như bên dưới. Biểu tượng Arduino IDE sau khi cài xong xuất hiện trên desktop như hình sau: Hình 2.15 Phần mềm lập trình Android Studio 9 Luan van Bước 1: Tiến hành mở và tạo một Project mới theo thứ tự 1, 2, 3 như trong hình 2.16 Tiến hành tạo Project mới Sau khi ta làm xong các bước trên, màn hình sẽ hiện ra một cửa sổ mới như hình 2.17 ta tiến hành nhấn vào “Empty Activity” và ấn “Next” 10 Luan van Hình 2.17 Chọn kiểu Project Cửa sổ mới tiếp tục hiện ra, ở cửa sổ này ta đặt tên cho Project mới và chọn đường dẫn cho Project. Bên cạnh đó, phần mềm sẽ hỏi ta Minimum SDK tức là giá trị nhỏ nhất cho phiên bản Version Android mà Project này hỗ trợ. Ta nên chọn SDK 15 cho phù hợp với đại đa số điện thoại ngày nay.
11 Luan van Hình 2.18 Đặt tên cho Project, chọn đường dẫn, SDK MINIMUM Tiến hành liên kết với Google Firebase, để hiểu rõ hơn về Google Firebase em sẽ trình bày chi tiết ở Chương 3. Mục này chỉ trình bày về cách liên kết với Google Firebase với phần mềm Android Studio. Sau khi làm xong theo hình 2.18, cửa sổ lập trình Project mới sẽ hiện ra. Tại đây để liên kết với Google Firebase ta làm theo các bước sau: + Đầu tiên ta vào mục Tools\ Firebase từ cửa sổ lập trình Project mới của ta đang mở 12 Luan van Hình 2.19 Cách liên kết với Google Firebase Cửa sổ Firebase mở ra bên phải ứng dụng của ta.
Từ đây ta có thể làm theo các hướng dẫn của Google. Các hàm mẫu và chỉ dẫn cũng khá chi tiết. Nếu muốn dùng Firebase tạo cơ sở dữ liệu thời gian thực, ta nhấn vào mục Realtime Database Hình 2.20 Cài đặt các yêu cầu liên kết 13 Luan van Sau đó ta nhấn tiếp vào mục Save and retrieve data. Ta lần lượt thực hiện các bước tiếp theo Hình 2.21 Lưu dữ liệu liên kết Sau khi thực hiện xong việc liên kế ứng dụng với Firebase thì bạn sẽ thấy thông báo như sau tại cửa sổ Firebase trong ứng dụng.22 Thông báo liên kết thành công 14 Luan van 2.
Lý thuyết về vi điều khiển STM32 2. Tổng quan về vi điều khiển ARM Giới thiệu Cấu trúc ARM (viết tắt của Acorn RISC Machine) là một cấu trúc vi xử lý 32 bit kiểu RISC (thuộc kiến trúc Hardvard, có tập lệnh rút gọn) được sử dụng rộng rãi trong các thiết kế nhúng. Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết kế quang trọng hang đầu. Ngày nay ARM được ứng dụng rộng rãi trên mọi lĩnh vực của đời sống: Robot, máy tính, điện thoại, xe hơi, máy giặt… Hình 2.23 Một số ứng dụng của ARM 15 Luan van Lịch sử phát triển ARM Việc thiết kế ARM được bắt đầu tử năm 1983 trong một dự án phát triển của công ty máy tính Acorn.
Nhóm thiết kế hoàn thành việc phát triển mẫu gọi là ARM1 năm 1985, và vào năm sau, nhóm hoàn thành sản phẩm gọi là ARM2 với thiết kế đơn giản chỉ gồm 30. ARM2 có tuyến dữ liệu 32 bit, không gian địa chỉ 26 bit tức cho phép quản lý đến 64 Mbyte địa chỉ và 16 thanh ghi 32 bit. Thế hệ sau, ARM3 được tạo ra với 4KB cache và có chức năng được cải thiện nhiều lần hơn.