You are on page 1of 19

CHƯƠNG 1.

XÂY DỰNG HỆ MÔ HÌNH MẠNG CẢM BIẾN

1.1 Mô hình hệ thống phát hiện và cảnh báo cháy đề xuất

Hình 3-1 Mô hình phát hiện và cảnh báo cháy hệ thống đề xuất

Hình 3.1 mô tả chi tiết hệ thống được đề xuất. Hệ thống bao gồm một phần mềm
quản lý trên máy tính đảm bảo tính trực quan và dễ điều khiển, một Gateway có chức
năng gửi các lệnh điều khiển và phân tích dữ liệu nhận về sau đó hiển thị lên phần mềm
máy tính, các Node cảm biến, phân tích, thực thi dữ liệu từ bản tin Gateway, sau đó gửi
bản tin phản hồi về cho Gateway.
Mỗi Node cảm biến sẽ được đánh một địa chỉ được mã hóa khác nhau. Bản tin
Gateway gửi đi sẽ bao gồm địa chỉ nhận, trạng thái mong muốn (bật, tắt). Các Node sẽ so
sánh địa chỉ của bản tin gửi đến và địa chỉ của mình, nếu địa chỉ khác nhau thì các Node
sẽ bỏ qua và không phân tích gói dữ liệu đó. Node nào có trùng địa chỉ thì vi xử lý bên
trong sẽ nhận và phân tích gói dữ liệu đó, sau đó thực hiện lệnh điểu khiển. Và cuối cùng
Node sẽ sử dụng cảm biến âm thanh để nhận biết chuông hỏng hay gặp sự cố gì không.
Sau đó Node sẽ gửi lại cho Gateway một bản tin bao gồm vị trí node, nguy cơ cháy trạng
thái chuông (hoạt động, cháy).

Các Node cảm biến gắn trên mỗi cột đèn có khả năng:
 Năng lượng tiêu thụ thấp.
 Nhận biết nguy cơ cháy nổ.
 Nhận biết trạng thái hoạt động chuông báo cháy thông qua cảm biến. có hai
trạng thái: hoạt động bình thường và bị hỏng.
 Điều khiển bật/tắt chuông bằng rơ-le.
 Sử dụng công nghệ truyền thông không dây LoRa để truyền các bản tin
giữa các Node và Gateway.
1.2 Mục tiêu thiết kế
Với một hệ thống điều khiển lớn trong một không gian rộng, để dễ dàng quan sát hoạt
động của toàn bộ hệ thống người quản lý không thể lúc nào cũng có thể di chuyển đến
từng phần tử để quan sát và ghi lại các thông số. Việc làm việc thủ công sẽ khiến chi phí,
công sức giám sát quản lý là rất lớn và mất thời gian. Do đó để cải thiện và khắc phục
nhược điểm này cần đề xuất phát triển một hệ thống các phần mềm điều khiển, giám sát
giúp cho người quản lý có thể dễ dàng điều khiển hệ thống một cách linh hoạt, giảm chi
phí, nhân lức và thời gian giám sát.
Bài toán đặt ra cần xây dựng một hệ thống điều khiển giám sát hệ thống giải quyết
những nhiệm vụ:
 Điều khiển linh hoạt bật tắt chuông báo cháy.
 Phát hiện nguy cơ cháy nổ và đưa ra cảnh báo.
 Giám sát trực quan – hiển thị cho người điều khiển biết chích xác tình trạng hoạt
động của từng chuông cảnh báo khi hỏng hóc của chuông.
Từ những nhiệm vụ trên cần phải thiết kế các phần mềm trên Gateway:
 Phần mềm điều khiển trên từng cột – phát hiện nguy cơ cháy nổ điều khiển hoạt
động bật tắt của chuông, xác định sự cố và vị trí sự cố xảy ra.
1.3 Kiến trúc hệ thống phát hiện và cảnh báo cháy tự động
Hệ thống bao gồm mạng lưới các node cảm biến và Gateway. Trong đó trên mỗi
node cảm biến được gắt một nút cảm biến phục vụ cho việc điều khiển và giám sát vận
hành của hệ thống. Các node cảm biến sẽ trực tiếp liên hệ với Gateway tạo thành một
mạng hình sao (hình 2. 2) .

Hình 3- 2 Kiến trúc hình sao của hệ thống chiếu sáng sử dụng công nghệ LoRa
1.4 Thiết kế mạch Gateway
1.4.1 Tổng quan về Gateway

Hình 3-3 Tổng quan về Gateway

Gateway là một nút mạng được sử dụng trong viễn thông nhằm kết nối hai mạng có
giao thức truyền thông khác nhau có thể giao tiếp được với nhau. Nhiệm vụ chính của
Gateway là thu thập dữ liệu và chuyển đổi giao thức ở cấp cao thường được thực hiện
bằng các thành phần phần mềm. Qua Gateway, các máy tính trong các mạng sử dụng
cách thức khac nhau có thể dễ dàng “nói chuyện” được với nhau.
Gateway được sử dụng chủ yếu trong các tình huống cá nhân hoặc doanh nghiệp muốn
đơn giản hóa việc kết nối internet cho một thiết bị.

1.4.2 Yêu cầu bài toán, giải pháp xử lý và các chức năng của Gateway
a. Yêu cầu bài toán
 Thực hiện trong khu đô thị.
 Khoảng cách truyền nhận giữa thiết bị hiện trường và Gateway xa (từ vài trăm mét
trở lên khi không có vật cản, tiết kiệm năng lượng).
 Tốc độ truyền có thể thấp, gói tin truyền nhỏ.
 Tối ưu hóa kích thước mạch thiết bị hiện trường khi lựa chọn linh kiện.
 Có giao tiếp được với máy tính.
 Có kết nối được với Web Server.
 Lấy được tín hiệu từ vi xử lý để điều khiển mạch rơ-le.
 Có nhiều chân tín hiệu điều khiển.
 Đặt ở trong nhà.
 Sử dụng luôn nguồn điện lưới 220V.
 Có vỏ hộp bảo vệ.
Từ các yêu cầu được đặt ra như trên của bài toán, ta cần đưa ra được các giải pháp xử
lý tương ứng. Bên cạnh đó giải pháp cũng cần phù hợp khi bài toán được mở rộng về
khoảng cách truyền nhận.
b. Giải pháp xử lý
 Sử dụng công nghệ LoRa để truyền nhận dữ liệu giữa thiết bị hiện trường và
Gateway bởi công nghệ này phù hợp với yêu cầu bài toán được đưa ra là: tiết kiệm
năng lượng, khoảng cách truyền lớn và không cần yêu cầu tốc độ truyền cao.
 Sử dụng kết nối có dây và kết nối không dây WiFi để giao tiếp với với máy tính.
 Sử dụng kết nối không dây WiFi để kết nối lên Web Server.
 Sử dụng adapter và IC nguồn để kết nối với nguồn 220V trong nhà.
Chức năng của mạch Gateway:
 Nhận dữ liệu từ các thiết bị hiện trường thông qua sóng LoRa.
 Truyền dữ liệu lên máy tính.
 Truyền dữ liệu lên Web Server thông qua WiFi.
 Điều khiển đóng mở các relay bằng cách gửi các lệnh điều khiển.
 Từ các yêu cầu, chức năng đã phân tích như trên chúng em đưa ra lựa chọn cho
mạch Gateway như sau: Module Raspberry Pi 3 làm bộ xử lý trung tâm kết nối
Module truyền thông không dây LoRa Ra-02 để gửi dữ liệu đi xa.
1.4.3 Module Raspberry Pi
a. Raspberry là gì?
Raspberry Pi là chiếc máy tính kích thước nhỏ được tích hợp nhiều phần cứng
mạnh mẽ đủ khả năng chạy hệ điều hành và cài đặt được nhiều ứng dụng trên nó. Với giá
chỉ vài chục USD, Raspberry hiện đang là minicomputer nổi bật nhất hiện nay. Ban đầu,
tổ chức Raspberry Pi Foundation phát triển dự án Raspberry với mục tiêu chính là giảng
dạy máy tính cho trẻ em và tạo ra một công cụ giá rẻ để sinh viên nghiên cứu học tập.
Tuy nhiên, sau khi xuất hiện, Raspberry Pi được cộng đồng đánh giá cao về tính ứng
dụng với phần cứng được hỗ trợ tốt, Pi đã nhanh chóng phát triển một cách rộng rãi. Pi
phù hợp cho những ứng dụng cần khả năng xử lý mạnh mẽ, đa nhiệm hoặc giải trí và đặc
biệt cần chi phí thấp. Hiện nay đã có hàng ngàn ứng dụng đa dạng được cài đặt trên Rasberry
Pi.[17].
Hình 3- 4 Rasberry có kích thước rất nhỏ

Raspberry Pi như một máy vi tính bởi người ta đã tích hợp mọi thứ cần thiết trong
đó. Bộ xử lí SoC Broadcom BCM2835 của nó bao gồm CPU, GPU, RAM, khe cắm thẻ
microSD, Wi-Fi, Bluetooth và 4 cổng USB 2.0.

Hình 3-5 Cấu tạo cơ bản của Raspberry

b. Điểm nổi bật của Raspberry


 Raspberry Pi có mức giá hấp dẫn: chỉ từ 25$ cho một chiếc bo mạch có thể làm
hầu như mọi ứng dụng hàng ngày như lướt web, lập trình, xem phim đến những ý
tưởng bất ngỡ 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ứ ta 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 một chiếc thẻ ATM và năng
chưa đầy 50gram. Gắn với chiếc tivi, ta có thể biến nó thành một thiết bị giải trí
thông minh. Gắn với màn hình, bàn phím và chuột, ta có thể biến nó thành một
chiếc máy tính đúng nghĩa. Nó 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
đều được giải đáp rất nhanh và còn hơn thế nữa: ta có thể tìm thấy nhiều dự án đã
thực hiện và vô số ý tưởng độc đáo.
1.4.4 Raspberry Pi 3
a. Thông số cơ bản của Raspberry 3

Hình 3-6 Raspberry Pi 3.[17].

Raspberry Pi 3 bao gồm:


 Trái tim của Raspberry Pi 3: Là bộ vi xử lý ARM Cortex A53, tốc độ 1.2GHz gấp
10 lần so với thế hệ đầu tiên.
 1 HDMI Video/Cổng kết nối âm thanh: kết nối Pi với màn hình máy tính
 Hệ thống GPIO: Gồm 40 chân chia làm hai hàng. Từ đây ta có thể kết nối và điều
khiển rất nhiều thiết bị điện tử khác.
 Ngõ HDMI: dùng để kết nối Pi với màn hình máy tính hay màn hình tivi.
 Ngõ audio 3.5mm: kết nối Pi với loa ngoài.
 Cổng CSI: khe cắm này là để cắm modul camera vào Raspberry.
 Cổng DSI: nơi đây sẽ giúp ta có thể cắm module camera vào Raspberry.
 Cổng USB: Raspberry Pi tích hợp 4 cổng USB.
 Cổng Ethernet: cho phép kết nối Internet dễ dàng.
 Khe cắm thẻ SD: Raspberry Pi không tích hợp ổ cứng. Thay vào đó là dùng thẻ
SD.
 Nguồn cho Raspberry: Jack nguồn micro USB 5V với nguồn lý tưởng cho
Raspberry là nguồn DC 5V-2.5A.

b. Các chân GPIO kết nối của Raspberry Pi 3

Hình 3- 7 Các GPIO của Raspberry Pi 3

Một tính năng tiện ích của Raspberry Pi là hàng chân GPIO (đầu vào / ra đa năng)
dọc theo cạnh trên của bảng. Trên Rasberry Pi 3 có 40 chân I/O. Bất kỳ chân GPIO nào
cũng có thể được chỉ định (trong phần mềm) làm chân đầu vào hoặc đầu ra và được sử
dụng cho nhiều mục đích. [18].
Hình 3-8 Chức năng cơ bản của GPIO

 Chân Voltages: Có 2 chân 3V3 và 2 chân 5V: Có dòng điện tối đa khoảng 50 mA,
đủ để cấp nguồn cho một vài đèn LED hoặc bộ vi xử lý. Tất cả Raspberry Pi kể từ
Model B + có thể cung cấp lên đến 500mA để duy trì ở mức an toàn, nhờ một bộ
điều chỉnh chuyển mạch.
 Outputs: Các chân GPIO có thể cài đặt thành chân output với mức điện áp 3.3V
(chân 3V3), 5V (chân 5V) và 0V (chân GND).
 Inputs: Chân GPIO có thể cài đặt làm chân đầu vào và được đọc là cao (3V3)
hoặc thấp (0V). Điều này được thực hiện dễ dàng hơn với việc sử dụng điện trở
kéo lên hoặc kéo xuống bên trong. Các chân GPIO2 và GPIO3 có điện trở kéo lên
cố định, nhưng đối với các chân khác, có thể được cấu hình trong phần mềm.
c. Giao thức truyền thông SPI trong Raspberry
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao. Đây là
kiểu truyền thông Master-Slave, trong đó có 1 chip Master điều phối quá trình tuyền
thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra
giữa Master và Slave. SPI là một cách truyền song công (full duplex) nghĩa là tại cùng
một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời. SPI đôi khi được gọi
là chuẩn truyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK
(Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input)
và CE.
Hình 3- 9 Các GPIO của giao thức SPI trên Raspberry

 SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8);


CE1(GPIO7)
 SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0
(GPIO18); CE1(GPIO17); CE2 (GPIO16)
Trong đó:
 MISO: Master Input / Slave Output: nếu là chip Master thì đây là đường Input
còn nếu là chip Slave thì MISO lại là Output. MISO của Master và các Slaves
được nối trực tiếp với nhau.
 MOSI: Master Output / Slave Input: nếu là chip Master thì đây là đường Output
còn nếu là chip Slave thì MOSI là Input. MOSI của Master và các Slaves được
nối trực tiếp với nhau.
 SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên cần 1
đường giữ nhịp, mỗi nhịp trên chân SCK báo 1bit dữ liệu đến hoặc đi. Đây là
điểm khác biệt với truyền thông không đồng bộ mà chúng ta đã biết trong chuẩn
UART. Sự tồn tại của chân SCK giúp quá trình tuyền ít bị lỗi và vì thế tốc độ
truyền của SPI có thể đạt rất cao. Xung nhịp chỉ được tạo ra bởi chip Master. 
 CE: là đường chọn Slave cần giap tiếp, trên các chip Slave đường CE sẽ ở mức
cao khi không làm việc. Nếu chip Master kéo đường CE của một Slave nào đó
xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó. Chỉ có 1
đường CE trên mỗi Slave nhưng có thể có nhiều đường điều khiển CE trên
Master, tùy thuộc vào thiết kế của người dùng.
Giao thức SPI được mô tả như sau:

Hình 3-10 Mô tả giao thức SPI

Dữ liệu được truyền qua lại dữa 2 đường MISO và MOSI. Điều này chỉ thực hiện
được khi Dòng CE được thiết lập ở mức thấp LOW. Nói cách khác, để giao tiếp với một
thiết bị SPI chúng ta cần thiết lập các dòng CE với thiết bị ở mức thấp LOW, sau đó giao
tiếp với nó, sau đó thiết lập các dòng SS trở lại mức cao HIGH.  Ở đây có hai dòng CE -
với mỗi 1 thiết bị chỉ sử dụng 1 dòng CE và có thể sử dụng bất kỳ chân digital nào trên
Rasberry cho dòng CE. Chỉ cần nhớ là để tất cả các dòng CE ở mức cao HIGH, "ngoại
trừ" dòng CE mà ta muốn kết nối với các thiết bị SPI vào thời điểm đó.
Để cấu hình các chân SPI trên Raspberry Pi, ta có thể sử dụng lệnh cấu hình sau trên
terminal.[18].

Đây cũng là giao thức truyền thông để chúng em thực hiện kết nối với LoRa Ra-02.

1.4.5 Module Lora Ra-02


Module Lora Ra-02 đã được trình bày ở thiết kế phần cứng của Node điều khiển
gắn trên các đèn đường.
1.4.6 Thiết kế Gateway từ Module Raspberry và LoRa Ra-02
Ở mục này, chúng em sử dụng giao thức truyền thông SPI để kết nối Raspberry với
LoRa Ra-02.
Cấu trúc một Gateway gồm ba phần chính:

Hình 3- 11 Cấu trúc phần cứng của Gateway

Dưới đây là mô tả kết nối giữa hai module:


Bảng 2: Sơ đồ nối dây của Raspberry và LoRa Ra-02

Raspberry LoRa Ra-02


Pin 35 DIO0
Pin 21 MISO
Pin 19 MOSI
Pin 23 SCK
Pin 24 NSS
Pin 22 RST

Hình 3-12 Sơ đồ nối dây giữa Raspberry với Lora Ra 02

Để tạo nên tính năng nhỏ gọn và không gặp sự cố về dây kết nối cho hai module,
chúng em đã vẽ một mạch điện kết nối hai module trên lại với nhau. Dưới đây là hình ảnh
thực tế về Gateway chúng em đã hoàn thành.
Hình 3- 13 Hình ảnh Gateway thực tế đã được thiết kế

1.4.7 Thiết kế phần mềm cho Gateway


a. Phân tích chức năng
Gateway có vai trò nhận tín hiệu từ phần mềm điều khiển hoạt động của từng cột đèn
thông qua nút cảm biến gắn trên mỗi cột đèn, giám sát trên máy tính. Từ những phân tích
trên, Gateway phải có được những chức năng sau:
 Nhận bản tin từ phần mềm quản lý giám sát trên máy tính và gửi cho các nút.
 Chuyển tiếp bản tin thông báo tình trạng hoạt động của các cột đèn về phần mềm
trên máy tính.
b. Định dạng bản tin
Để đáp ứng cho hệ thống hoạt động ổn định cũng như đưa ra được những cảnh báo
hợp lý cho người quản lý, cần định tuyến bản tin một cách rõ ràng cho các trường hợp
hoạt động. Sau phi đã phân tích và định tuyến bản tin, em đã định nghĩa các bản tin điều
khiển như sau.

Hình 3-14 Định dạng bản tin cho Gateway

 Với các bản tin gửi đi.


Địa chỉ nút ID Vị trí 6 bit Điều khiển
(16 bit) (8 bit) (không dùng) (2 bit)
Bản tin gửi đến Gateway có 32 bit trong đó:
 Địa chỉ: 16 bit chứa địa chỉ của nút (từ 0000 đến FFFF).
 Vị trí: 8 bit tiếp theo là vị trí của nút, vị trí là đường, phố đặt cột đèn chứa
cảm biến.
 Không sử dụng: 6 bit tiếp theo không dùng.
 Trạng thái đèn: 2 bit tiếp theo là bit điều khiển đèn gồm: 00 là tín hiệu điều
khiển đèn tắt, 01 là tín hiệu điều khiển đèn bật.
Việc định tuyến bản tin như trên, ta có thể điều khiển chính xác từng nút cảm biến
một cách dễ dàng.

c. Xây dựng thuật toán cho Gateway


Từ các phân tích và qua việc định tuyến các bản tin trong hệ thống em đã đưa ra
thuật toán cho một nút cảm biến theo sơ đồ sau:
Lưu đồ thuật toán cho Gateway:
Hình 3-15 Lưu đồ thuật toán cho Gateway

Hàm main có nhiệm vụ khởi tạo các khối chức năng phục vụ cho việc truyền nhận
và xử lý tín hiệu sau khi khởi tạo Lora và cổng giao tiếp SPI.
Sau khi được cấp nguồn điện, Gateway bắt đầu hoạt động, ở chương trình chính.
Lora được khởi tạo ở tần số 433MHz, Gateway sẽ chuyển sang trạng thái chờ lệnh từ
User và lắng nghe bản tin từ các Node gửi về. Sau khi nhận được tín hiệu điều khiển
Raspberry sẽ tiến hành gửi lệnh đến các Node tương ứng thông qua Lora. Kết thúc việc
gửi lệnh sẽ quay về chế độ chờ.
Mỗi Node cảm biến trong hệ thống sẽ được cài đặt một địa chỉ riêng biệt, khi
Gateway gửi bản tin tới tất cả các Node trong hệ thống. Node nào có địa chỉ trùng với địa
chỉ trong bản tin gửi từ Gateway sẽ thực hiện lệnh điều khiển và phản hồi về Gateway. Vì
vậy trong bản tin gửi đi sẽ bao gồm địa chỉ của Node và tín hiệu bật/tắt đèn.
Trong trường hợp các Node được di chuyển đi một nơi khác, ta có thể dễ dàng
định lại vị trí của các Node bằng cách gửi bản tin từ Gateway yêu cầu thay đổi vị trí.
Trong trường hợp nhận được bản tin từ Node, hàm main sẽ chuyển sang chương trình
con “Xử lý tín hiệu Node”, sau khi xử lý xong, chương trình sẽ quay về trạng thái chờ.

Hình 3-16 Lưu đồ thuật toán cho chương trình xử lý dữ liệu từ Node
Bản tin mà Gateway nhận về từ các Node bao gồm địa chỉ Node, vị trí, và trạng thái
của Node đó. Sau khi phân tích bản tin, dữ liệu sẽ được lưu vào một biến trung gian và
cập nhật lên Web Server. Kết thúc chương trình con.
1.5 Hệ thống giám sát và điều khiển
Nhóm chúng em sử dụng Web Server làm hệ thống giám sát đèn chiếu sáng. Việc
giám sát và điều khiển sẽ được thực hiện được trên trình duyệt mạng.
Web Server là một máy chủ Web mà khi có bất kỳ một Web Client nào (chẳng hạn
Web Browser) truy cập vào, thì nó sẽ căn cứ trên các thông tin yêu cầu truy cập để xử lý,
và phản hồi lại nội dung. Đa phần các nội dung Web Server phục vụ là HTML,
Javascript, CSS, JSON và bao gồm cả các dữ liệu Binary. HTML, Javascript và CSS là
ba ngôn ngữ để xây dựng và phát triển Web.
HTML viết đầy đủ là Hyper Text Markup Language - ngôn ngữ đánh dấu siêu văn
bản dùng để cấu trúc nội dung của một trang Web, ví dụ như: chỉ định các đoạn văn bản,
tiêu đề, bảng dữ liệu, hoặc nhúng hình ảnh hoặc video vào Web. Mỗi trang Web chứa
một loạt các liên kết đến các trang khác được gọi là hyperlinks (siêu liên kết). Mỗi trang
được tạo ra từ nhiều tag (thẻ) khác nhau.
Javascript là một ngôn ngữ được thiết kế chủ yếu để thêm tương tác vào các trang
Web, và tạo ra các ứng dụng Web. Các chương trình Javascript có thể được nhúng trực
tiếp vào HTML của Web. Và tùy vào mục đích cụ thể, script có thể chạy khi mở trang
Web, nhấp chuột, gõ phím, gửi biểu mẫu, cập nhật dữ liệu, giao tiếp với cơ sở dữ liệu…
Để nhúng chương trình viết bằng Javascript vào trang HTML, chỉ cần thêm tag.
CSS là từ viết tắt của Cascading Style Sheets, là một ngôn ngữ được thiết kế để xử
lý giao diện Web, giúp các trang Web được đẹp hơn. CSS có thể kiểm soát được màu sắc
của văn bản, phong chữ, kích cỡ chữ…
PHP là chữ viết tắt của “Personal Home Page” do Rasmus Lerdorf tạo ra năm 1994.
Vì tính hữu dụng của nó và khả năng phát triển, PHP bắt đầu được sử dụng trong môi
trường chuyên nghiệp và nó trở thành “PHP: Hypertext Preprocessor”. PHP là một ngôn
ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng
dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với
web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng
web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản
phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành
một ngôn ngữ lập trình web phổ biến nhất thế giới. PHP 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). Đây là hai yếu tố rất quan trọng, thứ nhất không
phụ thuộc vào môi trường (cross-platform). Đây là hai yếu tố rất quan trọng, thứ nhất khi
nói về công nghệ phía máy chủ tức là nói đến mọi thứ trong PHP đều xảy ra trên máy
chủ, thứ hai, chính vì tính chất không phụ thuộc môi trường cho phép PHP chạy trên hầu
hết các hệ điều hành như Windows, Unix và nhiều biến thể của nó … Đặc biệt các mã
kịch bản PHP trên máy chủ này sẽ làm việc bình thường trên máy chủ khác mà không cần
phải chỉnh sửa hoặc chỉnh sửa rất ít.

Hình 3-17 Lưu đồ thuật toán của Web Server

MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được
các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là hệ
quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động
trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ
và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên
internet. MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32
cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD,
Novell NetWare, SGI Irix, Solaris, SunOS,… MySQL là một trong những ví dụ rất cơ
bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL -
Structured Query Language). MySQL được sử dụng cho việc bổ trợ NodeJs, PHP, Perl,
và nhiều ngôn ngữ khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng
NodeJs, PHP hay Perl, ...
Cơ sở dữ liệu MySQL của Web Server thể hiện trên hình sau:
Hình 3-18 Cơ sở dữ liệu của Web Server

Trong đó:
 id: đỉa chỉ của Node.
 name: tên của Node.
 position: vị trí của Node.
 status: trạng thái của Node, trong đó: status = 1 (đèn đang sáng), status = 2 (đèn
đang tắt), giá trị khác (đèn bị lỗi).
 update_time: thời gian gần nhất server nhận được dữ liệu từ các Node.
 action: lệnh hành động, trong đó: action = 1 (lệnh bật đèn), action = 0 (lệnh tắt
đèn), action = -1 (đang không có lệnh điều khiển).
Để truy cập vào Web Server, nhập IP của máy Server. Thông thường, link có dạng
192.168.x.y. Trong bài toán của chúng em link IP cần truy cập là 192.168.137.1. Giao
diện của Server gồm ba phần chính:
 Các nút bấm để điều khiển: bật, tắt, ngoài ra có thể bật/tắt đồng thời bằng cách
nhấn bật toàn bộ/tắt toàn bộ.
 Trạng thái của đèn: được thể hiện bằng các màu như trên hình 3-33. Màu xanh
dương là đèn đang bật, màu xám là đèn đang tắt, màu vàng là đèn đang bị lỗi.
 Vị trí của đèn: Tên đường đặt cột đèn, ví dụ trên hình 3-33, Node 3 đang được đặt
tại đường Yên Lãng và đèn đang được bật.
Dưới đây là giao diện hệ thống điều khiển trên máy tính.
Hình 3- 19 Giao diện Web Server điều khiển trên máy tính

Ngoài ra, Web Server còn có chức năng thông báo lỗi khi gặp sự cố mất kết nối
giữa Gateway và các Node (Node mất điện, lỗi đường truyền,…). Khi quá 5 phút mà
Server không nhận được trạng thái cập nhật từ Gateway thì sẽ thông báo lỗi.
1.6 Kết luận
Ở chương 3 chúng em đã tiến hành xây dựng mô hình mạng cảm biến không dây
giám sát, điều khiển đèn chiếu sáng bao gồm: Gateway, Node cảm biến và hệ thống giám
sát điều khiển Web Server. Đồng thời đưa ra phương án thiết kế phần cứng, cũng như chỉ
ra thuật toán hoạt động của các thành phần trong hệ thống.

You might also like