➢ Giải thích lưu đồ chương trình code điều khiển:
Chương trình bắt đầu vào khởi động module wifi NodeMCU, LCD, khởi tạo các biến. Nếu chưa kết nối thì chương trình sẽ dừng đợi đến khi nào có kết nối Vịng lặp chương trình được thực hiện. Mặc định chương trình sẽ vào chế độ tự động (AUTO, Mode =0). Nếu muốn chuyển sang chế độ tay (Mode =1) thì cho phép điều khiển trực tiếp bằng tay. Đồng thời gửi các thông số cảm biến đo lên web.
b. Lưu đồ chế độ tự động: BẮT ĐẦU Cấu hình hệ thống Đọc g.trị cảm biến hiển thị LCD KT dữ liệu từ web Chế độ tay Chế độ tự động Gửi giá trị địa chỉ lên web Thực thi chế độ tay Thực thi chế độ tự động Thực thi lệnh điều khiển
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
54
Sai Sai Sai
Đúng Đúng Đúng Sai Sai Đúng Đúng Sai Sai Đúng Đúng Sai Đúng Sai Đúng Hình 4.6 Lưu đồ chế độ tự động BẮT ĐẦU T>30*C 10*C<T< 30*C T<10*C Bật chuông Bật quạt Tắt đèn Tắt chuông Tắt quạt Tắt đèn Bật đèn Bật chng, Tắt quạt Đóng mái che Độ ẩm <10 Độ ẩm >=10 CB quang
Bật phun sương Tắt phun sương
Bật đèn KẾT THÚC Độ ẩm đất < 10 Bật bơm tưới Độ ẩm đất >= 10 Tắt bơm tưới Mở mái che Tắt đèn CB mưa
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
55
➢ Giải thích lưu đồ chương trình chế độ tự động:
Chế độ tự động hoạt động như sau: Nhiệt độ cảm biến đo được sẽ so sánh với giá trị cài đặt trước đó nếu lớn hơn giới hạn cao nhất thì bật quạt, bật chng và tắt đèn, nếu nằm trong khoảng cài đặt thì tắt đèn, tắt quạt và tắt chuông, nếu nhỏ hơn giới hạn thấp nhất thì mở đèn, mở chng và tắt quạt. Độ ẩm khơng khí thấp hơn giá trị cài đặt thì bật phun sương, ngược lại thì tắt phun sương. Độ ẩm đất thấp hơn giá trị cài đặt trước thì bật bơm tưới, ngược lại thì tắt bơm tưới. Cảm biến quang tác động thì bật đèn, ngược lại thì tắt đèn. Cảm biến mưa tác động thì đóng mái che, ngược lại thì mở mái che.
c. Lưu đồ chế độ bằng tay ( MANUAL)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
56
➢ Giải thích lưu đồ chương trình chế độ tay:
Chế độ bằng tay hoạt động như sau: Nhấn nút đèn nếu đèn đang tắt thì mở đèn, ngược lại thì tắt đèn. Nhấn nút bơm nếu bơm đang tắt thì mở bơm, ngược lại thì tắt bơm. Nhấn nút quạt nếu quạt đang tắt thì mở quạt, ngược lại thì tắt quạt. Nhấn nút phun sương nếu phun sương đang tắt thì mở phun sương, ngược lại thì tắt phun sương. Nhấn nút mở mái che thì mái che mở. Nhấn nút đóng mái che thì mái che đóng.
d. Lưu đồ chuyển dữ liệu lên wed
Hình 4.8 Lưu đồ chuyển dữ liệu lên web.
➢ Giải thích lưu đồ truyền nhận dữ liệu lên wed
Khởi động ESP 8266 thiết lập kết nối. Kết nối thành công chuổi dữ liệu gửi từ web xuống ESP cập nhật các giá trị tại hệ thống và từ hệ thống các giá trị cảm biến đo được sẽ được gửi lên địa chỉ web.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH
57 Hình 4.9 Lưu đồ chế độ điều khiển bằng wed
➢ Giải thích lưu đồ chương trình chế độ điều khiển bằng wed:
Chế độ bằng wed hoạt động như sau: Nhấn nút đèn nếu đèn đang tắt thì mở đèn, ngược lại thì tắt đèn. Nhấn nút bơm nếu bơm đang tắt thì mở bơm, ngược lại thì tắt bơm. Nhấn nút quạt nếu quạt đang tắt thì mở quạt, ngược lại thì tắt quạt. Nhấn nút phun sương nếu phun sương đang tắt thì mở phun sương, ngược lại thì tắt phun sương. Nhấn nút mái che nếu mái che mở đang mở thì đóng mái che, ngược lại thì mở mái che.
4.4.2 Phần mềm lập trình cho vi điều khiển a. Phần mềm lập trình cho NodeMCU
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
58
Mơi trường phát triển tích hợp Arduino IDE là một ứng dụng đa nền tảng được viết bằng Java, và được dẫn xuất từ IDE cho ngơn ngữ lập trình xử lý và các dự án lắp ráp. Do có tính chất mã nguồn mở nên mơi trường lập trình này hồn tồn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm.
Người sử dụng chỉ cần định nghĩa hai hàm để thực hiện một chương trình hoạt động theo chu trình:
setup(): hàm chạy một lần duy nhất vào lúc bắt đầu của một chương trình
dùng để khởi tạo các thiết lập.
loop(): hàm được gọi lặp lại liên tục cho đến khi bo mạch được tắt.
Chu trình đó có thể mơ tả trong hình 4.20 dưới đây:
Hình 4.10 Quy trình làm việc của arduino
Arduino IDE hình 4.11 là nơi để soạn thảo code, kiểm ra lỗi và upload code.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
59 Arduino IDE Menu:
Hình 4.12 Giao diện menu arduino IDE
➢ Filemenu:
Hình 4.13 Giao diện file menu arduino IDE.
Trong file menu cần quan tâm tới mục Examples, đây là nơi chứa các chương trình mẫu đơn giản như: cách sử dụng các chân digital, analog, sensor,…
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
60
➢ Edit menu
Hình 4.15 Giao diện edit menu arduino IDE
➢ Sketch menu:
- Verify/ Compile: chức năng kiểm tra lỗi code. - Show Sketch Folder: hiển thị nơi code được lưu. - Add File: thêm vào một Tap code mới.
- Include Library: thêm thư viện từ bên ngoài cho IDE.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
61
➢ Tool menu:
Hình 4.17 Giao diện Tool Menu Arduino IDE
Trong Tool menu ta quan tâm các mục Board và Serial Port. Trong mục Board, cần phải lựa chọn board mạch cho phù hợp với loại board sử dụng. Nếu sử dụng loại board khác thì phải chọn đúng loại board mà mình đang có, nếu sai thì khi Upload chương trình vào chip sẽ bị lỗi. Nếu là NodeMCU thì phải chọn như hình 4.28:
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
62 Serial Port: đây là nơi lựa chọn cổng Com của NodeMCU. Khi chúng ta cài đặt
driver thì máy tính sẽ hiện thơng báo tên cổng Com của NodeMCU là bao nhiêu, ta chỉ việc vào Serial Port chọn đúng cổng Com để nạp code, nếu chọn sai thì khơng thể nạp code cho NodeMCU được.
Arduino Toolbar có một số button và chức năng của chúng như sau:
Hình 4.19 Arduino Toolbar
- Verify (1): kiểm tra code có lỗi hay khơng.
- Upload (2): nạp code đang soạn thảo vào Arduino. - New, Open, Save (3): Tạo mới, mở và lưu sketch.
- Serial Monitor (4): Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính.
Hình 4.20 Chương trình nạp thành cơng. b. Phần mềm lập trình cho STM32F103C8T6 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 Quá 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 ln 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.