TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN
----------
ĐỒ ÁN 2
NGÀNH TỰ ĐỘNG HÓA CÔNG NGHIỆP
ĐỀ TÀI:
TÌM HIỂU VỀ CÔNG NGHỆ LORA VÀ ỨNG
DỤNG MÔ PHỎNG CƠ BẢN ĐỂ TRUYỀN NHẬN
THÔNG TIN
Giảng viên hướng dẫn :
TS Đỗ Trọng Hiếu
Họ và tên
:
Nguyễn Đăng Anh
Mã số sinh viên
:
201811602
Lớp, khóa
:
TDH01-K2-VB2
Hà Nội - 2019
i
CHƯƠNG 1:
CƠ SỞ LÝ THUYẾT
Tổng quan về board mạch Arduino
Arduino là bo mạch vi điều khiển mạch đơn được sử dụng để làm thiết bị điện tử cho
các dự án đa lĩnh vực theo cách tiếp cận dễ dàng đối với người sử dụng. Phần cứng
bao gồm một bảng mạch điện tử phần cứng dạng nguồn mở được thiết từ bộ vi xử lý
8-bit Atmel AVR , hoặc 32-bit Atmel ARM. Phần mềm cho phần cứng này bao gồm
một trình biên dịch ngôn ngữ lập trình chuẩn và một bộ nạp khởi động, để có thể thực
hiện các lệnh trên bộ vi điều khiển.
Các bảng mạch Arduino có thể được mua trước khi lắp ráp hoặc bộ dụng cụ tự-mìnhlàm DIY. Thông tin thiết kế phần cứng có sẵn cho những người muốn tự tay lắp ráp
một bảng mạch Arduino. Người ta ước tính vào giữa năm 2011 có hơn 300.000 bộ
bảng mạch Arduino chính thức đã được sản xuất thương mại.
1.1.1. Lịch sử phát triển
Đội phát triển cốt lõi Arduino gồm Massimo Banzi, David Cuartielles, Tom Igoe ,
Gianluca Martino, David Mellis và Nicholas Zambetti. Massimo Banzi đã được phỏng
vấn trên tuần san FLOSS ngày 21 tháng 3 năm 2009 tập trên mạng TWiT.tv, trong đó
ông đã thảo luận về lịch sử và mục tiêu của dự án Arduino. Ông cũng có buổi nói
chuyện tại Hội nghị TEDGlobal 2012, nơi mà ông vạch ra sử dụng khác nhau của bảng
mạch Arduino trên thế giới.
Arduino là phần cứng nguồn mở: các thiết kế tham khảo phần cứng Arduino được
phân phối theo giấy phép Creative Commons Attribution Share-Alike 2.5 và có sẵn
trên trang web của Arduino. Bố trí và sản xuất tập tin cho một số phiên bản của phần
cứng Arduino cũng có sẵn. Mã nguồn cho IDE có sẵn và phát hành theo giấy
phép GNU General Public License, phiên bản 2.
Mặc dù thiết kế phần cứng và phần mềm là tự do sẵn có theo giấy phép copyleft, các
nhà phát triển đã yêu cầu tên "Arduino" được độc quyền sản phẩm chính thức và
không được sử dụng cho sản phẩm phái sinh mà không được phép. Văn bản chính sách
chính thức về việc sử dụng các tên Arduino nhấn mạnh rằng dự án là mở cửa cho kết
2
hợp công việc của người khác vào các sản phẩm chính thức. Một số sản phẩm tương
thích với Arduino phát hành thương mại đã tránh được "Arduino" tên bằng cách sử
dụng tên các biến thể "-Duino "
1.1.2. Phần cứng của Arduino
Một bảng mạch Arduino bao gồm một bộ vi điều khiển Atmel AVR 8-bit và các thành
phần bổ sung để tạo điều kiện lập trình và tích hợp cách mạch điện khác với bảng
mạch Arduino. Một khía cạnh quan trọng của Arduino dựa trên tiêu chuẩn kết nối
thống nhất, cho bo mạch CPU được kết nối với một loạt mô-đun chuyển đổi tiện ích
bổ sung được gọi là shield (bộ chắn). Một số shield giao tiếp bo mạch Arduino trực
tiếp từ các chân nối khác nhau, nhưng shield được định địa chỉ riêng biệt thông qua
bus kết nối nối tiếp I² C, cho phép shield được xếp chồng lên nhau và được sử dụng
song song nhau. Arduino chuẩn sử dụng megaAVR là tổ chợp chip, đặc biệt là
ATmega8 , Atmega168, ATmega328, ATmega1280, và ATmega2560. Một số ít các
bộ vi xử lý khác đã được sử dụng tương thích chuẩn Arduino. Hầu hết bo mạch bao
gồm một bộ điều áp tuyến tính 5V và một bộ dao động tinh thể 16 MHz (hoặc cộng
hưởng gốm trong một số biến thể dao động), mặc dù một số thiết kế như LilyPad chạy
ở 8 MHz và chia sẻ bộ điều áp trên bo mạch do hạn chế thông số định dạng thể. Bộ vi
điều khiển của Arduino cũng được lập trình trước nhờ một bộ nạp khởi động theo cách
đơn giản là tải lên các chương trình vào bộ nhớ flash trên chip, so với các thiết bị khác
thường cần một lập trình viên bên ngoài hỗ trợ khi sử dụng.
Ở cấp độ khái niệm, khi sử dụng xếp chồng phần mềm Arduino, tất cả bo mạch được
lập trình nhờ kết nối nối tiếp RS-232, nhưng cách này được thực hiện khác nhau theo
từng phiên bản của phần cứng . Bảng mạch Arduino nối tiếp chứa một mạch dịch cấp
để chuyển đổi giữa tín hiệu cấp-RS-232 và cấp-TTL. Bảng mạch Arduino hiện nay
được lập trình thông qua cổng USB, cài đặt này sử dụng chip chuyển đổi USB-sangnối tiếp như FTDI FT232. Một số biến thể, chẳng hạn như Arduino Mini và Boarduino
không chính thức, sử dụng một bảng mạch có thể tháo rời chuyển đổi USB-sang-nối
tiếp hoặc cáp, Bluetooth hoặc các phương pháp khác . (Khi được sử dụng với các công
cụ vi điều khiển truyền thống thay vì Arduino IDE, lập trình AVR ISP chuẩn phải
được sử dụng.)
3
Bảng mạch Arduino luôn cho thấy hầu hết các chân nối I/O pins của vi điều khiển để
sử dụng bởi các mạch khác. Các Diecimila, Duemilanove , và Uno hiện tại cung cấp
14 chân I/O số, sáu trong số đó có thểtạo tiến hiệu điều biến độ rộng xung, và sáu đầu
vào tương tự. Các chân nằm ở mặt trên bo mạch, thông qua đầu chân cái 0.10-inch (2,5
mm). Một số shield ứng dụng nhúng plug-in cũng đã có ở dạng thương mại.
Bo mạch Arduino Nano và Bare Bones tương thích Arduino có thể cung cấp các chân
cắm đực ở mặt duwois của bo mạch để kết nối các bo mạch khác không cần hàn.
Có rất nhiều bo mạch tương thích Arduino và bo mạch dẫn xuất từ Arduino. Một số có
chức năng tương đương với Arduino và có thể được sử dụng thay thế lẫn cho nhau.
Phần lớn là Arduino cơ bản với việc bổ sung các trình điều khiển đầu ra phổ biến,
thường sử dụng trong giáo dục cấp trường để đơn giản hóa việclắp ráp các xe đẩy và
robot nhỏ. Những biến thể khác là tương đương về điện nhưng thay đổi tham số dạng
(form-factor), đôi khi cho phép tiếp tục sử dụng các Shield, đôi khi không. Một số biến
thể sử dụng bộ vi xử lý hoàn toàn khác, với mức độ khác nhau về tính tương thích.
1.1.3. Shield
Arduino và bảng mạch Arduino tương thích sử dụng các shiel - bo mạch mạch điện
được cắm vào bo mạch Arduino chính thường thông qua các đầu chân cắm trên bo
mạch Arduino chủ. Shiel có thể cung cấp chức năng điều khiển động cơ, GPS, kết nối
mạng ethernet, màn hình LCD, hoặc bảng mạch khung (tạo mẫu). Một số shield cũng
có thể được chế tạo để thực hiện DIY.
1.1.4. Phần mềm
Môi trường phát triển tích hợp (IDE) Arduino là một ứng dụng đa nền tảng được
viết bằng Java, và được dẫn xuất từ IDE cho ngôn ngữ lập trình xử lý và các dự án lắp
ráp. Nó được thiết kế để làm nhập môn lập trình cho các nhà lập trình và những người
mới sử dụng khác không quen thuộc với phát triển phần mềm. Nó bao gồm một trình
soạn thảo mã với các tính năng như làm nổi bật cú pháp, khớp dấu ngặc khối chương
trình, và thụt đầu dòng tự động, và cũng có khả năng biên dịch và tải lên các chương
trình vào bo mạch với một nhấp chuột duy nhất. Một chương trình hoặc mã viết cho
Arduino được gọi là "sketch" .
4
Chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm với một
thư viện phần mềm được gọi là "Wiring" từ dự án lắp ráp ban đầu, cho hoạt động đầu
vào/đầu ra phổ biến trở nên dễ dàng hơn nhiều. Người sử dụng chỉ cần định nghĩa hai
hàm để thực hiện một chương trình điều hành theo chu kỳ :
setup() : hàm chạy một lần duy nhất vào lúc bắt đầu của một chương trình dùng
để khởi tạo các thiết lập.
loop() : hàm được gọi lặp lại liên tục cho đến khi bo mạch được tắt đi.
Khi các bạn bật điện bảng mạch Arduino, reset hay nạp chương trình mới, hàm
setup() sẽ được gọi đến đầu tiên. Sau khi xử lý xong hàm setup(), Arduino sẽ nhảy đến
hàm loop() và lặp vô hạn hàm này cho đến khi bạn tắt điện bo mạch Arduino. Chu
trình đó có thể mô tả trong hình dưới đây:
Arduino IDE sử dụng GNU toolchain và AVR libc để biên dịch chương trình, và sử
dụng avrdude để tải lên các chương trình vào bo mạch chủ.
Do nền tảng Arduino sử dụng vi điều khiển Atmel, môi trường phát triển của
Atmel, AVR Studio hoặc Atmel Studio mới hơn, cũng có thể được sử dụng để phát
triển phần mềm cho các Arduino
5
Khái quát cấu tạo của Arduino Uno R3
1.2.1. Giới thiệu
Nhắc tới lập trình hay nghiên cứu chế tạo bằng Arduino, dòng đầu tiên mà mọi
người thường tìm hiểu là Arduino Uno và hiện tại đã phát triển đến thế hệ thứ 3 (R3).
Nếu mà người mới tìm hiểu bạn nên nghiên cứu Arduino Uno R3 hơn là tiếp cận
những dòng Arduino khác vì dòng Arduino Uno R3 rất dễ sử dụng đối với những
người mới tiếp cận về lập trình.
Ảnh Arduino Uno
Arduino Uno là 1 bo mạch thiết kế với bộ xử lý trung tâm là vi điểu khiển AVR
Atmega328. Cấu tạo chính của Arduino Uno bao gồm các phần sau:
- Cổng USB: đây là loại cổng giao tiếp để ta upload code từ PC lên vi điều khiển.
Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính.
- Jack nguồn: để chạy Arduino thỉ có thể lấy nguồn từ cổng USB ở trên, nhưng
không phải lúc nào cũng có thể cắm với máy tính được . Lúc đó ta cần một nguồn từ
9V đến 12V.
- Có 14 chân vào/ra số đánh số thứ tự từ 0 đến 13, ngoài ra có một chân nối đất
(GND) và một chân điện áp tham chiếu (AREF).
6
- Vi điều khiển AVR: đây là bộ xử lí trung tâm của toàn bo mạch. Với mỗi mẫu
Arduino khác nhau thì con chip là khác nhau. Ở con Arduino Uno này thì sử dụng
ATMega328.
1.2.2. Thông số kĩ thuật
Vi xử lý:
Atmega328
Điện áp hoạt động:
5V
Điện áp đầu vào:
7-12V
Điện áp đầu vào (Giới hạn):
6-20V
Chân vào/ra (I/O) số:
14 (6 chân có thể cho đầu ra PWM)
Chân vào tương tự:
6
Dòng điện trong mỗi chân I/O:
40mA
Dòng điện chân nguồn 3.3V:
50mA
Bộ nhớ trong:
32 KB (ATmega328)
SRAM:
2 KB (ATmega328)
EEPROM:
1 KB (ATmega328)
Xung nhịp:
16MHz
1.2.3. Vi điều khiển của Arduino uno R3
Vi điều khiển của Arduino Uno R3
7
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8,
ATmega168, ATmega328. Bộ não này có thể xử lí những tác vụ đơn giản như điều
khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo
nhiệt độ - độ ẩm và hiển thị lên màn hình LCD, …
Thiết kế tiêu chuẩn của Arduino UNO sử dụng vi điều khiển ATmega328 với giá
khoảng 90.000đ. Tuy nhiên nếu yêu cầu phần cứng của bạn không cao hoặc túi tiền
không cho phép, bạn có thể sử dụng các loại vi điều khiển khác có chức năng tương
đương nhưng rẻ hơn như ATmega8 (bộ nhớ flash 8KB) với giá khoảng 45.000đ hoặc
ATmega168 (bộ nhớ flash 16KB) với giá khoảng 65.000đ.
1.2.4. Năng lượng
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn
ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V. Thường thì cấp
nguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB.
Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO.
Các chân năng lượng
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi bạn dùng các
thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với
nhau.
5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của
nguồn với chân này và cực âm của nguồn với chân GND.
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở
chân này. Và dĩ nhiên nó luôn là 5V. Mặc dù vậy bạn không được lấy nguồn 5V từ
chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc
chân RESET được nối với GND qua 1 điện trở 10KΩ.
Lưu ý:
8
Arduino UNO không có bảo vệ cắm ngược nguồn vào. Do đó bạn phải hết sức cẩn
thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO. Việc
làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn
giấy. mình khuyên bạn nên dùng nguồn từ cổng USB nếu có thể.
Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết
bị khác, không phải là các chân cấp nguồn vào. Việc cấp nguồn sai vị trí có thể làm
hỏng board. Điều này không được nhà sản xuất khuyến khích.
Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có
thể làm hỏng board.
Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển
ATmega328.
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO
nếu vượt quá 200mA sẽ làm hỏng vi điều khiển.
Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm
hỏng vi điều khiển.
Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO
vượt quá 40mA sẽ làm hỏng vi điều khiển. Do đó nếu không dùng để truyền nhận dữ
liệu, bạn phải mắc một điện trở hạn dòng.
Khi mình nói rằng bạn “có thể làm hỏng”, điều đó có nghĩa là chưa chắc sẽ hỏng
ngay bởi các thông số kĩ thuật của linh kiện điện tử luôn có một sự tương đối nhất
định. Do đó hãy cứ tuân thủ theo những thông số kĩ thuật của nhà sản xuất nếu bạn
không muốn phải mua một board Arduino UNO thứ 2.Khi mình nói rằng bạn “có thể
làm hỏng”, điều đó có nghĩa là chưa chắc sẽ hỏng ngay bởi các thông số kĩ thuật của
linh kiện điện tử luôn có một sự tương đối nhất định. Do đó hãy cứ tuân thủ theo
những thông số kĩ thuật của nhà sản xuất nếu bạn không muốn phải mua một board
Arduino UNO thứ 2.
1.2.5. Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
9
32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ
Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng
cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu.
2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo khi
lập trình sẽ lưu ở đây. Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM.
Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận
tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây
giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây
mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
1.2.6. Cổng vào ra
Các chân của Arduino Uno R3
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2
mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân
đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc
định thì các điện trở này không được kết nối).
10
Một số chân digital có các chức năng đặc biệt như sau:
2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive –
RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2
chân này. Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây.
Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân
giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói
một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến
5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức
năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với
các thiết bị khác.
LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút
Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi
chân này được người dùng sử dụng, LED sẽ sáng.
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0
→ 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board,
bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu bạn
cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong
khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI
với các thiết bị khác.
Arduino IDE
Để lập trình cho Arduino, em đã sử dụng phần mềm Arduino IDE (Intergrated
Development Environment) được phát triển bởi đội ngũ kĩ sư của Arduino. Arduino
IDE rất dễ sử dụng, sử dụng ngôn ngữ lập trình Wiring dễ hiểu và dựa trên nền tảng
C/C++ rất quen thuộc với người làm kỹ thuật. Và quan trọng là số lượng thư viện code
được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn.
11
Giao diện Arduino IDE
Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows,
Macintosh OSX và Linux. Do có tính chất nguồn mở nên môi trường lập trình này
hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm
12
CHƯƠNG 2:
GIỚI THIỆU TỔNG QUAN VỀ CÔNG NGHỆ
TRUYỀN KHÔNG DÂY
2.1 Giới thiệu về một số công nghệ truyền không dây
Internet of Things (IoT) đã không còn là từ khóa xa lạ với chúng ta, các ứng dụng
IoT đang ngày càng tăng với tốc độ đáng kinh ngạc. Khi đề cập đến các ứng dụng IoT,
không thể không nhắc đến vai trò quan trọng của các kỹ thuật truyền dữ liệu, đặc biệt
là các kỹ thuật truyền thông không dây như Wi-Fi, Bluetooth, zigbee, các mạng di
động (GPRS, 2G, 3G, 4G, 5G…), NB-IoT hay các kỹ thuật họ LPWAN như LoRa,
SigFox,…. Trong các kỹ thuật vừa kể trên, kỹ thuật họ LPWAN đặc biệt là LoRa hiện
được sử dụng rất nhiều trong các ứng dụng dụng IoT với ưu điểm là có thể truyền tải
dữ liệu với khoảng cách truyền xa lên đến hàng chục km với công suất thấp và giá
thành để có thể triển khai một mạng LoRa cũng rất thấp.
2.1.1
Bluetooth
Một công nghệ giao tiếp truyền thông trong khoảng cách ngắn vô cùng quan trọng,
đó là Bluetooth. Hiện nay, bluetooth xuất hiện hầu hết ở các thiết bị như máy tính,
điện thoại/ smartphone,....và nó được dự kiến là chìa khóa cho các sản phẩm IoT đặc
biệt, cho phép giao tiếp thiết bị với các smartphone - một "thế lực hùng hậu" hiện nay.
Hiện nay, BLE - Bluetooth Low Energy - hoặc Bluethooth Smart là một giao thức
được sử dụng đáng kể cho các ứng dụng IoT. Quan trọng hơn, cùng với một khoảng
cách truyền tương tự như Bluetooth, BLE được thiết kế để tiêu thụ công suất ít hơn rất
nhiều
Tuy nhiên, BLE không thực sự được thiết kế cho các ứng dụng dùng để truyền file
và sẽ phù hợp hơn cho khối dữ liệu nhỏ. Nó có một lợi thế vô cùng lớn trong bối cảnh
hiện nay, smartphone đang là thiết bị không thể thiếu được của mỗi người. Theo
Bluetooth SIG, hiện có hơn 90% điện thoại smartphone được nhúng Bluetooth, bao
gồm các hệ điều hành IOS, Android và Window, và dự kiến đến năm 2018 sẽ là "
Smart Ready".
13
Một số thông tin kỹ thuật về Bluetooth 4.2:
Tần số: 2.4 GHz
Phạm vi: 50-150m ( Smart / BLE)
Dữ liệu truyền được: 1Mbps
2.1.2
Zigbee
Zigbee - Các khái niệm cơ bản
Zigbee, giống như Bluetooth, là một loại truyền thông trong khoảng cách ngắn, hiện
được sử dụng với số lượng lớn và thường được sử dụng trong công nghiệp. Điển hình,
Zigbee Pro và Zigbee remote control (RF4CE) được thiết kế trên nền tảng giao thức
IEEE802.15.4 - là một chuẩn giao thức truyền thông vật lý trong công nghiệp hoạt
động ở 2.4Ghz thường được sử dụng trong các ứng dụng khoảng cách ngắn và dữ liệu
truyền tin ít nhưng thường xuyên, được đánh giá phù hợp với các ứng dụng trong
smarthome hoặc trong một khu vực đô thị/khu chung cư.
Zigbee / RF4CE có một lợi thế đáng kể trong các hệ thống phức tạp cần các điều
kiện: tiêu thụ công suất thấp, tính bảo mật cao, khả năng mở rộng số lượng các node
cao...ví dụ như yêu cầu của các ứng dụng M2M và IoT là điển hình. Phiên bản mới
nhất của Zigbee là 3.0, trong đó điểm nổi bật là sự hợp nhất của các tiêu chuẩn Zigbee
khác nhau thành một tiêu chuẩn duy nhất. Ví dụ, sản phẩm và kit phát triển của Zigbee
của TI là CC2538SF53RTQT Zigbee System-On-Chip T và CC2538 Zigbee
Development Kit.
Standard: ZigBee 3.0 based on IEEE802.15.4
14
Frequency: 2.4GHz
Range: 10-100m
Data Rates: 250kbps
2.1.3
Z-wave
Tương tự Zigbee, Z-Wave là chuẩn truyền thông không dây trong khoảng cách ngắn
và tiêu thụ rất ít năng lượng. Dung lượng truyền tải với tốc độ 100kbit/s, quá đủ cho
nhu cầu giao tiếp giữa các thiết bị trong các hệ thống IoT, M2M. Chuẩn kết nối ZWave và Zigbee cùng hoạt động với tần số 2.4GHz, và cùng được thiết kế với mức
tiêu thụ năng lượng rất ít nên có thể sử dụng với các loại PIN di động.Zwave hoạt
động ở tần số thấp hơn so với Zigbee/wifi, dao động trong các dải tần của 900Mhz, tùy
theo quy định ở từng khu vực khác nhau.
Ưu điểm của Z-Wave là tiêu thụ năng lượng cực ít và độ mở ( open platform) cực
cao. Hiện nay, Z-Wave được ứng dụng chủ yếu trong ứng dụng smarthome. Đặc biệt,
mỗi thiết bị Z-Wave trong hệ thống là một thiết bị có thể vừa thu và vừa phát sóng nên
tính ổn định hệ thống được nâng cao.
Đặc biệt, Z-Wave đã được nhiều nhà sản xuất thiết bị tích hợp vào, đây là một công
nghệ đang được chú ý và các nhà sản xuất đang tập trung nhiều hơn vào nó.
Thông số kỹ thuật cơ bản:
15
Standard: Z-Wave Alliance ZAD12837 / ITU-T G.9959
Frequency: 900MHz (ISM)
Range: 30m
Data Rates: 9.6/40/100kbit/s
6LoWPAN
2.1.4
6LoWPAN là tên viết tắt của IPv6 protocol over low-power wireless PANs ( tức là:
sử dụng giao thức IPv6 trong các mạng PAN không dây công suất thấp). 6LoWPAN
được phát triển bởi hiệp hội đặc trách kỹ thuật Internet IETF ( Internet Engineering
Task Foce), cho phép truyền dữ liệu qua các giao thức IPv6 và IPv4 trong các mạng
không dây công suất thấp với các cấu trúc mạng điểm - điểm ( P2P: point to point ) và
dạng lưới ( mesh). Tiêu chuẩn được đặt ra để quy định các đặc điểm của 6LoWPAN cho phép sử dụng rộng rãi trong các ứng dụng IoT.
Điểm khác của 6LoWPAN so với Zigbee, Bluetooth là: Zigbee hay bluetooth là các
giao thức ứng dụng, còn 6LoWPAN là giao thức mạng, cho phép quy định cơ chế
đóng gói bản tin và nén header. Đặc biệt, IPv6 là sự kế thừa của IPv4 và cung cấp
khoảng 5 x 1028 địa chỉ cho tất cả mọi đối tượng trên thế giới, cho phép mỗi đối tượng
là một địa chỉ IP xác định để kết nối với Internet.
Được thiết kế để gửi các bản tin IPv6 qua mạng IEEE802.15.4 và các tiêu chuẩn IP
mở rộng như: TCP, UDP, HTTP, COAP, MQTT và Websocket, là các tiêu chuẩn cung
cấp nodes end-to-end, cho phép các router kết nối mạng tới các IP.
o
Standard: RFC6282.
16
o
Frequency: (adapted and used over a variety of other networking media
including Bluetooth Smart (2.4GHz) or ZigBee or low-power RF (sub1GHz).
o
Range: N/A.
o
Data Rates: N/A
Thread
2.1.5
Thread là một giao thức IP mới, dựa trên nền tảng mạng IPv6 được thiết kế riêng cho
mảng tự động hóa trong các tòa nhà và nhà. Nó không phải là một giao thức được yêu
thích để ứng dụng trong các bài toán IoT như Zigbee hay Bluetooth.
Được ra mắt vào giữa năm 2014 bởi Theard Group, giao thức Thread dựa trên các
tiêu chuẩn khác nhau, bao gồm IEEE802.15.4, IPv6 và 6LoWPAN, và cung cấp một
giải pháp dựa trên nền tảng IP cho các ứng dụng IoT. Được thiết kế để làm việc với
các sản phẩm chip của Freescale và Silicon Labs ( vốn hỗ trợ chuẩn IEÊ802.15.4), đặc
biệt có khả năng xử lý lên đến 250 nút với độ xác thực và tính mã hóa cao. Với một
bản phần mềm upgrade đơn giản, cho phép người dùng có thể chạy Theard trên các
thiết bị hỗ trợ IEEE802.15.4 hiện nay.
2.1.6
o
Tiêu chuẩn: Theard, dựa trên IEEE802.15.4 và 6LowPAN.
o
Tần số: 2.4GHz (ISM).
o
Phạm vi: N / A
Wifi.
17
Wifi (là viết tắt từ Wireless Fidelity hay mạng 802.11) là hệ thống mạng không dây
sử dụng sóng vô tuyến, cũng giống như điện thoại di đông, truyền hình và radio. Kết
nôi Wifi thường là sự lựa chọn hàng đầu của rất nhiều kỹ sư giải pháp bởi tính thông
dụng và kinh tế của hệ thống wifi và mạng LAN với mô hình kết nối trong một phạm
vi địa lý có giới hạn.
Các sóng vô tuyến sử dụng cho WiFi gần giống với các sóng vô tuyến sử dụng cho
thiết bị cầm tay, điện thoại di động và các thiết bị khác. Nó có thể chuyển và nhận
sóng vô tuyến, chuyển đổi các mã nhị phân 1 và 0 sang sóng vô tuyến và ngược
lại. Tuy nhiên, sóng WiFi có một số khác biệt so với các sóng vô tuyến khác ở
chỗ: Chúng truyền và phát tín hiệu ở tần số 2.4 GHz hoặc 5 GHz. Tần số này cao hơn
so với các tần số sử dụng cho điện thoại di động, các thiết bị cầm tay và truyền hình.
Tần số cao hơn cho phép tín hiệu mang theo nhiều dữ liệu hơn.
Hiện nay, đa số các thiết bị wifi đều tuân theo chuẩn 802.11n, được phát ở tần số
2.4Ghz và đạt tốc độ xử lý tối đa 300Megabit/giây
Standard: Based on 802.11n (most common usage in homes today)
Frequencies: 2.4GHz and 5GHz bands
Range: Approximately 50m
Data Rates: 600 Mbps maximum, but 150-200Mbps is more typical,
depending on channel frequency used and number of antennas (latest
802.11-ac standard should offer 500Mbps to 1Gbps)
18
Cellular
2.1.7
Với các ứng dụng IoT/M2M yêu cầu khoảng cách truyền thông dài, hoặc không bị
giới hạn bởi khoảng cách địa lý thì việc lựa chọn đường truyền dữ liệu thông qua
mạng điện thoại di động GPRS/3G/LTE là một lựa chọn sáng suốt. Tất nhiên, đối với
các kỹ sư thiết kế giải pháp,ai cũng hiểu rằng, truyền dữ liệu đi xa thì sẽ tốn năng
lượng tương ứng. Và yếu tố tiêu hao năng lượng dễ được chấp nhận trong bài toán
này.
Hiện nay, các thiết bị/các điểm đầu cuối trong công nghiệp đều được hỗ trợ tích hợp
các cổng giao tiếp vật lý theo chuẩn như: RS232 , RS485, RS422 hay Ethernet. Các
phương tiện truyền thông qua mạng di động đều hỗ trợ đầu vào là các cổng Serial hay
Ethernet nên việc tích hợp giải pháp truyền thông không dây không còn khó khăn hay
bị giới hạn bởi yếu tố khách quan nào khác.
> > > Tổng quan về giao tiếp RS232
> > > Sự khác nhau giữa RS232 và RS485
Standard: GSM/GPRS/EDGE (2G), UMTS/HSPA (3G), LTE (4G)
Frequencies: 900/1800/1900/2100MHz
Range: 35km max for GSM; 200km max for HSPA
Data Rates (typical download): 35-170kps (GPRS), 120-384kbps
(EDGE), 384Kbps-2Mbps (UMTS), 600kbps-10Mbps (HSPA), 310Mbps (LTE)
2.1.8
NFC
19
Đây là một giao thức truyền thông tương đối "lạ" đối với các kỹ sư giải pháp thiết kế.
Vậy, NFC là gì?
NFC (Near-Field Communications) là công nghệ kết nối không dây trong phạm vi
tầm ngắn trong khoảng cách 4 cm. Công nghệ này sử dụng cảm ứng từ trường để thực
hiện kết nối giữa các thiết bị (smartphone, tablet, loa, tai nghe …) khi có sự tiếp xúc
trực tiếp (chạm).
NFC dùng để làm gì?
Khi hai thiết bị đều có kết nối NFC, bạn có thể chạm chúng vào nhau để kích hoạt
tính năng này và nhanh chóng truyền tập tin gồm danh bạ, nhạc, hình ảnh, video, ứng
dụng hoặc địa chỉ website... Ở các nước phát triển, NFC còn được xem là chiếc ví điện
tử khi có thể thanh toán trực tuyến, tiện lợi và nhanh chóng.
Ngoài việc giúp truyền tải dữ liệu như trên thì NFC còn mở rộng với những công
dụng ví dụ như bạn đến quán café có một thẻ NFC để trên bàn, trong thẻ này đã cài đặt
sẵn wifi, thông tin của quán…lúc này bạn lấy chiếc điện thoại chạm vào NFC này thì
máy sẽ bật tất cả tính năng được cài sẵn trong thẻ đó mà không cần phải nhờ gọi nhân
viên. Hoặc tiên tiến hơn thì sau này có thể khi mua đồ trong siêu thị lớn thì quẹt NFC
của điện thoại để thanh toán tiền luôn.
Standard: ISO/IEC 18000-3
20
- Xem thêm -