BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐỒNG NAI BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG ỨNG DỤNG IBM CLOUD VÀ NODE RED VÀO MẠCH ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐỒNG NAI
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG
ỨNG DỤNG IBM CLOUD VÀ NODE RED VÀO MẠCH
ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNH
Mã số: TR:2020-30/KCN-SV
Chủ nhiệm đề tài: Bùi Nguyễn Thiên Phước
Đồng Nai, tháng 5 năm 2021
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐỒNG NAI
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG
ỨNG DỤNG IBM CLOUD VÀ NODE RED VÀO MẠCH
ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNH
Đồng Nai, tháng 5 năm 2021
Trang 3DANH SÁCH THÀNH VIÊN THAM GIA NGHIÊN CỨU ĐỀ TÀI
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT i
DANH MỤC HÌNH ẢNH ii
THÔNG TIN KẾT QUẢ NGHIÊN CỨU iii
Chương 1 MỞ ĐẦU 1
1.1 Tổng quan về lĩnh vực nghiên cứu 1
1.2 Tính cấp thiết 1
1.3 Mục tiêu 1
1.4 Cách tiếp cận 1
1.5 Phương pháp nghiên cứu 1
1.6 Đối tượng và phạm vi nghiên cứu 1
1.7 Nội dung nghiên cứu 1
1.8 Kế hoạch thực hiện đề tài 2
Chương 2: CÁC THIẾT BỊ VÀ PHẦN MỀM ĐƯỢC DÙNG 3
2.1 Module Node MCU ESP8266 3
2.2 Phần mềm Arduino IDE 4
2.3 Cảm biến siêu âm HY-SRF05 6
2.4 IBM cloud 7
Chương 3: QUÁ TRÌNH THỰC HIỆN 9
3.1 Thiết lập dịch vụ của IBM 9
3.3 Thiết lập giao diện giao tiếp trên node red 18
3.4 Kết nối phần cứng 19
3.4 Phần code MCU 19
KẾT LUẬN VÀ KIẾN NGHỊ 23
TÀI LIỆU THAM KHẢO 24
Trang 5i
DANH MỤC CÁC TỪ VIẾT TẮT
HMI: Human Machine Interface Giao diện người - máy
IBM: International Business Machines Máy kinh doanh quốc tế
AI: Artificial intelligence Trí thông minh nhân tạo
MCU: Multipoint control unit Thiết bị điều khiển đa điểm
SQL: Structured Query Language là ngôn ngữ truy vấn có cấu trúc
Trang 6ii
DANH MỤC HÌNH ẢNH Hình 2.1: Module NodeMCU 0.9
Hình 2.2: Chân chức năng của Node MCU
Hình 2.3: Thủ tục 1 để cập nhật phần mềm cho Arduino IDE
Hình 2.4: Thủ tục 2 để cập nhật phần mềm cho Arduino IDE
Hình 2.5: Thủ tục 3 để cập nhật phần mềm cho Arduino IDE
Hình 2.6: Thủ tục 4 để cập nhật phần mềm cho Arduino IDE
Hình 2.7: Mặt trước và sau của cảm biến siêu âm SRF05
Hình 3.1: Thao tác chọn Catalogue trên IBM cloud
Hình 3.2: Thao tác chọn dịch vụ Internet of things platfrom
Hình 3.3: Thao tác đặt tên server
Hình 3.4: Thao tác chọn lite và nhấn Create
Hình 3.5: Thao tác chọn Lancer
Hình 3.6: Thao tác chọn Ajouter un terminal
Hình 3.7: Thao tác nhập địa chỉ mac của MCU
Hình 3.8: Thông tin về thiết bị đầu cuối
Hình 3.9: Chọn biểu tượng như hình để cài bảo mật thông tin
Hình 3.10: Chọn lựa chọn như hình để cài bảo mật thông tin
Hình 3.11: Thao tác chọn dịch vụ Node Red
Hình 3.12: Đặt tên gói dịch vụ và chọn theo hình
Hình 3.13: Giao diện của host đã tạo
Hình 3.14: Đăng nhập vào Node RED
Hình 3.14: Giao diện trên Node RED
Hình 3.14: Chọn cài đặt trên Node RED
Hình 3.15: Thao tác 1 để kết nối hai dịch vụ
Hình 3.16: Thao tác 2 để kết nối hai dịch vụ
Hình 3.17: Thao tác 3 để kết nối hai dịch vụ
Hình 3.18: Thao tác 4 để kết nối hai dịch vụ
Hình 3.19: Thao tác 5 để kết nối hai dịch vụ
Hình 3.20: Thiết kế giao diện trên Node-RED
Hình 3.21: Giao diện người - máy
Hình 3.22: Mạch kết nối thực tế
Trang 7iii
THÔNG TIN KẾT QUẢ NGHIÊN CỨU
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG
1 Thông tin chung:
- Tên đề tài: Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
- Mã số: TR:2020-30/KCN-SV
- Chủ nhiệm đề tài: Bùi Nguyễn Thiên Phước Điện thoại: 0898 613 057 Email: 141900643@dntu.edu.vn
- Đơn vị quản lý về chuyên môn: Khoa Công nghệ
- Thời gian thực hiện: Từ tháng 10 năm 2020 đến tháng 1 năm 2021
2 Mục tiêu: Tạo ra giao diện người – máy (HMI) dùng cho mạch đo khoảng cách (hoặc mạch đo nhiệt độ) và điều khiển thiết bị có ứng dụng IBM cloud và Node Red
3 Nội dung chính: Phương pháp lập trình Node Red, cách đăng ký tài khoản IBM cloud
và thiết lập dịch vụ IBM liên kết với Node Red, kết nối phần cứng cho mạch đo khoảng cách và viết code cho vi xử lý
4 Kết quả chính đạt được (khoa học, đào tạo, kinh tế - xã hội, ứng dụng, )
- Giao diện người – máy dùng cho mạch đo khoảng cách hoặc đo nhiệt độ có đặc điểm như sau:
+ Dễ dàng truy cập với điện thoại thông minh hoặc laptop
+ Khi có tác động trên giao diện mới thực hiện đo khoảng cách
+ Thông số đo được hiển thị về giao diện
+ Có thể di chuyển dễ dàng và điều khiển bất cứ khi nào cần sử dụng
+ Giá thành thấp
- Tạo môi trường học tập và nghiên cứu cho người học và giảm chi phí cho nhà trường
Trang 81
Chương 1 MỞ ĐẦU 1.1 Tổng quan về lĩnh vực nghiên cứu
IBM Cloud là một gói các dịch vụ được cung cấp cho người dùng với tài khoản Lite tại dịch vụ web IBM Cloud của hãng công nghệ cung cấp dịch vụ đám mây hàng đầu trên thị trường thế giới là IBM Đây là một giải pháp giúp người dùng giải quyết vấn đề về giao dịch và lưu trữ dữ liệu người dùng
Dịch vụ IBM Cloud có hai dạng sử dụng, một là dạng miễn phí với dung lượng ít và có hạn chế như: sau 10 ngày không có hoạt động phát triển, ứng dụng của bạn sẽ chuyển sang chế độ ngủ Bạn có thể sử dụng lại các ứng dụng của mình bằng cách tiếp tục làm việc trên chúng Sau 30 ngày không có hoạt động phát triển, các phiên bản dịch vụ của bạn với gói Lite trong IBM Cloud sẽ bị xóa Dạng thứ hai là trả phí với giá tiền tùy theo dung lượng lưu trữ đám mây, khi đó các sản phẩm của IBM cloud sẽ phong phú, đa dạng hơn
IBM cloud thích hợp cho các doanh nghiệp, cho việc nghiên cứu học tập hay trải nghiệm
về công nghệ
1.2 Tính cấp thiết
Với việc ứng dụng IoT vào trong cuộc sống đã mở ra cho chúng ta những ứng dụng cực
kỳ hữu ích Mỗi mạch đo lường và điều khiển cần được giám sát và ghi nhận kết quả để
xử lý được tốt hơn Kết quả phải được lưu trữ lại, song chọn cách lưu trữ nào tối ưu nhất thì IBM cloud là một giải pháp tương thuận tiện nhất hiện nay
1.3 Mục tiêu
Tạo ra mạch đo khoảng cách và điều khiển thiết bị có ứng dụng IBM cloud và Node Red
để tạo giao diện người – máy (HMI), dữ liệu đo được sẽ được tự động lưu trữ lại
1.4 Cách tiếp cận
Nghiên cứu tài liệu về IBM cloud để đăng ký tài khoản và tự thiết lập dịch vụ
Học khóa lập trình Node Red
Xem video đề cập đến mạch đo khoảng cách dùng SRF05 và Arduino
1.5 Phương pháp nghiên cứu
Nghiên cứu kỹ tài liệu online, bài báo khoa học liên quan đến đề tài nghiên cứu
Tìm hiểu thực tế, ứng dụng dịch vụ web, ứng dụng phần mềm để chế tạo thành công sản phẩm
1.6 Đối tượng và phạm vi nghiên cứu
Bo Node MCU ESP8266
Dịch vụ IBM cloud và Node Red
Mạch nguyên lý
1.7 Nội dung nghiên cứu
Cài đặt thêm bo mạch và thêm thư viện trên Arduino IDE để nạp code cho bo Node MCU ESP8266
Trang 9Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
2
Đăng ký tài khoản IBM cloud và thiết lập dịch vụ IBM liên kết với Node Red
Thiết kế giao diện trên Node Red
Viết code cho vi xử lý và kết nối phần cứng cho sản phẩm
1.8 Kế hoạch thực hiện đề tài
STT Nội dung công việc Kết quả đạt được Thời gian bắt đầu, kết thúc
1 Cài đặt thêm bo mạch và thêm thư
viện trên Arduino IDE để nạp
code cho bo Node MCU ESP8266
Nạp được code cho Node MCU ESP8266 dùng Arduino IDE 10/2020
2 Đăng ký tài khoản IBM cloud và thiết lập dịch vụ IBM liên kết với
Node Red Thiết lập thành công 10/2020 đến 11/2020
3 Thiết kế giao diện trên Node Red Giao diện đạt yêu cầu 11/2020
6 Hoàn thiện thiết bị Thiết bị vận hành tốt 12/2021
7 Viết toàn văn đề tài Cuốn báo cáo 12/2020 đến 1/2021
Trang 103
Chương 2: CÁC THIẾT BỊ VÀ PHẦN MỀM ĐƯỢC DÙNG
2.1 Module Node MCU ESP8266
ESP8266 là một mạch vi điều khiển có thể giúp chúng ta điều khiển các thiết bị điện tử Điều đặc biệt của nó, đó là sự kết hợp của module Wifi tích hợp sẵn bên trong con vi điều khiển chính Hiện nay, ESP8266 rất được giới nghiên cứu tự động hóa Việt Nam ưa chuộng vì giá thành cực kỳ rẻ (chỉ bằng một con Arduino Nano), nhưng lại được tích hợp sẵn Wifi, bộ nhớ flash 8Mb Hình dạng của Module Node MCU ESP8266 như hình 2.1
Hình 2.1: Module NodeMCU 0.9 ESP8266 có nhiều phiên bản và được đóng gói theo nhiều cách khác nhau, tuy nhiên nó lại khá giống nhau về chức năng và khả năng lập trình Trên thị trường phổ biến nhất hiện nay là ESP8266v1, ESP8266v7 và ESP8266v12
Trong giải pháp này, nhóm sẽ sử dụng mạch ESP8266v12 được đóng gói trong mạch NodeMCU 0.9 Các board khác sử dụng nhân ESP8266v12 hoặc v7 đều có thể chạy được, ví dụ như WeMos, Olimex, ESPino hay bất kỳ hãng nào sử dụng ESP8266v12 làm core chính Mỗi hãng chỉ khác nhau cách đặt board và bố trí thứ tự chân Sơ đồ các chân chức năng của Node MCU như hình 2.2
Hình 2.2: Chân chức năng của Node MCU
Trang 11Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
4
Chú ý
* Chip ESP8266 sử dụng điện áp 3.3V, có thể lấy mức điện áp từ trên bo Arduino
* NodeMCU ESP-12E có thể nối với nguồn 5V sử dụng cáp micro USB hoặc chân Vin
Vào File→ Preferences như hình 2.3
Hình 2.3: Thủ tục 1 để cập nhật phần mềm cho Arduino IDE Tại ô Additional Board Manager URLs thêm đường link sau vào
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Trang 13Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
6
Hình 2.6: Thủ tục 4 để cập nhật phần mềm cho Arduino IDE
- Bước 3: Vào Tool→Board→ NodeMcu(ESP-12e Module), chọn cổng COM tương ứng
là chúng ta có thể lập trình cho MCU
Ngoài ra để thực hiện dự án này chúng ta cần cài thêm thư viện PubSubClient
Vào Tool→ library→ library s Manager tìm PubSubClient, click vào Install Chờ phần mềm tự động download và cài đặt
2.3 Cảm biến siêu âm HY-SRF05
HY – SRF 05 là phiên bản nâng cấp của SRF04, cảm biến siêu âm SRF05 dùng để xác định khoảng cách trong phận vi nhỏ Cảm biến cung cấp phạm vi chính xác tuyệt vời và
ổn định trong quá trình sử dụng, đồng thời dễ dàng kết nối với các MCU (Arduino, DSP, AVR, PIC, ARM…)
Trang 147
Hình ảnh của SRF05 như hình 2.7
Hình 2.7: Mặt trước và sau của cảm biến siêu âm SRF05 2.4 IBM cloud
IBM cloud là một dịch vụ web của công ty công nghệ khổng lồ IBM
International Business Machines Corporation (IBM) là một công ty công nghệ thông tin
đa quốc gia của Mỹ có trụ sở tại Armonk, New York , hoạt động tại hơn 170 quốc gia Công ty bắt đầu vào năm 1911, được thành lập tại Endicott, New York , với tư cách là Công ty ghi âm máy tính (TLB) và được đổi tên thành "Máy kinh doanh quốc tế" vào năm 1924
IBM sản xuất và bán phần cứng máy tính , phần mềm trung gian và phần mềm và cung cấp dịch vụ lưu trữ và tư vấn trong các lĩnh vực từ máy tính lớn đến công nghệ nano IBM cũng là một tổ chức nghiên cứu lớn, giữ kỷ lục cho hầu hết các bằng sáng chế của Hoa Kỳ được tạo ra bởi một doanh nghiệp (tính đến năm 2019) trong 26 năm liên tiếp Các phát minh của IBM bao gồm máy rút tiền tự động (ATM), đĩa mềm, ổ đĩa cứng , thẻ
từ, cơ sở dữ liệu quan hệ, ngôn ngữ lập trình SQL, mã vạch và bộ nhớ truy cập ngẫu nhiên động (DRAM) Máy tính lớn của IBM được minh họa bởi System / 360, là nền tảng điện toán thống trị trong suốt những năm 1960 và 1970
Có biệt danh Big Blue, IBM là một trong 30 công ty được đưa vào Trung bình công nghiệp Dow Jones và là một trong những nhà tuyển dụng lớn nhất thế giới, với (tính đến năm 2017) hơn 380.000 nhân viên, được gọi là "IBMers" Ít nhất 70% người IBM có trụ
sở bên ngoài Hoa Kỳ và quốc gia có số lượng người dùng IBM nhiều nhất là Ấn Độ Nhân viên của IBM đã được trao năm giải thưởng Nobel, sáu giải thưởng Turing, mười
Trang 15Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
Trang 169
Chương 3: QUÁ TRÌNH THỰC HIỆN
3.1 Thiết lập dịch vụ của IBM
Tạo tài khoản ibm cloud (đăng kí tại đây https://cloud.ibm.com/login)
Sau đó đăng nhập tài khoản mới tạo và thực hiện theo các bước sau
Trang 17Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
10
Hình 3.3: Thao tác đặt tên server
Hình 3.4: Thao tác chọn lite và nhấn Create
Gói dịch vụ Lite cho Nền tảng Internet of Things bao gồm tối đa 500 thiết bị đã đăng ký
và tối đa 200 MB mỗi dữ liệu được trao đổi, dữ liệu được phân tích và dữ liệu cạnh được phân tích mỗi tháng
Dịch vụ gói Lite bị xóa sau 30 ngày nếu không hoạt động
Trang 1811
Hình 3.5: Thao tác chọn Lancer
Chọn Ajouter un terminal (đăng kí 1 thiết bị đầu cuối)
Hình 3.6: Thao tác chọn Ajouter un terminalNhập tên thiết bị đầu cuối và địa chỉ mac của thiết bị đầu cuối (MCU) chọn Suivant
Để lấy địa chỉ mac của MCU, chúng ta nạp code sau đây cho MCU Code lấy địa chỉ MAC của MCU như sau:
#include <ESP8266WiFi.h>
void setup() {
Serial.begin(115200);
String clientMac = "";
Trang 19Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
Hình 3.7: Thao tác nhập địa chỉ mac của MCU
Điền mã xác thực muốn tạo (Mã xác thực phải có từ 8 đến 36 ký tự bao gồm chữ hoa và chữ thường, số và ký hiệu) chọn Suivant
Sau khi đăng kí thành công xuất hiện giao diện chụp lại màn hình lấy thông tin lập trình cho MCU
Trang 2013
Hình 3.8: Thông tin về thiết bị đầu cuối
Chọn icon bên trái cài lại bảo mật truyền thông tin, rồi chọn theo trong hình
Hình 3.9: Chọn biểu tượng như hình để cài bảo mật thông tin
Hình 3.10: Chọn lựa chọn như hình để cài bảo mật thông tin
Trang 21Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
14
Trở lại catalogue tìm click vào dịch vụ Node red rồi chọn theo trong hình
Hình 3.11: Thao tác chọn dịch vụ Node Red
Nhập tên chọn gói dịch vụ nhấn tạo
Hình 3.12: Đặt tên gói dịch vụ và chọn theo hình
Truy cập host mới được tạo và làm theo hướng dẫn của trang web
Địa chỉ host là: <tên app vừa đặt>.mybluemix.net Host mới được tạo là mcu-esp8266 mybluemix.net và có giao diện như hình 3.13
Trang 2215 Hình 3.13: Giao diện của host đã tạo
Hình 3.14: Đăng nhập vào Node RED
Trang 23Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
16
Hình 3.14: Giao diện trên Node RED
Hình 3.14: Chọn cài đặt trên Node RED
Về trang chủ của IBM cloud kết nối 2 dịch vụ Internet of things platfrom và node red
Trang 2417
Hình 3.15: Thao tác 1 để kết nối hai dịch vụ
Hình 3.16: Thao tác 2 để kết nối hai dịch vụ
Hình 3.17: Thao tác 3 để kết nối hai dịch vụ
Hình 3.18: Thao tác 4 để kết nối hai dịch vụ
Trang 25Ứng dụng IBM cloud và Node Red vào mạch đo lường và điều khiển bằng máy tính
18
Hình 3.19: Thao tác 5 để kết nối hai dịch vụ
Đến đây mọi thiết lập về phần mềm đã xong, giờ sẽ thiết kế giao diện giao tiếp người dùng trên Node red và phần code cho MCU
3.3 Thiết lập giao diện giao tiếp trên node red
Hình 3.20: Thiết kế giao diện trên Node-RED
Dùng 2 khối IBM IoT để gửi và nhận dữ liệu từ sever của internet of things platfrom Khối text tạo một khung hiển thị dữ liệu nhận từ sever của internet of things platfrom
Ba khối nút nhấn là clear, temperature, distance dùng để điều khiển, trong đó clear sẽ in
ra khung chữ text một khoảng trắng “ “ để xóa Hai nút temperature, distance để gửi lệnh qua sever của internet of things platfrom lần lượt là hai kí tự “c” và “d” Led(D7) là khối swich khi chuyển về off thì gửi đi ký tự “a”, còn khi chuyển sang on thì gửi đi ký tự “b” Giao diện hiển thị dashboard của Node red (địa chỉ <host>/ui)
Trang 26const char* password = "03302008"; //mật khẩu
//thông tin sau khi dăng kí thiết bị đầu cuối internet of things platfrom
#define ORG "224of4"//mã tổ chức của thiết bị đầu cuối
#define DEVICE_TYPE "esp8266-12e" //tên của thiết bị đầu cuối đăng kí
#define DEVICE_ID "840D8EA484B1" // địa chỉ MAC MCU
#define TOKEN "Loc12-03-1998" //mã bảo mật nhận dạng thiết bị đầu cuối