Professional Documents
Culture Documents
DienTuTuLTDenTH Dich PDF
DienTuTuLTDenTH Dich PDF
COM
MỤC LỤC
NỘI DUNG ĐỀ TÀI.................................................................................................1
LỜI CẢM ƠN...........................................................................................................2
LỜI NÓI ĐẦU..........................................................................................................3
MỤC LỤC................................................................................................................. 4
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........................................................................................6
1.1. Giới thiệu chung..............................................................................................6
1.1.1. Mạng cảm biến không dây là gì?..............................................................6
1.1.2. Các ứng dụng của mạng cảm biến không dây...........................................7
1.2. Kiến trúc ngăn xếp giao thức mạng cảm biến không dây................................7
1.3. Tổng quan về Internet kết nối vạn vật.............................................................9
1.3.1. Internet of Things là gì?............................................................................9
1.3.2. Internet of Things là tương lai của thế giới.............................................10
1.4. Một vài mô hình ứng dụng về Internet of Things..........................................10
1.4.1. Lưới điện thông minh..............................................................................10
1.4.2. Nhà thông minh.......................................................................................11
1.6. Chuẩn truyền thông LoraWAN......................................................................12
1.6.1. Khái niệm LoraWAN..............................................................................12
1.6.2. Cấu trúc của mạng LoraWAN.................................................................13
1.6.3. Kiến trúc LoraWAN................................................................................14
1.6.4. Điều khiển truy cập theo kênh truyền.....................................................15
1.6.5. Nguyên lý hoạt động của LoRa...............................................................15
CHƯƠNG 2. THIẾT KẾ PHẦN CỨNG.................................................................17
2.1.Kit Arduino Uno R3.......................................................................................17
2.1.1.Giới thiệu tổng quan................................................................................17
2.1.2.Thành phần phần cứng của KIT...............................................................17
2.1.3. Arduino IDE............................................................................................19
2.2. Module Lora SX1278....................................................................................19
2.2.1. Module Lora SX1278............................................................................19
2.3. Cảm biến đo nhiệt độ, độ ẩm (DHT 11)........................................................22
2.5. Module WIFI ESP8266.................................................................................25
2.6. Cảm biến ánh sáng (Tsl 2561).......................................................................27
2.7.1. Giải pháp thiết kế Node con.......................................................................28
2.7.1.1. Sơ đồ ghép nối phần cứng....................................................................28
2.7.1.2. Lưu đồ thuật toán Node con................................................................29
2.7.1.3. Sơ đồ nguyên lí thiết kế phần cứng.....................................................30
2.7.2 Giải pháp thiết kế GateWay.........................................................................30
2.7.2.1 Sơ đồ ghép nối phần cứng.....................................................................30
2.7.2.2. Lưu đồ thuật toán xử lý GateWay........................................................31
2.7.2.3. Sơ đồ nguyên lí thiết kế phần cứng......................................................32
2.8. Kết quả..........................................................................................................33
CHƯƠNG 3. XÂY DỰNG PHẦN MỀM...............................................................34
3.1 Mã nguồn chương trình..................................................................................34
3.1.1 Mã nguồn Node con.................................................................................34
3.1.2 Mã nguồn Gateway.....................................................................................36
3.2 Thingspeak Webserver lưu trữ dữ liệu và giao diện Website người dùng.......37
3.2.1.Truyền thông Internet...............................................................................37
3.2.2.Giao diện người dùng..................................................................................38
3.2.2.1. Hình ảnh trang chủ...............................................................................38
3.2.2.2. Hình ảnh giao diện đăng nhập..............................................................39
3.2.2.3. Hình ảnh giao diện người dùng............................................................39
3.2.3. Lưu đồ thuật toán.......................................................................................39
KẾT LUẬN.............................................................................................................41
TÀI LIỆU THAM KHẢO.......................................................................................42
2
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
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).
Hình 1.1. 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
3
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.
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 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ộ.
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.
5
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.
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 đó.
6
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.
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.
7
Hình 1.4. Mô hình hệ thống lưới điện 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.
8
1.6. Chuẩn truyền thông LoraWAN
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.
Smart city
Smart home
Internet Of Thing
9
1.6.2. Cấu trúc của mạng LoraWAN
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.
10
Hình 1.7. 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..
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
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.
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 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á
12
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)
- 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: 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.
13
CHƯƠNG 2. THIẾT KẾ PHẦN CỨNG
Phần mềm Arduino IDE: được gọi là sketches, được tạo ra trên máy tính có
tích hợp môi trường phát triển(IDE). IDE cho phép bạn viết, chỉnh sửa code và
chuyển đổi sao cho phần cứng có thể hiểu. IDE dùng để biên dịch và nạp vào
Arduino ( quá trình sử lý này gọi là UPLOAD).
Phần cứng Arduino: là các board Arduino nơi thực thi các chương trình lập
trình. Các board này có thể điều khiển hoặc đáp trả các tín hiệu điện, vì vậy các
thành phần được ghép trực tiếp vào nó để tương tác với thế giới thực để cảm nhận
hoặc truyền thông. Ví dụ các cảm biến bao gồm các thiết bị chuyển mạch, cảm biến
siêu âm, gia tốc. Các thiết bị truyền động bao gồm đèn, motor, loa và các thiết bị
hiển thị.
Hầu hết các board Arduino sử dụng kết nối kiểu USB dùng để cấp nguồn và
upload dữ liệu cho board Arduino.
14
Hình 2.1. Hình mặt trên của Arduino Uno
Thông số kỹ thuật:
SRAM là 2KB(ATMega328).
EEPROM là 1KB(ATMega328).
15
2.1.3. Arduino IDE
Arduino IDE là nơi để soạn thảo code, kiểm tra lỗi và upload code cho
Arduino
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.
16
Hình 2.3. Các chế độ truyền nhận của module lora SX1728
-Model: E32-TTL-100 RF
-IC chính: SX1278 từ SEMTECH.
-Điện áp hoạt đông: 2.3 - 5.5 VDC
-Đ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:
Hình 2.5. 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.
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.
18
Hình 2.6. 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ý:
19
Hình 2.7. 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
20
+, 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.
+, 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.
21
Hình 2.9. Tín hiệu bit 0 từ DHT gửi về
ESP8266 là một chip tích hợp cao, được thiết kế cho nhu cầu của một thế
giới kết nối mới, thế giới Internet of thing (IOT). Nó cung cấp một giải pháp kết nối
mạng Wi-Fi đầy đủ và khép kín, cho phép nó có thể lưu trữ các ứng dụng hoặc để
giảm tải tất cả các chức năng kết nối mạng Wi-Fi từ một bộ xử lý ứng dụng.
22
ESP8266 có xử lý và khả năng lưu trữ mạnh mẽ cho phép nó được tích hợp
với các bộ cảm biến, vi điều khiển và các thiết bị ứng dụng cụ thể khác thông qua
GPIOs với một chi phí tối thiểu và một PCB tối thiểu.
Tích hợp TR switch, balun, LNA, bộ khuếch đại quyền lực và phù hợp với
mạng
PLLs tích hợp, điều chỉnh, DCXO và các đơn vị quản lý điện năng
Tích hợp công suất thấp 32-bit CPU có thể được sử dụng như là bộ vi xử
lý ứng dụng.
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
24
2.7.1. Giải pháp thiết kế Node con
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 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 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 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 truyền thông có nhiệm vụ gửi các bản tin dữ liệu từ nút con đến
Gateway.
25
2.7.1.2. Lưu đồ thuật toán Node con
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.
26
2.7.1.3. Sơ đồ nguyên lí thiết kế phần cứng
27
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 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 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 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.
Giải thích:
28
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.
29
2.8. Kết quả
30
CHƯƠNG 3. XÂY DỰNG PHẦN MỀM
NODE 1:
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
#include <Wire.h>
#include "TSL2561.h"
TSL2561 tsl(TSL2561_ADDR_FLOAT);
DHT dht(DHTPIN, DHTTYPE, 6);
byte Data[3],NhietDo,DoAm,AnhSang;
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
if (tsl.begin()) {
dht.begin();
Serial.println("Found sensor");
}
else {
Serial.println("No sensor?");
while (1);
}
tsl.setTiming(TSL2561_INTEGRATIONTIME_101MS);
}
void loop() {
float NhietDo = dht.readHumidity();
float DoAm = dht.readTemperature();
31
uint16_t AnhSang = tsl.getLuminosity(TSL2561_VISIBLE);
if (isnan(NhietDo) || isnan(DoAm) ) {
Serial.println("Failed to read from DHT sensor!");
return;
}
String Humidity=String(NhietDo);
String Temperature=String(DoAm);
String Lux=String(AnhSang);
//String
data="id=1&NhietDo="+Humidity+"&(DoAm="+Temperature+"&AnhSang="+Lu
x+"";
// Serial.println(data);
Data[0]=NhietDo;
Data[1]=DoAm;
Data[2]=AnhSang;
Serial.write(Data,3);
delay(2000);
32
NODE 2:
#include <SoftwareSerial.h>
#define M0 6
#define M1 7
#define TX 3
#define RX 5
#define AUX_PIN A0
bool AUX_HL;
bool docAUX()
AUX_HL = LOW;
} else {
AUX_HL = HIGH;
return AUX_HL;
void doiAUX()
uint8_t cnt = 0;
delay(10);
void xoabd()
while (Lora.available())
Lora.read();
void gui_tt()
34
{
Serial.println("Done TT.");
doiAUX();
xoabd();
Lora.write(tt, 6);
delay(10);
void gui_data()
Serial.println("Done DATA.");
doiAUX();
xoabd();
Lora.write(dt, 6);
delay(10);
uint8_t idx;
void nhan_tt()
nhan_data(data, len);
if (data[0] == 21) {
tt_che = data[1];
tt_m_bom = data[2];
tt_quat = data[3];
tt_lam_kho = data[4];
tt_phan = data[5];
doiAUX();
//xoabd();
Lora.write(37);
doiAUX();
Serial.print(tt_che);
Serial.print(" ");
Serial.print(tt_m_bom);
Serial.print(" ");
Serial.print(tt_quat);
Serial.print(" ");
Serial.print(tt_lam_kho);
Serial.print(" ");
Serial.println(tt_phan);
}
36
}
void setup() {
pinMode(M0, OUTPUT);
pinMode(M1, OUTPUT);
pinMode(TX, OUTPUT);
pinMode(RX, INPUT);
digitalWrite(M0, LOW);
digitalWrite(M1, LOW);
//pinMode(AUX_PIN, INPUT);
Lora.begin(9600);
Serial.begin(9600);
delay(50);
delay(50);
xoabd();
time0 = millis();
void loop() {
len = Lora.available();
if (len == 1) {
yc = Lora.read();
37
if (yc == 1) { //1
gui_tt();
doiAUX();
//Serial.println("Done TT!") ;
gui_data();
doiAUX();
// Serial.println("Done Data!") ;
else if (yc == 3) {
tt_tx = true;
tt_nh = true;
Serial.print("TT_TX: ") ;
Serial.println(tt_tx) ;
doiAUX();
byte b=31;
xoabd();
Lora.write(b);
doiAUX();
delay(10);
//xoabd();
}
38
else if (yc == 4) {
tt_tx = false;
Serial.print("TT_TX: ") ;
Serial.println(tt_tx) ;
doiAUX();
byte t = 34;
//xoabd();
Lora.write(t);
doiAUX();
delay(10);
nhan_tt();
tt_nh = false;
else Lora.write("lai");
39
3.1.2 Mã nguồn Gateway
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#define Led 2
HTTPClient http;
byte Data[3],NhietDo,DoAm,AnhSang;
void setup(void)
pinMode(Led,OUTPUT);
Serial.begin(9600);
WiFi.mode(WIFI_STA);
WiFi.begin("xxx","12345678");
delay(500);
void loop()
40
if(Serial.available())
Serial.readBytes(Data,3);
NhietDo = Data[0];
DoAm = Data[1];
AnhSang = Data[2];
// String chuoi = "Nhiet do: " + String(NhietDo) + " Do am: " + String(DoAm) +
" AnhSang: " + String(AnhSang);
http.begin(Data);
3.2 Thingspeak Webserver lưu trữ dữ liệu và giao diện Website người dùng
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
41
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 .
42
3.2.2.2. Hình ảnh giao diện đăng nhập
43
Hình 3.3. 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.
44
KẾT LUẬN
45
TÀI LIỆU THAM KHẢO
[1]. http://arduino.vn/
[2]. https://cdn-shop.adafruit.com/datasheets/TSL2561.pdf
[3]. http://cem.gov.vn/Portals/0/2016/TinBai/Chuong%205.pdf
[4]. https://toc.123doc.org/document/1004260-hinh-3-2-cam-bien-nhiet-
do-do-am-dht11.htm
[5]. http://www.semtech.com/images/datasheet/sx1276_77_78_79.pdf
46