b. Phần mềm lập trình cho STM32F103C8T6
Keil uvision 5
Ngơn ngữ lập trình cho vi điều khiển ARM mà nhóm dùng là ngơn ngữ C.. Để vi điều khiển có thể hiểu được những gì mà người dùng cần đáp ứng cần có một trình biên dịch làm cầu nối giữa người dùng và vi điều khiển. Với những kiến thức được học hỏi ở nhà trường nhóm quyết định chọn phần mềm Keil uvision 5 để làm điều này.
Các bước để cài đặt phần mềm Keil uvision 5:
Bước 1: chạy file setup MDK511.
Các bạn nhấp chuột phải vào file mdk511.exe và chọn open.
BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH
63 Hình 4.21 Giao diện cài đặt phần mềm MDK511
Bước 3: Tick vào ơ I agree.... Sau đó nhấn Next để tiếp tục cài đặt.
Hình 4.22 Giao diện cài đặt MDK511
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
64 Hình 4.23 Chọn nơi lưu file cài đặt MDK511
Bước 5: Chờ cho quá trình cài đặt vào máy.
Hình 4.24 Quá trình cài đặt đang được thực hiện Bước 6: Kết thúc cài đặt nhấn Finish. Bước 6: Kết thúc cài đặt nhấn Finish.
BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH
65 Hình 4.25 Q trình cài đặt kết thúc
4.4.3 Phần mềm lập trình cho web.
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. Nó cũng cho phép tùy chỉnh, do đó, người dùng có thể thay đổi theme, phím tắt, và cá tùy chọn khác. Nó miễn phí và là phần mềm mã nguồn mở, mặc dù gói tải xuống chính thì là có giấy phép.
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. Mặc dù nó sử dụng nền tảng Electron nhưng phần mềm này không phải là một bản khác của Atom, nó thực ra được dựa trên trình biên tập của Visual Studio Online (tên mã là "Monaco").
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, với 34.9% của 75398 người trả lời tun bố sử dụng nó.
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
66
Visual Studio Code được công bố, ra mắt phiên bản thử nghiệm vào ngày 29 tháng 4 năm 2015 bởi Microsoft tại hội nghị Build 2015.
Vào ngày 18 tháng 11 năm 2015, Visual Studio Code được phát hành dưới giấy phép MIT và mã nguồn của nó được đưa lên GitHub. Chức năng Extesion (tiện ích mở rộng) cũng được cơng bố.
Vào ngày 14 tháng 4 năm 2016 Visual Studio Code hoàn tất thử nghiệm và được phát hành chính thức.
Visual Studio Code là một trình biên tập mã. Nó hỗ trợ nhiều ngơn ngữ và chức năng tùy vào ngôn ngữ sử dụng theo như trong bảng sau. 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 đó. Tương tự như vậy với những dòng lệnh tốn nhiều thời gian để xử lý. Khi thực hiện những điều trên thì q trình xử lý dịng lệnh đó sẽ bị hủy.
Hình 4.26 Giao diện Visual studio code Thanh sidebar Thanh sidebar
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
67
Nhìn về phía bên trái, ta thấy 4 biểu tượng nằm dọc theo mép cửa sổ. Dựa vào biểu tượng, ta dễ dàng đoán ra chức năng của chúng.
Đầu tiên là biểu tượng hai tờ giấy xếp chồng lên nhau. Nếu đã có kinh nghiệm với Visual Studio (bản đồ sộ), ta chắc hẳn quá quen với cửa sổ Solution Explorer. Visual Studio Code cũng có một cửa sổ tương tự, nhưng được gọi là Explore. Khung cửa sổ này chia làm hai phần. Phần trên cùng là Working Files, chứa những file ta đang làm việc. Còn phần bên dưới là cây thư mục, chứa toàn bộ các file và folder có trong dự án. Khi rê chuột lên tiêu đề của từng phần, ta thấy một vài icon nhỏ xuất hiện bên phải. Nếu muốn biết các biểu tượng này làm gì, ta rê chuột lên nó thì sẽ có một tooltip thơng báo chức năng. Ta cũng có thể truy cập các chức năng này bằng cách click phải.
Hình 4.28. Visual Studio Code Search
Kế đến là biểu tượng kính lúp. Khơng cần phải nói nhiều, ta biết đây là cơng cụ tìm kiếm. Click vào nó, một khung cửa sổ tìm kiếm hiện ra. Visual Studio Code cịn có cách khác để tìm kiếm rất hiệu quả và độc đáo.
Trước mắt, ta sẽ tìm hiểu tiếp biểu tượng thứ ba trong bộ tứ biểu tượng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
68
Version Control System (VCS) là công cụ khơng thể thiếu trong mơi trường lập trình nhóm và Git là cái tên nổi bật nhất. Nếu dự án chưa được Git quản lí, Visual Studio Code hiển thị một cái nút to tướng đề nghị khởi tạo. Ta có thể dùng trực tiếp khung cửa sổ này để commit mà khơng cần nhảy qua cửa sổ dịng lệnh. Tất nhiên, Visual Studio Code không thể hỗ trợ mọi chức năng của Git. Nhưng với những gì nó cung cấp thì q đủ cho nhu cầu Git hàng ngày.
Hình 4.30 Visual Studio Code Debug
Biểu tượng cuối cùng là con bọ nằm trong vòng tròn gạch chéo. Đây là chức năng tiêu diệt sâu bọ hay còn gọi là debugger. Thao tác cơ bản khi dùng debugger là như nhau. Đầu tiên ta đặt breakpoint, sau đó chạy chương trình cho tới khi đụng breakpoint. Kế đến, ta kiểm tra giá trị của biến, hoặc cho chạy từng dòng code để kiểm tra các thay đổi.
Khung nhập lệnh
Khung nhập lệnh (Command Palette) là tính năng nổi tiếng của Sublime Text. Các trình soạn thảo code ra đời sau đều tích hợp tính năng này.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
69
Giả sử tơi cần nhảy đến file có tên script.js nằm đâu đó trong dự án. Tơi nhấn tổ hợp phím Ctrl + P, khung nhập lệnh hiện ra giữa màn hình. Lúc này, tơi nhập vào vài kí tự đầu tiên của tên file. Trong quá trình nhập, Visual Studio Code sẽ hiển thị kết quả gần đúng nhất với các kí tự đang nhập. Nếu thấy file cần mở nằm trong danh sách này, ta dùng mũi tên lên xuống để di chuyển vùng chọn đến nó rồi nhấn Enter. Bằng cách này, ta không phải rời tay khỏi bàn phím để dùng chuột click vào file trong cửa sổ Explore. Nhờ vậy, ta có thể di chuyển rất nhanh giữa các file.
Để chạy một lệnh nào đó cho Visual Studio Code, ta dùng tổ hợp phím Ctrl + Shift + P. Lúc này, một khung nhập lệnh tương tự ban nãy hiện ra. Tuy nhiên, ta thấy nó có một dấu > phía trước. Nếu dùng Ctrl + P để mở khung nhập lệnh, sau đó gõ thêm dấu > thì ta cũng nhận được kết quả tương tự. Tơi thích dùng Ctrl + Shift + P vì nó nhanh hơn.
Trình soạn thảo code
Khung soạn thảo của Visual Studio Code trông đơn giản nhưng lại chứa nhiều tuyệt chiêu bí mật bên trong. Chiêu nổi bật nhất là tính năng tách khung soạn thảo ra làm hai, thậm chí làm ba. Nếu ta viết code với màn hình kích thước lớn (hơn 21 inch), phần lớn code chỉ gom về phía trái màn hình, phía bên phải thì trống khơng. Visual Studio Code cho phép tách ra nhiều khung soạn thảo để tận dụng diện tích màn hình. Để mở thêm khung thứ hai, ta bấm Ctrl + 2. Lúc này, khung mới hiện ra bên phải khung hiện tại. Nếu vẫn còn chỗ trống, ta mở thêm khung thứ ba bằng tổ hợp phím Ctrl + \. Để đóng khung, ta dùng Ctrl + W.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
70 Debug
Mắc lỗi và sửa lỗi đã trở thành một phần của cuộc đời lập trình viên. Dù muốn hay không, lỗi vẫn luôn hiện diện ở những nơi ta ít ngờ nhất. Và để tìm chúng thì khơng phải dễ. Do đó, ta cần có một cơng cụ mạnh giúp săn lùng những con sâu bọ này. Visual Studio Code cung cấp một trình debug tuy khơng q cao siêu như trong Visual Studio nhưng cũng đủ thỏa mãn nhu cầu debug căn bản.
Cửa sổ debug chứa những thành phần căn bản ta thường thấy trong bất kì debugger:
Khung Variables chứa thơng tin về các biến. Khung Watch để thêm các biến cần theo dõi.
Khung Call Stack là danh sách các hàm được gọi theo thứ tự thời gian ngược, nghĩa là hàm gọi sau sẽ nằm đầu danh sách.
Khung Breakpoints chứa các tùy chọn cho breakpoint trong quá trình debug. Hiện tại, Visual Studio Code chỉ hỗ trợ debug file JavaScript hoặc TypeScript. Trước khi debug, ta phải cấu hình nó bằng cách click vào biểu tượng bánh răng để tạo file launch.json. Lúc này, Visual Studio Code hiện ra khung nhập lệnh để hỏi ta muốn debug trong mơi trường nào. Ta có nhiều lựa chọn, nhưng đơn giản nhất là dùng Node.js. Cũng như các file cấu hình khác trong Visual Studio Code, file này cũng theo định dạng JSON. Debug chia làm 2 chế độ: Launch và Attach. Launch nghĩa là ta chạy debugger trực tiếp trên file, còn Attach nghĩa là ta sẽ gắn debugger vào một tiến trình khác đang chạy, cụ thể ở đây là Node.js. Ta thay đổi giữa 2 chế độ này bằng danh sách kế bên nút Start. Cũng trong file cấu hình, tơi thay đổi đường dẫn đến file cần debug ở thuộc tính program. Cấu hình đã xong, giờ ta có thể bắt đầu debug.
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
71
Để debug, ta vào trong file cần kiểm tra và click vào đầu dòng để đặt breakpoint. Một chấm đỏ xuất hiện đánh dấu chỗ dừng khi code chạy tới đó. Tiếp theo, ta chọn chế độ Launch và nhấn nút Start. Debugger chạy code và dừng ngay tại breakpoint. Các thông tin ở khung bên trái cũng được cập nhật. Phía trên, ta thấy 5 nút điều khiển: Continue, Step Over, Step Into, Step Out, Restart, và Stop. Tôi nghĩ là bạn đã biết chức năng của các nút này rồi nên tơi khơng phải nói nhiều về chúng. Như đã đề cập ở phần giới thiệu biểu tượng trên sidebar.
4.4.4 Cơng cụ lập trình Web server Lập trình Web server Lập trình Web server
Yêu cầu thiết kế
Từ yêu cầu của đề tài, chúng ta cần thiết kế một web server mà ở đó có thể lưu trữ được dữ liệu gửi lên từ cảm biến, có thể quan sát các giá trị cảm biến, có thể giám sát, điều khiển mơ hình và quan trọng hơn hết là dễ dàng sử dụng cho người dùng. Chính vì u cầu đó, nhóm đồ án thiết kế một Webserver có các tính năng sau đây:
Có hệ thống đăng ký và đăng nhập bằng mật khẩu để đảm bảo tính riêng tư và bảo mật cho hệ thống.
Có bảng hiển thị các thơng số của mơ hình. Có cơ cấu điều khiển các thiết bị trong mơ hình. Đồng bộ với phần cứng của mơ hình.
Có giao diện thân thiện, dễ sử dụng.
Xây dựng Webserver MQTT
Sẽ có một câu hỏi được đặt ra là Broker MQTT này sẽ lấy ở đâu ra ? Chúng ta sẽ có 2 cách:
• Tự tạo Broker MQTT trên máy tính, raspberry, server,.. tùy vào điều kiện hiện
có: cách này tốn kém thêm chi phí, phức tạp, khơng dành cho người mới bắt đầu.
• Sử dụng các dịch vụ MQTT broker có sẵn: cách này dễ hơn, sử dụng cái sẵn
có, thao tác cấu hình lấy thơng tin để sử dụng, phù hợp với những người muốn thử nghiệm, tham khảo, tận dụng cái có sẵn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
72 Hình 4.34 Giao diện CloudMQTT
Bước 1: Bạn vào trực tiếp trang CloudMQTT để tạo một tài khoản cho mình,
sẽ có một đường dẫn để kích hoạt thơng tin và cấu hình cho tài khoản của bạn, trừ email và mật khẩu ra thì các ơ cịn lại các bạn nhập gì tùy thích.
Bước 2: Tạo MQTT Broker bằng cách ấn vào nút Create màu xanh, nhập các
thơng tin vào như hình.
Hình 4.35 Nhập các thơng tin khi tạo tài khoản Bước 3: Chọn Details để cấu hình thơng tin
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH
73
Trong manage User điền tên user là esp8266, password là 123456, sau đó Save
Hình 4.37 Nhập username và password
Trong New Rule chọn user như hình, tên topic đặt tên tùy thích, tick chọn Read,Write.
Hình 4.38 Chọn user và đặt tên topic
Vậy là xong bước cấu hình broker.
Giao diện sau khi thiết kế:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
74 4.5 TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC
4.5.1 Tài liệu hướng dẫn sử dụng
Mơ hình hệ thống gồm khối điều khiển, tải và khối hiển thị. Các bước thao tác sử dụng gồm:
❖ Điều khiển trực tiếp trên mơ hình:
Bước 1: Cấp nguồn cho hệ thống, hệ thống sử dụng nguồn pin năng lượng mặt
trời và mạch giảm áp LM2596. Đợi hệ thống khởi động xong, LCD hiển thị nhiệt độ và độ ẩm khơng khí và độ ẩm đất, giá trị mode.
Bước 2: Mặc định khi khởi động hệ thống hoạt động chế độ tự động. Hệ thống
gửi dữ liệu nhiệt độ và độ ẩm khơng khí và độ ẩm đất lên địa chỉ wed.
Bước 3: Nếu muốn chuyển chế độ sang Tay(MANUAL) chỉ việc nhấn phím
Mode, khi LCD hiển thị Mode=1 thì có thể điểu khiển trực tiếp hệ thống.
• Muốn mở hay tắt bơm chỉ việc nhấn phím BƠM .
• Muốn mở hay tắt phun sương chỉ việc nhấn phím PHUN SƯƠNG.
• Muốn mở hay tắt quạt chỉ việc nhấn phím QUẠT.
• Muốn mở hay tắt đèn chỉ việc nhấn phím ĐÈN.
• Muốn mở mái che chỉ việc nhấn phím MỞ MÁI CHE.
• Muốn đóng mái che chỉ việc nhấn phím ĐĨNG MÁI CHE.
❖ Điều khiển trên web:
Bước 1: Cấp nguồn cho hệ thống, hệ thống sử dụng nguồn 5V. Khởi động
module wifi NodeMCU. Đợi hệ thống khởi động xong. LCD hiển thị nhiệt độ, độ ẩm. Tên module phát wifi để NodeMCU kết nối là “tuanphuong” pass “phuong1997” khi đó NodeMCU tự động kết nối và truyền nhận dữ liệu lên web.
Bước 2: Nếu muốn kiểm tra, điều khiển các thiết bị điện hay kiểm tra nhiệt độ,
độ ẩm qua mạng wifi thì truy cập vào web. Các giá trị nhiệt độ, độ ẩm, độ ẩm đất cũng được hiển thị trên web.
Nếu người dùng muốn bật các thiết bị tương ứng với các thiết bị 1, thiết bị 2, thiết bị 3, thiết bị 4, thiết bị 5 thì người dùng thao tác vào chọn chế độ bằng tay sau đó hành động bật hay tắt thì các thiết bị điện trên hệ thống sẽ hoạt động .
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
75
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
5.1 KẾT QUẢ
Qua q trình nghiên cứu và thực hiện đề tài, nhóm chúng em nhận thấy được đề tài có khả năng ứng dụng vào thực tiễn cao, có thể giám sát trực tiếp trên Web Server và có thể điều chỉnh hệ thống trực tiếp trên web mà không cần phải đến trang trại, đáp ứng được nhu cầu xã hội hiện đại ngày nay và đi đúng với xu hướng của thời đại. Đồng thời đề tài này cũng là một nguồn tài liệu có giá trị cho các bạn sinh viên những khóa tiếp theo có thể tham khảo khi nghiên cứu những đề tài có liên quan cũng như là phát triển thêm đề tài từ nền tảng có sẳn mà nhóm đã nghiên cứu. Bên cạnh đó, nhóm chúng em cũng bổ sung cho mình những kiến thức hay và bổ ích như:
• Hiểu biết sâu hơn về sử dụng và các tính năng của ARM như giao tiếp giữa