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Á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
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Á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
DANH SÁCH THÀNH VIÊN THAM GIA NGHIÊN CỨU ĐỀ TÀI
STT
Họ và tên
Chức vụ
1
Bùi Nguyễn Thiên Phước
Sinh viên
2
Võ Thanh Tùng
Giảng viên
3
Nguyễn Thị Hiền
Giảng viên
DANH 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
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
i
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ế
ii
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:
[email protected]
- Đơ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.
iii
Ứ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
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.
1
Ứ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 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
(1)
1
Nội dung công việc
(2)
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
3
4
5
6
Đă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ý
Kết nối phần cứng
Hoàn thiện thiết bị
7
Viết toàn văn đề tài
2
Kết quả đạt được
(3)
Nạp được code cho
Node MCU ESP8266
dùng Arduino IDE
Thiết lập thành công
Thời gian bắt
đầu, kết thúc
(4)
10/2020
10/2020 đến
11/2020
Giao diện đạt yêu cầu 11/2020
Code đúng
12/2020
Bo mạch đúng
12/2020
Thiết bị vận hành tốt 12/2021
12/2020 đến
Cuốn báo cáo
1/2021
2
Ứ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
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
3
Ứ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
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
có sẵn trên bo.
* Các chân ESP8266 chỉ sử dụng điện áp 3.3V, không sử dụng điện áp 5V tại các chân
ngõ vào.
Khi sử dụng với các chân I/O 5V, cần sử dụng mạch chuyển đổi từ 5V sang 3.3V
2.2 Phần mềm Arduino IDE
Arduino IDE là mềm lập trình cho các bo arduino. Nhưng chúng ta có thể sử dụng để lập
trình cho MCU sau khi thực hiện các bước sau:
- Bước 1: Để tiến hành cài đặt thư viện và chức năng nạp code cho IDE các bạn làm như
sau:
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
4
Ứ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 2.4: Thủ tục 2 để cập nhật phần mềm cho Arduino IDE
Click OK để chấp nhận.
- Bước 2: Vào Tool→Board→Boards Manager tìm ESP8266 by ESP8266 Community,
click vào Install. Chờ phần mềm tự động download và cài đặt.
Hình 2.5: Thủ tục 3 để cập nhật phần mềm cho Arduino IDE
5
Ứ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 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…)
Thông số kĩ thuật
Điện áp vào: 5V
Dòng tiêu thụ : <2mA
Tín hiệu đầu ra: xung HIGH(5V) và LOW(0V)
Khoảng cách đo : 2cm – 450cm
Độ chính xác : 0.5cm
Kích thước: 204515mm
Góc cảm biến :<15 độ
Kết nối SRF05 với bo Arduino
SRF05
Arduino
Vcc
5V
Trig
13 (digital pin)
Echo
12 (digital pin)
GND
GND
6
Ứ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 ả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
7
Ứ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
Huân chương Công nghệ Quốc gia (Hoa Kỳ) và năm Huân chương Khoa học Quốc gia
(Hoa Kỳ) .
Trong đề tài này, chúng ta sẽ sử dụng IBM cloud là trang sản phẩm của IBM cung cấp
đầy đủ các tiện ích cho cách mạng công nghệ 4.0 như công nghệ IoT, AI phân tích xử lý
dữ liệu, công nghệ điện toán đám mây lưu trữ dữ liệu,…
8
Ứ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
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
Chọn catalogue
Hình 3.1: Thao tác chọn Catalogue trên IBM cloud
Tìm click vào dịch vụ Internet of things platfrom
Hình 3.2: Thao tác chọn dịch vụ Internet of things platfrom
Nhập tên server muốn tạo và chọn gói lite rồi nhấn Create
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
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.
10
Ứ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
Sau khi tạo xong xuất hiện giao diện sau, chúng ta chọn lancer
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 terminal
Nhậ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
void setup() {
Serial.begin(115200);
String clientMac = "";
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
unsigned char mac[6];
WiFi.macAddress(mac);
clientMac += macToStr(mac);
Serial.println();
Serial.println(clientMac);
}
String macToStr(const uint8_t* mac){
String result;
for (int i = 0; i < 6; ++i) {
result += String(mac[i], 16);
if (i < 5)
result += ':';
}
return result;
}
void loop() {}
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.
12
Ứ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.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
13