Notepad++ là trình soạn thảo mã nguồn được nhiều lập trình viên lựa chọn hiện nay, đơn giản vì Notepad++ hội tụ nhiều tính năng, giao diện đơn giản và có thể kết hợp với nhiều ngôn ngữ lập trình khác nhau. Notepad++ hỗ trợ bạn tự động thực hiện nhiều tác vụ, chạy mã trong trình duyệt cụ thể, cho phép mở cùng lúc nhiều file trong thư mục, tìm kiếm, thay thế văn bản, tạo các file chống sửa đổi...
Phần mềm Notepad++ được coi là công cụ ghi chú hiệu quả trên máy tính hiện nay, đặc biệt với những người lập trình thì Notepad++ rất hay được sử dụng để fix lỗi một đoạn code nào đó, khi ghi chú trên Notepad++, thông tin được lưu lại kể cả khi bạn tắt chương trình đi.
Notepad++ hiện nay được sử dụng khá phổ biến trên windows với chức năng soạn thảo ngôn ngữ lập trình với hỗ trợ nhiều ngôn ngữ khác nhau, việc soạn thảo mã nguồn và chèn một đoạn code diễn ra nhanh chóng và gọn nhẹ hơn bao giờ hết. Với Notepad++, người dùng được phép khai thác đầy đủ các tính năng về việc tạo và chỉnh sửa văn bản, kết nối với máy in để in văn bản dễ dàng.
Phần mềm Notepad++ hỗ trợ soạn thảo văn bản đa tính năng đặc biệt dành riêng cho người lập trình, tuy vậy cách sử dụng lại rất đơn giản nhằm cung cấp cho người dùng một công cụ tốt hơn Notepad mặc định của Windows. Notepad++ cho phép soạn thảo mã nguồn và chèn một đoạn code nhanh chóng và gọn nhẹ.
Notepad++ là công cụ soạn thảo ngôn ngữ lập trình nhằm giúp cho người dùng có thể chèn và viết những đoạn code lập trình dễ dàng hơn. Công cụ này được coi như một sản phẩm thay thế tính năng Notepad vì có những ưu điểm vượt trội hơn và hỗ trợ đa ngôn ngữ. Notepad++ được tạo lên bởi Don Ho, một lập trình viên người pháp gốc hoa.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 53 Hình 4.13: Giao diện Notepad++
4.4.4 Công cụ lập trình Web server Giới thiệu
000Webhost là một dịch vụ miễn phí chuyên cung cấp cho người dùng muốn lập trình web những web hosting miễn phí nhưng với chất lượng cao và ổn định với hơn 10 năm kinh nghiệm phát triển.
000Webhost đảm bảo uptime tới 99%, với hầu hết các server đạt tỉ lệ uptime tới 99.9%, vì vậy sử dụng 000Webhost cho các mục đích học tập, nghiên cứu là phương án khả thi nhất với mức giá rẻ và chất lượng vượt trội.
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ì yê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ó 2 chế độ hoạt động và có thể chuyển đổi qua lại giữa 2 chế độ này. Có bảng hiển thị các thông số của mô hình.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54
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
Việc tạo ra một Web server để lưu trữ các file nguồn cũng như cơ sở dữ liệu hiện nay khá đơn giản và có nhiều cách. Cách 1 là sử dụng Local host với phần mềm Xampp, Warm, … Hoặc cách 2 là sử dụng một máy tính nhúng như Raspberry Pi để thay thế một máy tính thực thụ trong việc cài đặt và vận hành một web server. Cách 3 là mua hosting và domain từ những nhà cung cấp dịch vụ máy chủ.
Tuy nhiên với cách đầu tiên thì Web server không thể truy cập từ cấp độ mạng toàn cầu. Cách thứ 2 cũng không kinh tế vì giá thành cho một chiếc máy tính nhúng như Raspberry Pi là không rẻ. Từ đó nhóm quyết định sử dụng cách 3, nhưng do kinh phí có giới hạn nên nhóm chỉ đăng ký một hosting để xây dựng web server từ website https://vn.000webhost.com. Việc đăng ký và sử dụng web server là miễn phí.
000webhost cung cấp tối đa 2 database cho người dùng. Bộ nhớ lưu trữ dữ liệu 1GB.
Số lần yêu cầu máy chủ dưới 500rpm. Cung cấp 1 email.
Hỗ trợ ngôn ngữ PHP phiên bản 7.2.
Nhưng vẫn đáp ứng được những yêu cầu mà nhóm đề ra cho webserver. Việc thiết kế bao gồm các bước sau đây:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55
Đăng ký một Host trên 000webhost
Truy cập trang https://vn.000webhost.com để tạo một tài khoản mới.
Hình 4.14: Đăng ký tài khoản mới
Sau đó điền vào địa chỉ email đăng ký, mật khẩu và tên website mình muốn tạo.
Sau khi đăng ký thành công sẽ có một email gửi về để kích hoạt tài khoản tức là khi tạo tài khoản ta phải sử dụng một email có thật và thời hạn kích hoạt sản phẩm có hiệu lực là 2 tuần kể từ khi nhận được email yêu xác nhận.
Hình 4.15: Giao diện email xác nhận tài khoản
Có thể sử dụng tài khoản Google, Facebook để đăng nhập. Sau khi đăng nhập thành công chúng ta có thể tạo website với tên miền mình mong muốn bằng cách chọn Create New Site.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56 Hình 4.16: Tạo tên miền mong muốn
Tạo database để lưu dữ liệu
Việc tạo ra các bảng lưu trữ dữ liệu được thực hiện bởi cú pháp như sau: Chọn Quản Lý Website -> Tool -> Quản lý database Sau đó chọn New Database.
Hình 4.17: Tạo Database mới
Bảng dữ liệu là thành phần chính tạo nên cơ sở dữ liệu (CSDL). Người dùng thực hiện việc lưu trữ hay truy xuất trên CSDL thông qua các bảng này. Các bảng này có cấu trúc được phép cài đặt một cách linh hoạt bởi người thiết kế.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57
Update web lên server
Sau khi tạo database chúng ta tiến hành update website lên server, việc update rất đơn giản, ở ngoài trang chủ chọn Quản Lý Website -> Tool -> Quản lý File -> Tải file lên bây giờ.
Hình 4.18: Các File đã update lên server
4.4.5 Công cụ lập trình gửi và nhận tin nhắn
IFTTT là viết tắt của If This, Then That - nôm na là nếu như thế này thì như thế kia. Về cơ bản IFTTT là các trigger, giúp bạn xử lý công việc được lập trình sẵn, khi xảy ra trường hợp này thì sẽ dẫn đến công việc tiếp theo.
IFTTT sử dụng các công thức IFTTT Recipes hay còn gọi là các Applet để có thể kết nối các ứng dụng với nhau. Khi có sự thay đổi trên ứng dụng này thì IFTTT sẽ thay đổi trên ứng dụng kia.
Ví dụ Twitter và Facebook chẳng có liên quan gì đến nhau nhưng nếu bạn sử dụng 1 hashtag trên twitter như #seo thì bạn có thể lập trình để IFTTT post bài viết đó lên facebook một cách tự động mà không cần bạn phải thao tác thêm gì trên facebook nữa.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58 Hình 4.19: Màn hình truy cập IFTTT
Việc đăng ký có thể sử dụng các tài khoản phổ biến như Google hoặc Facebook để đăng nhập.
Hình 4.20: Màn hình đăng nhập IFTTT
Sau khi đăng nhập, bạn có thể tạo một Applet mới, trong phần Applet có rất nhiều các dịch vụ, nguyên tắc là dịch vụ bị tác động sẽ chọn trước và dịch vụ còn lại chính là dịch vụ được thực thi khi dịch vụ kia tác động.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59 Hình 4.21: Thêm dịch vụ
Sau khi chọn dấu cộng, ta tiến hành chọn dịch vụ, do chúng ta nhận tin nhắn xong mới tác động đến web nên chọn dịch vụ tin nhắn trước.
Vào ô tìm kiếm tìm từ khóa “sms” xong chọn dịch vụ Arduino SMS như hình.
Hình 4.22: Thêm dịch vụ SMS
Sau đó chọn New SMS received matches search và nhập từ khóa muốn tác động khi nhận, ở hình dưới giả sử là từ “tay” sau đó chọn Create trigger.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60
Sau tạo trigger ta tiến hành chọn dấu cộng còn lại, do mình muốn nhận tin nhắn là tác động vào web vì thế chọn dịch vụ thứ 2 là Webhook.
Hình 4.24: Thêm dịch vụ
Hình 4.25: Chọn dịch vụ Webhook
Sau khi chọn dịch vụ, ta chọn Make a web request, ở đây ta thêm địa chỉ muốn tác động và chọn giao thức tác động. Sau khi điền và chọn xong thì tiến hành Creat action.
Như vậy là đã tạo được một Applet, các Applet còn lại làm tương tự như Applet lúc nãy.
Để feedback lại giá trị nhiệt độ, độ ẩm ta cũng tạo Applet tương tự như dịch vụ 1 là Webhook và dịch vụ 2 là Android SmS. Lúc này Webhook sẽ cung cấp cho bạn một key, để biết key của bạn vui lòng truy cập vào địa chỉ:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61
https://ifttt.com/maker_webhooks Chọn Documentation.
Hình 4.26: Key do Webhook cung cấp
Để tác động vào Webhook phải truy cập đúng cú pháp địa chỉ mà Webhook cung cấp, ở trong hình là:
https://maker.ifttt.com/trigger/{event}/with/key/kfiYA2nq3Z8K_UEGm0UW1Rgg hUb2Z6MRVSKf-_PFpQN. Với event là tên Applet của bạn.
Dịch vụ thứ 2 chúng ta chọn là Android Sms sau đó nhập số điện thoại muốn gửi và nội dung sau đó chọn Create action.
Sau đó tiến hành cài ứng dụng IFTTT trên cửa hàng CH Play lên thiết bị android.
Rồi đăng nhập tài khoản đã đăng kí trên web lên ứng dụng trên điện thoại. Sau đó tiến hành kiểm tra lại các Applet đã tạo còn hay không.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62
4.5 SƠ ĐỒ TOÀN BỘ HỆ THỐNG
Hình 4.27: Sơ đồ nguyên lý hoạt động của toàn bộ hệ thống
Đối với khối Webserver, Website sẽ tác động vào các file PHP chuyên biệt để lấy dữ liệu từ SQL để hiển thị lên WEB. Khi tác động vào các nút nhấn trên WEB thì các PHP được lập trình sẽ bị tác động, các PHP sẽ tác động vào SQL làm thay đổi giá trị, đồng thời xuất ra File Json.
Đối với khối SMS, khi ta gửi tin nhắn thì các dịch vụ IFTTT được kích hoạt tác động vào các File PHP được lập trình sẵn, các PHP này sẽ thay đổi giá trị trên SQL đồng thời xuất ra File TXT và Json.
Như hình vẽ, MCU sẽ lấy dữ liệu bằng cách trỏ vào địa chỉ của các tệp file TXT hoặc Json để lấy dữ liệu. Khi muốn gửi dữ liệu thì sẽ tác động vào các file PHP chuyên biệt để gửi dữ liệu vào SQL.
Khi các cảnh báo thì MCU sẽ tác động vào dịch vụ SMS của IFTTT để gửi tin nhắn cho đối tượng.
4.6 TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC4.6.1 Tài liệu hướng dẫn sử dụng 4.6.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 là 220VAC cho 2 bóng đèn sợi đốt, 1 Adapter 12VDC cấp nguồn mạch điều khiển, và 1 Adapter
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63
24VDC cấp nguồn mạch hệ thống phun sương, sau cho khi cấp nguồn thì màn hình LCD sáng lên.
Bước 2: Chọn chế độ vận hành, cài đặt thông số bằng cách nhấn nút bên phải để chọn, nhấn nút bên trái để thay đổi trạng thái đã chọn, hệ thống sẽ có 2 trang điều chỉnh tương ứng với 2 khu và 1 trang quan sát.
Bước 3: Quan sát nhiệt độ, độ ẩm, phần trăm mực nước trên màn hình, khi đang ở trang quan sát nhấn nút bên trái để quan sát trạng thái các IO.
Đ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 là 220VAC cho 2 bóng đèn sợi đốt, 1 Adapter 12VDC cấp nguồn mạch điều khiển, và 1 Adapter 24VDC cấp nguồn mạch hệ thống phun sương, sau cho khi cấp nguồn thì màn hình LCD sáng lên.
Bước 2: Quan sát thấy màn hình hiện chữ A điều đó có nghĩa mạch điều khiển đã truy cập được vào mạng mà không bị lỗi, và ngược lại nếu là chữ W nghĩa là hệ thống không vào được wifi hoặc rớt mạng (không thể điều khiển trên web được) vui lòng kiểm tra lại mạng.
Bước 3: Truy cập vào địa chỉ http://duytinquochungspkt.000webhostapp.com
và tiến hành đăng nhập tài khoản, nếu không có tài khoản thì tiến hành đăng ký tạo tài khoản mới.
Bước 4: Sau khi đăng nhập thành công thì màn hình Trang chủ xuất hiện, chúng ta tiến hành chọn khu muốn điều khiển và tiến hành điều chỉnh theo ý muốn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
5.1 KẾT QUẢ
Sau khi tìm hiểu các tài liệu trong sách và nguồn internet các tài liệu tiếng việt và cả tiếng anh, áp dụng những kiến thức đã được học, chúng em căn bản đã hoàn thành được đồ án với đề tài “THIẾT KẾ VÀ THI CÔNG MÔ HÌNH GIÁM SÁT VÀ ĐIỀU KHIỂN MÔ HÌNH TRỒNG NẤM RƠM”.
Mô hình hoàn chỉnh.
Hình 5.1: Mô hình sau khi hoàn thành
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 65
Giao diện web.
Hình 5.3: Trang thống kê sản lượng
Hình 5.4: Bảng lưu các thông số khu 1
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 66 Hình 5.6: Trang điều khiển giọng nói
Điều khiển mô hình.
Điều khiển hệ thống sấy (các hệ thống khác cũng điều khiển tương tự). Tắt từ web.
Tắt trực tiếp trên mô hình Tắt bằng SMS
Tắt bằng giọng nói
Hình 5.7: Hệ thống sấy khi tắt
Bật từ web.
Bật trực tiếp trên mô hình Bật bằng SMS
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 67 Hình 5.8: Hệ thống sấy khi bật
Cơ chế bảo vệ khi gặp sự cố
Khi nhiệt độ môi trường trong mô hình cao hơn mức cho phép hệ thống sẽ tắt tất cả các thiết bị và Buzzer sẽ kêu.
Hình 5.9: Nhiệt độ khu 1 cao hơn 40 oC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 68 Hình 5.11:Gửi tin nhắn cảnh báo
Khi hệ thống mất mạng sẽ tự chuyển về chế độ chờ: Hệ thống sẽ hoạt động ở trạng thái điều khiển tự động vào thời điểm gần nhất và hiển thị chữ W để báo hiệu.
Hình 5.12: Chế độ chờ
Khi có mạng hệ thống sẽ hoạt động ở chế độ kích hoạt: hiển thị chữ A để báo hiệu và tiếp tục hoạt động ở chế độ điều khiển hiện tại.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 69
Sau đề tài đồ án này, nhóm em cũng đã nghiên cứu và tích lũy được thêm nhiều hiểu biết, kiến thức mới như:
Hiểu biết sâu hơn về sử dụng và các tính năng của Arduino như giao tiếp giữa Arduino với các module, cảm biến như: Cảm biến nhiệt độ DHT11, cảm biến độ ẩm đất, relay, LCD, còi Buzzer, nút nhấn cũng như ứng dụng của IC 2803 trong việc điều khiển.
Tìm hiểu được các chuẩn giao tiếp với vi xử lý như I2C, UART.
Biết được nguyên tắc họat động của một hệ thống IoT, cũng như ứng dụng của nó trong đời sống.
Biết được các bước cơ bản lập trình website, và đưa trang web lên web serser. Biết quản lý các giữ liệu trong SQL, tạo bảng, thêm các thuộc tính và đưa dữ
liệu lên, đồng thời đọc giữ liệu xuất ra màn hình website.
Biết sử dụng module wifi ESP8266 NodeMCU để tác động vào cơ sở dữ liệu để đọc, gửi và lấy dữ liệu từ SQL xuống cho Arduino xử lý.
Biết sử dụng dịch vụ IFTTT và ứng dụng các dịch vụ để tạo thành một hệ thống IoT.