4.4.1 Lưu đồ giải thuật
Lưu đồ của NodeMCU ESP8266.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49
Lưu đồ của Arduino Nano.
Hình 4.10: Lưu đồ của Arduino Nano
4.4.2 Phần mềm lập trình cho vi điều khiển
Arduino là môi trường phát triển tích hợp mã nguồn mở, cho phép người dùng dễ dàng viết code và tải nó lên bo mạch. Môi trường phát triển được viết bằng java dựa trên ngôn ngữ lập trình xử lý và phần mềm mã nguồn mở khác. Phần mềm này có thể được sử dụng với bất kỳ bo mạch arduino nào. Kể từ tháng 3 năm 2015,
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50
arduino ide (Integrated Development Editor - môi trường phát triển tích hợp) đã được tải xuống hơn 8 triệu lần. Hiện tại, nó không chỉ được sử dụng cho các bo mạch Arduino và Genuido mà còn được hàng trăm công ty trên thế giới sử dụng để lập trình thiết bị của họ, bao gồm những thiết bị tương đương, bản sao và thậm chí cả hàng giả.
Hình 4.11: Giao diện của phần mềm viết code cho mạch Arduino
Ngôn ngữ phổ quát cho Arduino C và C++, do đó phần mềm phù hợp cho những lập trình viên đã quen thuộc với cả 2 ngôn ngữ này. Các tính năng như làm nổi bật cú pháp, thụt đầu dòng tự động, ...Làm cho nó trở thành một sự thay thế hiện đại cho các IDE khác.
Bọc bên trong giao diện đồ họa được sắp xếp hợp lý, arduino sở hữu những chức năng để thu hút các nhà phát triển arduino, mở đường đến một đầu ra thành công thông qua các mô-đun gỡ lỗi. Tất cả các tính năng của nó được lưu trữ bên trong vài nút bấm, menu, giúp dễ dàng hiểu và điều hướng, đặc biệt là với các lập trình viên chuyên nghiệp. Ngoài ra, việc tích hợp các bộ sưu tập ví dụ mẫu sẽ giúp
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51
cho những người lần đầu tiếp xúc với arduino có thể làm quen và nắm bắt ứng dụng nhanh hơn.
Trong điều kiện đã kết nối bo mạch arduino với máy tính và cài đặt các driver cần thiết, bạn sẽ được lựa chọn mô hình để làm việc nhờ sử dụng menu tools của ứng dụng. Sau đó, có thể bắt đầu viết chương trình bằng cách sử dụng môi trường làm việc thoải mái mà arduino cung cấp. Chương trình bao gồm một mảng thư viện phong phú như EEprom, Firmata, Gsm, Servo, TFTt, Wifi, ...Tất nhiên, bạn cũng có thể thêm vào thư viện của riêng mình.
Hình 4.12: Những thư viện có sẵn trong phần mềm
Các thiết kế có thể được kiểm tra, biên dịch với một bản ghi lỗi hiển thị ở phần dưới của giao diện người dùng, cho phép bạn xem lại code. Nếu quá trình gỡ lỗi trả về kết quả là không có lỗi thì có thể bắt đầu quá trình tải code lên bo mạch và thử nghiệm thêm.
Tóm lại, arduino là giải pháp phát triển bo mạch arduino, cung cấp đầy đủ các yếu tố cần thiết mà các nhà phát triển arduino cần để dễ dàng thực hiện quá trình tạo và thử nghiệm các sản phẩm của mình.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52
4.4.3 Phần mềm lập trình cho web.
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