TỔNG QUAN CÔNG NGHỆ TRUYỀN THÔNG WI-FI

Một phần của tài liệu Thiết kế và thi công hệ thống giám sát nhiều vườn (Trang 27)

2.3.1. Giới thiệu

Wifi mà mạng kết nối Internet không dây, là từ viết tắt của Wireless Fidelity, sử dụng sóng vô tuyến để truyền tín hiệu. Loại sóng vô tuyến này tương tự như sóng điện thoại, truyền hình và radio. Và trên hầu hết các thiết bị điện tử ngày nay như máy tính, laptop, điện thoại, máy tính bảng... đều có thể kết nối Wifi.

Hình 2.6: Kết nối Wi-Fi

2.3.2. Nguyên lý hoạt động

Để có được sóng Wifi thì cần phải có bộ phát Wifi - chính là các thiết bị như modem, router. Đầu vào, tín hiệu Internet nguồn (được cung cấp bởi các đơn vị ISP như FPT, Viettel, VNPT, CMC... hiện nay). Thiết bị modem, router sẽ lấy tín hiệu Internet qua kết nối hữu tuyến rồi chuyển thành tín hiệu vô tuyến, và gửi đến các thiết bị sử dụng như điện thoại smartphone, máy tính bảng, laptop... Đây là quá trình nhận tín hiệu không dây (hay còn gọi là adapter) - chính là card Wifi trên laptop, điện thoại... và chuyển hóa thành tín hiệu Internet. Và quá trình này hoàn toàn có thể thực hiện ngược lại, nghĩa là router, modem nhận tín hiệu vô tuyến từ adapter và giải mã chúng, gửi qua Internet.

Cũng giống như điện thoại di động, Wifi sử dụng sóng radio (sóng vô tuyến) để truyền thông tin qua hệ thống mạng. Máy tính bao gồm một card mạng không dây sẽ truyền dữ liệu gửi vào tín hiệu radio.

Tương tự tín hiệu này sẽ được truyền đi thông qua một ăng-ten, một bộ giải mã gọi là router. Sau khi giải mã xong, dữ liệu sẽ được gửi đến Internet thông qua một kết nối Ethernet có dây.

Khi mạng không dây hoạt động như đường 2 chiều, các dữ liệu nhận được từ internet cũng sẽ đi qua router và được mã hoá thành tín hiệu radio để card mạng không dây trên máy tính nhận.

2.3.3. Một số chuẩn kết nối Wi-Fi phổ biến

Về bản chất kỹ thuật, tín hiệu Wifi hoạt động gửi và nhận dữ liệu ở tần số 2.5GHz đến 5GHz, cao hơn khá nhiều so với tần số của điện thoại di động, radio... do vậy tín hiệu Wifi có thể chứa nhiều dữ liệu nhưng lại bị hạn chế ở phạm vi truyền - khoảng cách. Còn các loại sóng khác tuy tần số thấp nhưng lại có thể truyền đi ở khoảng cách rất xa.

Sóng Wifi sử dụng chuẩn kết nối 802.11 trong thư viện IEEE (Institute of Electrical and Electronics Engineers), chuẩn này bao gồm 4 chuẩn nhỏ hơn là a/b/g/n. (thường thấy trên modem, router có các ký hiệu này)

 Chuẩn 802.11b là phiên bản yếu nhất, hoạt động ở mức 2.4GHz và có thể xử

lý đến 11 megabit/giây.

 Chuẩn 802.11g nhỉnh hơn đôi chút so với chuẩn b, tuy nó cũng hoạt động ở

tần số 2.4GHz nhưng nó có thể xử lý 54 megabit/giây.

 Chuẩn 802.11a phát ở tần số cao hơn là 5GHz và tốc độ xử lý đạt 54

megabit/giây.

 Cuối cùng là chuẩn 802.11n, nó hoạt động ở tần số 2.4GHz nhưng tốc độ xử

lý lên đến 300 megabit/giây.

2.4. GIỚI THIỆU CHUẨN GIAO TIẾP I2C 2.4.1. Giới thiệu chung 2.4.1. Giới thiệu chung

Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C. I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit. Đây là đường Bus giao tiếp giữa các IC với nhau. Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại Vi điều khiển 8051, PIC, AVR, ARM... chip nhớ như: RAM tĩnh (Static Ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự(DAC), IC điểu khiển LCD, LED...

2.4.2. Đặc điểm giao tiếp I2C

Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL). SDA là đường truyền dữ liệu 2 hướng, còn SCL là đường truyền xung đồng hồ để đồng bộ và chỉ theo một hướng. Như thấy trên hình vẽ trên, khi một thiết bị ngoại vi kết nối vào đường bus I2C thì chân SDA của nó sẽ nối với dây SDA của bus, chân SCL sẽ nối với dây SCL.

Hình 2.8: Sơ đồ kết nối thiết bị với I2C

Mỗi dây SDA hãy SCL đều được nối với điện áp dương của nguồn cấp thông qua một điện trở kéo lên (pullup resistor). Sự cần thiết của các điện trở kéo này là vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (opendrain hay opencollector). Giá trị của các điện trở này khác nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng 1K đến 4.7k

Trở lại với hình 1, thấy có rất nhiều thiết bị (ICs) cùng được kết nối vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởỉ một địa chỉ duy nhất với một quan hệ chủ/tớ tồn tại trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt động như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận. Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hãy tớ (slave).

Hình 2.9: Giao tiếp I2C 2

Nhìn hình trên thấy xung đồng hồ chỉ có một hướng từ chủ đến tớ, còn luồng dữ liệu có thể đi theo hai hướng, từ chủ đến tớ hay ngược lại tớ đến chủ.

2.4.3. Chế độ hoạt động (tốc độ truyền)

Các bus I2C có thể hoạt động ở ba chế độ, hay nói cách khác các dữ liệu trên bus I2C có thể được truyền trong 3 chế độ khác nhau:

 Chế độ tiêu chuẩn (Standard mode)

 Chế độ nhanh (Fast mode)

 Chế độ cao tốc High-Speed (Hs) mode

Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau:

- Một chủ một tớ (one master - one slave).

- Một chủ nhiều tớ (one master - multi slave).

- Nhiều chủ nhiều tớ (Multi master - Multi slave)

Dù ở chế độ nào, một giao tiếp I2C đều dựa vào quan hệ chủ/tớ. Giả thiết một thiết bị A muốn gửi dữ liệu đến thiết bị B, quá trình được thực hiện như sau:

- Thiết bị A (Chủ) xác định đúng địa chỉ của thiết bị B (tớ), cùng với việc xác

định địa chỉ, thiết bị A sẽ quyết định việc đọc hay ghi vào thiết bị tớ -Thiết bị A gửi dữ liệu tới thiết bị B.

- Thiết bị A kết thúc quá trình truyền dữ liệu

Khi A muốn nhận dữ liệu từ B, quá trình diễn ra như trên, chỉ khác là A sẽ nhận dữ liệu từ B. Trong giao tiếp này, A là chủ còn B vẫn là tớ. Chi tiết việc thiết lập một giao tiếp giữa hai thiết bị sẽ được mô tả chi tiết trong các mục dưới đây.

Trình tự truyền bit trên đường truyền:

Hình 2.10: Trình tự truyền Bit trong giao tiếp I2C

Thiết bị chủ tạo một điều kiện start. Điều kiện này thông báo cho tất cả các thiết bị tớ lắng nghe dữ liệu trên đường truyền. Để kết thúc quá trình giao tiếp, thiết bị chủ tạo ra một điều kiện stop.

2.4.4. Điều kiện START và STOP

START và STOP là những điều kiện bắt buộc phải có khi một thiết bị chủ muốn thiết lập giao tiếp với một thiết bị nào đó trên bus I2C. START là điều kiện

khởi đầu, báo hiệu bắt đầu của giao tiếp, còn STOP báo hiệu kết thúc một giao tiếp. Hình dưới đây mô tả điều kiện START và STOP.

Hình 2.11: Điều kiện Start và Stop trong giao tiếp I2C

Điều kiện START: một sự chuyển đồi trạng thái từ cao xuống thấp trên đường SDA trong khi đường SCL đang ở mức cao (cao = 1; thấp = 0) báo hiệu một điều kiện START

Đỉều kiện STOP: Một sự chuyển đổi trạng thái từ mức thấp lên cao trên đường SDA trong khi đường SCL đang ở mức cao. Cả hai điều kiện START và STOP đều được tạo ra bởi thiết bị chủ. Sau tín hiệu START, bus I2C coi như đang trong trạng thái làm việc (busy). Bus I2C sẽ rỗi, sẵn sàng cho một giao tiếp mới sau tín hiệu STOP từ phía thiết bị chủ.

Truyền dữ liệu:

Mỗi xung clock có một bit dữ liệu được truyền. Mức tín hiệu SDA chỉ được thay đổi khi xung clock đang ở mức thấp, và ổn định khi xung clock ở mức cao. Thiết bị tớ có thể lấy mẫu dữ liệu khi xung clock ở mức cao.

2.5. CHUẨN GIAO TIẾP 1-WIRE 2.5.1. Giới thiệu 2.5.1. Giới thiệu

Chuẩn giao tiếp 1 dây (1 wire) do hãng Dallas giới thiệu. Trong chuẩn giao tiếp này chỉ cần 1 dây để truyền tín hiệu và làm nguồn nuôi (nếu không tính dây mass). Một tính năng đặc biệt của bus là khả năng chỉ sử dụng hai dây tín hiệu: data và GND. Để thực hiện điều này, các thiết bị 1-Wire bao gồm một tụ điện 800pF để trữ điện, và cung cấp nguồn trong quá trình đường data đang hoạt động.

2.5.2. Nguyên lý hoạt động

Tín hiệu trên bus 1-wire chia thành các khe thời gian 60 µs. 1 bit dữ liệu được truyền trên bus dựa trên khe thời gian (time slots). Các thiết bị slave cho phép có thời gian nền có một chút khác biệt từ thời gian nền danh nghĩa. Tuy nhiên đối với thiết bị master cần có bộ định thời với độ chính xác cao, để đảm bảo giao tiếp đúng với các thiết bị slave có thời gian nền khác biệt. Do đó rất quan trọng để tuân theo giới hạn thời gian mô tả trong các phần sau.

Bốn thao tác hoạt động cơ bản của bus 1-wire là Reset/Presence, gửi bit 1, gửi bit 0, và đọc bit. Thao tác byte như gửi byte và đọc byte dựa trên thao tác từng bit.

Gửi bit 1 (“Write 1” signal): Thiết bị master kéo bus xuống mức thấp trong khoảng 1 đến 15µs. Sau đó nhả bus (releases the bus) cho đến hết phần còn lại của khe thời gian.

Hình 2.13: Gửi tín hiệu bit “1”

Gửi bit 0 ("Write 0" signal): Kéo bus xuống mức thấp trong ít nhất 60µs, với chiều dài tối đa là 120 µs.

Hình 2.14: Gửi tín hiệu bit “0”

Lưu ý: giữa các lần gửi bit (0 hoặc 1), phải có khoảng thời gian phục hồi bus (recovery time) tối thiểu 1 µs.

Đọc bit: Thiết bị master kéo bus xuống mức thấp từ 0 -15µs. Khi đó thiết bị tớ khi đó sẽ giữ bus ở mức thấp nếu muốn gửi bit 0, Nếu muốn gửi bit 1 đơn giản là nhả bus. Bus nên lấy mẫu 15 µs sau khi bus kéo xuống mức thấp.

Hình 2.15: Đọc bit

Reset/Presence: Tín hiệu Reset và Presence (báo hiện diện) được trình bày như hình bên dưới. Thiết bị master kéo bus xuống thấp ít nhất 8 khe thời gian (tức là 480 µs) và sau đó nhả bus. Khoảng thời gian bus ở mức thấp đó gọi là tín hiệu reset. Nếu có thiết bị slave gắn trên bus nó sẽ trả lời bằng tín hiệu Presence tức là thiết bị tớ sẽ kéo bus xuống mức thấp trong khoảng thời gian 60µs. Nếu không có tín hiệu Presence, thiết bị master sẽ hiểu rằng không có thiết bị slave nào trên bus, và các giao tiếp sau đó sẽ không thể diễn ra.

Hình 2.16: Tín hiệu Reset và Presence

2.6. CHUẨN GIAO TIẾP UART 2.6.1. Giới thiệu 2.6.1. Giới thiệu

UART chuyển đổi giữa dữ liệu nối tiếp và song song. Một chiều UART chuyển đổi dữ liệu song song bus hệ thống ra dữ liệu nối tiếp để truyền đi. Một chiều khác UART chuyển đổi dữ liệu nhận được dạng dữ liệu nối tiếp thành dạng dữ liệu song song cho CPU có thể đọc vào bus hệ thống.

Hình 2.18: Truyền dữ liệu UART

2.6.2. Các thông số cơ bản của chuẩn truyền UART

Baud rate (tốc độ Baud): Khi truyền nhận không đồng bộ để hai module hiểu được nhau thì cần quy định một khoảng thời gian cho 1bit truyền nhận, nghĩa là trước khi truyền thì tốc độ phải được cài đặt đầu tiên. Theo định nghĩa thì tốc độ baud là số bit truyền trong một giây.

Frame (khung truyền): Do kiểu truyền thông nối tiếp này rất dễ mất dữ liệu nên ngoài tốc độ, khung truyền cũng được cài đặt từ ban đầu để giảm bớt sự mất mát dữ liệu này. Khung truyền quy định số bit trong mỗi lần truyền, các bit thông báo như start, stop, các bit kiểm tra như parity, và số bit trong một data.

Bit Start: Là bit bắt đầu trong khung truyền. Bit này nhằm mục đích báo cho thiết bị nhận biết quá trình truyền bắt đầu. Trên AVR bit Start có trạng thái là 0.

Data: Dữ liệu cần truyền data không nhất thiết phải 8 bit có thể là 5, 6, 7, 8, 9. Trong UART bit LSB được truyền đi trước, bit MSB được truyền đi sau.

Parity bit: Là bit kiểm tra dữ liệu. Có 2 loại parity: chẵn (even parity), lẻ (old parity). Parity chẵn là bit parity thêm vào để tổng số 1 trong data + parity = chẵn. Parity lẻ là bit parity thêm vào để tổng số 1 trong data + parity = lẻ. Bit parity là không bắt buộc nên có thể dùng hoặc không.

2.7. ỨNG DỤNG BLYNK 2.7.1. Giới thiệu 2.7.1. Giới thiệu

Hình 2.19: App Blynk

Blynk là một ứng dụng iOS và Android để kiểm soát thiết bị Esp8266, Arduino, Raspberry Pi và thiết bị khác trên Internet.

Blynk không bị ràng buộc với những phần cứng. Thay vào đó, nó hỗ trợ phần cứng lựa chọn. Cho dù Arduino hoặc Raspberry Pi muốn kết nối đến Internet qua Wi- Fi, Ethernet hoặc chip ESP8266, Blynk sẽ giúp nó làm việc và sẵn sàng kiểm soát trên Internet.

2.7.2. Các chức năng chính của Blynk

Các chức năng của Blynk:

● Cung cấp API & giao diện người dùng tương tự cho tất cả các thiết bị và phần

cứng được hỗ trợ

● Kết nối với server bằng cách sử dụng: Wifi, Bluetooth, Ethernet, USB(serial), GSM….

● Các tiện ích trên giao diện được nhà phát hành cung cấp dễ sử dụng

● Thao tác kéo thả trực tiếp giao diện mà không cần viết mã

● Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng các cổng kết nối ảo

được tích hợp trên Blynk app

● Theo dõi lịch sử dữ liệu

● Thông tin liên lạc từ thiết bị đến thiết bị bằng Widget

2.7.3. Nguyên lý hoạt động của Blynk

Có ba thành phần chính trong nền tảng:

Blynk App - cho phép tạo giao diện cho sản phẩm bằng cách kéo thả các widget khác nhau mà nhà cung cấp đã thiết kế sẵn.

Blynk Server - chịu trách nhiệm xử lý dữ liệu trung tâm giữa điện thoại, máy tính bảng và phần cứng. Có thể sử dụng Blynk Cloud của Blynk cung cấp hoặc tự tạo máy chủ Blynk riêng. Vì đây là mã nguồn mở, nên có thể dễ dàng kết nối vào các thiết bị và thậm chí có thể sử dụng Raspberry Pi làm server.

Library Blynk – hỗ trợ cho hầu hết tất cả các nền tảng phần cứng phổ biến - cho phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và đi.

Ví dụ hoạt động: giả sử có nút nhấn kết nối với Blynk, mỗi khi nhấn một nút trong ứng dụng Blynk, yêu cầu sẽ chuyển đến server của Blynk, server sẽ kết nối đến phần cứng thông qua library. Tương tự thiết bị phần cứng sẽ truyền dữ liệu ngược lại đến server.

2.8. XÂY DỰNG WEB SERVER 2.8.1. Ngôn ngữ HTML 2.8.1. Ngôn ngữ HTML

a. Giới thiệu

Ngôn ngữ HTML (HyperText Markup Language – ngôn ngữ siêu văn bản) là một trong các loại ngôn ngữ được sử dụng trong lập trình web. Khi truy cập một trang web cụ thể là click vào các đường link, sẽ được dẫn tới nhiều trang khác nhau, các trang này được gọi là một tài liệu HTML (tập tin HTML).

Một trang HTML như vậy được cấu thành bởi nhiều phần tử HTML nhỏ và được quy định bằng các thẻ tag. Có thể phân biệt một trang web được viết bằng ngôn ngữ HTML hay PHP thông qua đường link của nó. Ở cuối các trang HTML thường hay có đuôi là .HTML hoặc .HTM.

HTML là ngôn ngữ lập trình web được đánh giá là đơn giản. Mọi trang web, mọi trình duyệt web đều có thể hiển thị tốt ngôn ngữ HTML. Hiện nay, phiên bản mới nhất của HTML là HTML 5 với nhiều tính năng và chất lượng hơn so với các phiên bản cũ.

b. Vai trò

Là một loại ngôn ngữ đánh dấu siêu văn bản, giúp cấu thành các cấu trúc cơ bản trên một website (chia khung sườn, bố cục các thành phần trang web) và góp phần hỗ trợ khai báo các tập tin kĩ thuật số như video, nhạc, hình ảnh.

Để xây dựng được một website hoàn chỉnh, trên bất kỳ nền tảng nào khác đều cũng phải cần sự hỗ trợ của HTML, dù ít hay nhiều.

Một phần của tài liệu Thiết kế và thi công hệ thống giám sát nhiều vườn (Trang 27)