You are on page 1of 63

Bài 6

Lập trình ứng dụng IoT

1
Nội dung
Lý thuyết Bài tập/ thảo luận
1 Giới thiệu chung về IoT (1b) 1 Trả lời câu hỏi TL (6b)
2 Cảm biến và thiết bị (1b) 2
3 Các chuẩn truyền thông mạng IoT 3
(2b)
4 Các giao thức truyền dữ liệu cho IoT 4
(1b)
5 Công nghệ thu thập, lưu trữ và xử lý Bài tập lớn ( 5b)
dữ liệu (IoT Cloud Platform) (1b)
6 Lập trình ứng dụng IoT (2b)
7 Nền tảng thiết kế IoT (IoT platform)
(2b)
8 Ứng dụng của IoT (1b)
9 LT= 11w*3t; BT= 11w*3t

2
Nội dung
1. Tổng quan chung về các công cụ lập trình

2. Lập trình thiết bị IoT

3. Xây dựng IoT server

4.Một số nền tảng thiết kế IoT (IoT platform)

5. Thực hành thiết kế (BTL)

3
1. Tổng quan chung về các công cụ lập trình

Things to consider while choosing IoT Programming


Language
✓Hardware
✓Application of the IoT device
✓Developer skills
✓Speed and cost of development
✓Developer tools
✓Reliability
✓Established in the industry
✓Support system (library sets, schemes, tools support, and
community groups)

https://www.aitimejournal.com/@patrick.r/ranked-top-5-programming-languages-for-iot-devices
4
Top IoT Progamming Laguages

The most popular languages in are Java, C, C++, Python,


IoT

Javascript, Node.js, Assembler, PHP, C#, Lua, R, Go, Ruby, Swift


and Rust in descending order of popularity
https://devopedia.org/programming-for-iot

5
Which languages are
suitable for edge devices,
gateways and cloud
computing?

6
7
8
Java
▪ Java is one of the most popular programming languages. It
calls itself a ‘Write Once Run Anywhere‘ language
▪ Java is object-oriented, and it has the least hardware
dependency. There are also hardware support libraries that
make Java one of the most popular choices for IoT
developers
▪ Advantages:
• Versatility
• Object-oriented
• Huge libraries
• Can run on edge & cloud
• No hardware limitations
• High security

9
Python
▪ There aren’t many options better than Python when it comes to
small devices with low memory and computing power
▪ Python can be integrated into other programming languages like
Java or C++
▪ Python is the ideal choice for IoT applications that require data
analysis
▪ Its easy-to-learn nature, extensive libraries, and strong
community support make it a joy for developers
▪ Advantages:
✓ Easy to learn
✓ Versatility
✓ Simple syntax
✓ Robust community support
✓ Easy debugging
✓ Provides ease for data analytics

10
• Launched in the 1970s for writing Unix
system software, C is a relevant language to Advantages:
this day. ✓ Compatibility with
microcontrollers
• It is used to program electronic devices using ✓ Consumes less
low-level codes. Programmers can easily use computing power
it because of its light processing power and ✓ Platform-
ability to interact with RAM directly.
independent
• provides developers flexibility and features ✓ Highly
like interoperability and rich libraries. Plus, C customizable
is compatible with IoT microcontrollers, ✓ Ample community
which are peripheral devices that form IoT support for libraries
architectures. and frameworks
• One of C’s challenges is the difficulty of
learning as its syntax is complicated and the
architecture is multilayered

11
JavaScript Advantages:
✓ Versatility to work with
▪ a high-level, often compiled, and multi- various environments
paradigm program language central to ✓ Immense community
all HTML programs, web applications, and library support
and Web browsers ✓ Speedy programming
▪ Javascript supports imperative, ✓ Interoperability
functional, event-driven programming ✓ Easy to learn
styles ✓ Integration with other
▪ Its flexibility allows it to work with languages
various gateways and cloud
environments. Plus, its event-driven
features pave the way for more
efficient programming for sensors
▪ Espruino and Tessel are two
microcontrollers that run JavaScript
from the beginning. Tessel, which is
built around Node.js, makes it easy for
web developers to step into the world
of IoT without having to learn a new
language
12
Java Vs. Python
Dimensions Java Python

Performance Faster Slower


Learning curve Difficult to learn Easy to learn
Typing Statically-typed Dynamically-typed
Verbosity Verbose Concise
Compiled/ Interpreted Compiled Interpreted
Object-oriented/ Scripting Language Object-oriented Language Scripting Language
Cross-Platform Yes Yes
Syntax Difficult to read and remember Easy to read and remember
Best for Web applications; Desktop GUI Apps; Scientific and numeric computing;
enterprise solutions; embedded Machine Learning applications;
systems. image processing; language
development.
Line of Code More line of code Less line of code
Program Example public class Simple print("Hello Java")
{
public static void main(String args[])
{ System.out.println("Hello Java");
}
}

13
2. Lập trình thiết bị IoT

▪ Edge Devices:
▪ thiết bị rất nhỏ: Assembly và C phù hợp để lập trình
▪ Bộ xử lý tốc độ cao hơn: C, Python, Node.js, Java
→mục tiêu giảm thiểu số lượng lệnh và tối đa hóa tốc
độ thực thi và quản lý tài nguyên
▪ Gateways: quản lý truyền thông và phân tích dữ liệu từ
nhiều thiết bị thông qua một số bus khác nhau. Có bộ
xử lý tốc độ cao hơn, có thể dùng nhiều ngôn ngữ C,
C++, Java, Python và Node.js.

14
IoT Starter Kit- Wifi Uno
Bộ Starter Kit- Wifi Uno gồm:

- IoT Starter Kit - Wifi Uno - dùng trong các


chương trình giảng dạy STEM và phát triển ứng
dụng IoT.
- Bộ Kit sử dụng Board ESP8266 làm bộ điều khiển,
tương thích chân với Arduino Uno và hầu hết các
thư viện cho Arduino, mạnh mẽ hơn với nhiều ứng
dụng mẫu, dễ dàng bắt đầu với người mới.
- Tài liệu tham khảo: https://arduino.esp8266.vn/
Ebook hướng dẫn: https://iotmakervn.github.io/iot-
starter-book/

https://iotmaker.vn/starter-kit-wifi-uno.html 15
ESP8266 WiFi
• Kết nối WiFi chính điểm mạnh nhất của chip
ESP8266
▪ Chế độ STA (station):
✓ Kết nối đến các Router sẵn có, các Access Point → giúp thiết bị kết
nối đến mạng WiFi cục bộ, có internet để kết nối đến Server và gởi
dữ liệu
✓ Thiết bị kết nối đến Access Point được gọi là Station, các máy tính
Laptop, máy tính có card WiFi khi kết nối vào Access Point thì đều
được gọi là Station
▪ Chế độ AP (Access Point):
✓ Có thể khởi động một (hoặc nhiều) Access Point và cho phép các
client khác có thể kết nối vào hoặc chạy đồng thời cả chế độ STA và
AP
✓ WiFi Access Point là một thiết bị xử lý kết nối trung tâm và phân
phối các luồng dữ liệu

16
Chế độ WiFi Station
▪ ESP8266 phải kết nối vào mạng WiFi nội bộ, và
mạng WiFi nội bộ phải có kết nối WAN Internet
▪ ESP8266 muốn kết nối vào mạng WiFi nội bộ
✓Phải hoạt động ở chế độ Station (STA)
✓Phải được cung cấp tên (SSID) và mật khẩu mạng
WiFi
▪ Khi kết nối thành công vào mạng WiFi thì
ESP8266 sẽ khởi động DHCP Client (mặc
định) để xin cấp phát địa chỉ IP trước khi bắt
đầu các kết nối IP

17
Một số phần mềm lập trình thiết bị IoT

▪ Arduino IDE (ngôn ngữ C/C++)


▪ uPycraft (ngôn ngữ Python)

18
Arduino IDE
▪ Arduino là một IDE (Integrated Development
Environment) tích hợp sẵn editor, compiler,
programmer và đi kèm với nó là các firmware
có bootloader, các bộ thư viện được xây dựng
sẵn và dễ dàng tích hợp
▪ Ngôn ngữ sử dụng là C/C++.
▪ Đặc điểm:
✓Sử dụng đơn giản bằng các thủ tục ngắn gọn, các thư
viện được tích hợp sẵn → dễ tiếp cận, không cần biết
nhiều về điện tử
✓ Khó xử lý được khi có các vấn đề phát sinh ngoài
tầm của thư viện

19
Arduino IDE
▪ Tập lệnh đơn giản, cộng đồng lớn và open-source. Thư viện dễ tìm
(Hardware Abstraction Library HAL), tập lệnh ngắn gọn
▪ Tham khảo tập lệnh của Arduino tại www.arduino.cc/reference/en)
▪ Một số hàm cơ bản được giải thích tại
https://garretlab.web.fc2.com/en/arduino/inside/index.html
▪ Việc upload code thông qua cổng USB, giúp đơn giản quá trình
nạp code.
▪ Arduino cung cấp ngôn ngữ C để lập trình bo mạch
Arduino
▪ Dùng Arduino IDE (Integrated Development
Environment) để viết code và upload, link download
https://www.arduino.cc/en/Main/Software

20
Arduino Programming Language Reference
• Có khá ít cấu trúc, một số cấu trúc hay dùng như sau
at https://www.arduino.cc/en/Reference

Thông thường cấu trúc code gồm 3 thành phần


▪ External libraries: là các thư viện phát triển sẵn cần cho code thay vì tự viết
▪ Constants and variables: định nghĩa các biến và hằng số được dùng để đọc và
xử lý dữ liệu
▪ Functions: các hàm là đoạn code thực hiện chức năng được dùng nhiều lần
trong code
21
Lập trình ESP8266 WiFi Uno dùngArduino IDE

• Cài đặt Arduino IDE và thư viện


https://arduino.esp8266.vn/basic/install.html
▪ Cài đặt USB CDC driver
▪ Chọn Board ESP8266 WiFi Uno trong Arduino IDE
▪ Nạp chương trình xuống board dùng Arduino IDE

Câu hỏi: Viết hướng dẫn cài và các bước thực hiện lập trình ESP8266 WiFi Uno dùng
Arduino IDE , thực hiện ví dụ chớp tắt bóng LED

https://dientuviet.com/huong-dan-lap-trinh-esp8266-nodemcu/
https://arduino.esp8266.vn/
22
Lập trình ESP8266 WiFi Uno dùng uPycraft

1. Nháy LED trên ESP8266, uPycraft


https://microcontrollerslab.com/getting-started-with-micropython-on-
esp32-and-esp8266-upycraft-ide/

Câu hỏi: Viết hướng dẫn cài và các bước thực hiện lập trình ESP8266 WiFi Uno
dùng uPycraft, thực hiện ví dụ chớp tắt bóng LED
23
3. Xây dựng IoT server

• A webserver to store/process/share data


• A webserver will be the difficult part for
learners/beginners or hobbyist who tries to do
some level of home automation or a basic IoT
project
• Need to select protocols (HTTP, MQTT, websocket)
used in web programming and then building and
implementing a web server, creating dynamic web
pages

24
Mô hình thu thập dữ liệu, điều khiển qua http

https://luuvachiase.net/index.php/2019/10/08/thu-thap-du-lieu-va-dieu-khien-tu-xa-voi-mini-webserver-phan-1/

25
HTTP
• HTTP hỗ trợ nhiều phương pháp truyền dữ liệu
• 2 phương pháp pháp phổ biến nhất GET và POST
• GET: giới hạn dữ liệu truyền hơn POST
• POST an toàn hơn GET

Hyper Text Transfer Protocol (HTTP)


26
MQTT
MQTT: là giao thức machine-to-machine theo mô hình
publisher-subscriber
✓ Publisher: gửi dữ liệu đến server (còn được gọi là broker) và subscriber nhận
dữ liệu
✓ Publisher và subscriber không biết nhau, kết nối qua broker
✓ Publisher và subscriber có thể là cảm biến, máy móc và các ứng dụng di động

The MQTT protocol


27
Hệ thống điều khiển đèn từ xa
(Remote Lighting Control)
▪ Dùng MQTT để xây dựng các ứng dụng di động có vai trò
như một bộ điều khiển từ xa cho nhiều loại thiết bị khác
nhau
▪ Hệ thống gồm 3 thành phần
✓ Mobile app: để người dùng điều khiển đèn
✓ MQTT Broker (server)
✓ Thiết bị kết nối với đèn, là subscriber của MQTT broker

Components of the remote lighting control (chapter 8)


28
Node.js
• Node.js dựa trên kiến trúc JavaScript, dùng để phát
triển các ứng dụng dựa trên server (server-based
applications)
• Node.js được viết bằng JavaScript và chạy trên nhiều hệ
điều hành khác nhau
• Phát triển các ứng dụng web thời gian thực, kết nối 2
chiều, cả client và server đều có thể khởi tạo truyền
thông và trao đổi dữ liệu tự do
• Node.js được sử dụng tốt nhất cho các ứng dụng thời
gian thực, điều khiển bằng sự kiện (event-based): các
ứng dụng chat, game server, Streaming servers, …

29
Node.js và IoT
▪ Node.js được xây dựng dựa trên Google’s V8 JS → hiệu
quả cao và có khả năng mở rộng hoàn hảo
▪ Nền tảng Node.js tốt nhất cho các ứng dụng thời gian
thực → phù hợp với các ứng dụng IoT có dữ liệu thay
đổi nhanh
▪ Node.js rất dễ tích hợp với các giao thức IoT (MQTT và
WebSockets)
▪ Node.js với npm (Node Package Manager) có rất nhiều
module IoT hữu ích (cho các thiết bị IoT, cảm biến…) →
phát triển các module IoT nhanh chóng và đơn giản
▪ Đảm bảo an ninh và bảo mật tốt cho ứng dụng IoT: có
nhiều công cụ nhận thực trong node.js như các gói npm
như Auth0, Passport, and JWT
https://www.freecodecamp.org/news/iot-and-node-js-how-to-catch-the-opportunity/
30
Ví dụ Thiết kế
• Dự án đọc cảm biến DHT11 và gởi về Server
1. Dùng Arduino và Node.js
https://iotmakervn.github.io/iot-starter-book/
2. ESP32/ESP8266 MicroPython Web Server – Control
Outputs
https://microcontrollerslab.com/esp32-esp8266-micropython-web-server/

Câu hỏi: Làm slide tóm tắt xây dựng dự án đọc cảm biến DHT11 và gởi về
Server

31
4.Một số nền tảng thiết kế IoT (IoT platform)
• Nền tảng IoT (IoT Platforms): công cụ phát triển ứng dụng IoT
• IoT Platform như một phần mềm trung gian giữa phần cứng và lớp
ứng dụng

Nhiệm vụ chính của nó bao gồm


✓ Thu thập dữ liệu từ các thiết bị qua các giao thức và cấu trúc liên kết mạng
khác nhau
✓ Cấu hình và điều khiển thiết bị từ xa
✓ Quản lý thiết bị và cập nhật chương trình cơ sở qua mạng.
32
Hình thức kết nối thiết bị nào được hỗ trợ?
• IoT Platform cho phép khả năng tương tác giữa
nhiều công nghệ kết nối

Mạng di động truyền thống

Mạng di động LPWAN

Mạng không di động LPWAN

Vệ tinh

WLAN

Mạng dây LAN

Mạng không dây

33
Sơ đồ của một IoT platform
▪ Chức năng IoT Platform không
được tiêu chuẩn hóa trên thị trường
▪ Clould: dịch vụ trung tâm dữ
liệu/đám mây, là bắt buộc đối với
các ứng dụng IoT. Amazon Web
Services, Google và Microsoft là
một trong những nhà cung cấp dịch
vụ điện toán đám mây lớn nhất trên
toàn cầu
▪ Hỗ trợ ứng dụng đòi hỏi các công
cụ hỗ trợ các nhà phát triển và triển
khai IoT trong việc tạo mẫu, xây ▪ Quản lý thiết bị thường được các nhà cung
dựng, tích hợp và quản lý các ứng cấp thiết bị IoT (ví dụ: nhà cung cấp mô-
dụng IoT một cách nhanh chóng và đun và cổng/bộ định tuyến) cung cấp độc
hiệu quả lập để tạo điều kiện và khuyến khích khách
hàng sử dụng các thiết bị của nhà cung cấp
này cho các ứng dụng IoT

34
Các phần của một IoT Platform
- Cơ sở hạ tầng: cho phép
nền tảng hoạt động (các
thành phần để quản lý vùng
chứa, nhắn tin nền tảng nội
bộ, điều phối các cụm giải
pháp IoT…)
- Lớp giao tiếp: cho phép nhắn tin
cho các thiết bị; nói cách khác,
đây là nơi các thiết bị kết nối với
đám mây để thực hiện các hoạt
động khác nhau
- Lớp sau đại diện cho các tính
năng IoT cốt lõi được cung cấp
bởi nền tảng. Trong số những
điều cần thiết là thu thập dữ liệu,
quản lý thiết bị, quản lý cấu hình,
nhắn tin và cập nhật phần mềm.

35
Lựa chọn một IoT Platform
Khi lựa chọn một IoT Platform, có rất nhiều tiêu chí
cần được xem xét
▪ Có sẵn ngôn ngữ và thư viện: chọn nền tảng có sẵn
các thư viện theo ngôn ngữ thực hiện dự án
▪ Yêu cầu về giao thức nhắn tin (phổ biến HTTP,
MQTT)
▪ Bảo mật: tùy thuộc khả năng thiết bị IoT
▪ Băng thông và dung lượng cho phép
▪ Ứng dụng
▪ Chi phí

36
Một số nền tảng IoT phổ biến
4.1. ThingsBoard IoT Platform
4.2. Thingspeak IoT Platform

https://vnautomate.net/lam-the-nao-de-chon-iot-platform-phu-hop.html
https://tapit.vn/cac-nen-tang-internet-things-pho-bien/
https://movan.vn/top-10-iot-platform-ma-nguon-mo-2020/
37
4.1. ThingsBoard IoT Platform
▪ ThingsBoard là một nền tảng IoT mã nguồn mở,
▪ Cho phép phát triển nhanh chóng, quản lý và mở rộng các dự án IoT
▪ Bạn có thể thu thập, xử lý, hiển thị trực quan và quản lý thiết bị
▪ Cho phép kết nối thiết bị thông qua các giao thức IoT tiêu chuẩn công nghiệp –
MQTT, CoAP và HTTP, hỗ trợ cả triển khai đám mây và tại chỗ
▪ Cho phép tích hợp các thiết bị được kết nối với các hệ thống cũ và bên thứ ba
bằng các giao thức hiện có. Kết nối với máy chủ OPC-UA, MQTT broker, Sigfox
Backend hoặc Modbus slaves chỉ trong vài phút bằng cách kết nối qua IoT Gateway

38
Các tính năng
• Thu thập dữ liệu từ xa
• Hiển thị trực quan dữ liệu đã thu thập: cung cấp hơn 30
tiện ích hiển thị trực quan các dữ liệu thu thập (Google
map,đồ thị thời gian thực, các thẻ HTML hiển thị)
• Công cụ tạo chuỗi quy tắc kéo thả thân thiện: công cụ
Rule Engine kéo thả thân thiện
• Quản lý thiết bị: khả năng đăng ký và quản lý thiết bị,
cung cấp API cho các ứng dụng phía máy chủ để gửi các
lệnh RPC (Remote Procedure Call) tới các thiết bị và
ngược lại
• Quản lý các báo động: cung cấp khả năng tạo và quản lý
các cảnh báo liên quan đến thiết bị, Cho phép giám sát
báo động theo thời gian thực và báo động
• 100% mã nguồn mở: có thể sử dụng bất kỳ sản phẩm
nào trong các sản phẩm thương mại của mình miễn phí
39
Mục tiêu
▪ Nền tảng ThingsBoard được phát triển với các mục tiêu
sau
✓ Kết nối NB IoT, LoRaWAN, SigFox và các thiết bị khác trực
tiếp với nền tảng ThingsBoard
✓Truyền dữ liệu từ các thiết bị được kết nối với Nền tảng IoT
hiện có để cho phép bảng điều khiển tương tác thời gian thực
và xử lý dữ liệu hiệu quả
▪ Kết nối
✓Hỗ trợ giao thức trực tiếp: MQTT, CoAP, HTTP (S)
✓Hỗ trợ tích hợp nền tảng cho các giao thức không dây
LoRaWAN, SigFox, NBIoT
✓Giao thức Modbus, OPC-UA,...thông qua ThingsBoard
Gateway
✓Chuyển đổi giao thức hai chiều: Bộ chuyển đổi dữ liệu tùy
chỉnh và tích hợp sẵn

40
End-to-end Functionality

Chuẩn truyền thông OPC UA (Open Platform Communication Unified Architecture)

41
Quản lý thiết bị
▪ Cấp phép/ hủy cấp phép thiết bị IoT
▪ Nhận dạng thiết bị
▪ Xác thực thiết bị
▪ Tạo / truy vấn các thuộc tính dành riêng cho thiết bị
▪ Nghe các sự kiện dành riêng cho thiết bị
▪ Đặt cảnh báo riêng cho thiết bị

42
Telemetry
▪ Telemetry (đo từ xa) là trung tâm của nền tảng
TB
▪ Thu thập dữ liệu từ các thiết bị
▪ Lưu trữ chuỗi thời gian trong cơ sở dữ liệu
Cassandra
▪ Xử lý dữ liệu theo Quy tắc (Rules)
▪ Tạo cảnh báo
▪ Chuyển tiếp sự kiện đến hệ thống bên ngoài
thông qua tích hợp Kafka và RabbitMQ

43
Telemetry Rule Chain

44
Telemetry Engine

Chuyển tiếp sự kiện (events) đến hệ thống


bên ngoài thông qua Kafka
45
Dashboards
• Dashboard hỗ trợ tính năng trực quan hóa dữ liệu
dạng bảng, đồ họa và dữ liệu địa lý

46
Alerts and Notifications
▪ Cảnh báo và thông báo được đưa ra dựa trên
dữ liệu đo từ xa của thiết bị và các quy tắc đã
định cấu hình
▪ Hỗ trợ mức độ nghiêm trọng chi tiết
▪ Có thể theo dõi nhiều trạng thái thiết bị khác
nhau: Đã kết nối /Đã ngắt kết nối, Hoạt động/
Không hoạt động
▪ Có thể tạo nhiều loại thông báo - Email,
Telegram (ứng dụng dành cho thiết bị di động),
websocket

47
Security
▪ Được thực thi ở nhiều cấp độ khác nhau
▪ Xác thực thiết bị (Mã truy cập Access Token /
X.509)
▪ Mã hóa bản tin (MQTT trên TLS)
▪ Kiểm soát truy cập dựa trên vai trò (Role-based)
▪ Tạo phân cấp vai trò và quyền cụ thể cho nhóm
người dùng / nhóm thiết bị
▪ Nhật ký kiểm tra (Audit Logs)

48
Community vs Professional Edition

49
Trendz Analytics
Hỗ trợ nhiều thuật toán dự báo, chuyên dụng cho chức năng
sau
✓Phân tích các mẫu và xu hướng hiển thị
✓Phát hiện các điểm khác thường và bất thường
✓Phân tích dự đoán và bảo trì
✓Tạo và báo cáo KPI tùy chỉnh
✓Đặc biệt hữu ích trong các ứng dụng IoT

50
Ứng dụng nổi bật
▪ IIoT - Bảo trì dự đoán thiết bị nhà máy
▪ Theo dõi đội xe - Thu thập dữ liệu đáng tin cậy và có
khả năng chịu lỗi cho trình theo dõi xe / cảm biến
nhúng - Thời gian thực trực quan hóa dữ liệu
▪ Đo thông minh
▪ Thu thập và phân tích dữ liệu từ thiết bị đo thông minh
và đưa kết quả vào hệ thống thanh toán
▪ Nông nghiệp thông minh
▪ Liên tục theo dõi các điều kiện môi trường xung quanh
như nhiệt độ và độ ẩm
▪ Theo dõi sự phát triển của cây trồng
▪ So sánh qua các phạm vi thời gian và trang trại khác
nhau

51
Xây dựng ứng dụng IoT dùng Thingsboard
https://thingsboard.io/smart-farming/

Câu hỏi: Phân tích chức năng các thành phần nền tảng Thingsboard để xây dựng các ứng
dụng IoT (IoT Gateway, Intergration Layer, Transport layer....)
52
Tài khoản Tenant administrator và cách tạo các tài
khoản khách hàng trên Thingsboard
▪ Cài đặt và login vào trang Thingsboard → tài khoản
Tenant admin Thingsboard của bạn
▪ Quyền làm chủ giao diện: có thể thêm các tài khoản
khác truy cập được trang Thingsboard của bạn, xác
định quyền cho các tài khoản khách
Khi bạn đăng nhập bằng tài khoản
này bạn có thể:
✓ Cung cấp và quản lý các Device
✓ Cung cấp và quản lý các Assets
✓ Tạo và quản lý các tài khoản
khách(Customers)
✓ Tạo và quản lý các Dashboard
✓ Cấu hình chuỗi quy tắc(Rule
Chain)

53
Sử dụng ThingsBoard
Các vấn đề cơ bản để sử dụng hệ thống máy chủ
Thingsboard
✓Kết nối giữa các thiết bị với Thingsboard
✓Gửi dữ liệu từ thiết bị đến máy chủ Thingsboard
✓Xây dựng bảng thông tin dữ liệu theo thời gian thực
✓Thiết lập thông tin cảnh báo với dữ liệu được giám
sát
✓Gửi các thông báo cảnh báo thông qua email, SMS
tới người sử dụng
https://thingsboard.io/docs/getting-started-guides/helloworld/

54
Các bước thực hiện dự án
✓Mô tả việc quản lý và giám sát thông tin cảm biến
về nhiệt độ, theo cách thức đơn giản nhất
✓Bước 1: Thiết lập và khai báo thiết bị
✓Bước 2. Kết nối với thiết bị
✓Bước 3. Thiết lập bảng thông tin (Dashboard) giám
sát thông số cảm biến (Add Table Widget, Add
Chart Widget, Add Alarm Widget)
✓Step 4. Configure Alarm Rules
✓Step 5. Create Alarm
✓Step 6. Alarm notifications (email or sms )
✓Step 7. Assign Device and Dashboard to Customer
55
Một số ví dụ ứng dụng IoT dùng ThingsBoard
https://thingsboard.io/docs/guides/

1. Temperature upload over MQTT using ESP8266 and DHT22 sensor


https://thingsboard.io/docs/samples/esp8266/temperature/
https://thingsboard.io/docs/samples/arduino/temperature/
https://thingsboard.io/docs/samples/arduino/sim808-htu21d/
https://thingsboard.io/docs/samples/nodemcu/temperature/
2. ESP8266 GPIO control over MQTT using ThingsBoard
https://thingsboard.io/docs/samples/esp8266/gpio/

56
4.2. Thingspeak IoT Platform
• Thingspeak là một nền tảng mà bạn có thể trực quan
hóa và phân tích dữ liệu trên đám mây
• Thingspeak là nền tảng IoT phân tích
✓Thu thập dữ liệu từ các cảm biến, “things”
✓Trực quan hóa dữ liệu ngay lập tức
✓Có hơn 60.000 người dùng
▪ Phân tích dữ liệu
▪ Tích hợp MATLAB cho phép người dùng chạy mã theo
lịch trình trên dữ liệu đi vào ThingSpeak
▪ Hành động trên dữ liệu - Ví dụ: gửi một tweet khi
nhiệt độ ở sân sau của bạn lên đến 32 độ
57
Các tính năng quan trọng
▪ Các thiết bị có thể dễ dàng định cấu hình và gửi dữ liệu
tới Thingspeak bằng cách sử dụng các giao thức
truyền thông.
▪ Có thể xem dữ liệu trong thời gian thực
▪ Nó có thể nhận dữ liệu từ phần mềm của bên thứ ba.
▪ Có thể sử dụng với Matlab để phân tích dữ liệu
▪ Không cần server và phần mềm web để xây dựng
prototype hệ thống IoT.
▪ Tự động thực hiện các hành động và giao tiếp bằng
phần mềm của bên thứ ba như twitter.

58
Thinkspeak hoạt động như thế nào
▪ 3 bước chính: thu thập dữ liệu → phân tích → thực hiện một
hành động
▪ Thingspeak hoạt động với điện toán đám mây
✓ Tất cả các thiết bị mà bạn muốn lấy dữ liệu phải nằm trong mạng
với cơ sở dữ liệu đám mây
✓ Thingspeak cũng kết nối với cơ sở dữ liệu đám mây và hiển thị
luồng dữ liệu

59
Get Started with ThingSpeak
▪ Configure Accounts and Channels
▪ Write Data to Channel
▪ Read Data from Channel
▪ Prepare and Analyze Data
▪ Visualize Data
▪ Act on Data
▪ Specialized Analysis with MATLAB
▪ API Reference
https://www.mathworks.com/help/thingspeak/getting-started-with-thingspeak.html

60
ThingSpeak — Examples

https://www.mathworks.com/help/thingspeak/examples.html
https://electronicsinnovation.com/getting-started-with-thingspeak-posting-dht22-data-to-the-thingspeak-
using-nodemcu/
https://randomnerdtutorials.com/esp8266-nodemcu-thingspeak-publish-arduino/
61
5. Thực hành thiết kế (BTL)

• Dự án đọc cảm biến DHT11 và gởi về Server


• Tutorial
✓ https://iot4beginners.com/node-js-tutorial/
✓ https://www.zerynth.com/blog/how-to-program-nodemcu-esp8266-in-python-with-zerynth/
✓ https://www.open-electronics.org/python-on-esp32-easy-for-beginners-powerful-for-professionals
✓ https://tutorial.cytron.io/2021/10/21/getting-started-with-the-new-blynk-iot-platform-using-maker-
uno/
✓ https://blynk.io/en/getting-started
✓ https://iotbyhvm.ooo/blynk-tutorials-blynk-iot-platform-how-to-use-blynk/

• Link hướng dẫn thực hiện ứng dụng IoT


✓ https://randomnerdtutorials.com/projects-esp8266/
✓ https://randomnerdtutorials.com/projects-arduino/
✓ https://arduino.esp8266.vn/
✓ https://www.electronicshub.org/esp8266-projects
• Link download free ebook
• https://randomnerdtutorials.com/download

62
Bài tập
1. Làm slide trình bày về cài đặt và chuẩn bị thực hiện dự án IoT (arduino, node.js…)
2. Làm slide tóm tắt xây dựng dự án đọc cảm biến DHT11 và gởi về Server
3. Demo dự án phần 2
4. Viết tóm tắt hướng dẫn dùng Node.js và các câu lệnh căn bản
https://iot4beginners.com/node-js-tutorial/
https://www.tutorialspoint.com/nodejs/index.htm
5. Một số dự án IoT với Node.js
https://hocarm.org/resful-nodejs-esp8266-baotrom/
https://www.instructables.com/Using-JavaScript-to-Control-NodeMCU/
https://ohtech.vn/xay-dung-he-thong-bao-trom-voi-resful-nodejs-va-esp8266/
https://electronicsworkshops.com/2020/08/24/iot-smart-home-using-nodemcu-and-server-with-nodejs/
6. Viết tóm tắt hướng dẫn dùng blynk và các câu lệnh căn bản
https://blynk.io/en/getting-started
7. Viết tóm tắt hướng dẫn dùng cisco packet tracer để mô phỏng hệ thống IoT
https://iot4beginners.com/how-to-simulate-iot-projects-using-cisco-packet-tracer/

63

You might also like