hệ thống giám sát qua mạng lora
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
-o0o -LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
HỆ THỐNG GIÁM SÁT QUA MẠNG LORA
GVHD:
SVTH:
MSSV:
TP HỒ CHÍ MINH, THÁNG 12 NĂM 2016
Trang 2-✩ - -✩ -
Số: /BKĐT Khoa: Điện – Điện tử Bộ Môn: Điện Tử NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP
1 HỌ VÀ TÊN: MSSV: 2 NGÀNH: ĐIỆN TỬ - VIỄN THÔNG LỚP : 3 Đề tài: HỆ THỐNG GIÁM SÁT QUA MẠNG LORA 4 Nhiệm vụ (Yêu cầu về nội dung và số liệu ban đầu):
5 Ngày giao nhiệm vụ luận văn:
6 Ngày hoàn thành nhiệm vụ:
7 Họ và tên người hướng dẫn: Phần hướng dẫn
Nội dung và yêu cầu LVTN đã được thông qua Bộ Môn Tp.HCM, ngày… tháng… năm 20 CHỦ NHIỆM BỘ MÔN NGƯỜI HƯỚNG DẪN CHÍNH PHẦN DÀNH CHO KHOA, BỘ MÔN: Người duyệt (chấm sơ bộ):
Đơn vị:
Ngày bảo vệ :
Điểm tổng kết:
Trang 3LỜI CẢM ƠN
Xin chân thành gửi lời cảm ơn tới Thạc sĩ Bùi Quốc Bảo đã tận tình giúp đỡ
em trong suốt học kỳ vừa qua Những lời nhận xét, góp ý, hướng dẫn của thầy đã giúp em thấy được khuyết điểm của mình để ngày càng khắc phục tốt hơn
Xin chân thành gửi lời cảm ơn tới toàn thể quý thầy cô trường Đại học Bách Khoa Thành phố Hồ Chí Minh đã giảng dạy, hướng dẫn và tạo mọi điều kiện, môi trường học tập tốt cho em trong những ngày tháng học tập tại trường
Bên cạnh đó, em muốn nói lời cảm ơn đến công ty TNHH BigDolphin đã tạo điều kiện để em có thể hoàn thành luận văn
Xin kính chúc sức khỏe và chân thành cảm ơn
Tp Hồ Chí Minh, ngày 26 tháng 12 năm 2016
Sinh viên
Trang 4TÓM TẮT LUẬN VĂN
Đề tài này thực hiện thiết kế thiết bị giám sát các thông số môi trường như
nhiệt độ, độ ẩm, khí CO qua mạng LoRa Thiết bị nhằm truyền tải thông tin về các thông số môi trường, qua đó cảnh báo khi có sự vượt mức cảnh báo ngưỡng được
cài đặt trước
Trong phần luận văn này tập trung xây dựng hệ thống gồm một server tiếp
nhận thông tin (phần trung tâm) và thiết bị giám sát (node ngoại vi)
Trang 5MỤC LỤC
Trang 6DANH SÁCH HÌNH MINH HỌA
Trang 7PHỤ LỤC BẢNG
Trang 8IoT (Internet of Thing) là sự kết nối tất cả các thiết bị với nhau, có khả năng trao đổi thông tin, cung cấp dữ liệu với con người mà không cần phải tương tác trực tiếp Con người có thể kết nối với tất cả các thiết bị tới mạng Internet thông qua mạng nội
bộ
Trong những năm gần đây, IoT đang phát triển nhanh đến chóng mặt Theo sự tínhtoán thông kê có đến 50 triệu thiết bị được kết nối cho tới nắm 2020 Con người đang biến tất cả các thiết bị trong đời sống hằng ngày như otô, thiết bị sản xuất, dụng cụ trongnhà, đồ mặc,…đều có thể điều khiển, kiểm soát, thu thập dữ liệu chỉ bằng laptop hay điện thoại Công nghệ IoT giúp cho con người sống tốt hơn, và đối phó với vấn đề lớn nhất đang gặp phải của thế giới đó là biến đổi khí hậu, kiểm soát ô nhiễm, cảnh báo các vấn đề tự nhiên Tuy nhiên, đòi hỏi về công suất thấp cho các thiết bị IoT không hề đơn giản, các thiết bị hiện nay dùng RFID, Bluetooth hay Wifi đều là những công nghệ với công suất thấp nhưng khoảng cách ngắn Để đáp ứng được công suất thấp và khoảng cách xa, LoRa là một giải pháp tốt nhất tại thời điểm hiện nay
LoRa là công nghệ mạng không dây được phát triển để tạo ra được công suất thấp (low-power), mạng lưới rộng (LPWANs- Low Power Wide Area Networks) dùng cho các ứng dụng Internet of Thing Công nghệ này hấp dẫn với khoảng cách xa, công suất
Trang 9tiêu thụ thấp và việc truyền dữ liệu an toàn Ưu điểm của mạng lưới được xây dựng với LoRa so với mạng lưới hiện tại là việc phủ sóng lớn Với khoảng cách xa và công suất thấp, LoRa tự tin sẽ là ứng cử viên cho công nghệ thông minh trong hạ tầng dân dụng (chẳng hạn như giám sát sức khỏe, đo lường thông minh, giám sát môi trường, ) cũng như trong các ứng dụng công nghiệp.
Công nghệ LoraWAN hướng tới mục tiêu là hoạt động các cảm biến dựa vào pin
mà có thể hoạt động với thời gian lâu Với LoRaWAN, toàn bộ thành phố hoặc một
vùng sẽ được phủ bởi một vài trạm mà có thể kết nối đến hàng ngàn các thiết bị khác
nhau
Nhận thấy ưu điểm của Lora so với các khác Chính vì vậy mục tiêu của đề tài tạo
ra mạng kết nối với các thiết bị, thu thập dữ liệu, vẽ đồ thị trạng thái, gửi cảnh báo dựa trên dữ liệu thu thập qua mạng LoRa
1.2 Tình hình nghiên cứu trong và ngoài nước
a) Nghiên cứu trong nước
Qua tìm hiểu về tình hình nghiên cứu trong việc ứng dụng mạng LoRa khá thấp, cho thấy được việc ứng dụng vào công nghệ này chưa được quan tâm nhiều Tuy nhiên,hiện nay, việc ứng dụng mạng LoRa đang được xem xét, đầu tư vào các ứng dụng như đọc chỉ số đồng hồ nước, quản lý bãi xe,… Đây là dấu hiệu khả quan trong việc nghiên cứu mạng LoRa
b) Nghiên cứu ngoài nước:
Hiện nay có nhiều cá nhân, công ty nghiên cứu phát hành sản phẩm LoRa một haynhiều kênh truyền dựa trên chipset của Semtech Các công trình nghiên cứu:
• Đề tài “A DIY low-cost LoRa gateway”[1] của Giáo sư Phạm Công Đức, trường đại học Pau, Pháp sử dụng chip SX1276 của Semtech với gateway một kênh truyền
- Sản phẩm EMB-GW1301 của công ty Embit, Italy[2] dựa trên chipset SX1301 của
Semtech cho phép hoạt động nhiều kênh truyền trong cùng một khoảng thời gian, cung cấp giải pháp cho công nghệ IoT
- Các sản phẩm cảm biến không dây của công ty nke Wattec, Pháp với các sản phẩm
công nghệ LoRa như cảm biến nhiệt độ, độ ẩm, ánh sáng, đo lượng nước, [3] cho hoạt động hiệu quả và thời gian sử dụng pin tốt nhất
Trang 10- Module LoRaWan IXM-LPWA-800-16-K9 của Cisco[4] cho các ứng dụng cần công suất thấp, diện tích phủ rộng lớn như tracking vật thể, đo nước hay khí, các tòa nhà thông minh, đèn đường, giám sát môi trường và nông nghiệp thông minh.
1.3 Mục tiêu và nhiệm vụ của đề tài
1.3.1 Mục tiêu của đề tài
Đề tài thực hiện thiết kế thiết bị giám sát các thông số môi trường như nhiệt độ, độ
ẩm, khí CO qua mạng LoRa Thiết bị ngoại vi sẽ truyền tải thông tin về các thông số
môi trường về Server, qua đó hiển thị lên web và đồng thời cảnh báo khi có sự vượt mứccảnh báo ngưỡng
1.3.2 Nhiệm vụ của đề tài
Với các mục tiêu đề ra, luận văn được chia thành 4 nội dung:
• Nội dung 1: Tìm hiểu LoRa và các moudule, IC được sử dụng trong luận văn
• Nội dung 2: Giải thuật và phần cứng của Server và node
• Nội dung 3: Kết quả đạt được
• Nội dung 4: Kết quả, hướng phát triển và tài liệu tham khảo
Trang 11Lớp vật lý LoRa, được phát triển bởi Semtech, cho khoảng cách xa, công suất thấp
và giao tiếp băng thông thấp Hoạt động trên băng tần ISM 433-, 868- hoặc 915-MHz, phụ thuộc vào từng khu vực triển khai Khối lượng (gọi là payload ) của mỗi đợt truyền tải có thể đạt từ 2-255 byte, tốc độ data có thể đạt tới 50 Kbps Công nghệ điều chế là một công nghệ độc quyền từ Semtech
LoRaWAN cung cấp một cơ chế điều khiển truy cập, cho phép nhiều thiết bị cuối kết nối tới gateway sử dụng điều chế LoRa Trong khi việc điều chế LoRa là độc quyền, LoRaWAN là một chuẩn mở được phát triển bởi LoRa Alliance
Trang 12Dưới dây là bảng đặc điểm của công nghệ không dây LoRa về khoảng cách, chuẩngiao tiếp, công suất, lớp vật lý.
Khoảng cách 2-5 kilomet trong khu vực thành thị và 15 km trong vùng ngoại ô
Băng tần Băng tần ISM 433MHz, 868MHz và 915 MHz
Chuẩn giao tiếp IEEE 802.15.4g
Điều chế
Điều chế trải phổ được sử dụng xung dải băng tần FM Tần số tăng hoặcgiảm trên thời gian nhất định được sử dụng để mã hóa dữ liệu khi được gửi
Công suất Một mạng Lora quản lý hàng ngàn node
Lớp vật lí Quản lý tần số, công suất, điều chế, tín hiệu giữa các node và Gateway
Bảng 2.1.1.a.1.1: Đặc điểm kỹ thuật của chuẩn giao tiếp LoRa
Trang 13Hình 2.1.1.a.1.1.1: Biểu đồ so sánh giữa LoRa và các chuẩn giao
Có 3 lớp của các thiết bị cuối: lớp A (cho tất cả), lớp B (cho Beacon) và lớp C (cho việc nghe liên tục)
c) Lớp vật lý LoRa
Điều chế LoRa là một công nghệ độc quyền của Semtech Phần này phân tích và đánh giá (phần độc quyền của LoRa) với mục đích hiểu rõ liệu rằng hiệu suất quảng cáo của LoRa được quan sát trong thực tế
Trang 14c.1) Tổng quan về lớp vật lýLoRa là điều chế trải phổ theo cường độ và pha (Chirp Spread Spectrum), sử dụng cường độ và pha tần số với sự biến đổi tuyến tính của tần số theo thời gian để mã hóa thông tin Bởi vì sự tuyến tính của xung trải phổ, độ lêch tần số giữa các thiết bị thu
và phát tương ứng với độ lệch thời gian, dễ dàng bị loại bỏ trong giải mã Điều này làm cho việc miễn nhiễm việc điều chế do ảnh hưởng của hiệu ứng Doppler, tương ứng với
độ lệch tần số Độ lệch tần số giữa thu và phát có thể đạt đến 20% băng thông mà không ảnh hưởng hiệu suất mã hóa Việc nhận LoRa có thể khóa tần số nhận được, cungcấp độ nhạy lên tới -130 dBm
Khi thời gian sống của ký tự LoRa dài hơn so với công nghệ trải phổ nhảy tần Frequency Hopping Spread Spectrum (FHSS), các lỗi được tại bởi nhiễu có thể dễ dàng được sửa thông qua việc sửa lỗi tiếp chuyển (Forward Error-correction Codes - FECs) Nhanh hơn điều chế truyền thông chẳng hạn như FSK làm cho LoRa thích hợp với công suất thấp và truyền tin với khoảng cách dài
c.2) Thông số của lớp vật lýMột vài thông số có sãn cho việc tùy biến trong việc điều chế LoRa như : băng thông (BW), hệ số trải phổ (SF) và tỉ lệ mã hóa (CR) LoRa sử dụng một định nghĩa độc đáo cho việc trải phổ như logarit, số lượng Chirp/symbol Các thông số ảnh hưởng tới tốc độ bit, làm giảm ảnh hưởng của nhiễu, và dễ dàng giải mã
Băng thông là thông số quan trọng nhất trong việc điều chế LoRa Một symbol LoRa tạo ra 2SF chirps, bao phủ toàn bộ băng thông tần số Nó bắt đầu với một chuỗi chirp được tăng lên Khi tần số của băng thông đạt cực đại, tần số sẽ được bọc kín xung quanh, việc tăng tần số được bắt đầu lại từ từ số nhỏ nhất Hình 2.8 đưa ra ví dụ về việc vận chuyển LoRa trong việc thay đổi tần số theo thời gian Vị trí không liên tục trong chuỗi tần số được mã hóa thông tin được chuyển đi Có 2SF trong một ký tự, một ký tự
có thể mã hóa SF(bits) một cách hiệu quả
Trang 15Fc kà tần số trung tâm của kênh truyền, và BW là băng thông
Hình 2.1.1.c.2.1.1: Sự thay đổi tần số theo thời gian của mỗi tín hiệu mẫu được phát ra bởi trạm phát LoRa.
Trong LoRa, tỉ lệ Chirp phụ thuộc vào băng thông: tệ lệ churp bằng với băng thông ( một chirp/second/Hz băng thông) Một vài chuỗi trong điều chế: việc tăng hệ số trải phổ sẽ chia khoảng cách tần số một chirp (bằng 2SF chirp trên toàn bộ băng thông)
và thời gian sống của một symbol được nhân lên gấp đôi Tuy nhiên, việc chia hai tỉ lệ bit, khi nhiều bit hơn sẽ được vẫn chuyển trên mỗi symbol Hơn thế nữa, tỉ lệ symbol và
tỉ lệ bit được cho bởi hệ số trải phổ tỉ lệ thuận với băng thông tần số, khi băng thông gấpđôi sẽ gấp đôi tỉ lệ truyền được Điều này được đưa ra vởi phương trình dưới đây, liên hệgiữa thời gian sống của một symbol (Ts) với băng thông và hệ số trải phổ
LoRa chứa mã hóa sửa lỗi Code rate (CR) bằng 4/(4+n), với n € {1,2,3,4}
Phương trình sau cho phép tính toán tỉ lệ bit (Rb)
Ví dụ, BW = 125 kHz, SF = 7, SR = 4/5 cho tốc độ bit Rb = 5.5 kbps
Các thông số cũng ảnh hưởng tới độ nhạy giải mã Việc tăng băng thông làm cho
độ nhạy máy thu thấp hơn, trong khi đó tăng hệ số trải phổ sẽ tăng độ nhạy máy thu Giảm tốc độ mã hóa giúp giảm tỉ lệ lỗi packet khi có sự ảnh hưởng của nhiễu; ví dụ khi packet nhận được với tốc độ mã hóa là 4/8 sẽ tăng khả năng chống nhiễu hơn so với tín hiệu được vận chuyển với tốc độ mã hóa là 4/5 Bảng 2.4 lấy từ datasheet SX1276
9-129
Trang 16Bảng 2.1.1.c.2.2: Độ nhạy máy thu của LoRa (theo dBm) khi băng thông
và hệ số trải phổ khác nhau.
c.3) Định dạng frame vật lýMặc dù điều chế LoRa có thể truyền frame bất kỳ, định dạng frame được xác định
và tiến hành theo thu và phát của Semtech Băng thông và hệ số trải phổ là hằng số cho một frame
Một frame được bắt đầu với một preamble Preamble bắt đầu với một chuỗi hằng
số bắt đầu gọi là upchirps được trải trên toàn băng thông tần số Hai upchirps cuối cùng được giải mã ký tự đống bộ (gọi là Sync word) Sync word có giá trị 1 byte, thường để phân biệt mạng LoRa khi sử dụng cùng một băng thông tần số Một thiết bị được cấu hình với một sync word dừng việc lắng nghe việc vận chuyển nếu sync word không phù hợp với cấu hình Sync word được đưa ra vởi 2.25 downchirps, có độ dài 2.25 symbols Sau preamble, có một header tùy chọn Khi được bật header, header này được gửi
đi với tốc độ mã hóa là 4/8 Điều này chỉ ra rằng khối lượng của payload ( theo bytes), tỉ
lệ mã hóa được sử dụng cho cuối việc vận chuyển và liệu rằng có hay không 16 bit CRCcho payload có được hiện diện cuối frame hay không Kích thước của payload được lưu trữ một byte, giới hạn kích thước của payload tới 255 ký tự Header được tùy chọn để cho phép được tắt trong tình huống liệu rằng có cần thiết hay không, ví dụ khi độ dài payload, tỉ lệ mã hóa và CRC
Trang 17Hình 2.1.1.c.3.1.1: Cấu trúc frame của LoRa
Sự liên hệ giữa spreading factor (SF), coding rate (CR) và băng thông tín hiệu (BW), thời gian gửi dữ liệu trong không gian của packet LoRa có thể được tính toán nhưdưới đây
1 s s
T R
=
Thời hạn của packet LoRa là bằng tổng của chuỗi preamble và packet được gửi đi
Độ dài của preamble được tính toán như sau:
r a ( r a 4.25)
p e mble p e mble sym
T = n + T
Trong đó npreamble là độ dài preamble của chương trình, được lấy từ thanh ghi
RegPreambleMsb và RegPreambleLsb Thời gian của payload phụ thuộc vào chế độ header được bật Công thức dưới đây đưa ra số ký tự payload
• PL là số bytes của Payload (1 tới 255)
• SF là spreading factor (6 tới 12)
• IH =0 khi header được bật, IH =1 khi không có header hiện diện
Trang 182.1.2 Giao thức LoRaWAN
Hệ thống LoRa chưa 3 phần chính:
• Thiết bị cuối (End-devices): các cảm biến/cơ cấu chấp hành được kết nối thông ra giao tiếp LoRa tới một hoặc nhiều Gateway
• Lora Gateway: bộ tập trung dùng làm cầu nối từ các thiết bị cuối tới Servẻ, nó là phần
tử trung tâm của kiến trúc mạng
• Lora NetServer: Server của mạng điều khiển toàn bộ hệ thống (quản lý tài nguyên, kiểm soát truy cập, bảo mật,…)
Hình 2.10 mô tả các thiết bị cuối được kết nối thông giao tiếp LoRa tới Gateway,
và sau đó được kết nối tới Server thông qua mạng Internet
Hình 2.1.2.a.1.1.1: Tiêu biểu cho mạng hình sao.
Điểm khác biệt của mạng LoRa là việc hình dung 3 lớp của thiết bị cuối, lớp A
(cho tất cả), lớp B (cho Beacon) và lớp C (cho việc nghe liên tục)
• Lớp A được định nghĩa là chế độ ban đầu của mạng LoRa và phải đươc hỗ trợ bởi các thiết
bị LoRa Trong mạng lớp A, việc gửi đi luôn luôn được bắt đầu bởi các thiết bị cuối Sau mỗi lần dữ liệu được gửi tới Gateway, thiết bị cuối sẽ mở 2 cửa sổ tiếp nhận, chờ lệnh bất
kỳ hay gói dữ liệu được trả về bởi Server Lớp A mục đích chính được hướng tới cho các ứng dụng giám sát, nơi các dữ liệu được sản suất bởi các thiết bị cuối, sau đó được tập hợp bởi trạm điều khiển
• Lớp B được giới thiệu dùng để uplink và downlink, được đồng bộ hóa với Server bằng cách gửi gói dữ liệu broadcast bởi Gateway lớp B, và có thể nhận dữ liệu hoặc gói lệnh trong những thời gian riêng biệt, cho dù Lớp B được dử dụng cho các thiết bị cuối cần
Trang 19nhận lệnh từ sự điều khiển từ xa chẳng hạn như chấp hành, bật tắt hay cần cung cấp dữ liệucho người sử dụng
• Cuối cùng, Lớp C được định định nghĩa thiết bị cuối không cần quá coi trọng về năng lượng, nó có thể duy trì cửa sổ tiếp nhận luôn mở
2.2 Nguyên lý truyền và nhận dữ liệu trong mạng LoRa
Giao tiếp LoRa kết hợp của 3 loại giao tiếp số, thanh ghi tĩnh, thanh ghi trạng thái
và data buffer FIFO Tất cả được kết nối thông qua giao tiếp SPI
2.2.1 Truyền dữ liệu
Hình 2.2.1.a.1.1.1: Mô tả nguyên lý truyền dữ liệu trong LoRa
- Các thanh ghi tĩnh có thể được truy cập ở chế độ Sleep, Standby hoặc FSTX
- FIFO LoRa chỉ có thể được điền trong chế độ Standby
- Việc vận chuyển dữ liệu được bắt đầu bằng gửi yêu cầu chế độ TX
- Chờ cho cờ ngắt TxDone , sau đo chuyển sang chế độ Standby
Trang 202.2.2 Nhận dữ liệu trong mạng LoRa
Hình 2.2.2.a.1.1.1: Mô tả nguyên lý nhận dữ liệu trong LoRa
Việc nhận dữ liệu trong mạng LoRa cờ CRC đóng vai trò quan trọng trong việc xác định dữ liệu nhận được có đúng hay không, giúp khắc phục tình trạng chồng lấn hayxung đột dữ liệu giữa hai hay nhiều thiết bị cùng lúc
2.2.3 Cách kết nối giữa node và Server
Luận văn được xây dựng hai gói packet, một gói dữ liệu được gửi từ node tới Server để gửi data thu thập được từ node và một gói được gửi ACK từ Server về node đểxác nhận đã nhận được data
Trang 21a) Cấu trúc gửi data tới Server
Cấu trúc gói packet (11 bytes) được ghi vào FIFO và gửi tới Server có cấu trúc
như sau:
Địa chỉ Server
(3 bytes) Địa chỉ node(1 byte) (2 bytes)Nhiệt độ (2 bytes)Độ ẩm (2 bytes)Khí CO Lượng pin(1 byte)
- Địa chỉ Server (chiếm 3 bytes dữ liệu): tạo ra tới 224 địa chỉ dữ liệu, giúp hạn chếsai sót trên Server
- Địa chỉ node (chiếm 1 byte dữ liệu): Do có 3 thiết bị nên chỉ cần 1 byte là đủ
- Nhiệt độ (chiếm 2 byte dữ liệu): 1 byte cho nhiệt độ nguyên, 1 byte cho nhiệt độ phần thập phân
- Độ ẩm (chiếm 2 byte dữ liệu): 1 byte cho độ ẩm nguyên, 1 byte cho độ ẩm phần thập phân
- Khí CO (chiếm 2 byte dữ liệu): cũng giống như nhiệt độ và độ ẩm, 1 byte cho phần nguyên dương, 1 byte cho phần thập phân
- Lượng pin (chiếm 1 byte dữ liệu): Do pin đầy là 4.2V nên chỉ cần sử dụng 1 byte
b) Cấu trúc gửi ACK từ Server về node
Địa chỉ node(1 byte)
Địa chỉ Server(3 bytes)
ACK(1 bytes)
- Địa chỉ node (chiếm 1 byte): địa chỉ node gửi trả ACK
- Địa chỉ Server ( chiếm 3 bytes): Địa chỉ của Server
- Ack ( chiếm 1 byte): quy định bit ACK trả về
2.3 Giới thiệu module, IC sử dụng trong luận văn
2.3.1 Module LoRa
Module LoRa của hãng HopeRF và XIAMEN sử dụng công nghệ điều chế LoRa, module LoRa có thể đạt độ nhạy tới -148dBm
Trang 22Cường độ dòng ở Standby 0.2uA
Khoảng cách trao đổi Hơn 8000m @LoRa
Nhiệt độ hoạt động -20oC ~ 70oC
Trang 23b) Thông số chân ra và chức năng
Hình 2.3.1.b.1.1.1: Mô tả chân của module Lora SX1278
7 DIO5 Input/Output Digital In/Out, cấu hình bởi phần mềm
11 DIO3 Input/Output Digital In/Out, cấu hình bởi phần mềm
12 DIO4 Input/Output Digital In/Out, cấu hình bởi phần mềm
14 DIO0 Input/Output Digital In/Out, cấu hình bởi phần mềm
15 DIO1 Input/Output Digital In/Out, cấu hình bởi phần mềm
16 DIO2 Input/Output Digital In/Out, cấu hình bởi phần mềm
Trang 24Bảng 2.3.1.b.1.2: Chức năng từng chân của module SX1278
2.3.2 Giới thiệu về Raspberry Pi [7]
Raspberry Pi là một máy tính đơn khối có kích thước nhỏ như chiếc thể ATM,
được phát triển bởi Quỹ Raspberry (nước Anh) với mục tiêu khuyến khích học tập khoa học máy tính trong trường học
Hình 2.3.2.a.1.1.1: Raspberry Model B
Raspberry Pi được bắt đầu phát triển từ năm 2006, bản concept sớm nhất dựa trên
vi điều khiển AVR Atmel ATmega644 Ngày 16 tháng 6 năm 2012, những chiếc
Raspberry Pi đầu tiên được gửi đến tay người nhận Đến ngày 22/5 hơn 20.000 chiếc đã được bán ra Ngày 16/7/2012, Quỹ Raspberry Pi thông báo có 4000 sản phẩm được
phân phối mỗi ngày và bắt đầu cho phép người dùng mua “máy tính nhỏ” này với số
lượng lớn Trong vòng 3 năm kể từ khi được bán ra, đã có hơn 5 triệu chiếc Pi đã được
bán ra thị trường (theo số liệu thống kê của trang chủ Raspberry Pi)
Vậy điều gì làm nên thành công ngoài sức tưởng tượng của Raspberry Pi:
• Raspberry Pi có mức giá quá hấp dẫn: chỉ từ 25$ cho một chiếc bo mạch có thể làm hầunhư mọi ứng dụng hằng ngày như lướt web, lập trình, xem phim HD đến những ý tưởng mà bạn không ngờ đến như điều khiển robot, nhà thông minh, Một điều quan trọng là nó tiết kiệm điện và khả năng chạy liên tục 24/24
• Raspberry Pi chạy hệ điều hành Linux: 99% những thứ mà bạn có thể làm trên máy tính đều có thể làm trên Window và quan trọng là tất cả đều miễn phí!
• Raspberry Pi có kích thước tí hon: chỉ tương đương như một chiếc thẻ ATM và nặng chưa đầy 50 gram Gắn với chiếc tivi, bạn có thể biến nó thành một thiết bị giải trí thông minh trong phòng khách Gắn với màn hình và bàn phím, chuột, bạn có thể biến
nó thành một chiếc máy tính đúng nghĩa Nhỏ gọn và tiện lợi
• Cộng đồng Raspberry Pi phát triển rất nhanh trên thế giới: Hầu hết những thắc mắc của bạn đều được giải đáp rất nhanh va còn hơn thế nữa: bạn có thể tìm thấy hang ngàn dữ
Trang 25Với những ưu điểm độc đáo trên, Raspberry đã vượt khỏi biên giới vủa trường học
và trở thành thiết bị ưa thích của rất nhiều người đam mê điện tử và lập trình Sự thành công của nó đã mở đã một bước phát triển mới cho tin học: đem máy tính và cảm hứng lập trình đến gần mọi người hơn bao giờ hết
Raspbery Pi sử dụng chip Broadcom BCM2835 SoC (System on Chip) có chứa bộ
xử lý ARM1176JZF-S 700 Mhz (có thể ép xung lên 1Ghz), GPU Video Core IV, và bộ nhớ RAM 256 sau nâng cấp lên 512MB Nó không có ổ cứng hay SSD đi kèm mà sử dụng thẻ SD để lưu trữ dữ và khởi động hệ điều hành
2.3.3 Webserver
a) Khái niệm về Web Server
Webserver là một máy tính được kết nối vào Internet và chạy các phần mềm được thiết kế Webserver có khả năng tiếp nhận yêu cầu từ các trình duyệt web và gửi phản hồi đến máy khách những trang web thông qua môi trường mạng Internet qua giao thức HTTP hoặc các giao thức khác Webserver đóng vai trò là một chương trình xử lý các nhiệm vụ xác định như xử lý dữ liệu, kiểm tra dữ liệu hợp lệ
Web server hỗ trợ các công nghệ khác nhau , ví dụ như:
• IIS (Internet Information Service): Hỗ trợ một số tập tin như asp, mở rộng
hỗ trợ PHP,…
•Apache: Hỗ trợ PHP
•Tomcat: Hỗ trợ JSP (Java Servlet Page)
Trang 26Hình 2.3.3.a.1.1.1: Mô tả về Web Server
Trong luận văn này sử dụng phần mềm Apache làm Web Server vì tính thông
dụng và miễn phí của nó
b) Giới thiệu về LAMP
LAMP là chữ viết tắt thường được dùng để chỉ sự sử dụng các phần
mềm Linux, Apache, MySQL và ngôn ngữ văn lệnh PHP hay Perl hay Python để tạo
nên một môi trường máy chủ Web có khả năng chứa và phân phối các trang Web động
Hình 2.3.3.b.1.1.1: Mô tả về LAMP
LAMP là sự kết hợp của Linux + Apache + MySQL + PHP[8]:
• Linux: là một hệ điều hành máy tính dựa trên Unix được phát triển và phân phốiqua mô hình tự do mã nguồn mở, chiếm tỉ lệ lớn trên các máy chủ Trong Raspberry
Pi, được cài đặt hệ điều hành Raspbian, một hệ điều hành được dựa trên nền tảngLinux được tối ưu hóa trên Pi
• Apache: là phần mềm mã nguồn mở, miễn phí, và là phần mềm máy chủ web phổbiến nhất trên mạng Nó rất an toàn, nhanh chóng và đáng tin cậy Chúng ta có thểtùy chỉnh để Apache hỗ trợ các ngôn nhữ web khác nhau như PHP, CGI / Perl,SSL, SSI, ePerl, và thậm chí ASP
• MySQL: là hệ quản trị cơ sở dữ liệu nhanh nhất thế giới, là cơ sở dữ liệu nguồn mởphổ biến nhất trên thế giới vì hiệu suất cao, độ tin cậy cao và dễ sử dụng MySQLchạy được trên hơn 20 nền tảng bao gồm cả Linux, Windows, Mac OS, Solaris,IBM AIX, cho phép bạn linh hoạt kiểm soát hệ thống
Trang 27• PHP: là một ngôn ngữ kịch bản trên máy chủ (server-side scripting language) Nó
có khả năng nhúng vào ngôn ngữ HTML được xử lý rất nhanh, tương thích vớinhiều nền tảng hệ điều hành
c) Tìm hiểu ngôn ngữ PHP
c.1) Khái niệm PHPPHP là một ngôn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một công
nghệ phía máy chủ (Server – Side) và không phụ thuộc vào môi trường (cross-platform).Khi một trang Web muốn được dùng ngôn ngữ PHP thì phải đáp ứng được tất cả các quátrình xử lý thông tin trong trang Web đó, sau đó đưa ra kết quả ngôn ngữ HTML
PHP được sử dụng làm Web động vì nó nhanh, dễ dàng, tốt hơn so với các giải
pháp khác
c.2) Hoạt động của PHP
Vì PHP là ngôn ngữ của máy chủ nên mã lệnh của PHP sẽ tập trung trên máy chủ
để phục vụ các trang Web theo yêu cầu của người dùng thông qua trình duyệt
Hình 2.3.3.c.2.1.1: Mô tả hoạt động PHP
Khi người dùng truy cập Website viết bằng PHP, máy chủ đọc mã lệnh PHP và xử
lý chúng theo các hướng dẫn được mã hóa Mã lệnh PHP yêu cầu máy chủ gửi một dữ
Trang 28liệu thích hợp (mã lệnh HTML) đến trình duyệt Web Khi trình duyệt truy cập vào một
trang PHP, Server sẽ đọc nội dung file PHP lên và lọc các đoạn mã PHP và thực thi các
đoạn mã đó, lấy kết quả nhận được của đoạn mã PHP thay thế vào chỗ ban đầu của
chúng trong file PHP, cuối cùng Server trả về kết quả cuối cùng
c.3) Framework PHPFramework là một bộ thư viện được tổ chức theo một mô hình sẵn và tích hợp
nhiều thư viện sẵn giúp lập trình viên tiết kiệm thời gian, đồng thời giải quyết vấn đề tạo
ra chuẩn chung cho các lập trình viên khi làm việc nhóm
Những lợi ích khi sử dụng framework:
• Nâng cao tốc độ phát triển sản phẩm
• Cung cấp code được tổ chức tốt, có thể sử dụng lại và dễ dàng bảo trì
• Cho phép bạn phát triển theo thời gian khi các ứng dụng được mở rộng
• Giải phóng khỏi những lo ngại về bảo mật ở mức thấp
• Tuân theo mô hình MVC (Model-View-Controller) đảm bảo tách biệt giữa phầntrình diễn và phần logic nghiệp vụ
• Thúc đẩy phương thức phát triển trang web hiện đại như các công cụ lập trìnhhướng dối tượng
Hiện nay có khá nhiều framework được xây dựng từ PHP như Zend, Laravel,
Symfony, Yii 2,… Mỗi framework có những điểm mạnh yếu khác nhau và tùy vào sở
thích nhu cầu để chọn làm dự án
Laravel là framework phổ biến nhất mà các nhà phát triển sử dụng Nhờ có một hệsinh thái lớn và nền tảng giúp triển khai ứng dụng một cách nhanh chóng, đơn giản và
hiệu quả Trong luận văn này, Laravel được dùng làm framework để lập trình PHP vì
tính đơn giản và dễ lập trình của nó
d) MySQL
d.1) Giới thiệu cơ sở dữ liệu:
MySQL là ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay và được
sử dụng phối hợp với PHP
Trang 29MySQL là cơ sở dữ liệu hỗ trợ trên nhiều nền tảng, cho phép người sử dụng có thểthao tác các hành động liên quan đến nó Việc tích hợp công nghệ PHP và MySQL vào
Webserver là công việc cần thiết
d.2) Mục đích sử dụng cơ sở dữ liệuMục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như: lưu trữ, truy cập, tổ
• Tổ chức: Tổ chức cơ sở dữ liệu phụ thuộc vào mô hình cơ sở dữ liệu, phân tích và thiết
kế cơ sở dữ liệu tức là tổ chức cơ sở dữ liệu phụ thuộc vào đặc điểm của từng ứngdụng
• Xử lý: Tùy vào nhu cầu tính toán và truy vấn cơ sở dữ liệu với các mục đích khác nhau,cần phải sử dụng các phát biểu truy vấn cùng các phép toán Để thao tác hay xử lý dữliệu bên trong chính cơ sở dữ liêu
d.3) Kết nối với database[9]
Để làm mọi thứ với database, kết nối phải được thiết lập đầu tiên Hàm PHP cho
phép kết nối thông qua lệnh mysql_connect Hàm này có 3 tham số Ví dụ:
$host = “localhost”;
$user = “root”;
$pswd = “password”;
$link = mysql_connect($host, $user, $pswd);
Host gần như luôn luôn là localhost Đây chính là server mà trang sẽ chạy trên đó User và pswd là username và password được yêu cầu để vào được host Khi
mysql_connect được gọi, tài nguyên được tạo ra và được liên kết với biến $link
Sau khi kết nối được thiết lập, database phải được chọn Hàm mysql_select_db
cho phép lưa chọn database Hàm này có 2 tham số, tham số thứ nhất là tên của databaseđược chọn, thứ 2 là liên kết tới server chứa database trong đó
$db = “a_db”;
Trang 30d.4) Thêm dữ liệu vào databaseMột khi kết nối được thiết lập, thông tin có thể được thêm vào database Để thêm
dữ liệu vào database rất đơn giản
mysql_query(“INSERT INTO a_table (field1, field2) VALUES (‘”.
$_POST[‘field1’].”’, ‘”.$_POST[‘field2’].”’) “);
Code trên đơn giản thêm dữ liệu vào bảng database (a_table)
2.3.4 Cảm biến nhiệt độ và độ ẩm (DHT22/AM2302)
a) Tổng quan
AM2302 là cảm biến nhiệt độ và độ ẩm có ngõ ra được hiệu chỉnh tín hiệu số Nó
áp dụng công nghệ thu thập nhiệt độ và độ ẩm dữ liệu số, giúp cho việc đọc tín hiệu mộtcách ổn định và hợp lý Thành phần cảm biến trong AM2302 được kết nối với chip 8 bit.Mỗi cảm biến đều được hiệu chỉnh và bù trừ nhiệt độ một cách chính xác và hệ số hiệu chỉnh được lưu trong bộ nhớ OTP, khi cảm biến phát hiện, nó lấy hệ số từ bộ nhớ.Kích thước nhỏ, công suất tiêu thụ thấp, khoảng cách truyền tin dài (100m) trên AM2302 phù hợp với tất cả các loại ứng dụng khắc nghiệt nhất Được đóng gói một hàng đơn với bốn chân, làm cho việc kết nối rất thuận tiện
Trang 31Khoảng hoạt động Độ ẩm:0-100%RH ; Nhiệt độ:-40~80oC
Độ chính xác Độ ẩm:+-2%RH(Max :+-5%RH) ; Nhiệt độ:+-0.5oC
Độ phân giải hay độ nhạy Độ ẩm:0.1%RH ; Nhiệt độ:0.1oC
Lặp lại Độ ẩm:+-1%RH ; Nhiệt độ:+-0.2oC
Thay thế Thay thế hoàn toàn
Bảng 2.3.4.b.1.1: Thông số cảm biến AM2302
c) Kích thước và sơ đồ chân
Dưới đây là toàn bộ quá trình xử lý, toàn bộ quá trình mất khoảng 2 giây
Trang 32Khi muốn giao tiếp giữa MCU và AM2302, MCU sẽ kéo đường data xuống thấp
và quá trình xử lý này mất ít nhiết từ 1-10ms để đảm bảo AM2302 có thể phát hiện tín hiệu từ MCU và chờ khoảng 20-30us để AM2302 đáp ứng
Khi AM2302 phát hiện tín hiệu bắt đầu, nó sẽ kéo đường bus xuống thấp khoảng 80us để coi đó là tín hiệu đáp ứng, sau đó sẽ kéo lên cao 80us để chuẩn bị gửi dữ liêu.Khi AM2303 gửi dữ liệu tới MCU, mỗi bit được gửi sẽ được bắt đầu với mức thấpkhảng 50us, sau đó sẽ là mức cao, độ dài của mức cao sẽ quyết định bit đó là 0 hay 1
Dữ liệu của AM2302 được mô tả như hình :
Trang 332.3.5 Cảm biến khí CO (MQ-7)
MQ7 là cảm biến bán dẫn, được làm từ SnO2, một vật liệu cảm biến có tính dẫn thấp trong không khí sạch Cảm biến MQ7 nhạy cảm với khi CO Nó là cảm biến có chi phí thấp, thích hợp cho các ứng dụng để phát hiện khí trong nhà, khu công nghiệp
Hình 2.3.5.a.1.1.1: Sơ đồ kết nối với cảm biến
Trong đó Rs là điện trở của cảm biến MQ7 khi có sự thay đổi môi trường
RL là điện trở được thêm vào
Ta có : Rs=RL*(5-Vout)/Vout (1)