You are on page 1of 47

Chương 1.

TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY VÀ CHUẨN TRUYỀN THÔNG
LORA

1.1. Giới thiệu chung

1.1.1. Mạng cảm biến không dây là gì?

Mạng cảm biến không dây (Wireless Sensor Network – WSN), là mạng liên kết các thiết bị tự
vận hành, liên kết với nhau bằng kết nối sóng vô tuyến (RF connection) trang bị cảm biến (sensor) để
giám sát các tham số của một môi trường vật lý.
Trong WSN các node mạng thường là các thiết bị đơn giản, nhỏ gọn, giá thành thấp, có số lượng
lớn, thường được phân bố trên một diện tích rộng, sử dụng nguồn năng lượng hạn chế (pin), có thời gian
hoạt động lâu dài (vài tháng đến vài năm) và có thể hoạt động trong môi trường khắc nghiệt (chất độc, ô
nhiễm, nhiệt độ cao, v.v).
Các node mạng thường có chức năng sensing (sensor node): cảm ứng, quan sát môi trường xung
quanh như: nhiệt độ, độ ẩm, ánh sáng, âm thanh, độ rung, độ bức xạ, độ ô nhiễm, v.v., theo dõi hay định
vị các mục tiêu cố định hoặc di động. Các node giao tiếp với nhau qua mạng vô tuyến không dây phi thể
thức (Wireless Ad-hoc network) và truyền dữ liệu về trung tâm xử lý (base station) bằng kỹ thuật truyền
đa chặng (multi-hop).

Mô hình đơn giản của mạng cảm biến không dây.


Mô hình đơn giản của WSN có thể được hình dung như hình 1.1. Trong đó, các nút cảm biến
được phân bố trong một trường cảm biến. Mỗi một nút cảm biến có khả năng thu thập dữ liệu trong
trường cảm biến. Các nút giao tiếp với nhau qua mạng vô tuyến ad-hoc và truyền dữ liệu về trung tâm
xử lý bằng kỹ thuật truyền đa chặng.
1.1.2. Các ứng dụng của mạng cảm biến không dây
Cảm biến thường được chia thành nhiều nhóm chức năng như: Cơ, hóa, nhiệt, điện, từ, sinh học,
quang, chất lỏng, sóng siêu âm... có thể được đưa ra bên ngoài môi trường độc hại, nhiệt độ cao, nhiễu
lớn, môi trường hóa chất độc hại, trong hệ thống robot tự động hay trong hệ thống nhà xưởng sản
xuất…Nhờ đó, mà mạng cảm biến được ứng dụng một cách rộng rãi trong nhiều lĩnh vực của cuộc sống.
Các ứng dụng điển hình của mạng cảm biến không dây bao gồm thu thập dữ liệu, theo dõi, giám sát và y
học…

1.2. Kiến trúc ngăn xếp giao thức mạng cảm biến không dây
Kiến trúc ngăn xếp giao thức áp dụng cho WSN được trình bày trong hình 1.2. Kiến trúc này bao
gồm các lớp và các mặt phẳng quản lý. Các mặt phẳng quản lý này làm cho các nút có thể làm việc
cùng nhau theo cách có hiệu quả nhất, định tuyến dữ liệu trong mạng cảm biến di động và chia sẻ tài
nguyên giữa các nút cảm biến.

Kiến trúc giao thức mạng cảm biến


• Mặt phẳng quản lý công suất: Quản lý cách cảm biến sử dụng nguồn năng lượng của nó.
Ví dụ : Nút cảm biến có thể tắt bộ thu sau khi nhận được một bản tin. Khi mức công suất của
nút cảm biến thấp, nó sẽ quảng bá sang các nút cảm biến lân cận để thông báo rằng mức năng
lượng của nó thấp và nó không thể tham gia vào quá trình định tuyến.
• Mặt phẳng quản lý di động: Có nhiệm vụ phát hiện và đăng ký sự chuyển động của các nút
cảm biến. Các nút cảm biến giữ việc theo dõi xem nút nào là nút hàng xóm của chúng.
• Mặt phẳng quản lý: Cân bằng và sắp xếp nhiệm vụ cảm biến giữa các nút trong một vùng
quan tâm. Không phải tất cả các nút cảm biến đều thực hiện nhiệm vụ cảm nhận ở cùng một
thời điểm.
• Lớp vật lý

Lớp vật lý có trách nhiệm lựa chọn tần số, tạo tần số sóng mạng, phát hiện tín hiệu và điều chế dữ
liệu.

• Lớp liên kết dữ liệu

Lớp liên kết dữ liệu chịu trách nhiệm ghép các dòng dữ liệu, phát hiện khung dữ liệu, điều khiển
lỗi và điều khiển truy nhập kênh truyền. Nó đảm bảo sự tin cậy của các kết nối điểm - điểm và điểm - đa
điểm trong mạng.

• Lớp mạng

Các nút cảm biến nằm rải rác với mật độ cao trong một trường cảm biến. Lớp mạng của các mạng
cảm biến thường được thiết kế theo quy tắc sau đây:

▪ Vấn đề hiệu quả năng lượng luôn là vấn đề được quan tâm nhất.

▪ Các mạng cảm biến chủ yếu là tập trung dữ liệu.

▪ Ngoài việc định tuyến, các nút chuyển tiếp có thể tổng hợp các dữ liệu từ các nút lân cận thông
qua việc xử lý cục bộ.

• Lớp giao vận

Sự phát triển của các giao thức lớp giao vận là một nhiệm vụ đầy thách thức bởi vì các nút cảm
biến bị ảnh hưởng bởi những hạn chế về phần cứng như là năng lượng và bộ nhớ hạn chế. Do đó, mỗi
nút cảm biến không thể lưu trữ một lượng lớn dữ liệu như một máy chủ trên mạng Internet.

• Lớp ứng dụng

Lớp ứng dụng bao gồm các ứng dụng chính cũng như một số chức năng quản lý. Ngoài các
chương trình ứng dụng cụ thể cho mỗi ứng dụng thì các chức năng quản lý và xử lý truy vấn cũng nằm ở
lớp này.
1.3. Tổng quan về Internet kết nối vạn vật.

1.3.1. Internet of Things là gì?

Mạng lưới vạn vật kết nối Internet hoặc là Mạng lưới thiết bị kết nối Internet viết tắt là IoT (tiếng
Anh: Internet of Things) là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp một
định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy
nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính. IoT đã phát
triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet. Nói đơn giản là một tập
hợp các thiết bị có khả năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện một
công việc nào đó.

Hình ảnh mô tả Internet of Things

1.3.2. Internet of Things là tương lai của thế giới

Ngay sau khi nhận được sự chú ý của cộng đồng, IoT đã cho thấy tiềm năng của mình với những
số liệu đáng kinh ngạc. Cisco, nhà cung cấp giải pháp và thiết bị mạng hàng đầu hiện nay dự báo: Đến
năm 2020, sẽ có khoảng 50 tỷ đồ vật kết nối .

Và không thể không kể tới một thương hiệu Việt Nam là Bkav cũng đã đạt được những thành tựu
đáng ghi nhận về Internet of Things. Hệ thống nhà thông minh SmartHome của Bkav là một tổ hợp các
thiết bị thông minh trong 1 ngôi nhà, đều được kết nối Internet và có thể tự động điều chỉnh cũng như
điều khiển qua smartphone.

Bên cạnh đó, các ông lớn như Google, Apple, Samsung, Microsoft cũng không hề giấu diếm ý
định xâm nhập thị trường này, hứa hẹn một cuộc cạnh tranh mạnh mẽ trong thời gian tới đây, đưa kỷ
nguyên IoT đến sớm hơn với mọi người.

1.4. Một vài mô hình ứng dụng về Internet of Things

1.4.1. Lưới điện thông minh

Lưới điện thông minh (còn gọi là hệ thống điện thông minh) là hệ thống điện có sử dụng các công
nghệ thông tin và truyền thông để tối ưu việc truyền dẫn, phân phối điện năng giữa nhà sản xuất và hộ
tiêu thụ, hợp nhất cơ sở hạ tầng điện với cơ sở hạ tầng thông tin liên lạc. Có thể coi hệ thống điện thông
minh gồm có 2 lớp: lớp 1 là hệ thống điện thông thường và bên trên nó là lớp 2- hệ thống thông tin,
truyền thông, đo lường.

Mô hình hệ thống lưới điện thông minh.

1.4.2. Nhà thông minh

Nhà thông minh (Smart Home) là một ngôi nhà/căn hộ được trang bị hệ thống tự động tiên tiến
dành cho điều khiển đèn chiếu sáng, nhiệt độ, truyền thông đa phương tiện, an ninh, rèm cửa, cửa và
nhiều tính năng khác nhằm mục đích làm cho cuộc sống ngày càng tiện nghi, an toàn và góp phần sử
dụng hợp lý các nguồn tài nguyên.

Hình 1.5. Mô hình hệ thống nhà thông minh.

1.5. Tìm hiểu về Lora:

LoRa là viết tắt của Long Range Radio được nghiên cứu và phát triển bởi Cycleo và sau này được mua
lại bởi công ty Semtech năm 2012. Với công nghệ này, chúng ta có thể truyền dữ liệu với khoảng cách
lên hàng km mà không cần các mạch khuếch đại công suất; từ đó giúp tiết kiệm năng lượng tiêu thụ khi
truyền/nhận dữ liệu. Do đó, LoRa có thể được áp dụng rộng rãi trong các ứng dụng thu thập dữ liệu như
sensor network trong đó các sensor node có thể gửi giá trị đo đạc về trung tâm cách xa hàng km và có
thể hoạt động với battery trong thời gian dài trước khi cần thay pin.

Với tầm xa ,nền tảng không dây công suất thấp là sự lựa chọn công nghệ phổ biến hiện hành để xây
dựng mạng IoT trên thế giới ứng dụng IoT thông minh đã cải thiện theo cách tương tác và giải quết giải
quyết một số thách thức lớn nhất mà các thành phố và cộng đồng đang phải đối mặt :biến đổi khí hậu
,kiểm soát ô nhiễm cảnh báo thiên tai và cứu mạng .Kinh doanh cũng được hưởng lợi thông qua cũng
như giảm được chi phí

Đây là RF công nghệ không dây được tích hợp vào xe ô tô, đèn đường , sản xuất thiết bị , đồ gia dụng
thiết bị đeo được bất cứ điều gì , thực sự . Công nghệ Lora đang làm thế giới ta một hành tinh thông
minh

Dưới đây là hình ảnh để bạn hiểu rõ nét về Lora:

Nguyên lý hoạt động của LoRa ra sao?

LoRa sử dụng kỹ thuật điều chế gọi là Chirp Spread Spectrum. Có thể hiểu nôm na nguyên lý này là dữ
liệu sẽ được băm bằng các xung cao tần để tạo ra tín hiệu có dãy tần số cao hơn tần số của dữ liệu gốc
(cái này gọi là chipped); sau đó tín hiệu cao tần này tiếp tục được mã hoá theo các chuỗi chirp signal (là
các tín hiệu hình sin có tần số thay đổi theo thời gian; có 2 loại chirp signal là up-chirp có tần số tăng
theo thời gian và down-chirp có tần số giảm theo thời gian; và việc mã hoá theo nguyên tắc bit 1 sẽ sử
dụng up-chirp, và bit 0 sẽ sử dụng down-chirp) trước khi truyền ra anten để gửi đi.

Theo Semtech công bố thì nguyên lý này giúp giảm độ phức tạp và độ chính xác cần thiết của mạch
nhận để có thể giải mã và điều chế lại dữ liệu; hơn nữa LoRa không cần công suất phát lớn mà vẫn có
thể truyền xa vì tín hiệu Lora có thể được nhận ở khoảng cách xa ngay cả độ mạnh tín hiệu thấp hơn cả
nhiễu môi trường xung quanh.
Băng tần làm việc của LoRa từ 430MHz đến 915MHz cho từng khu vực khác nhau trên thế giới:

430MHz cho châu Á


780MHz cho Trung Quốc
433MHz hoặc 866MHz cho châu Âu
915MHz cho USA
Nhờ sử dụng chirp signal mà các tín hiệu LoRa với các chirp rate khác nhau có thể hoạt động trong cùng
1 khu vực mà không gây nhiễu cho nhau. Điều này cho phép nhiều thiết bị LoRa có thể trao đổi dữ liệu
trên nhiều kênh đồng thời (mỗi kênh cho 1 chirprate)

Khi nhắc tới Lora ta không thể không nhắc tới LoraWan;

Vậy LoraWan là gì?

1.6.Chuẩn truyền thông


LoRa là viết tắt của Long Range Radio được nghiên cứu và phát triển bởi Cycleo và sau này được
mua lại bởi công ty Semtech năm 2012. Với công nghệ này, chúng ta có thể truyền dữ liệu với khoảng
cách lên hàng km mà không cần các mạch khuếch đại công suất; từ đó giúp tiết kiệm năng lượng tiêu thụ
khi truyền/nhận dữ liệu. Do đó, LoRa có thể được áp dụng rộng rãi trong các ứng dụng thu thập dữ liệu
như sensor network trong đó các sensor node có thể gửi giá trị đo đạc về trung tâm cách xa hàng km và
có thể hoạt động trong thời gian dài trước khi cần thay pin.

Một sự đổi mới của Semtech, LoRa Technology mang lại một sự pha trộn rất hấp dẫn của tầm xa,
tiêu thụ năng lượng thấp và truyền dữ liệu an toàn. Các mạng công cộng và mạng riêng sử dụng công
nghệ này có thể cung cấp phạm vi phủ sóng lớn hơn so với các mạng di động hiện có. Dễ dàng kết nối
với cơ sở hạ tầng hiện có và cung cấp một giải pháp để phục vụ các ứng dụng IoT sử dụng pin.

LoRa là lớp vật lý hoặc điều chế không dây được sử dụng để tạo ra liên kết truyền thông tầm xa.
Nhiều hệ thống không dây kế thừa sử dụng điều chế chuyển đổi độ lệch tần số (FSK) như lớp vật lý bởi
vì nó là một điều chế rất hiệu quả để đạt được công suất thấp. LoRa dựa trên điều chế phổ tán xạ chirp,
duy trì các đặc tính năng lượng thấp tương tự như điều chế FSK nhưng làm tăng đáng kể phạm vi truyền
thông.

LoRaWan là một giao thức được xây dựng dựa trên công nghệ LoRa do LoRa Alliance phát triển nó sử
dụng phổ vô tuyến trong các ngành công nghiệp khoa học y khoa (ISM) cho phép công suất thấp truyền
thông diện rộng dữa các cảm biến từ xa và gateways kết nối với mạng cách tiếp cận dựa trên tiêu chuẩn
này để xây dựng một LPWAN cho phép thiết lập nhanh chóng của cộng cộng hoặc tư nhân mọi nơi sử
dụng phần cứng và phần mềm đó là hai chiều an toàn tương thích và di động cung cấp định hoá chính
xác và hoạt động theo cách bạn mong đợi các đặc điểm kỹ thuật và miễn phí cho bạn tải về LoRa
Alliance.Wesite từ hôm nay

LoRaWan hoạt động như thế nào


Cấu trúc LoRaWAN network thì thường được đặt trong mô hình star-of-stars mà Gateways là một cầu
nối được ẩn đi chuyển tiếp các message giữ thiết bị đầu cuối với server trung tâm network ở backend.
Các Gateway được kết nối với server của network thông qua kết nối IP chuẩn trong khi thiết bị đầu cuối
dùng giao tiếp không dây single-hop đến một hoặc nhiều gateway.

Một single LoRaWAN Gateway bao phủ hơn 10Km và tương đối rẻ. Với những lợi ích của khoảng cách
xa của LoRaWAN, The Things Network bao phủ thành phố Amsterdam với chỉ 10 gateways và mất
khoản 1200 dollar.
Vì LoRaWAN đang được thiết kế như một cách mà nó dùng để tạo ra một mạng phủ rộng toàn quốc và
giúp ta xây dựng các cơ sở hạ tầng quan trọng của Internet of Things, nên bảo mật là điểm đang lưu tâm.
LoRA Alliance đã cố để tạo ra LoRaWAN rất an toàn bằng các thêm 3 lớp bảo mật khác nhau:

Network key riêng để đảm bảo độ bảo mật trên lớp network
Application key riêng để đảm bảo 2 đầu của của lớp ứng dụng.
Key đặt biệt của thiết bị

Mặc dù có những lựa cho khác cho LPWAN như Sigfox, LoRa này dựa trên LPWAN có vẻ đầy hứa hẹn
và phổ biến hơn.

Ứng dụng của LoraWAN:

▪ Smart city

▪ Wireless sensor network

▪ Smart home

▪ Internet Of Thing

▪ Hệ thống nông nghiệp thông minh

1.6.2. Cấu trúc của mạng LoraWAN

Một thiết bị hỗ trợ LoRaWan sẽ có cấu trúc software như sau:

Các cấu trúc của Lora

Thiết bị đầu cuối định hướng hai chiều (Class A): Thiết bị đầu cuối của lớp A cho phép truyền
thông hai chiều, theo đó mỗi thiết bị truyền dẫn đường lên được theo sau bởi hai cửa sổ thu nhận đường
xuống ngắn. Các khe truyền dẫn được lên kế hoạch bởi thiết bị đầu cuối dựa trên nhu cầu truyền thông
của riêng mình với một biến thể nhỏ dựa trên cơ sở thời gian ngẫu nhiên (ALOHA-loại giao thức). Hoạt
động của Class A là hệ thống thiết bị đầu cuối thấp nhất cho các ứng dụng mà chỉ cần truyền thông
đường xuống từ máy chủ ngay sau khi thiết bị đầu cuối gửi một đường truyền lên. Liên lạc đường xuống
từ máy chủ tại bất kỳ thời gian nào khác sẽ phải chờ cho đến khi đường lên kế tiếp.

Thiết bị đầu cuối định hướng hai chiều với các khe tiếp nhận theo lịch trình (Lớp B): Ngoài các
cửa sổ nhận ngẫu nhiên Class A, các thiết bị lớp B mở các cửa sổ nhận thêm vào các thời gian theo lịch.
Để thiết bị đầu cuối mở cửa sổ nhận vào đúng thời gian, nó sẽ nhận được chỉ dẫn đồng bộ hóa thời gian
từ gateway. Điều này cho phép máy chủ biết khi thiết bị đầu cuối đang nghe.

Thiết bị đầu cuối định hướng hai chiều với khe tiếp nhận cực đại (Class C): Thiết bị đầu cuối của
Class C gần như liên tục mở các cửa sổ nhận, chỉ đóng khi truyền.

Các lớp của LoraWAN

Trong cấu trúc này thì LoraWan bao gồm Lora Mac (Class A, Class B, Class C) và hoạt động dựa
trên lớp PHY là chip Lora. Ở mỗi vùng khác nhau trên thế giới thì thiết bị LoraWan phải cấu hình cho
chip Lora hoạt động ở dãy băng tần cho phép như 433Mhz, 915MHz, v.v..

1.6.3. Kiến trúc LoraWAN

Các thiết bị LoRaWan kết nối với nhau theo mô hình Star trong đó các thiết bị node sẽ gửi dữ liệu
đến các thiết bị Gateway để từ đó sẽ gửi lên server và thực hiện xử lý dữ liệu trên server
Kiến trúc mạng Lora.

Do đó trong 1 mạng LoRaWan sẽ có 2 loại thiết bị:

Device node: là các thiết bị cảm biến, hoặc các thiết bị giám sát được lắp đặt tại các vị trí làm việc
ở xa để lấy và gửi dữ liệu về các thiết bị trung tâm. Có 3 loại device node là Class A, Class B và Class C

Gateway: là các thiết bị trung tâm sẽ thu thập dữ liệu từ các device node và gửi lên 1 server trung
tâm để xử lý dữ liệu. Các thiết bị Gateway thường sẽ được đặt tại 1 vị trí có nguồn cung cấp và có các
kết nối network như Wifi, LAN, GSM để có thể gửi dữ liệu lên server.

1.6.4. Điều khiển truy cập theo kênh truyền

Cấu trúc LoraWAN network thì thường được đặt trong mô hình star-of-stars mà Gateways là một
cầu nối được ẩn đi chuyển tiếp các message giữa thiết bị đầu cuối với server trung tâm network ở
backend. Các Gateway được kết nối với server của network thông qua kết nối IP chuẩn trong khi thiết bị
đầu cuối dùng giao tiếp không dây single-hop đến một hoặc nhiều gateway.
Lora Connect.

1.6.5. Nguyên lý hoạt động của LoRa

LoRa sử dụng kỹ thuật điều chế gọi là Chirp Spread Spectrum. Có thể hiểu nôm na nguyên lý này
là dữ liệu sẽ được băm bằng các xung cao tần để tạo ra tín hiệu có dãy tần số cao hơn tần số của dữ liệu
gốc (cái này gọi là chipped); sau đó tín hiệu cao tần này tiếp tục được mã hoá theo các chuỗi chirp signal
(là các tín hiệu hình sin có tần số thay đổi theo thời gian; có 2 loại chirp signal là up-chirp có tần số tăng
theo thời gian và down-chirp có tần số giảm theo thời gian; và việc mã hoá theo nguyên tắc bit 1 sẽ sử
dụng up-chirp, và bit 0 sẽ sử dụng down-chirp) trước khi truyền ra anten để gửi đi.

Nhờ sử dụng chirp signal mà các tín hiệu LoRa với các chirp rate khác nhau có thể hoạt động
trong cùng 1 khu vực mà không gây nhiễu cho nhau. Điều này cho phép nhiều thiết bị LoRa có thể trao
đổi dữ liệu trên nhiều kênh đồng thời (mỗi kênh cho 1 chirprate)

Radio packet của LoRa như hình sau:

Radio packet

- Các dữ liệu trong 1 radio packet của LoRa, bao gồm:

Preamble: Là chuỗi binary để bộ nhận detect được tín hiệu của LoRa packet trong không khí.

Header: chứa thông tin về size của Payload cũng như có PayloadCRC hay không. Giá trị của
Header cũng được check CRC kèm theo.

Payload: là dữ liệu ứng dụng truyền qua LoRa.

Payload: giá trị CRC của Payload. Nếu có PayloadCRC, LoRa chip sẽ tự kiểm tra dữ liệu trong
Payload và báo lên nếu CRC OK hay không.
CHƯƠNG 2. THIẾT KẾ PHẦN CỨNG

2.1.Kit Arduino Uno R3.

2.1.1.Giới thiệu tổng quan

➢ Tổng quan.

Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng
như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của Arduino là môi trường
phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh
chóng ngay cả với người ít am hiểu về điện tử và lập trình. Và điều làm nên hiện tượng Arduino
chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm.
Arduino Uno là sử dụng chip Atmega328. Nó có 14 chân digital I/O, 6 chân đầu vào (input) analog,
thạch anh dao động 16Mhz. Một số thông số kỹ thuật như sau :

Chip ATmega328
Điện áp cấp nguồn 5V
Điện áp đầu vào (input) (kiến 7-12V
nghị )

Điện áp đầu vào(giới hạn) 6-20V


Số chân Digital I/O 14 (có 6 chân điều chế độ rộng xung PWM)
Số chân Analog (Input ) 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32KB (ATmega328) với 0.5KB sử dụng
bootloader

SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Xung nhịp 16 MHz
➢ Sơ đồ chân của Arduino.

Arduino Uno.

a) USB (1).

Arduino sử dụng cáp USB để giao tiếp với máy tính. Thông qua cáp USB chúng ta có
thể Upload chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho
Arduino.
b) Nguồn ( 2 và 3 ).

Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoài thông qua
jack cắm 2.1mm ( cực dương ở giửa ) hoặc có thể sử dụng 2 chân Vin và GND để cấp
nguồn cho Arduino.
Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 volt. Chúng ta có thể cấp một
áp lớn hơn tuy nhiên chân 5V sẽ có mực điện áp lớn hơn 5 volt. Và nếu sử dụng nguồn
lớn hơn 12 volt thì sẽ có hiện tượng nóng và làm hỏng bo mạch. Khuyết cáo các bạn nên
dùng nguồn ổn định là 5 đến dưới 12 volt.
Chân 5V và chân 3.3V (Output voltage) : các chân này dùng để lấy nguồn ra từ nguồn mà
chúng ta đã cung cấp cho Arduino. Lưu ý : không được cấp nguồn vào các chân này vì
sẽ làm hỏng Arduino.
GND: chân mass.

c) Chip Atmega328.

Chip Atmega328 Có 32K bộ nhớ flash trong đó 0.5k sử dụng cho bootloader. Ngoài ra
còn có 2K SRAM, 1K EEPROM.
d) Input và Output ( 4, 5 và 6).

Arduino Uno có 14 chân digital với chức năng input và output sử dụng các hàm
pinMode(), digitalWrite() và digitalRead() để điều khiển các chân này tôi sẽ đề cập
chúng ở các phần sau.

Cũng trên 14 chân digital này chúng ta còn một số chân chức năng đó là:
Serial : chân 0 (Rx ), chân 1 ( Tx). Hai chân này dùng để truyền (Tx) và nhận (Rx) dữ
liêu nối tiếp TTL. Chúng ta có thể sử dụng nó để giao tiếp với cổng COM của một số
thiết bị hoặc các linh kiện có chuẩn giao tiếp nối tiếp.
PWM (pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bo mạch có dấu “~” là
các chân PWM chúng ta có thể sử dụng nó để điều khiển tốc độ động cơ, độ sáng của
đèn…
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này hỗ trợ giao tiếp theo
chuẩn SPI.
I2C: Arduino hỗ trợ giao tiếp theo chuẩn I2C. Các chân A4 (SDA) và A5 (SCL) cho
phép chúng tao giao tiếp giửa Arduino với các linh kiện có chuẩn giao tiếp là I2C.
e) Reset (7): dùng để reset Arduino.

2.1.2. Cài đặt chương trình Arduino IDE và Driver cho Arduino

➢ Cài đặt chương trình Arduino IDE

Các bạn truy cập vào trang web http://arduino.cc/en/Main/Software và tải về chương
trình Arduino IDE phù hợp với hệ điều hành của máy mình bao gồm Windown, Mac OS
hay Linux. Đối với Windown có bản cài đặt (.exe) và bản Zip, đối với Zip thì chỉ cần
giải nén và chạy chương trình không cần cài đặt.
Sau khi cài đặt xong thì giao diện chương trình như sau:

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 17
Arduino IDE

➢ Cài đặt Driver


Sử dụng cáp USB kết nối Arduino với máy tính, lúc này bạn sẽ thấy đèn led power của
bo sáng. Máy tính sẽ nhận dạng thiết bị và bạn sẽ nhận được thông báo:
“Device driver software was not successfully installed”

Driver Software Installation.

Bây giờ bạn click vào Start Menu chọn Control Panel kế đến chúng ta chọn System and
Security, click System và sau đó chọn Device Manager.

Device Manager.

Chúng ta sẽ thấy cảnh báo màu vàng thiếu driver trên Arduino. Click chuột phải trên
Arduino Uno icon sau đó chọn “Update Driver Software”

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 18
Right click và chọn ”Update Driver

Software” Chọn “Browse my computer for driver software”.

Click chọn “Browse my computer for driver software”


Chọn đường dẫn tới folder “driver” nơi mà phần mềm Arduino được lưu trữ.

Click “Next” Windown tự động cài đặt driver, qua trình cài đặt driver hoàn tất.
➢ Arduino IDE
Arduino IDE là nơi để soạn thảo code, kiểm tra lỗi và upload code cho arduino

Arduino IDE.

a) Arduino Toolbar: có một số button và chức năng của chúng như sau :

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 19
Arduino Toolbar.
➢ Verify : kiểm tra code có lỗi hay không
➢ Upload: nạp code đang soạn thảo vào Arduino
➢ New, Open, Save : Tạo mới, mở và Save sketch
➢ Serial Monitor : Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên

máy tính
b) Arduino IDE Menu:

IDE Menu
➢ File menu:

File menu.
Trong file menu chúng ta quan tâm tới mục Examples đây là nơi chứa code mẫu ví dụ

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 20
như: cách sử dụng các chân digital, analog, sensor …

Click Examples.
➢ Edit menu:

Edit menu

➢ Sketch menu

Sketch menu

Trong Sketch menu :

✓ Verify/ Compile : chức năng kiểm tra lỗi code.


✓ Show Sketch Folder : hiển thị nơi code được lưu.
✓ Add File : thêm vào một Tap code mới.
✓ Import Library : thêm thư viện cho IDE
➢ Tool memu:

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 21
: Tool menu.

Trong Tool menu ta quan tâm các mục Board và Serial Port
Mục Board : các bạn cần phải lựa chọn bo mạch cho phù hợp với loại bo mà bạn sử
dụng nếu là Arduino Uno thì phải chọn như hình:

Chọn Board

Nếu các bạn sử dụng loại bo khác thì phải chọn đúng loại bo mà mình đang có nếu sai
thì code Upload vào chip sẽ bị lỗi.
Serial Port: đây là nơi lựa chọn cổng Com của Arduino. Khi chúng ta cài đặt driver thì
máy tính sẽ hiện thông báo tên cổng Com của Arduino là bao nhiêu, ta chỉ việc vào
Serial Port chọn đúng cổng Com để nạp code, nếu chọn sai thì không thể nạp code cho
Arduino được.
2.1.3. Hướng dẫn cài đặt bản mô phỏng Arduino trên Proteus.
Để mô phỏng được Arduino trên proteus thì chúng ta cần phải download thư viện arduino
cho proteus. Để có được thư viên này các bạn cần truy cập vào trang web:
http://blogembarcado.blogspot.com/search/label/Proteus

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 22
Thư viện mô phỏng Arduino.

Sau khi download về các bạn chép 2 file ARDUINO.IDX và ARDUINO.LIB vào thư
mục:
Proteus 7:
C:\Program Files (hoặc x86) \Labcenter Electronics\Proteus 7 Professional\LIBRARY

Proteus 8:C:\Program Files (hoặc x86) \Labcenter Electronics\Proteus 8

professional\Data\LIBRARY
Trong thư viện này hổ trợ 5 loại board Arduino khác nhau trong đó gồm có Arduino Uno,
MEGA, NANO, LILYPAD và UNO SMD và một cảm biến siêu âm Untrasonic.
Sau khi chép xong chúng ta khởi động Proteus lên vào thư viện linh kiện bằng cách bấm
phím P và gõ từ khoá là ARDUINO chúng sẽ hiện ra danh sách các board hiện có ở đây
tôi chọn Arduino Uno.

Mô phỏng Arduino bằng Proteus.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 23
Lưu ý chúng ta cần phải cấp nguồn vào 2 chân 5V và Gnd trên mạch như hình trên.

2.2. Module Lora SX1278

2.2.1. Module Lora SX1278

SX1278 là module truyền thông có công suất 100mw. Nó làm việc ở dải 433MHZ và
sử dụng cổng Serial để gửi nhận dữ liệu. Khoảng cách truyền tối đa lý tưởng của Module
Lora này đạt được khoảng 3000m. Module này có cơ chế FEC truyền lại khi báo lỗi truyền
tin. Khi truyền tin thì dữ liệu sẽ được mã hóa và giải mã nhằm cải thiện độ tin cậy. Module có
4 chế độ hoạt động với 4 mode truyền khác nhau. Đặc biệt có thể ứng dụng vào các hệ thống
yêu cầu điện năng tiêu thụ rất thấp. Khi ở chế độ power saving mode.

Các chế độ truyền nhận của module lora SX1728

Thông số kỹ thuật :

-Model: E32-TTL-100 RF
-IC chính: SX1278 từ SEMTECH.
-Điện áp hoạt đông: 2.3 - 5.5 VDC

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 24
-Điện áp giao tiếp: TTL
-Giao tiếp UART Data bits 8, Stop bits 1, Parity none, tốc độ từ 1200 - 115200.
-Tần số: 410 - 441Mhz
-Công suất: 20dbm (100mW)
-Khoảng cách truyền tối đa trong điều kiện lý tưởng: 3000m
-Tốc độ truyền: 0.3 - 19.2 Kbps ( mặc định 2.4 Kbps)
-512bytes bộ đệm.
-Hỗ trợ 65536 địa chỉ cấu hình có 32 kênh
-Kích thước: 21x36mm.
Các ứng dụng:

▪ Cảm biến đọc khoảng cách thông minh

▪ Node cảm biến

▪ Nhà thông minh

▪ Robot thông minh

▪ Quan trắc môi trường

▪ Hệ thống thu thập dữ liệu tự động

Module Lora SX1278

Module sử dụng điện áp trong dải từ 1.9V - 3.6V DC.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 25
Tín hiệu AUX báo hiệu hoạt động của module

Khi có tín hiệu vào TXD thì tín hiệu AUX xuất ra là thấp báo hiệu có tín hiệu truyền
serial. Khi Serial đã gửi xong thì AUX=1 tức là trở lại mức cao như lúc chờ dữ liệu ban đầu.

2.3. Cảm biến đo nhiệt độ, độ ẩm (DHT 11)

Trong thiết kế sử dụng cảm biến DHT11. DHT11 là cảm biến nhiệt độ và độ ẩm. Nó
ra đời sau và được sử dụng thay thế cho dòng SHT1x ở những nơi không cần độ chính xác
cao về nhiệt độ và độ ẩm.

Cảm biến DHT11


✓ DHT11có cấu tạo 4 chân như hình. Nó sử dụng giao tiếp số theo chuẩn 1
dây.
✓ Thông số kỹ thuật:
✓ Điện áp hoạt động: 3.3-5v.
✓ Chuẩn giao tiếp: 1wire.
✓ Dải đo độ ẩm: 0-99.9%.
✓ Dải đo nhiệt độ: -40-80 độ C.
✓ Sai số độ ẩm: +-2%.
✓ Sai số nhiệt độ: +-0.5 độ C.
✓ Nguyên lý hoạt động:
✓ Sơ đồ kết nối vi xử lý:

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 26
Sơ đồ kết nối
Để có thể giao tiếp với DHT11theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:

• Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11xác nhận lại.

• Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ đo
được.
- Bước 1: gửi tín hiệu Start

Xung tín hiệu start


+, MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời
gian >18ms. Khi đó DHT11sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ ẩm.MCU đưa chân
DATA lên 1, sau đó thiết lập lại là chân đầu vào.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 27
+, Sau khoảng 20-40us, DHT11sẽ kéo chân DATA xuống thấp. Nếu >40us mà chân
DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11.
+, Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11kéo nên cao trong 80us.
Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT11ko. Nếu
tín hiệu đo được DHT11lên cao, khi đó hoàn thiện quá trình giao tiếp của MCU với DHT.
- Bước 2: đọc giá trị trên DHT11
DHT11sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte. Trong đó:
Byte 1: giá trị phần nguyên của độ ẩm (RH%)
Byte 2: giá trị phần thập phân của độ ẩm (RH%)
Byte 3: giá trị phần nguyên của nhiệt độ (TC)
Byte 4 : giá trị phần thập phân của nhiệt độ (TC)
Byte 5 : kiểm tra tổng.
Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt độ là
chính xác, nếu sai thì kết quả đo không có nghĩa.
Đọc dữ liệu:
Sau khi giao tiếp được với DHT11, DHT11sẽ gửi liên tiếp 40 bit 0 hoặc 1 về MCU, tương
ứng chia thành 5 byte kết quả của Nhiệt độ và độ ẩm.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 28
Tín hiệu bit 0 từ DHT gửi về

Tín hiệu bit 1 từ DHT gửi về


Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11 kéo lên 1.
Nếu chân DATA là 1 trong khoảng 26-28us thì là 0, còn nếu tồn tại 70us là 1. Do đó trong
lập trình ta bắt sườn lên của chân DATA, sau đó delay 50us. Nếu giá trị đo được là 0 thì ta
đọc được bit 0, nếu giá trị đo được là 1 thì giá trị đo được là 1. Cứ như thế ta đọc các bit tiếp
theo.

2.5. Module WIFI ESP8266

➢ Giới thiệu về Kit ESP8266 Node MCU.

Kit ESP8266 là kít phát triển dựa trên nền chíp Wifi SoC ESP8266 với thiết kế dễ dàng sử
dụng vì tích hợp sẵn mạch nạp sử dụng chíp CP2102 trên board mạch. Bên trong ESP8266
có sẵn một lõi vi xử lý vì thế có thể trực tiếp lập trình cho ESP8266 mà không cần thêm bất
kì con vi xử lý nào nữa. Hiện tại có hai ngôn ngữ có thể lập trình cho ESP8266 là ngôn ngữ

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 29
C/C++ và ngôn ngữ Lua, thường thì sử dụng trực tiếp phần mềm IDE của Arduino để lập
trình.

➢ Các thông số kỹ thuật.

-Các thông số cơ bản:

NodeMCU là bo mạch khai thác khả năng của chíp esp8266. Nó kết hợp các chức năng
của WiFi, vi xử lý và ngôn ngữ LUA.
o IC chính: ESP8266 V1.0 Wifi SoC.
o Phiên bản firmware: NodeMCU Lua.
o Chip nạp và giao tiếp UART: CP2102.
o Cấp nguồn: 5VDC MicroUSB hoặc Vin.
o GIPO giao tiếp mức 3.3VDC.
o Tích hợp Led báo trạng thái, 1 led đơn, nút Reset, Flash.
o Kích thước: 25x50cm.
o Số chân GPIO: 12 chân.
o Chuẩn wi-fi : 2.4 -2.5Ghz hỗ trợ các chuẩn wi-fi 802.11b/g/n.
o Bộ nhớ flash: 4M và hỗ trợ bảo mật WPA/WPA2.

-Đặc tính nổi bật:


o Tích hợp MCU 32-bit công suất thấp.
o Hỗ trợ Chức năng liên kết thông minh cho cả thiết bị Android và iOS.
o SDIO 2.0, (H) SPI, UART, I2C, I2S, IRDA, PWM, GPIO.
o Tích hợp 1 chân ADC với độ phân giải 10-bit .
o Tích hợp giao thức TCP/IP protocol stack.
o Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU – Lua.
o Tiêu thụ điện năng ở chế độ chờ <1.0mW (DTIM3).
o Wake up và truyền các gói dữ liệu trong <2ms.

-Chức năng các chân:


o Hầu hết các chân I/O đều có khả năng đọc và xuất mức tín hiệu tương ứng với mức
logic 0v và 3.3v.
o Tấc cả các chân đều có thể sử dụng ngắt ngoài, ngoại trừ chân GPIO16 không có
chức năng này.
o Ngoài việc sử dụng xuất, nhập bình thường thì các chân D0, D3, D4, D5
->D8, TX, RX, SD2, SD3 có thể sử dụng để truyền nhận tín hiệu.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 30
o Chân A0 là chân đọc analog có độ phân giải 10bit, ngoài ra trên mạch có tích hợp sẵn
1 đèn led kết nối với chân GPIO16.
o Các chân giao tiếp chuẩn SPI: D5(CLK), D6(MISO), D7(MOSI), D8(CS).
➢ Sơ đồ mạch ESP8266 Node MCU.

-Sơ đồ nguyên lý

Sơ đồ mạch nguồn.

Đặc điểm mạch nguồn trong mạch esp8266:


o Ic chính: NCP1117ST33T3G với điện áp ra cố định 3.3Vdc.
o Chế độ bảo vệ ngắn mạch ngõ ra.
o Dòng ra 800mA.
o Điện áp vào max: 20V
o Điện áp vào khuyên dùng: 5Vdc.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 31
Sơ đồ mạch giao tiếp truyền nhận dữ liệu.

Mạch nạp cho esp8266 sử dụng ic giao tiếp CP2102 thông qua cổng micro USB.
Đặc điểm các chân của ic:
Chân TXD: chân truyền dữ liệu UART, dùng kết nối đến chân Rx của esp8266.
Chân RXD: chân nhận dữ liệu UART, dùng kết nối đến chân Tx của esp8266.
Chân DTR/RTS: Các chân này dùng để thiết lập lại esp8266.
Tốc độ truyền: 300 bps đến 1,5 Mb / giây.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 32
Mạch ADC của module Wifi esp8266 tương tự như một mạch cầu phân áp. Giá trị điện áp
từ cảm biến trả về sẽ được quy đổi thành tín hiệu số hoặc tương tự.

Sơ đồ mạch mạch ADC, nút nhấn reset, và flash.

Khi tác động nút nhấn reset, chân RST của esp8266 sẽ nối xuống nguồn âm nên mạch sẽ
hoạt động lại như trang thái ban đầu.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 33
Nút nhấn flash trên mạch có chức năng dùng để cập nhật firmware cho esp8266, khi sử
dụng phải nhấn giữ nút này để chân GPIO0 được kết nối xuống nguồn âm.

Sơ đồ chân ic chính.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 34
Mạch esp8266 Node Mcu v1.0.

- Cài đặt board esp8266 trên phần mềm Arduino IDE.

Để tích hợp thư viện hỗ trợ cho việc lập trình mạch ESP8266 NodeMCU. Lần lượt thực
hiện các bước sau:
• Bước 1: Thêm đường dẫn để tải các package cho NodeMCU vào Arduino IDE.
Khởi động Arduino IDE, từ màn hình chính chọn File → Preferences. Sau đó thêm đường
dẫn bên dưới vào mục Addition Boards Manager URLs.
http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 35
Chọn OK để xác nhận việc thêm vào.

• Bước 2: Tải thư viện hỗ trợ.


Từ giao diện chính của Arduino IDE, chọn Tools → Board → Board Managers. Tại thanh
tìm kiếm của hộp thoại Board Managers nhập vào từ khóa esp8266, chọn Install để tiến
hành tải, cài đặt thư viện.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 36
Cài đặt thành công, hoàn tất việc cài đặt thư viện.

Giao diện sau khi cài đặt


-Nạp code:

Thao tác nạp code cho mạch ESP8266 NodeMCU cũng tương tự như nạp cho mạch
Arduino thông thường. Tuy nhiên, cần lưu ý phải chọn phiên bản phù hợp với board đang sử
dụng bằng menu Tools → Board → lựa chọn board đang sử dụng, ngoài ra cần chọn đúng
COM trên máy tính để nạp được chương trình.
ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/
Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 37
2.6. Cảm biến ánh sáng (Tsl 2561)

Cảm biến cường độ ánh sáng (lux) TSL2561 được sử dụng để đo cường độ ánh
sáng thường, hồng ngoại theo đơn vị lux với độ ổn định và độ chính xác cao, càm biến có
ADC nội và bộ tiền xử lý nên giá trị được trả ra là giá trị trực tiếp cường độ ánh sáng lux mà
không phải qua bất kỳ xử lý hay tính toán nào thông qua giao tiếp I2C .

Thông số:

• IC chính: TSL2561
• Nguồn: 3.3~5VDC
• Dòng điện tiêu thụ: 0.6mA
• Đo được cường độ ánh sáng thường và hồng ngoại (IR).
• Giao tiếp: I2C mức TTL 3.3~5VDC
• Khoảng đo: 0.1 ~ 40.000 Lux
• Kích cỡ: 20 x 14mm

Cảm biến ánh sáng Tsl2561

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 38
2.7.1. Giải pháp thiết kế Node con

2.7.1.1. Sơ đồ ghép nối phần cứng

Sơ đồ ghép nối phần cứng

Sơ đồ khối ghép nối phấn cứng Node con bao gồm có 4 khối chức năng:

Khối 1: Khối nguồn

Khối nguồn có nhiệm vụ chính là cung cấp nguồn điện cho toàn bộ mạch điều khiển
bao gồm khối vi điều khiển, khối cảm biến và khối truyền thông.

Khối 2: Khối vi điều khiển MCU

Khối vi điều khiển MCU ARDUINO UNO R3 sẽ nhận tín hiệu từ cảm biến và gửi bản
tin đến GateWay thông qua module truyền thông SX1278.

Khối 3: Khối cảm biến

Khối cảm biến sẽ lắng nghe thay đổi của môi trường, sau đó sẽ gửi tín hiệu điện áp về
vi điều khiển.

Khối 4: Khối truyền thông SX1278

Khối truyền thông có nhiệm vụ gửi các bản tin dữ liệu từ nút con đến Gateway.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 39
2.7.1.2. Lưu đồ thuật toán Node con

Lưu đồ thuật toán Node con

Giải thích lưu đồ thuật toán:

Sau khi cấp nguồn cho Node con, vi điều khiển sẽ thực hiện cấu hình các tham số và
cấu hình hệ thống. Sau đó thực hiện đọc giá trị các cảm biến, nếu nhận giá trị các cảm biến
thành công sẽ tiến hành truyền dữ liệu về GateWay. Quá trình này lặp lại đọc dữ liệu cảm
biến.

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 40
2.7.1.3. Sơ đồ nguyên lí thiết kế phần cứng

Sơ đồ ghép nối Node con

2.7.2 Giải pháp thiết kế GateWay

2.7.2.1 Sơ đồ ghép nối phần cứng

Sơ đồ ghép nối GateWay

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 41
Sơ đồ khối ghép nối phấn cứng Node chủ bao gồm có 4 khối chức năng :

Khối 1: Khối nguồn

Khối nguồn có nhiệm vụ chính là cung cấp nguồn điện cho toàn bộ mạch điều khiển
bao gồm khối vi điều khiển, khối cảm biến và khối truyền thông.

Khối 2: Khối vi điều khiển MCU

Khối vi điều khiển MCU Arduino Uno R3 sẽ nhận tín hiệu từ Module truyền thông
SX1278 rồi chuyển đến ESP8266.

Khối 3: Khối truyền thông ESP8266

Gửi dữ liệu từ vi điều khiển lên Server

Khối 4: Khối truyền thông SX1278

Khối truyền thông sẽ SX1278 nhận bản tin dữ liệu từ Node con khi có tín hiệu dữ liệu
từ vi điều khiển.

2.7.2.2. Lưu đồ thuật toán xử lý GateWay

Lưu dồ thuật toán xử lý GateWay

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 42
Giải thích:

Sau khi cấp nguồn cho GateWay, vi điều khiển sẽ tiến hành cấu hình các tham số, cấu
hình hệ thống. Sẽ lắng nghe dữ liệu từ node cảm biến. Sau khi nhận được dữ liệu từ node cảm
biến sẽ tiến hành gửi dữ liệu đó lên database để lưu trữ cơ sở dữ liệu. Sau đó tiến hành nhận
dữ liệu phản hồi điều khiển từ WebServer và điều khiển các thiết bị ngoại vi.

2.7.2.3. Sơ đồ nguyên lí thiết kế phần cứng

. Sơ đồ ghép nối GateWay

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 43
CHƯƠNG 3. XÂY DỰNG PHẦN MỀM

3.1 Mã nguồn chương trình

3.1.1 Mã nguồn Node con

3.2 Thingspeak Webserver lưu trữ dữ liệu và giao diện Website người dùng

3.2.1.Truyền thông Internet

Ta thu thập dữ liệu từ KIT, và cần một trang web để có thể theo dõi nó từ xa. Với ví dụ
websever, ta đã sử dụng KIT như một máy chủ web, tuy nhiên ta không thể làm được gì nhiều
với dung lượng Ram của KIT. Vì vậy, bây giờ cần có một công cụ hỗ trợ để có thể lưu trữ dữ liệu
lâu dài và hiển thị dữ liệu một cách trực quan cho người dùng. Có một số trang web cung cấp
máy chủ miễn phí mà ta có thể sử dụng như : Xilely, 2lemetry, exosite, carritots, grovestream,
thingspeak, opennenergymonitor. Ta sẽ chọn Thingspeak cho đề tài này. Thingspeak dễ dàng
đăng ký và dễ dàng sử dụng với người bắt đầu với hệ thống lệnh API đơn giản. Nó có thể lưu
trữ được dữ liệu khá lâu và hiển thị dữ liệu cảm biến bằng đồ thị trực quan.
* Sử dụng Thingspeak:
- Đăng ký một tài khoản tại https://thingspeak.com/users/sign_up, tạo channel để lưu
dữ liệu.
- Sau khi tạo channel, chú ý thông tin quan trọng của channel là API Keys (quyền
đọc/ghi dữ liệu).
- Gửi dữ liệu lên Thingspeak sau khi chạy code, Thingspeak sẽ nhận được data .

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 44
3.2.2.Giao diện người dùng

3.2.2.1. Hình ảnh trang chủ

Giao diện trang chủ

3.2.2.2. Hình ảnh giao diện đăng nhập

Giao diện đăng nhập

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 45
3.2.2.3. Hình ảnh giao diện người dùng

Giao diện hiển thị dữ liệu

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 46
3.2.3. Lưu đồ thuật toán

Lưu đồ thuật toán :

Lưu đồ thuật toán


Giải thích lưu đồ thuật toán :
Sau khi cấp nguồn và nạp chương trình cho vi điều khiển thành công. Vi điều khiển sẽ
tiến hành cấu hình Ethernet kết nối internet, sau khi kết nối internet thành công vi điều khiên
sẽ tiến hành gửi dữ liệu lên Webserver thông qua chuẩn truyền thông. Qúa trình cứ như thế
lặp đi lặp lại.

Code và file báo cáo trao đổi với quản trị viên The
Pitares của group.
Gmail: khoinguyencvvc@gmail.com
ARDUINO IOT VIETNAM-
https://www.facebook.com/groups/486295328966960/

ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/


Mời tham gia vào nhóm để cùng nhau chia sẻ tài liệu học tập 47

You might also like