Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 66

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

BÁO CÁO HỌC PHẦN

CÔNG NGHỆ IOT VÀ AN TOÀN

NGHIÊN CỨU VỀ GOOGLE CLOUD IOT

Sinh viên thực hiện:


Ngô Huy Lục – MSSV: AT170532

Người hướng dẫn:


ThS. Phạm Duy Trung
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã

Hà Nội, 2024
BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ

BÁO CÁO HỌC PHẦN

CÔNG NGHỆ IOT VÀ AN TOÀN

NGHIÊN CỨU VỀ GOOGLE CLOUD IOT

Sinh viên thực hiện:


Ngô Huy Lục – MSSV: AT170532

Người hướng dẫn:


ThS. Phạm Duy Trung
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã

Hà Nội, 2024
MỤC LỤC
DANH MỤC HÌNH ẢNH..............................................................................

LỜI MỞ ĐẦU.................................................................................................

CHƯƠNG 1 TỔNG QUAN VỀ IOT............................................................

1.1. Giới thiệu về mạng máy tính..................................................................7

1.2. Khái niệm IoT.........................................................................................8

1.3. Cơ sở kĩ thuật của IoT..........................................................................11

1.3.1. Giao thức chính................................................................................11

1.3.2. Năng lực truyền thông (Communication Capabilities).....................13

1.3.3. Công suất thiết bị (Device Power)....................................................14

1.3.4. Công nghệ cảm biến (Sensor Technology).......................................15

1.3.5. Thời gian đáp ứng.............................................................................16

1.4. Các ứng dụng của IOT..........................................................................17

1.4.1. Ứng dụng trong lĩnh vực vận tải.....................................................17

1.4.2. Ứng dụng trong lĩnh vực sản xuất nông nghiệp.............................18

1.4.3. Ứng dụng trong nhà thông minh....................................................19

1.5. Các thách thức trong việc nghiên cứu, triển khai IoT..........................20

CHƯƠNG 2: GOOGLE CLOUD PLATFORM.......................................

2.1. Khái niệm................................................................................................27

2.2. Công cụ....................................................................................................27

2.2.1. IaaS (Infrastructure as a Service).....................................................27

2.2.2. PaaS (Platform as a Service)............................................................29

2.2.3. SaaS (Software as a Service)............................................................32


2.3. Tiện ích....................................................................................................34

2.3.1. Services.............................................................................................35

2.3.2. Big Data............................................................................................36

2.3.3. Storage..............................................................................................36

2.3.4. Compute...........................................................................................36

2.4. Kiến trúc của IoT platform trên Google Cloud.......................................37

CHƯƠNG 3. ỨNG DỤNG IoT ĐIỀU KHIỂN TRUYỀN DỮ LIỆU


NHIỆT ĐỘ ,ĐỘ ẨM THỜI GIAN THỰC LÊN MÀN HÌNH OLED..........

3.1. CÁC GIAO THỨC ĐƯỢC SỬ DỤNG...................................................44

3.1.1. HTTP(đẩy và nhận dữ liệu trên web serve)......................................44

3.1.2. I2C(oled-esp32)................................................................................44

3.1.3. 1-wire(dht22-esp32).........................................................................45

3.2. PHẦN CỨNG..........................................................................................45

3.2.1. ESP32...............................................................................................45

3.2.2. DHT22..............................................................................................48

3.2.3. Màn hình oled...................................................................................52

3.3. Cách truyền dữ liệu qua http....................................................................57

3.4. Giả lập trên wokwi..................................................................................58

CHƯƠNG 4 TÍCH HỢP FIREBASE.........................................................

4.1. Đặc tả hệ thống........................................................................................65

4.2. Sơ đồ đấu nối...........................................................................................66

4.3. Kết nối Firebase.......................................................................................67

KẾT LUẬN...................................................................................................
DANH MỤC HÌNH ẢNH
Hình 1 Internet Of Things.......................................................................8

Hình 2 Sự gia tăng nhanh chóng của giao tiếp máy – máy.....................9

Hình 3 Ứng dụng tủ lạnh trong IoT.......................................................10

Hình 4 Ví dụ về MQTT.........................................................................12

Hình 5 Ví dụ XMPP..............................................................................13

Hình 6 Năng lực truyền thông...............................................................14

Hình 7 Bảng so sánh các chuẩn truyền thông không dây......................15

Hình 8 Một số loại cảm biến hay gặp....................................................16

Hình 9 Đáp ứng thời gian cho ứng dụng IoT........................................16

Hình 10 Tổng quan về ứng dụng của IoT..............................................17

Hình 11 Theo dõi tình trạng sinh trưởng của cây trồng........................18

Hình 12 Ví dụ về nhà thông minh.........................................................19

Hình 13 Tiện ích Google Cloud Platfform............................................35

Hình 14 Kiến trúc IOT trên Google Cloud Platform.............................38

Hình 15 Sơ đồ luồng..............................................................................65

Hình 16 Sơ đồ đấu nối...........................................................................66

Hình 17 Realtime Database...................................................................67

Hình 18 Rule User Config.....................................................................67


LỜI MỞ ĐẦU
Từ vài năm nay, cụm từ IoT (Internet of Things) được xuất hiện khá phổ
biến ở Việt Nam cũng như trên thế giới và IoT đang trở thành làn sóng mạnh
mẽ của cuộc cách mạng công nghiệp 4.0. IoT không chỉ mang đến cho mọi
người một cái nhìn lớn hơn, đầy đủ hơn về những công nghệ, ứng dụng của
tương lai, mà còn đem đến tiềm năng ứng dụng thực sự đáng kinh ngạc. Hiện
tại, trên thế giới, chưa có định nghĩa thống nhất về IoT, nhưng có thể hiểu
theo một cách khái quát là mọi vật đều có thể kết nối với nhau thông qua
Internet.

Trong bối cảnh phát triển nhanh chóng của công nghệ, Internet of
Things (IoT) đang trở thành một yếu tố then chốt giúp các doanh nghiệp
nâng cao hiệu quả hoạt động và tạo ra các cơ hội kinh doanh mới. Tuy nhiên,
việc kết nối, quản lý và phân tích dữ liệu từ hàng triệu thiết bị IoT có thể là
một thách thức không nhỏ. Đây chính là lý do tại sao Google Cloud IoT
được ra đời.

Google Cloud IoT là một bộ dịch vụ đám mây tiên tiến, cung cấp cho
các doanh nghiệp các công cụ cần thiết để kết nối và quản lý thiết bị IoT một
cách dễ dàng, bảo mật và hiệu quả. Với Google Cloud IoT, bạn không chỉ có
thể giám sát và kiểm soát các thiết bị từ xa, mà còn thu thập và phân tích dữ
liệu một cách chính xác và nhanh chóng. Điều này giúp các doanh nghiệp tối
ưu hóa hoạt động, giảm thiểu chi phí và tận dụng tối đa tiềm năng của công
nghệ IoT.
CHƯƠNG 1 TỔNG QUAN VỀ IOT

1.1. Giới thiệu về mạng máy tính


Mạng máy tính được coi là rất phức tạp, khó thực hiện và vận dụng. Hơn
nữa, với công nghệ IoT, nơi chúng ta kết nối mọi loại các thiết bị trên
Internet như máy lạnh, quạt, vvv... Sự phức tạp này trở nên thậm chí cao
hơn. Nhiều tài liệu cho thấy thực sự có 13 tỷ thiết bị IoT được kết nối với
Internet và có khả năng con số này sẽ tăng lên đến 30 tỷ trong ba năm tới.
Sự phức tạp của mạng IoT sẽ mang lại cho sinh viên thời gian để học và
hiểu cách thức hoạt động của công nghệ này. Do đó, điều rất quan trọng là
phải cung cấp mạng học tập và các công cụ thực hành, nơi sinh viên có thể
mô phỏng hoặc xây dựng và quản lý hệ thống để hiểu rõ hơn về triết lý đằng
sau các mạng.
Các công cụ mô phỏng mạng được sử dụng để kiểm tra xem mạng sẽ hoạt
động như thế nào trước khi được cài đặt vật lý. Có nhiều công cụ để mô
phỏng mạng: NS-2, TOSSIM, OMNeT ++, J-Sim, Avrora và một số công cụ
phổ biến của Cisco Packet Tracer.
Trình theo dõi gói của Cisco là một phần mềm mạnh mẽ do Công ty
Cisco tạo ra để mô phỏng ảo mạng, đặc biệt là mạng không dây. Trình theo
dõi gói của Cisco cung cấp một môi trường nơi thiết bị trông giống như thực
tế và điều này rất quan trọng đối với người dùng, đặc biệt là sinh viên. Họ có
thể giám sát và tương tác với các thiết bị không dây và IoT khác nhau trong
môi trường ảo trước khi làm việc trong thời gian thực.
Làm việc với các công cụ mô phỏng để tìm hiểu cách mạng hoạt động
mang lại cho chúng ta cả thời gian và vật liệu lợi thế và giúp giảm chi phí
trong giáo dục. Báo cáo này được tổ chức như sau: phần đầu là phần mở đầu,
phần thứ hai một phần tập trung vào các công cụ mô phỏng theo dõi gói tin
cisco, phần thứ ba của luận án là về triển khai nhà thông minh với trình theo
dõi gói Cisco, và phần cuối cùng là kết luận và nghiên cứu trong tương lai.
1.2.
1.3. Khái niệm IoT
Internet of Things (IoT) là thuật ngữ dùng để chỉ các đối tượng có thể được
nhận biết cũng như sự tồn tại của chúng trong một kiến trúc mang tính kết nối.
Đây là một viễn cảnh trong đó mọi vật, mọi con vật hoặc con người được cung
cấp các định danh và khả năng tự động truyền tải dữ liệu qua một mạng lưới mà
không cần sự tương tác giữa con người-với-con người hoặc con người-với-máy
tính. IoT tiến hoá từ sự hội tụ của các công nghệ không dây, hệ thống vi cơ điện
tử (MEMS) và Internet. Cụm từ này được đưa ra bởi Kevin Ashton vào năm
1999. Ông là một nhà khoa học đã sáng lập ra Trung tâm Auto-ID ở đại học MIT
[7].

Hình 1 Internet Of Things


"Thing" - sự vật - trong Internet of Things, có thể là một trang trại động vật với bộ tiếp
sóng chip sinh học, một chiếc xe ô tô tích hợp các cảm biến để cảnh báo lái xe khi lốp
quá non, hoặc bất kỳ đồ vật nào do tự nhiên sinh ra hoặc do con người sản xuất ra mà có
thể được gán với một địa chỉ IP và được cung cấp khả năng truyền tải dữ liệu qua mạng
lưới.
IoT phải có 2 thuộc tính: một là đó phải là một ứng dụng internet. Hai là, nó phải lấy
được thông tin của vật chủ.
Hình 2 Sự gia tăng nhanh chóng của giao tiếp máy – máy.

Một ví dụ điển hình cho IoT là tủ lạnh thông minh, nó có thể là một chiếc tủ lạnh
bình thường nhưng có gắn thêm các cảm biến bên trong giúp kiểm tra được số lượng
các loại thực phẩm có trong tủ lạnh, cảm biến nhiệt độ, cảm biến phát hiện mở cửa,…
và các thông tin này được đưa lên internet. Với một danh mục thực phẩm được thiết
lập trước bởi người dùng, khi mà một trong các loại thực phẩm đó sắp hết thì nó sẽ
thông báo ngay cho chủ nhân nó biết rằng cần phải bổ sung gấp, thậm chí nếu các loại
sản phẩm được gắn mã ID thì nó sẽ tự động trực tiếp gửi thông báo cần nhập hàng đến
siêu thị và nhân viên siêu thị sẽ gửi loại thực phẩm đó đến tận nhà.
Hình 3 Ứng dụng tủ lạnh trong IoT
1.4. Cơ sở kĩ thuật của IoT
1.3.1. Giao thức chính

Trong IoT, các thiết bị phải giao tiếp được với nhau (D2D). Dữ liệu sau đó
phải được thu thập và gửi tới máy chủ (D2S). Máy chủ cũng có để chia sẻ dữ
liệu với nhau(S2S), có thể cung cấp lại cho các thiết bị, để phân tích các
chương trình, hoặc cho người dùng. Các giao thức có thể dùng trong IoT là:
- MQTT: một giao thức cho việc thu thập dữ liệu và giao tiếp cho các máy
chủ (D2S)
- XMPP: giao thức tốt nhất để kết nối các thiết bị với mọi người, một trường
hợp đặc biệt của mô hình D2S, kể từ khi người được kết nối với các máy chủ
- DDS: giao thức tốc độ cao cho việc tích hợp máy thông minh (D2D)
- AMQP: hệ thống hàng đợi được thiết kế để kết nối các máy chủ với nhau
(S2S)
* MQTT
MQTT(Message Queue Telemetry Transport), mục tiêu thu thập dữ liệu
và giao tiếp D2S. Mục đích là đo đạc từ xa, hoặc giám sát từ xa, thu thập dữ
liệu từ nhiều thiết bị và vận chuyển dữ liệu đó đến máy trạm với ít xung đột
nhất. MQTT nhắm đến các mạng lớn của các thiết bị nhỏ mà cần phải được
theo dõi hoặc kiểm soát từ các đám mây.
Hình 4 Ví dụ về MQTT
MQTT hoạt động đơn giản, cung cấp nhiều lựa chọn điều khiển và QoS.
MQTT không có yêu cầu quá khắt khe về thời gian, tuy nhiên hiều quả của nó
là rất lớn, đáp ứng tính thời gian thực với đơn vị tính bằng giây.
Các giao thức hoạt động trên nền tàng TCP, cung cấp các đáp ứng đơn giản,
đáng tin cậy.
* XMPP
XMPP ban đầu được gọi là "Jabber." Nó được phát triển cho các tin nhắn
tức thời (IM) để kết nối mọi người với những người khác thông qua tin nhắn
văn bản. XMPP là viết tắt của Extensible Messaging và Presence Protocol.
Hình 5 Ví dụ XMPP

XMPP sử dụng định dạng văn bản XML, và cũng tương tự như MQTT
chạy, XMPP chạy trên nền tảng TCP, hoặc có thể qua HTTP trên TCP. Sức
mạnh chính của nó là một chương trình name@domain.comaddressing trong
mạng Internet khổng lồ.
1.3.2. Năng lực truyền thông (Communication Capabilities)

Địa chỉ IP được coi là yếu tố quan trọng trong IoT, khi mà mỗi thiết bị được
gán một địa chỉ IP riêng biệt. Do đó khả năng cấp phát địa chỉ IP sẽ quyết định
đến tương lai của IoT. Hệ thống địa chỉ IPv4 được tạo ra mới mục đích đánh
cho mỗi máy tính kết nối vào mạng internet một con số riêng biệt, giúp cho
thông tin có thể tìm tới đúng nơi cần đến ngay khi nó được chuyển đi từ bất cứ
địa điểm nào trên thế giới. Theo thiết kế, Ipv4 có thể cung cấp 2^32 (tương ứng
với khoảng 4,2 tỉ) địa chỉ IP, một con số lớn không tưởng cách đây 30 năm.
Tuy nhiên, sự bùng nổ mạnh mẽ của Internet đã khiến cho số lượng địa chỉ IP
tự do càng ngày càng khan
hiếm. Mới đây, RIPE NCC - Hiệp hội các tổ chức quản lý mạng Internet khu
vực châu Âu phải đưa ra tuyên bố rằng họ đã sử dụng đến gói địa chỉ IP chưa
cấp phát cuối cùng (khoảng 1,8 triệu địa chỉ).
Và sự ra đời của IPv6 như là một giải pháp cứu sống kịp thời cho sự cạn kiệt
của IPv4. Độ dài bit của là 128. Sự gia tăng mạnh mẽ của IPv6 trong không
gian địa chỉ là một yếu tố quan trọng trong phát triển Internet of Things.

Hình 6 Năng lực truyền thông

1.3.3. Công suất thiết bị (Device Power)

Các tiêu chí hình thức chính của thiết bị khi triển khai một ứng dụng IoT là
phải giá thành thấp, mỏng, nhẹ…và như vậy phần năng lượng nuôi thiết bị
cũng sẽ trở nên nhỏ gọn lại, năng lượng tích trữ cũng sẽ trở nên ít đi. Do đó đòi
hỏi thiết bị phải tiêu tốn một công suất cực nhỏ (Ultra Low Power) để sử dụng
nguồn năng lượng có hạn đó. Bên cạnh đó yêu cầu có những giao thức truyền
thông không dây gọn nhẹ hơn, đơn giản hơn, đòi hỏi ít công suất hơn (Low
Energy Wireless Technologies) như Zigbee, BLE (Bluetooth low energy),
ANT/ANT+, NIKE+,..

Hình 7 Bảng so sánh các chuẩn truyền thông không dây.

1.3.4. Công nghệ cảm biến (Sensor Technology)

Trong Internet of Things, cảm biến đóng vai trò then chốt, nó đo đạt cảm
nhận giá trị từ môi trường xung quanh rồi gửi đến bộ vi xử lý sau đó được gửi
lên mạng. Chúng ta có thể bắt gặp một số loại cảm biến về cảnh báo cháy rừng,
cảnh báo động đất, cảm biến nhiệt độ, cảm biến độ ẩm,..Để giúp cho thiết bị
kéo dài được thời gian sống hơn thì đòi hỏi cảm biến cũng phải tiêu hao một
lượng năng lượng cực kỳ thấp. Bên cạnh đó độ chính xác và thời gian đáp ứng
của cảm biến cũng phải nhanh. Để giá thành của thiết bị thấp thì đòi hỏi giá
cảm biến cũng phải thấp.
Hình 8 Một số loại cảm biến hay gặp

1.3.5. Thời gian đáp ứng

Hình 9 Đáp ứng thời gian cho ứng dụng IoT

Thời gian đáp ứng phải đảm bảo tính thời gian thực, sao cho hàng ngàn các
node mạng có thể truy cập vào hệ thống mà không xảy ra hiện tượng nghẽn
mạng. Với các ứng dụng D2D, thời gian đáp ứng trong khoảng 10us đến 10ms,
trong khi ứng dụng D2S, thời gian này là 10ms đến 1s. Với các ứng dụng S2S,
không có yêu cầu khắt khe về thời gian đáp ứng, tuy nhiên thông thường yêu
cầu từ 3 đến 5s.
1.5. Các ứng dụng của IOT

Với những hiệu quả thông minh rất thiết thực mà IoT đem đến cho con người,
IoT đã và đang được tích hợp trên khắp mọi thứ, mọi nơi xung quanh thế giới mà
con người đang sống. Từ chiếc vòng đeo tay, những đồ gia dụng trong nhà, những
mãnh vườn đang ươm hạt giống, cho đến những sinh vật sống như động vật hay con
người…đều có sử dụng giải pháp IoT.

Hình 10 Tổng quan về ứng dụng của IoT.

1.4.1. Ứng dụng trong lĩnh vực vận tải

Ứng dụng điển hình nhất trong lĩnh vực này là gắn chíp lấy tọa độ GPS lên
xe chở hàng, nhằm kiểm soát lộ trình, tốc độ, thời gian đi đến của các xe chở
hàng. Ứng dụng này giúp quản lý tốt khâu vận chuyển, có những xử lý kịp thời
khi xe đi không đúng lộ trình hoạt bị hỏng hóc trên những lộ trình mà ở đó
mạng di động không phủ sóng tới được, kiểm soát được lượng nhiên liệu tiêu
hao ứng với lộ trình đã được vạch trước…
1.4.2. Ứng dụng trong lĩnh vực sản xuất nông nghiệp

Quá trình sinh trưởng và phát triển của cây trồng trải qua nhiều giai đoạn từ
hạt nảy mầm đến ra hoa kết trái. Ở mỗi giai đoạn cần có sự chăm sóc khác nhau
về chất dinh dưỡng cũng như chế độ tưới tiêu phù hợp. Những yêu cầu này đòi
hỏi sự bền bỉ và siêng năng của người nông dân từ ngày này sang ngày khác
làm cho họ phải vất vả. Nhưng nhờ vào ứng dụng khoa học kỹ thuật, sử dụng
cảm biến để lấy thông số nhiệt độ, độ ẩm, độ pH của đất trồng, cùng với bảng
dữ liệu về quy trình sinh trưởng của loại cây đó, hệ thống sẽ tự động tưới tiêu
bón lót cho cây trồng phù hợp với từng giai đoạn phát triển của cây trồng.
Người nông dân bây giờ chỉ kiểm tra, quan sát sự vận hành của hệ thống chăm
sóc cây trồng trên một màn hình máy tính có nối mạng.

Hình 11 Theo dõi tình trạng sinh trưởng của cây trồng.
Sản phẩm của mỗi loại nông sản sẽ được gắn mã ID, nếu tủ lạnh nhà chúng
ta sắp hết một loại nông sản nào đó thì ngay lập tức nó sẽ tự động gửi thông
báo cần mua đến cơ sở dữ liệu của trang trại có trồng loại nông sản đó, và chỉ
sau một thời gian nông sản mà bạn cần sẽ được nhân viên đem đến tận nhà.
1.4.3. Ứng dụng trong nhà thông minh

Vài năm trở lại đây, khi thế giới đang dần tiến vào kỷ nguyên Internet of
Things, kết nối mọi vật qua Internet, nhà thông minh trở thành một xu hướng
công nghệ tất yếu, là tiêu chuẩn của nhà ở hiện đại. Trong căn hộ thông minh,
tất cả các thiết bị từ rèm cửa, điều hoà, dàn âm thanh, hệ thống ánh sáng, hệ
thống an ninh, thiết bị nhà tắm… được kết nối với nhau và hoạt động hoàn toàn
tự động theo kịch bản lập trình sẵn, đáp ứng đúng nhu cầu sử dụng của khách
hàng.

Hình 12 Ví dụ về nhà thông minh

Ví dụ, vào buổi sáng, đèn tắt, rèm cửa tự động chuyển tới vị trí thích hợp để
giảm bớt những tác động náo nhiệt từ đường phố và nhường không gian cho
ánh sáng tự nhiên. Tối đến, hệ thống đèn bật sáng, các rèm cửa kéo lên người
dùng có thể thưởng ngoạn từ trên cao bức tranh thành phố rực rỡ ánh đèn, đồng
thời âm nhạc cũng nhẹ nhàng cất lên các giai điệu yêu thích của gia đình.
Nếu có việc cả nhà phải đi vắng, chế độ "Ra khỏi nhà" sẽ được kích hoạt,
toàn bộ thiết bị điện tử gia dụng sẽ tự động tắt hoặc đóng lại và khi chủ nhân
về, chúng cũng sẽ khôi phục lại trạng thái trước đó. Thậm chí, nước nóng cũng
đã sẵn sàng từ vài phút trước khi gia chủ về đến cửa. Riêng hệ thống an ninh
luôn hoạt động 24/24 và sẽ thông báo đến chủ nhà mọi thay đổi "đáng ngờ"
trong ngôi nhà, dù đang ở bất cứ đâu.
1.5. Các thách thức trong việc nghiên cứu, triển khai IoT
 Chưa có một ngôn ngữ chung:

Ở mức cơ bản nhất, Internet là một mạng dùng để nối thiết bị này với thiết
bị khác. Nếu chỉ riêng có kết nối không thôi thì không có gì đảm bảo rằng các
thiết bị biết cách nói chuyện nói nhau. Ví dụ, chúng ta có thể đi từ Việt Nam
đến Mỹ, nhưng không đảm bảo rằng chúng ta có thể nói chuyện tới với người
Mỹ. Để các thiết bị có thể giao tiếp với nhau, chúng sẽ cần một hoặc nhiều giao
thức (protocols), có thể xem là một thứ ngôn ngữ chuyên biệt để giải quyết một
tác vụ nào đó. Chắc chắn chúng ta đã ít nhiều sử dụng một trong những giao
thức phổ biến nhất thế giới, đó là HyperText Transfer Protocol (HTTP) để tải
web. Ngoài ra chúng ta còn có SMTP, POP, IMAP dành cho email, FTP
dùng để trao đổi file,
...Những giao thức như thế này hoạt động ổn bởi các máy chủ web, mail và
FTP thường không phải nói với nhau nhiều, khi cần, một phần mềm phiên dịch
đơn giản sẽ đứng ra làm trung gian để hai bên hiểu nhau. Còn với các thiết bị
IoT, chúng phải đảm đương rất nhiều thứ, phải nói chuyện với nhiều loại máy
móc thiết bị khác nhau. Đáng tiếc rằng hiện người ta chưa có nhiều sự đồng
thuận về các giao thức để IoT trao đổi dữ liệu. Nói cách khác, tình huống này
gọi là "giao tiếp thất bại", một bên nói nhưng bên kia không thèm (và không
thể) nghe.
 Hàng rào subnetwork:

Như đã nói ở trên, thay vì giao tiếp trực tiếp với nhau, các thiết bị IoT hiện
nay chủ yếu kết nối đến một máy chủ trung tâm do hãng sản xuất một nhà phát
triển nào đó quản lí. Cách này cũng vẫn ổn thôi, những thiết bị vẫn hoàn toàn
nói được với nhau thông qua chức năng phiên dịch của máy chủ rồi. Thế nhưng
mọi chuyện không đơn giản như thế, cứ mỗi một mạng lưới như thế tạo thành
một subnetwork riêng, và buồn thay các máy móc nằm trong subnetwork này
không thể giao tiếp tốt với subnetwork khác.
Lấy ví dụ như xe ô tô chẳng hạn. Một chiếc Ford Focus có thể giao tiếp cực
kì tốt đến các dịch vụ và trung tâm dữ liệu của Ford khi gửi dữ liệu lên mạng.
Nếu một bộ phận nào đó cần thay thế, hệ thống trên xe sẽ thông báo về Ford, từ
đó hãng tiếp tục thông báo đến người dùng. Nhưng trong trường hợp chúng ta
muốn tạo ra một hệ thống cảnh báo kẹt xe thì mọi chuyện rắc rối hơn nhiều bởi
xe Ford được thiết lập chỉ để nói chuyện với server của Ford, không phải với
server của Honda, Audi, Mercedes hay BMW. Lý do cho việc giao tiếp thất
bại? Chúng ta thiếu đi một ngôn ngữ chung. Và để thiết lập cho các hệ thống
này nói chuyện được với nhau thì rất tốn kém, đắt tiền.
Một số trong những vấn đề nói trên chỉ đơn giản là vấn đề về kiến trúc
mạng, về kết nối mà các thiết bị sẽ liên lạc với nhau (Wifi, Bluetooth, NFC,...).
Những thứ này thì tương đối dễ khắc phục với công nghệ không dây ngày nay.
Còn với các vấn đề về giao thức thì phức tạp hơn rất nhiều, nó chính là vật vản
lớn và trực tiếp trên còn đường phát triển của Internet of Things.
 Có quá nhiều "ngôn ngữ địa phương":

Bây giờ giả sử như các nhà sản xuất xe ô tô nhận thấy rằng họ cần một giao
thức chung để xe của nhiều hãng có thể trao đổi dữ liệu cho nhau và họ đã phát
triển thành công giao thức đó. Thế nhưng vấn đề vẫn chưa được giải quyết. Nếu
các trạm thu phí đường bộ, các trạm bơm xăng muốn giao tiếp với xe thì sao?
Mỗi một loại thiết bị lại sử dụng một "ngôn ngữ địa phương" riêng thì mục đích
của IoT vẫn chưa đạt được đến mức tối đa. Đồng ý rằng chúng ta vẫn có thể có
một trạm kiểm soát trung tâm, thế nhưng các thiết bị vẫn chưa thật sự nói được
với nhau.
 Tiền và chi phí:

Cách duy nhất để các thiết bị IoT có thể thật sự giao tiếp đó là khi có một
động lực kinh tế đủ mạnh khiến các nhà sản xuất đồng ý chia sẻ quyền điều
khiển cũng như dữ liệu mà các thiết bị của họ thu thập được. Hiện tại, các động
lực này không nhiều. Có thể xét đến ví dụ sau: một công ty thu gom rác
muốn kiểm tra
xem các thùng rác có đầy hay chưa. Khi đó, họ phải gặp nhà sản xuất thùng rác,
đảm bảo rằng họ có thể truy cập vào hệ thống quản lí của từng thùng một. Điều
đó khiến chi phí bị đội lên, và công ty thu gom rác có thể đơn giản chọn giải
pháp cho một người chạy xe kiểm tra từng thùng một.
CHƯƠNG 2: GOOGLE CLOUD PLATFORM
2.1. Khái niệm
Google Cloud Platform(GCP) là nền tảng được cung cấp bởi Google, xây
dựng trên cơ sở hạ tầng của điện toán đám mây. Cho phép doanh nghiệp sử
dụng và phát triển các ứng dụng trên hệ sinh thái Google : Google Maps, G
Suite, Youtube,...
Hiện nay, Google Cloud Platform trở thành một người đồng hành thân
thiện trong công tác quản lý hệ thống hạ tầng của các doanh nghiệp. Bởi nó
cung cấp đủ các phần mềm phục vụ từ quá trình lên kế hoạch, phát triển đến
tối ưu hóa hệ thống
2.2. Công cụ
Google Cloud Platform (GCP) bao gồm 3 công cụ : IaaS, PaaS, SaaS
2.2.1. IaaS (Infrastructure as a Service)
IaaS, hay Cơ sở hạ tầng như một dịch vụ, là một trong ba mô hình dịch vụ
điện toán đám mây chính, bên cạnh PaaS (Platform as a Service) và SaaS
(Software as a Service). IaaS cung cấp cơ sở hạ tầng IT trên đám mây, bao
gồm máy chủ, lưu trữ, mạng và các tài nguyên tính toán khác. Thay vì phải
đầu tư vào phần cứng vật lý, doanh nghiệp có thể thuê các tài nguyên này từ
nhà cung cấp dịch vụ đám mây và trả phí dựa trên mức sử dụng.
 Thành phần của IaaS
Một dịch vụ IaaS điển hình bao gồm các thành phần sau:
Máy chủ ảo (Virtual Machines - VMs): Các máy chủ ảo cho phép người
dùng chạy các ứng dụng và dịch vụ như trên máy chủ vật lý. Người dùng có
thể cấu hình CPU, RAM, và dung lượng lưu trữ theo nhu cầu.
Lưu trữ (Storage): Dịch vụ lưu trữ đám mây cung cấp không gian lưu trữ
linh hoạt và có thể mở rộng cho dữ liệu và ứng dụng. Có nhiều loại lưu trữ
như lưu trữ đối tượng (object storage), lưu trữ khối (block storage), và lưu
trữ tệp (file storage).
Mạng (Networking): IaaS cung cấp các dịch vụ mạng như IP addresses,
load balancers, và VPN để kết nối và bảo mật hệ thống của người dùng.
Bảo mật (Security): Các công cụ và dịch vụ bảo mật bao gồm tường lửa
(firewalls), bảo mật mạng, và quản lý danh tính và truy cập (IAM).
Các dịch vụ bổ sung: Một số nhà cung cấp IaaS cung cấp thêm các dịch
vụ như quản lý cơ sở dữ liệu, phân tích dữ liệu, và các công cụ phát triển
ứng dụng.
 Lợi ích của IaaS
IaaS mang lại nhiều lợi ích đáng kể cho các doanh nghiệp:
Tiết kiệm chi phí: Doanh nghiệp không cần đầu tư vào phần cứng và cơ
sở hạ tầng vật lý, giảm chi phí đầu tư ban đầu và chi phí bảo trì.
Khả năng mở rộng: IaaS cho phép doanh nghiệp mở rộng hoặc thu hẹp tài
nguyên theo nhu cầu, đảm bảo sử dụng tài nguyên hiệu quả và tiết kiệm chi
phí.
Tính linh hoạt và kiểm soát: Doanh nghiệp có toàn quyền kiểm soát cấu
hình và quản lý các tài nguyên IT, từ đó tùy chỉnh hệ thống theo yêu cầu cụ
thể.
Tính sẵn sàng và độ tin cậy cao: Các nhà cung cấp IaaS thường cung cấp
các giải pháp đảm bảo tính sẵn sàng và độ tin cậy cao, với các biện pháp
phòng chống sự cố và khắc phục thảm họa.
Bảo mật: Các nhà cung cấp dịch vụ IaaS đầu tư mạnh vào bảo mật và
tuân thủ các tiêu chuẩn bảo mật quốc tế, đảm bảo dữ liệu và ứng dụng của
doanh nghiệp được bảo vệ.
 Ứng dụng của IaaS
IaaS được sử dụng rộng rãi trong nhiều lĩnh vực và trường hợp sử dụng
khác nhau, bao gồm:
Phát triển và kiểm thử phần mềm: Các nhóm phát triển có thể dễ dàng tạo
ra các môi trường phát triển và kiểm thử linh hoạt, nhanh chóng và hiệu quả.
Lưu trữ và sao lưu dữ liệu: IaaS cung cấp các giải pháp lưu trữ an toàn và
có thể mở rộng cho các nhu cầu lưu trữ và sao lưu dữ liệu.
Ứng dụng web và di động: Doanh nghiệp có thể triển khai các ứng dụng
web và di động trên cơ sở hạ tầng đám mây, đảm bảo hiệu suất và khả năng
mở rộng.
Phân tích dữ liệu lớn: IaaS cung cấp tài nguyên tính toán mạnh mẽ và linh
hoạt cho các dự án phân tích dữ liệu lớn, từ đó giúp doanh nghiệp khai thác
dữ liệu để đưa ra quyết định kinh doanh thông minh.
 Các nhà cung cấp IaaS hàng đầu
Một số nhà cung cấp dịch vụ IaaS hàng đầu trên thế giới bao gồm:
Amazon Web Services (AWS): Là nhà cung cấp IaaS lớn nhất với một
loạt các dịch vụ và giải pháp đám mây.
Microsoft Azure: Cung cấp các dịch vụ IaaS phong phú và tích hợp tốt
với các sản phẩm và dịch vụ của Microsoft.
Google Cloud Platform (GCP): Cung cấp các dịch vụ IaaS mạnh mẽ và
tích hợp với các dịch vụ dữ liệu và học máy của Google.
IBM Cloud: Cung cấp các dịch vụ IaaS với sự tập trung vào các giải pháp
doanh nghiệp và bảo mật.
2.2.2. PaaS (Platform as a Service)
PaaS, hay Nền tảng như một dịch vụ, là một trong ba mô hình dịch vụ
điện toán đám mây chính, bên cạnh IaaS (Infrastructure as a Service) và
SaaS (Software as a Service). PaaS cung cấp một nền tảng đám mây cho
phép các nhà phát triển xây dựng, triển khai và quản lý các ứng dụng mà
không cần phải quản lý cơ sở hạ tầng phần cứng hoặc phần mềm cơ bản.
 Thành phần của PaaS
Một dịch vụ PaaS điển hình bao gồm các thành phần sau:
Môi trường phát triển: Cung cấp các công cụ và môi trường phát triển tích
hợp (IDE) cho phép lập trình viên viết mã, kiểm thử và triển khai ứng dụng
một cách dễ dàng.
Dịch vụ cơ sở dữ liệu: PaaS cung cấp các dịch vụ cơ sở dữ liệu quản lý,
bao gồm các loại cơ sở dữ liệu quan hệ và phi quan hệ, giúp đơn giản hóa
việc lưu trữ và truy xuất dữ liệu.
Quản lý ứng dụng: Bao gồm các công cụ và dịch vụ để triển khai, quản lý
và giám sát các ứng dụng trong môi trường đám mây.
Dịch vụ tích hợp: PaaS cung cấp các dịch vụ tích hợp để kết nối các ứng
dụng với các hệ thống và dịch vụ khác, bao gồm API, dịch vụ nhắn tin và
hàng đợi.
Bảo mật và quản lý: Bao gồm các dịch vụ bảo mật, quản lý danh tính và
quyền truy cập (IAM), và các công cụ quản lý vòng đời ứng dụng (ALM).
 Lợi ích của PaaS
PaaS mang lại nhiều lợi ích đáng kể cho các nhà phát triển và doanh
nghiệp:
Tiết kiệm thời gian và chi phí phát triển: PaaS loại bỏ nhu cầu quản lý cơ
sở hạ tầng và các phần mềm cơ bản, giúp các nhà phát triển tập trung vào
việc viết mã và xây dựng các tính năng ứng dụng.
Khả năng mở rộng: PaaS cung cấp khả năng mở rộng linh hoạt, cho phép
các ứng dụng mở rộng hoặc thu hẹp tài nguyên theo nhu cầu thực tế.
Tích hợp dễ dàng: PaaS cung cấp các dịch vụ tích hợp giúp kết nối các
ứng dụng với các hệ thống và dịch vụ khác một cách dễ dàng và hiệu quả.
Bảo mật và quản lý: PaaS cung cấp các công cụ và dịch vụ bảo mật tiên
tiến, giúp bảo vệ ứng dụng và dữ liệu khỏi các mối đe dọa.
Cộng tác và phát triển nhanh chóng: PaaS cung cấp các công cụ và dịch
vụ hỗ trợ cộng tác giữa các nhóm phát triển, giúp đẩy nhanh quá trình phát
triển và triển khai ứng dụng.
 Ứng dụng của PaaS
PaaS được sử dụng rộng rãi trong nhiều lĩnh vực và trường hợp sử dụng
khác nhau, bao gồm:
Phát triển ứng dụng web và di động: Các nhà phát triển có thể sử dụng
PaaS để xây dựng, kiểm thử và triển khai các ứng dụng web và di động một
cách nhanh chóng và hiệu quả.
Phát triển và triển khai API: PaaS cung cấp các công cụ và dịch vụ để xây
dựng và triển khai các API, giúp kết nối các ứng dụng và hệ thống khác
nhau.
Phân tích dữ liệu: PaaS cung cấp các dịch vụ phân tích dữ liệu mạnh mẽ,
cho phép các nhà phát triển xây dựng các ứng dụng phân tích và trực quan
hóa dữ liệu.
Tự động hóa quy trình kinh doanh: PaaS cung cấp các công cụ và dịch vụ
để tự động hóa các quy trình kinh doanh, giúp nâng cao hiệu quả hoạt động
và giảm thiểu sai sót.
 Các nhà cung cấp PaaS hàng đầu
Một số nhà cung cấp dịch vụ PaaS hàng đầu trên thế giới bao gồm:
Google Cloud Platform (GCP): Cung cấp các dịch vụ PaaS mạnh mẽ và
tích hợp với các dịch vụ dữ liệu và học máy của Google.
Amazon Web Services (AWS): Cung cấp một loạt các dịch vụ PaaS bao
gồm AWS Elastic Beanstalk, AWS Lambda, và Amazon RDS.
Microsoft Azure: Cung cấp các dịch vụ PaaS phong phú và tích hợp tốt
với các sản phẩm và dịch vụ của Microsoft, bao gồm Azure App Service và
Azure Functions.
IBM Cloud: Cung cấp các dịch vụ PaaS với sự tập trung vào các giải pháp
doanh nghiệp và bảo mật, bao gồm IBM Cloud Foundry và IBM Watson.
2.2.3. SaaS (Software as a Service)
SaaS, hay Phần mềm như một dịch vụ, là một mô hình cung cấp phần
mềm qua internet, trong đó các ứng dụng được lưu trữ và quản lý trên đám
mây bởi nhà cung cấp dịch vụ và người dùng truy cập thông qua trình duyệt
web. Mô hình này loại bỏ nhu cầu cài đặt, bảo trì và quản lý phần mềm trên
các máy tính cá nhân hoặc máy chủ nội bộ, giúp người dùng tập trung vào
công việc chính mà không phải lo lắng về hạ tầng kỹ thuật.
 Đặc điểm của SaaS
Các đặc điểm chính của mô hình SaaS bao gồm:
Truy cập qua Internet: Người dùng có thể truy cập các ứng dụng SaaS từ
bất kỳ đâu có kết nối internet mà không cần cài đặt phần mềm.
Thanh toán dựa trên sử dụng: Người dùng thường trả phí dựa trên mô
hình đăng ký theo tháng hoặc theo năm, giúp giảm chi phí đầu tư ban đầu.
Cập nhật tự động: Các ứng dụng SaaS được cập nhật tự động bởi nhà
cung cấp dịch vụ, đảm bảo người dùng luôn có phiên bản phần mềm mới
nhất mà không cần thực hiện cập nhật thủ công.
Khả năng mở rộng: SaaS cho phép dễ dàng mở rộng hoặc thu hẹp số
lượng người dùng hoặc tính năng theo nhu cầu.
Tích hợp và API: Các ứng dụng SaaS thường cung cấp các API và khả
năng tích hợp với các hệ thống và dịch vụ khác, giúp kết nối liền mạch với
hạ tầng IT hiện có.
 Lợi ích của SaaS
SaaS mang lại nhiều lợi ích đáng kể cho các doanh nghiệp và người dùng
cá nhân:
Tiết kiệm chi phí: SaaS loại bỏ nhu cầu đầu tư vào phần cứng và phần
mềm, giảm chi phí cài đặt, bảo trì và quản lý.
Tính linh hoạt: Người dùng có thể truy cập các ứng dụng SaaS từ bất kỳ
đâu, giúp làm việc linh hoạt và tăng cường khả năng cộng tác.
Tự động hóa cập nhật: Các nhà cung cấp SaaS đảm bảo phần mềm luôn
được cập nhật và bảo mật, giúp người dùng luôn có phiên bản mới nhất mà
không phải lo lắng về các bản vá bảo mật.
Tập trung vào nghiệp vụ: Với SaaS, doanh nghiệp có thể tập trung vào
các hoạt động cốt lõi thay vì lo lắng về hạ tầng IT và quản lý phần mềm.
Khả năng mở rộng nhanh chóng: SaaS cho phép dễ dàng thêm hoặc bớt
người dùng, tính năng và tài nguyên theo nhu cầu thực tế.
 Ứng dụng của SaaS
SaaS được sử dụng rộng rãi trong nhiều lĩnh vực và trường hợp sử dụng
khác nhau, bao gồm:
Quản lý quan hệ khách hàng (CRM): Các ứng dụng CRM như Salesforce
giúp doanh nghiệp quản lý quan hệ khách hàng và bán hàng một cách hiệu
quả.
Quản lý tài chính và kế toán: Các ứng dụng như QuickBooks Online và
Xero giúp doanh nghiệp quản lý tài chính và kế toán dễ dàng.
Quản lý dự án và cộng tác: Các công cụ như Asana, Trello và Slack hỗ trợ
quản lý dự án và cộng tác giữa các nhóm làm việc.
Ứng dụng văn phòng: Các bộ ứng dụng văn phòng như Google
Workspace (trước đây là G Suite) và Microsoft Office 365 cung cấp các
công cụ văn phòng trực tuyến như email, xử lý văn bản, bảng tính và lưu trữ
đám mây.
Thương mại điện tử: Các nền tảng như Shopify và BigCommerce giúp
doanh nghiệp thiết lập và quản lý các cửa hàng trực tuyến một cách dễ dàng.
Học trực tuyến: Các nền tảng như Coursera và Udemy cung cấp các khóa
học trực tuyến, giúp người học tiếp cận với kiến thức từ xa.
 Các nhà cung cấp SaaS hàng đầu
Một số nhà cung cấp dịch vụ SaaS hàng đầu trên thế giới bao gồm:
Salesforce: Dẫn đầu trong lĩnh vực CRM với các giải pháp quản lý quan
hệ khách hàng mạnh mẽ và đa dạng.
Google Workspace: Cung cấp các công cụ văn phòng trực tuyến như
Gmail, Google Docs, Google Sheets và Google Drive.
Microsoft Office 365: Một bộ công cụ văn phòng trực tuyến và dịch vụ
cộng tác, bao gồm Outlook, Word, Excel, PowerPoint và OneDrive.
Adobe Creative Cloud: Cung cấp các ứng dụng sáng tạo như Photoshop,
Illustrator và Premiere Pro dưới dạng dịch vụ đám mây.
Zoom: Một nền tảng hội nghị trực tuyến và cộng tác video, rất phổ biến
trong bối cảnh làm việc từ xa.
2.3. Tiện ích
Các sản phẩm GCP cung cấp cho người dùng được chia ra thành 4 loại:
Services, Big Data, Storage, Computer.
Hình 13 Tiện ích Google Cloud Platfform

2.3.1. Services
Các dịch vụ trong GCP bao gồm các công cụ và nền tảng giúp quản lý,
bảo mật và phát triển ứng dụng:

Google Cloud Functions: Dịch vụ serverless cho phép chạy các đoạn mã
mà không cần quản lý cơ sở hạ tầng, thường được sử dụng cho các tác vụ tự
động và backend.
Google Cloud Run: Dịch vụ serverless cho phép triển khai và chạy các
container trên cơ sở hạ tầng được quản lý.
Google Kubernetes Engine (GKE): Dịch vụ quản lý Kubernetes, giúp
triển khai, quản lý và mở rộng các ứng dụng container một cách dễ dàng.
Google App Engine: Nền tảng PaaS cho phép phát triển và triển khai các
ứng dụng mà không cần quản lý cơ sở hạ tầng.
2.3.2. Big Data
Các dịch vụ Big Data trong GCP cung cấp các công cụ mạnh mẽ để xử lý,
phân tích và trực quan hóa dữ liệu lớn:
BigQuery: Dịch vụ phân tích dữ liệu lớn, cung cấp khả năng xử lý truy
vấn SQL nhanh chóng và khả năng mở rộng linh hoạt.
Dataflow: Dịch vụ xử lý dữ liệu theo luồng và theo lô, dựa trên Apache
Beam.
Dataproc: Dịch vụ quản lý Hadoop và Spark, giúp triển khai và quản lý
các cụm xử lý dữ liệu lớn.
Pub/Sub: Dịch vụ nhắn tin thời gian thực, cho phép xây dựng các hệ
thống dữ liệu phân tán và xử lý dữ liệu sự kiện.
2.3.3. Storage
Các dịch vụ lưu trữ trong GCP cung cấp các giải pháp lưu trữ linh hoạt và
có khả năng mở rộng cho dữ liệu và ứng dụng:

Google Cloud Storage: Dịch vụ lưu trữ đối tượng, cung cấp khả năng lưu
trữ dữ liệu không cấu trúc với tính sẵn sàng cao và độ bền.
Cloud SQL: Dịch vụ cơ sở dữ liệu quan hệ được quản lý, hỗ trợ MySQL,
PostgreSQL và SQL Server.
Cloud Spanner: Dịch vụ cơ sở dữ liệu quan hệ phân tán, cung cấp tính
nhất quán cao và khả năng mở rộng toàn cầu.
FireStore: Dịch vụ cơ sở dữ liệu NoSQL, cung cấp lưu trữ dữ liệu theo tài
liệu và khả năng đồng bộ hóa thời gian thực.
2.3.4. Compute
Các dịch vụ tính toán trong GCP cung cấp các tài nguyên tính toán mạnh
mẽ và linh hoạt để chạy các ứng dụng và xử lý dữ liệu:
Compute Engine: Dịch vụ máy ảo cho phép chạy các ứng dụng trên hạ
tầng đám mây của Google, với khả năng tùy chỉnh cấu hình tài nguyên.
Google Kubernetes Engine (GKE): Như đã đề cập, dịch vụ quản lý
Kubernetes giúp triển khai và quản lý các ứng dụng container.
App Engine: Nền tảng PaaS cho phép phát triển và triển khai các ứng
dụng mà không cần quản lý cơ sở hạ tầng.
Cloud Functions: Dịch vụ serverless cho phép chạy các đoạn mã mà
không cần quản lý cơ sở hạ tầng.
2.4. Kiến trúc của IoT platform trên Google Cloud
Các sản phẩm nền tảng IoT thường cung cấp kết nối dữ liệu cơ bản bằng
MQTT và HTTPS. Chúng cũng cho phép bạn cấu hình các thiết bị và cung
cấp các tính năng xác thực và quản lý, lưu trữ và trực quan hóa dữ liệu viễn
thông, xử lý dữ liệu và cảnh báo. Các tổ chức thường sử dụng các nền tảng
IoT khi một máy chủ MQTT độc lập không đủ cho một trường hợp sử dụng
và cần một sản phẩm nền tảng IoT hoàn chỉnh hơn. Một nền tảng IoT cung
cấp một giao diện thống nhất để quản lý một tập hợp thiết bị đa dạng. Giao
diện này rất quan trọng đối với nhiều ứng dụng thiết bị kết nối, và đó là sự
khác biệt chính giữa một nền tảng IoT và một máy chủ MQTT độc lập.
Hình 14 Kiến trúc IOT trên Google Cloud Platform

Như minh họa trong sơ đồ trước đó, nền tảng IoT triển khai một MQTT
broker hoặc điểm cuối cho kết nối thiết bị. Nền tảng IoT được kết nối với
một Bộ cân bằng tải mạng Proxy bên ngoài để phân phối lưu lượng từ các
thiết bị ở biên. Các ứng dụng IoT bổ sung có thể kết nối với nền tảng IoT
thông qua Pub/Sub hoặc bằng cách sử dụng đầu nối MQTT của Dataflow.

Nền tảng IoT cung cấp một tập hợp các dịch vụ quản lý thiết bị. Như đã
được trình bày trong sơ đồ, các dịch vụ này bao gồm:
1. Kho lưu trữ thông tin xác thực thiết bị
2. Công cụ quy tắc
3. Xác thực và ủy quyền thiết bị
4. Quản lý cấu hình thiết bị
5. Đăng ký thiết bị
6. Quản lý cập nhật thiết bị
Các sản phẩm nền tảng IoT thường bao gồm các dịch vụ như tính năng
song sinh kỹ thuật số, giao diện phát triển ít mã, khả năng cảnh báo và thông
báo, và các chức năng phân tích khác.

Các cân nhắc và lựa chọn kiến trúc


Các phần sau đây mô tả các lựa chọn kiến trúc mà bạn có thể thực hiện
cho kiến trúc sản phẩm nền tảng IoT và tác động của những lựa chọn này.

Các điểm cuối thu thập dữ liệu


Hầu hết các ứng dụng nền tảng IoT thương mại đều bao gồm một điểm
cuối MQTT và thường cũng có một điểm cuối HTTPS để thu thập dữ liệu từ
các thiết bị kết nối.

MQTT
Một nền tảng IoT triển khai một điểm cuối MQTT theo một trong các
cách sau:
 Một đầu nối giữa MQTT và một dịch vụ thông điệp khác
 Một MQTT broker thực hiện đầy đủ các quy cách của MQTT

Trong một số trường hợp, điểm cuối MQTT chỉ kết nối các khách hàng
MQTT với một dịch vụ nhắn tin backend, như Kafka hoặc Pub/Sub. Loại
điểm cuối này thường không thực hiện đầy đủ các quy cách giao thức MQTT
và thường không bao gồm các tính năng như mức QoS 1 và 2 hoặc các đăng
ký chia sẻ. Ưu điểm của cách tiếp cận này là giảm sự phức tạp trong nền tảng
IoT, vì không có ứng dụng MQTT broker riêng biệt. Chi phí vận hành thấp
hơn và bảo trì đơn giản hơn so với việc nền tảng sử dụng một MQTT broker
riêng biệt. Tuy nhiên, do hỗ trợ hạn chế cho các tính năng giao thức MQTT
nâng cao hơn, cách tiếp cận này có nghĩa là ít linh hoạt và chức năng hơn
cho việc truyền tin MQTT so với một MQTT broker độc lập thực hiện đầy
đủ các quy cách của MQTT.

Các nền tảng IoT khác cung cấp một MQTT broker đầy đủ như một phần
của nền tảng, như minh họa trong kiến trúc mẫu trong tài liệu này. Broker
này có thể là một trong những broker mã nguồn mở hiện có hoặc một triển
khai broker độc quyền. Một broker MQTT đầy đủ cung cấp khả năng MQTT
hai chiều đầy đủ như đã mô tả trước đó, nhưng một broker đầy đủ có thể tăng
sự phức tạp và chi phí vận hành cho việc quản lý nền tảng IoT.

HTTPS và các giao thức bổ sung khác


Ngoài MQTT, nhiều nền tảng IoT cung cấp thêm các điểm cuối thu thập
dữ liệu hơn những gì được mô tả trong kiến trúc chính của tài liệu này.

HTTPS là một giao thức thay thế phổ biến cho MQTT cho các trường hợp
sử dụng thiết bị kết nối. Nó có chi phí cao hơn MQTT, nhưng được hỗ trợ
rộng rãi hơn bởi các thiết bị di động như điện thoại, và bởi các trình duyệt
web và các ứng dụng khác. Nó thường được sử dụng trong một số ứng dụng
thiết bị kết nối và được hỗ trợ bởi các nền tảng mã nguồn mở như Eclipse
Hono và nhiều sản phẩm thương mại.

Nhiều ứng dụng thiết bị giới hạn sử dụng Giao thức Ứng dụng Giới hạn
(CoAP), được định nghĩa trong RFC 7252, như một sự thay thế cho MQTT.
CoAP nhắm mục tiêu tới các khách hàng có chi phí thấp và dung lượng nhỏ
cho các thiết bị nhúng và cảm biến. Nhiều ứng dụng nền tảng IoT thương
mại cũng cung cấp một điểm cuối CoAP.

Cân bằng tải


Để biết thêm thông tin về việc chọn bộ cân bằng tải tốt nhất cho kiến trúc
của bạn, hãy xem phần cân bằng tải của kiến trúc MQTT broker độc lập trên
Google Cloud vì các cân nhắc đó cũng áp dụng cho trường hợp này.

Xác thực thiết bị và quản lý thông tin xác thực


Quản lý thông tin xác thực và xác thực thiết bị là một phần quan trọng
trong việc vận hành một nền tảng IoT. Các phương pháp xác thực được hỗ
trợ bởi các thiết bị kết nối thay đổi rộng rãi giữa các ứng dụng và hình thức
thiết bị. Điều quan trọng là chọn phương pháp xác thực phù hợp cho trường
hợp sử dụng mục tiêu và triển khai chính xác hệ thống xác thực đã chọn.

Không giống như một MQTT Broker độc lập, một nền tảng IoT cung cấp
các dịch vụ tích hợp để quản lý danh tính và thông tin xác thực của thiết bị.
Hầu hết các nền tảng IoT sử dụng xác thực chứng chỉ khách hàng X.509 cho
xác thực, xác thực dựa trên mã thông báo JWT (thường kết hợp với OAuth
2.0), và xác thực bằng tên người dùng và mật khẩu. Một số nền tảng cũng hỗ
trợ tích hợp với nhà cung cấp xác thực LDAP bên ngoài.

Đối với một số thiết bị giới hạn, xác thực JWT hoặc tên người dùng và
mật khẩu có thể phù hợp hơn, vì các hệ thống này yêu cầu ít tài nguyên hơn
trên thiết bị kết nối. Khi sử dụng xác thực JWT hoặc tên người dùng và mật
khẩu, điều quan trọng là mã hóa kết nối mạng riêng biệt với xác thực mTLS,
vì kết nối mã hóa không được yêu cầu bởi bất kỳ phương pháp xác thực nào
trong số này. Ngược lại, xác thực chứng chỉ X.509 tiêu thụ nhiều tài nguyên
hơn trên thiết bị kết nối, nhưng thường được sử dụng trong kết nối mTLS mã
hóa và do đó cung cấp mức độ bảo mật cao.

Việc cấp phát thông tin xác thực xác thực trên thiết bị biên tại thời điểm
sản xuất cũng là một phần quan trọng của hệ thống xác thực thiết bị kết nối,
nhưng nằm ngoài phạm vi của tài liệu này.

Để biết thêm thông tin về xác thực và quản lý thông tin xác thực, hãy xem
Các phương pháp hay nhất để chạy một backend IoT trên Google Cloud.

Quản lý thiết bị kết nối


Thông thường, các thiết bị kết nối xuất bản các sự kiện viễn thông và
thông tin trạng thái lên nền tảng thông qua một trong các điểm cuối thu thập
dữ liệu như MQTT. Nếu bạn đang sử dụng một nền tảng IoT đa giao thức,
các thiết bị có thể giao tiếp bằng bất kỳ giao thức được hỗ trợ nào.

Khuyến nghị tổ chức sử dụng một nền tảng IoT có các khả năng sau:
Cập nhật phần mềm và hệ thống: Giao nhận và khôi phục các bản cập
nhật firmware, phần mềm và ứng dụng cho các thiết bị kết nối. Các cập nhật
này thường cũng bao gồm lưu trữ và quản lý các bản cập nhật.
Cập nhật cấu hình: Giao nhận, lưu trữ và khôi phục các bản cập nhật cấu
hình của các ứng dụng được triển khai trên các thiết bị kết nối.
Tạo và quản lý thông tin xác thực: Tạo thông tin xác thực mới cho thiết
bị, giao nhận thông tin xác thực đó đến thiết bị kết nối, kiểm tra các lần thử
truy cập và hoạt động của thiết bị, và thu hồi thông tin xác thực bị xâm phạm
hoặc hết hạn đúng thời điểm.
Công cụ quy tắc và xử lý dữ liệu: Định nghĩa và thực thi các quy tắc dựa
trên dữ liệu và các bước xử lý dữ liệu khác. Khả năng này thường bao gồm
một loại giao diện ít mã để định nghĩa các quy tắc và đường dẫn xử lý dữ
liệu.

Khối lượng công việc backend


Hầu hết các nền tảng IoT cung cấp khả năng lưu trữ và vận chuyển dữ
liệu nội bộ cho phép bạn kết nối với các khối lượng công việc và ứng dụng
backend của mình. AMQP, RabbitMQ và Kafka thường được sử dụng để
cung cấp vận chuyển dữ liệu nội bộ. Tất cả những thứ này đều có thể được
kết nối với Pub/Sub bằng cách sử dụng SDK Pub/Sub. Bạn cũng có thể sử
dụng một hệ thống cơ sở dữ liệu tích hợp như PostgreSQL để lưu trữ dữ liệu
trong nền tảng. Trong nhiều trường hợp, nền tảng IoT có thể được cấu hình
để sử dụng một trong các sản phẩm lưu trữ đám mây trực tiếp, như Cloud
SQL, Firebase hoặc BigQuery.

Nếu nền tảng IoT có một MQTT broker đầy đủ, các ứng dụng backend
cũng có thể giao tiếp với các thiết bị bằng cách sử dụng khả năng MQTT của
nền tảng. Nếu ứng dụng hỗ trợ MQTT, ứng dụng có thể kết nối với broker
như một người đăng ký. Nếu không có hỗ trợ MQTT, Apache Beam cung
cấp một trình điều khiển MQTT,
CHƯƠNG 3. ỨNG DỤNG IoT ĐIỀU KHIỂN TRUYỀN
DỮ LIỆU NHIỆT ĐỘ ,ĐỘ ẨM THỜI GIAN THỰC LÊN
MÀN HÌNH OLED
3.1. CÁC GIAO THỨC ĐƯỢC SỬ DỤNG
3.1.1. HTTP(đẩy và nhận dữ liệu trên web serve)
HTTP là viết tắt của "Hypertext Transfer Protocol", là một giao thức
truyền tải dữ liệu trên Internet giữa máy chủ và máy khách. Nó được sử dụng
để truyền tải các tài liệu HTML, hình ảnh, video, âm thanh, tệp tin và các tài
nguyên khác từ máy chủ đến máy khách. HTTP hoạt động trên cơ sở giao
tiếp yêu cầu/đáp ứng, nơi mà máy khách gửi một yêu cầu đến máy chủ và
máy chủ sẽ trả lời yêu cầu đó bằng một phản hồi. HTTP hiện tại được sử
dụng phổ biến cho các ứng dụng web và là cơ sở của hầu hết các trang web
và ứng dụng web hiện nay.
3.1.2. I2C(oled-esp32)
Giao thức I2C (Inter-Integrated Circuit) là một giao thức truyền thông
đồng bộ hai chiều dùng để kết nối các vi điều khiển, cảm biến và các linh
kiện điện tử khác trong hệ thống nhúng. Giao thức I2C được phát triển bởi
Philips (nay là NXP Semiconductors) vào năm 1982. Giao thức này sử dụng
hai dây truyền thông là SDA (Serial Data Line) và SCL (Serial Clock Line)
để truyền dữ liệu giữa các thiết bị.
Giao thức I2C cho phép nhiều thiết bị kết nối trên cùng một đường
truyền, mỗi thiết bị có một địa chỉ riêng biệt để xác định. Giao thức này cũng
cho phép truyền dữ liệu trong cả hai hướng, điều này cho phép thiết bị
Master truyền dữ liệu cho thiết bị Slave và ngược lại.
Giao thức I2C có tốc độ truyền dữ liệu khá chậm so với các giao thức
truyền thông khác, tuy nhiên nó vẫn được sử dụng rộng rãi trong các ứng
dụng nhúng do tính đơn giản, hiệu quả và khả năng kết nối nhiều thiết bị trên
cùng một đường truyền.
3.1.3. 1-wire(dht22-esp32)
OneWire là hệ thống bus giao tiếp được thiết kế bởi Dallas
Semiconductor Corp. Giống như tên gọi, hệ thống bus này chỉ sử dụng 1 dây
để truyền nhận dữ liệu.
Chính vì chỉ sử dụng 1 dây nên giao tiếp này có tốc độ truyền thấp nhưng
dữ liệu lại truyền được khoảng cách xa hơn.
OneWire chủ yếu sử dụng để giao tiếp với các thiết bị nhỏ, thu thập và
truyền nhận dữ liệu thời tiết, nhiệt độ,… các công việc không yêu cầu tốc độ
cao.
Giống như các chuẩn giao tiếp khác, 1-Wire cho phép truyền nhận dữ liệu
với nhiều Slave trên đường truyền. Tuy nhiên chỉ có thể có 1 Master

3.2. PHẦN CỨNG


3.2.1. ESP32
ESP32 là một series các vi điều khiển trên một vi mạch giá rẻ, năng lượng
thấp có tích hợp WiFi và dual-mode Bluetooth (tạm dịch: Bluetooth chế độ
kép). Dòng ESP32 sử dụng bộ vi xử lý Tensilica Xtensa LX6 có hai biến thể
lõi kép và lõi đơn, và bao gồm các công tắc antenna tích hợp, RF balun, bộ
khuếch đại công suất, bộ khuếch đại thu nhiễu thấp, bộ lọc và module quản
lý năng lượng.

Thông số cơ bản
 Điện áp hoạt động: 2.2V - 3.6V
 Điện áp vào: 3.3V
 Hệ điều hành: FreeRTOS
 Các giao diện bao gồm: USB, JTAG, và GPIO
 Nhiệt độ hoạt động: -40°C - 85°C
 Kích thước: 18mm x 25.5mm x 3.2mm
Ngoại vi
 bộ chuyển đổi số sang tương tự (DAC) 8 bit
 18 kênh bộ chuyển đổi tương tự sang số (ADC) 12 bit.
 cổng giao tiếp I2C
 cổng giao tiếp UART
 cổng giao tiếp SPI (1 cổng cho chip FLASH )
 cổng giao tiếp I2S
 10 kênh ngõ ra điều chế độ rộng xung (PWM)
 SD card/SDIO/MMC host
 Ethernet MAC hỗ trợ chuẩn: DMA và IEEE 1588
 CAN bus 2.0
 IR (TX/RX)
 Các giao diện bao gồm: USB, JTAG, và GPIO
 Bộ giải mã video: H.264, VP8, JPEG, MJPEG
 Các chế độ tiết kiệm năng lượng: Ngủ sâu, ngủ rời rạc, ngủ điều tiết

CPU
 CPU: Xtensa Dual-Core LX6 microprocessor.
 Chạy hệ 32 bit
 Tốc độ xử lý từ 160 MHz đến 240 MHz
 ROM: 4,096KB (4194304 bytes )
 Tốc độ xung nhịp từ 40 Mhz ÷ 80 Mhz (có thể tùy chỉnh khi lập
trình)
 RAM: 341,25 KB (349248 bytes) SRAM liền chip. Trong đó 8 Kb
RAM RTC tốc độ cao – 8 Kb RAM RTC tốc độ thấp (dùng ở chế
độ DeepSleep).
 Kit esp32 sử dụng vi điều khiển Espressif ESP32 gồm 2 nhân chính
là:
Xtensa Dual-Core 32-bit LX6: Đây là bộ xử lý trung tâm của ESP32, bao
gồm hai nhân Xtensa LX6 32-bit với tốc độ xung nhịp cao. Nó được thiết kế
để xử lý các tác vụ đa nhiệm, đảm bảo hiệu suất và tiết kiệm năng lượng.
Co-processor: ESP32 cũng tích hợp một co-processor (vi xử lý phụ) để xử
lý các tác vụ phụ trợ như mã hóa và giải mã, xử lý âm thanh và video, và xử
lý các tác vụ liên quan đến Wi-Fi và Bluetooth. Co-processor này có thể
chạy độc lập với nhân chính hoặc được kết nối với nhân chính để đáp ứng
các yêu cầu tính toán khác nhau.

WIFI
 802.11 b/g/n/e/i (WIFI 2,4GHz)
 Station mode (STA) ESP32 sẽ kết nối tới các điểm truy cập
 Access point mode (AP), ESP32 hoạt động như một điểm truy cập
 AP-STA mode, ESP32 sẽ đồng thời là điểm truy cập và truy cập
đến các điểm khác
Bluetooth
 Bluetooth: v4.2 BR/EDR và BLE
 Việc hỗ trợ Bluetooth khiến ESP32 có thể tương tác với các thiết bị như
bàn phím, chuột, điện thoại khi không có WIFI
3.2.2. DHT22
Giới thiệu chung về DHT22:
DHT22 là một cảm biến đo nhiệt độ và độ ẩm được sử dụng rộng rãi
trong các ứng dụng điện tử như đo nhiệt độ và độ ẩm trong phòng, thiết bị
điều khiển điều hòa, trồng trọt, thủy sản, và hệ thống tự động hóa trong nhà
thông minh.
DHT22 hoạt động dựa trên nguyên lý đo sự thay đổi điện trở của chất bảo
vệ đo nhiệt độ và độ ẩm khi nhiệt độ và độ ẩm thay đổi. Cảm biến này có độ
chính xác cao và độ phân giải tốt, cho phép đo được nhiệt độ và độ ẩm trong
khoảng từ -40 đến 80 độ C và từ 0 đến 100% độ ẩm. Ngoài ra, DHT22 có
tính năng tự động hiệu chỉnh để đảm bảo độ chính xác trong quá trình sử
dụng.
DHT22 là một cảm biến đo độ ẩm và nhiệt độ, còn được gọi là AM2302.
Đây là một số thông số kỹ thuật của DHT22:
 Điện áp hoạt động: 3V - 6V DC
 Dòng điện tiêu thụ: Dưới 1mA trong thời gian đo, trung bình 50uA
Độ chính xác đo nhiệt độ: ±0.5°C
 Độ chính xác đo độ ẩm: ±2%RH Khoảng đo nhiệt độ: -40°C -
125°C Khoảng đo độ ẩm: 0-100%RH
 Tần số lấy mẫu: 2 giây
 Đầu ra: Digital (Dòng tín hiệu số)
 Đầu vào: Single-bus digital input/output (Giao tiếp bus duy nhất)

 Kích thước: 14*18*5.5


CHÂN MÔ TẢ
Điện áp cấp cho cảm biến nên từ
3.3-6V DC. Khi cấp nguồn cho cảm
Vcc biến, không gửi bất kỳ chỉ thị nào đến
cảm biến trong vòng một giây để
tránh tình trạng không ổn định
Truyền tải dữ liệu đo được từ cảm
biến đến vi điều khiển hoặc các thiết bị
khác. Nó sẽ phát ra tín hiệu kỹ thuật số
đại diện cho nhiệt độ và độ ẩm mà cảm
biến đo được. Chân data này sẽ truyền
DATA tín hiệu dạng chuỗi bit, trong đó mỗi
bit được biểu diễn bằng thời gian cao
hoặc thời gian thấp của tín hiệu. Vi
điều khiển hoặc thiết bị nhận sẽ phân
tích và chuyển đổi tín hiệu này để đọc
được giá trị nhiệt độ và độ ẩm từ cảm
biến.
Không có tác dụng gì và nên để
không kết nối với bất kỳ mạch nào.
Chân này thường được sử dụng để giữ
n.c
cho việc gắn chân trên mạch của
DHT22 đơn giản hơn, không cần phải
lo lắng về các kết nối không cần
thiết.
Có tác dụng là chân đất, cung cấp
địa chỉ tham chiếu cho việc đo lường
GND và truyền tín hiệu. Chân này cần được
kết nối đến một nguồn điện âm để
hoạt động đúng cách.

Nguyên lý hoạt động của DHT22:


Cảm biến DHT22 có hai đầu dây bên trong, một đầu dây được đặt trên
một điện cực bề mặt bọc polyme, một đầu dây khác được đặt trên một bộ
cảm biến nhiệt độ.
Khi không khí có độ ẩm thấp tiếp xúc với điện cực, điện trở của điện cực
tăng lên. Ngược lại, khi không khí có độ ẩm cao tiếp xúc với điện cực, điện
trở của điện cực giảm xuống.
Một nguồn điện DC được kết nối với điện cực và sử dụng một bộ khuếch
đại để đo lường điện trở của điện cực. Kết quả đọc được sẽ được chuyển
thành độ ẩm tương ứng.
Để đo nhiệt độ, cảm biến DHT22 sử dụng một bộ cảm biến nhiệt độ. Bộ
cảm biến này được đặt gần điện cực để đo nhiệt độ của không khí tiếp xúc
với điện cực.
Dữ liệu độ ẩm và nhiệt độ được chuyển đổi thành tín hiệu kỹ thuật số và
truyền qua một giao tiếp bên ngoài (ví dụ: I2C, SPI hoặc 1-wire) đến vi điều
khiển để xử lý và hiển thị hoặc gửi đến một thiết bị khác để xử lý.
Cách gửi dữ liệu của DHT22(Giao thức 1-wire):
Khi DHT22 nhận được tín hiệu khởi đầu từ MCU, nó sẽ gửi một tín hiệu
mức thấp và tín hiệu này sẽ kéo dài trong 80us làm tín hiệu phản hồi. Sau đó,
chương trình của DHT22 sẽ chuyển đổi mức điện áp của data-bus từ mức
thấp lên mức cao và kéo dài trong 80us để chuẩn bị gửi dữ liệu.
Khi DHT22 gửi dữ liệu cho MCU, mỗi bit bắt đầu bằng tín hiệu mức thấp
kéo dài trong 50us, độ dài của tín hiệu mức cao tiếp theo sẽ quyết định bit đó
là "0" hay "1".
Về cơ bản, khi DHT22 muốn gửi bit "0", nó sẽ giữ mức điện áp của data-
bus ở mức cao trong 26-28us, sau đó giảm mức điện áp xuống mức thấp và
giữ ở mức này trong 70us. Tương tự, để gửi bit "1", DHT22 sẽ giữ mức điện
áp của data-bus ở mức cao trong 70us, sau đó giảm mức điện áp xuống mức
thấp và giữ ở mức này trong 26-28us.
Cụ thể, dữ liệu truyền từ cảm biến bao gồm 8 bit dữ liệu số nguyên độ
ẩm, 8 bit dữ liệu số thập phân độ ẩm, 8 bit dữ liệu số nguyên nhiệt độ, 8 bit
dữ liệu số thập phân nhiệt độ và 8 bit check-sum.
Quá trình thu thập dữ liệu sẽ mất khoảng hơn 1,7 giây, hoặc trung bình
khoảng 2 giây. Sau khi dữ liệu được thu thập và lưu trữ trong esp32, nó có
thể được hiển thị trên màn hình máy tính của bạn và quá trình đo lại có thể
bắt đầu để cung cấp đo đạc tiếp theo.
3.2.3. Màn hình oled
Màn hình OLED (Organic Light-Emitting Diode) là một loại màn hình
được làm từ các vật liệu hữu cơ. Màn hình OLED có độ mỏng, nhẹ và tiết
kiệm năng lượng hơn so với màn hình LCD truyền thống.
Màn hình OLED thường được sử dụng trong các ứng dụng di động như
điện thoại thông minh, máy tính bảng và đồng hồ thông minh. Nó cũng được
sử dụng trong các thiết bị điện tử gia đình như TV, đèn chiếu sáng và thiết bị
âm thanh.
Có nhiều loại màn hình OLED khác nhau, bao gồm màn hình OLED đơn
sắc, màn hình OLED đa sắc và màn hình OLED cong. Màn hình OLED đơn
sắc chỉ hiển thị một màu duy nhất, trong khi màn hình OLED đa sắc có thể
hiển thị nhiều màu khác nhau. Màn hình OLED cong được thiết kế để có khả
năng uốn cong, điều này giúp nó phù hợp với các thiết kế sản phẩm mới lạ
và độc đáo.Ở đây là màn hình oled đơn sắc
Các ưu điểm của màn hình OLED bao gồm độ tương phản cao, thời gian
đáp ứng nhanh, góc nhìn rộng và tiêu thụ năng lượng thấp hơn so với màn
hình LCD. Tuy nhiên, giá thành của màn hình OLED hiện nay vẫn khá cao
và chưa phổ biến rộng rãi trong các ứng dụng điện tử thông thường.
Thông số kỹ thuật :
 Độ phân giải: 128 x 64 điểm ảnh (128 cột x 64 hàng). Kích thước
màn hình: 0.96 inch (đường chéo).
 Giao diện: Có thể sử dụng giao thức 8-bit 6800/8080-series
parallel, 3/4-wire Serial Peripheral Interface (SPI) hoặc giao thức
I2C (Inter-Integrated Circuit).
 Điện áp hoạt động: 3.3V (VDD) cho logic IC, 7V - 15V (VCC) cho
điều khiển màn hình.
 Điện áp đầu ra cho màn hình OLED: Tối đa 15V.
 Dòng dẫn tối đa cho mỗi hàng chung (Common): 15mA. Dòng
nguồn tối đa cho mỗi đoạn (Segment): 100uA.
 Điều khiển độ tương phản và độ sáng: Có thể điều chỉnh với 256
mức. Bộ nhớ đệm hiển thị: 128 x 64 bit SRAM.
 Hỗ trợ giao diện MCU có thể chọn: 8-bit 6800/8080-series parallel,
3/4-wire SPI, I2C.
 Hỗ trợ chức năng cuộn màn hình liên tục theo chiều ngang và chiều
dọc. Tín hiệu đồng bộ hóa ghi RAM.
 Tần số khung hình và tỷ lệ multiplex có thể lập trình. Đặt lại lại
hàng và cột của màn hình.
 Bộ dao động tích hợp trên chip. Thiết kế chip cho COG & COF.
 Phạm vi nhiệt độ hoạt động rộng: -40°C đến 85°C.
CHÂN MÔ TẢ
GND Chân đất
Một chân nguồn đơn cho tất cả các
VCC đầu vào nguồn.
Tạo ra một tín hiệu đồng hồ chung
SCL cho cả vi điều khiển/microcontroller và
màn hình OLED.
SDA Nhận dữ liệu từ thiết bị điều khiển

Cấu tạo 5 lớp


Substrate: (plastic trong suốt, kính, hoặc lá mỏng) - Substrate hỗ trợ
OLED.
Anode: (trong suốt) Anode loại bỏ electron (thêm "lỗ" electron) khi dòng
điện chảy qua thiết bị.
Organic Layers: Những lớp này được làm từ các phân tử hoặc polymer
hữu cơ.
Conducting Layers: Lớp này được làm từ các phân tử polymer nhựa hữu
cơ dẫn "lỗ" từ anode. Một polymer dẫn được sử dụng trong OLED là
polyaniline.
Emissive Layer : Lớp này được làm từ các phân tử polymer nhựa hữu cơ
khác (khác với lớp dẫn) dẫn electron từ cathode; đây là nơi phát sáng. Một
polymer được sử dụng trong lớp phát quang là polyfluorene.
Cathode: (có thể trong suốt hoặc không tùy thuộc vào loại OLED) -
Cathode tiêm electron khi dòng điện chảy qua thiết bị.
Giải thích: Ống OLED (organic light-emitting diode) là một loại thiết bị
hiển thị sử dụng các lớp hữu cơ để tạo ra ánh sáng. Trong ống OLED, các
lớp hữu cơ được đặt trên một lớp substrate để hỗ trợ thiết bị. Một điện áp
được áp dụng giữa anode và cathode, khiến dòng điện chảy qua thiết bị và đi
qua các lớp hữu cơ. Khi các lỗ và electron tương tác với nhau trong các lớp
dẫn và phát quang, chúng tạo ra ánh sáng. Anode và cathode được làm bằng
các vật liệu dẫn điện khác nhau và có chức năng khác nhau trong thiết bị.
Nguyên lý tạo ra ánh sáng:
Lớp emissive layer (hay còn gọi là lớp phát quang) trong màn hình OLED
là lớp chứa các hạt phát quang, khi đóng điện, lớp này sẽ phát ra ánh sáng.
Lớp này thường được làm từ các hợp chất hữu cơ như polyfluorene hay
polyphenylene vinylene (PPV). Khi áp dụng điện áp, các hạt này sẽ phát ra
photon và tạo ra ánh sáng. Mỗi pixel trên màn hình OLED thường bao gồm
một lớp emissive layer để phát ra ánh sáng cho pixel đó. Lớp emissive layer
quan trọng đối với việc tạo ra các màu sắc trên màn hình OLED và đảm bảo
hiển thị chính xác các thông tin.
Các chất hữu cơ trong lớp phát quang của màn hình OLED có khả năng
phát quang khi được kích thích bởi một điện áp. Khi một điện áp được áp
dụng, các hạt điện tử sẽ được kích thích và chuyển sang trạng thái năng
lượng cao hơn. Khi các hạt điện tử trở về trạng thái năng lượng thấp hơn,
năng lượng tự do bị giải phóng dưới dạng ánh sáng.
Trong màn hình OLED, lớp phát quang bao gồm một số lượng lớn các hạt
phát quang nhỏ, được gọi là phân tử phát quang hoặc tinh thể phát quang.
Khi một điện áp được áp dụng, các hạt phát quang sẽ được kích thích và bắt
đầu phát ra ánh sáng. Vì các hạt phát quang rất nhỏ, ánh sáng phát ra từ
chúng rất tinh tế và đồng đều.
Để tạo ra ánh sáng màu sắc trên màn hình OLED, các hạt phát quang
được thiết kế để phát ra ánh sáng ở một bước sóng cụ thể. Bằng cách sử dụng
các hạt phát quang khác nhau, có thể tạo ra các màu khác nhau trên màn hình
OLED.
Vì các hạt phát quang trong lớp phát quang của màn hình OLED sáng rất
tốt và tiêu thụ ít năng lượng, màn hình OLED có thể tạo ra màu sắc rực rỡ và
tương phản cao với tiêu thụ điện năng thấp hơn so với các loại màn hình
khác.
I2C hoạt động như thế nào để esp32 ghi dữ liệu lên màn hình oled:
 I2C sử dụng 2 đường truyền tín hiệu:
SCL - Serial Clock Line : Tạo xung nhịp đồng hồ do Master phát đi.
SDA - Serial Data Line : Đường truyền nhận dữ liệu.
 Master - esp32
 Slave – oled

 Khung truyền I2C:


Mỗi lần bên Master gửi thông tin là 8 bit và sẽ đợi bên slave phản hồi Đầu
tiên Master sẽ gửi tín hiệu bắt đầu:

Sau đó bên Master sẽ gửi 8 bit gồm 7 bit địa chỉ của slave cần trao đổi
thông tin và 1 bit thông báo muốn đọc(bit 1) hoặc muốn ghi (bit 0).
Tiếp đến bên slave sẽ gửi câu trả lời là bit 0 nếu là bên Master gửi đúng
địa chỉ của nó
Rồi bên nhận thông tin sẽ trả lời ack/nack
Cuối cùng khi kết thúc thì bên Master sẽ gửi yêu cầu stop và dừng lại
bằng cách chuyển lần lượt SCL, SDA từ mức 0 lên mức 1.
3.3. Cách truyền dữ liệu qua http
Esp32 kết nối với dht22 tạm gọi là: SERVE
Esp32 kết nối với oled tạm gọi là :ClIENT
 Mô hình giao thức
HTTP client thiết lập một kết nối TCP đến server. Nếu thiết lập thành
công, client và server sẽ truyền nhận dữ liệu với nhau thông qua kết nối này,
kết nối được thiết lập còn gọi là socket interface bao gồm các thông tin: địa
chỉ IP, loại giao thức giao vận (chính là TCP), và port (mặc định là 80).
Sau khi kết nối thành công, client gửi một HTTP request đến server thông
qua socket interface vừa được thiết lập. Trong gói tin request sẽ chứa đường
dẫn yêu cầu (path name) là /category/internet-of-thing.
Server sẽ nhận và xử lý request từ client thông qua socket, sau đó đóng
gói dữ liệu tương ứng và gửi một HTTP response về cho client. Dữ liệu trả
về sẽ là một file HTML chứa các loại dữ liệu khác nhau như văn bản, hình
ảnh,…
Server đóng kết nối TCP.
Client nhận được dữ liệu phản hồi từ server và đóng kết nối TCP.
3.4. Giả lập trên wokwi

#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <HTTPClient.h>
#include <Wire.h>
#include "DHT.h"
#include "RTClib.h"
#include <Adafruit_SSD1306.h>

//-----------------------------------------------------------//

const int DHTPIN = 15; //chân cảm biến DHT22


const int Buzzer = 23; //chân buzzer
//-----------------------------------------------------------//

const char* ssid = "Wokwi-GUEST";


const char* password = "";
// REPLACE with your Domain name and URL path or IP address with path
const char* serverName =
"http://esp-weather-station.000webhostapp.com/esp-post-data.php";
String apiKeyValue = "tPmAT5Ab3j7F9";
String sensorName = "BME280";
String sensorLocation = "Office";
#define SEALEVELPRESSURE_HPA (1013.25)

//define RTC
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"};

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321


DHT dht(DHTPIN, DHTTYPE);
float Temperature, Humidity;
//WiFiClient client;
//Oled DS1306
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset
pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for
128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire,
OLED_RESET);
//-----------------------------------------------------------//

void setup() {
Serial.begin(115200);
//khai báo DHT22
Serial.println(F("DHTxx test!"));
dht.begin();

//khai báo buzzer


pinMode(Buzzer, OUTPUT);
// Khai bao RTC
#ifndef ESP8266
while (!Serial); // wait for serial port to connect. Needed for native
USB
#endif

if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1) delay(10);
}

if (rtc.lostPower()) {
Serial.println("RTC lost power, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// January 21, 2014 at 3am you would call:
//rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// January 21, 2014 at 3am you would call:
//rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
//Khởi động màn hình oled
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
}

display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0,0);
display.println("Connecting to WiFi...");
display.display();
delay(1000);
// Khởi động kết nối wifi
WiFi.begin(ssid, password);
Serial.println("Connecting");
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());
}

void dht_sensor();
void RTC_function();
void displayOled();
void getHttp();

//-----------------------------------------------------------//

void loop() {
// Lấy thời gian
RTC_function();
//Đọc giá trị từ cảm biến dht22
dht_sensor();

// Control LED based on temperature and humidity

getHttp();
displayOled();
}
//---------------------//

//hàm đọc dữ liệu từ dht22


void dht_sensor()
{
Humidity = dht.readHumidity();
// Read temperature as Celsius (the default)
Temperature = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);

// Check if any reads failed and exit early (to try again).
if (isnan(Humidity) || isnan(Temperature) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}

// Compute heat index in Fahrenheit (the default)


float hif = dht.computeHeatIndex(f, Humidity);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(Temperature, Humidity, false);

Serial.print(F("Humidity: "));
Serial.print(Humidity);
Serial.print(F("% Temperature: "));
Serial.print(Temperature);
Serial.print(F("°C "));

void RTC_function()
{
DateTime now = rtc.now();

Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}
void displayOled()
{
display.clearDisplay();
display.setCursor(0,0);
display.println("H: " + String(Humidity) +" %");
display.setCursor(65,0);
display.println("T: " + String(Temperature)+" C");
display.setCursor(0,20);
display.display();
}

void getHttp() {
//Check WiFi connection status
if(WiFi.status()== WL_CONNECTED){
String url = "http://esp-weather-station.000webhostapp.com/esp-post-
data.php?api_key=" + apiKeyValue + "&sensor=" + sensorName
+ "&location=" + sensorLocation + "&value1=" +
String(Humidity)
+ "&value2=" + String(Temperature) ;
HTTPClient http;
http.begin(url);

int httpCode = http.GET();


if (httpCode == HTTP_CODE_OK) {
Serial.println("Data pushed successfully");
} else {
Serial.println("Push error: " + String(httpCode));
}

http.end();
delay(2000);
}
}
CHƯƠNG 4 TÍCH HỢP FIREBASE
4.1. Đặc tả hệ thống
Dữ liệu IOT được mô phỏng trên Wokwi theo ảnh dưới đây:

Hình 15 Sơ đồ luồng

Nguyên lý hoạt động


Esp32 kết nối với dht22 tạm gọi là: SERVE
Esp32 kết nối với oled tạm gọi là :ClIENT
 Mô hình giao thức

HTTP client thiết lập một kết nối TCP đến server. Nếu thiết lập thành
công, client và server sẽ truyền nhận dữ liệu với nhau thông qua kết nối này,
kết nối được thiết lập còn gọi là socket interface bao gồm các thông tin: địa
chỉ IP, loại giao thức giao vận (chính là TCP), và port (mặc định là 80).
Sau khi kết nối thành công, client gửi một HTTP request đến server thông
qua socket interface vừa được thiết lập. Trong gói tin request sẽ chứa đường
dẫn yêu cầu (path name) là /category/internet-of-thing.
Server sẽ nhận và xử lý request từ client thông qua socket, sau đó đóng
gói dữ liệu tương ứng và gửi một HTTP response về cho client. Dữ liệu trả
về sẽ là một file HTML chứa các loại dữ liệu khác nhau như văn bản, hình
ảnh,…
Server đóng kết nối TCP.
Client nhận được dữ liệu phản hồi từ server và đóng kết nối TCP.
4.2. Sơ đồ đấu nối

Hình 16 Sơ đồ đấu nối

 ESP32
 Cảm biến nhiệt độ, độ ẩm DHT22
 Màn hình Oled
 Module thời gian
4.3. Kết nối Firebase
Sử dụng Realtime Database trong Google Cloud Firebase
Hình 17 Realtime Database

Hình 18 Rule User Config

import time
import machine
from machine import Pin
import dht
import network
import ujson
import requests

# Kết nối Wifi


print("Connecting to WiFi", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('Wokwi-GUEST', '')
while not sta_if.isconnected():
print(".", end="")
time.sleep(0.1)
print(" Connected!")

sensor = dht.DHT22(Pin(15))

# Host và auth liên kết với firebase


FIREBASE_HOST = "https://iot-project-01-d78c8.firebaseio.com/"
FIREBASE_AUTH = "IeH9Rtxbrha3A2apkYjDvvbc920Z8FtvWfuU4nqc"

# Firebase database path


FIREBASE_PATH = "/sensor_data.json"

# Khởi tạo các giá trị nhiệt độ và độ ẩm trước khi đọc từ cảm biến
prev_temperature = 0
prev_humidity = 0

# Chỉ cập nhật dữ liệu trên Firebase nếu giá trị thay đổi
def update_firebase_data(temperature, humidity):
global prev_temperature, prev_humidity

# Kiểm tra xem giá trị có thay đổi không


if temperature != prev_temperature or humidity != prev_humidity:
data = {"temperature": temperature, "humidity": humidity}
url = "{}{}?auth={}".format(FIREBASE_HOST, FIREBASE_PATH, FIREBASE_AUTH)
try:
# Cập nhật dữ liệu trên Firebase
response_put = requests.put(url, json=data)
print("Firebase response (PUT):", response_put.text)

# Cập nhật các giá trị trước đó


prev_temperature = temperature
prev_humidity = humidity

except Exception as e:
print("Error updating or fetching data from Firebase:", e)

while True:
try:
# Đọc dữ liệu từ cảm biến
sensor.measure()

# Lấy giá trị nhiệt độ và độ ẩm


temperature = sensor.temperature()
humidity = sensor.humidity()

# In giá trị nhiệt độ và độ ẩm


print("Temperature: {}C".format(temperature))
print("Humidity: {}%".format(humidity))
print()

time.sleep(1)

# Cập nhật giá trị lên Firebase và nhận giá trị sau khi cập nhật từ
Firebase
update_firebase_data(temperature, humidity)

except Exception as e:
print("Error reading sensor data: {}".format(e))
time.sleep(5)
KẾT LUẬN
Trong bối cảnh ngày càng phát triển của công nghệ IoT, Google Cloud
IoT đã chứng tỏ mình là một nền tảng mạnh mẽ và linh hoạt, cung cấp nhiều
giải pháp hiệu quả cho việc quản lý và phân tích dữ liệu từ các thiết bị kết
nối. Với các công cụ như Google Cloud IoT Core, Google Cloud Pub/Sub,
và BigQuery, doanh nghiệp có thể dễ dàng thu thập, xử lý và phân tích dữ
liệu theo thời gian thực, từ đó đưa ra các quyết định kinh doanh thông minh
và kịp thời.
Nền tảng Google Cloud IoT không chỉ hỗ trợ đa dạng các giao thức kết
nối và thiết bị, mà còn cung cấp khả năng mở rộng, bảo mật và tích hợp
mạnh mẽ với các dịch vụ khác của Google Cloud. Điều này giúp doanh
nghiệp tiết kiệm thời gian và nguồn lực trong việc triển khai và quản lý các
hệ thống IoT phức tạp.
Tuy nhiên, để tận dụng tối đa tiềm năng của Google Cloud IoT, các doanh
nghiệp cần có chiến lược rõ ràng, đội ngũ kỹ thuật có kỹ năng và hiểu biết về
IoT, cùng với sự đầu tư hợp lý vào hạ tầng và bảo mật. Ngoài ra, việc liên
tục cập nhật và nắm bắt các xu hướng công nghệ mới cũng là yếu tố quan
trọng giúp duy trì và nâng cao hiệu quả hoạt động của hệ thống IoT.
Tóm lại, Google Cloud IoT là một giải pháp toàn diện và tiên tiến, đáp
ứng được các nhu cầu đa dạng của các doanh nghiệp trong kỷ nguyên số hóa
hiện nay. Với sự hỗ trợ của nền tảng này, các tổ chức có thể mở rộng khả
năng giám sát, quản lý và tối ưu hóa hoạt động, từ đó tạo ra giá trị gia tăng
và cạnh tranh bền vững trên thị trường.

You might also like