1.1 ĐẶT VẤN ĐỀ Nông nghiệp là ngành đang đóng vai trò quan trọng trong kinh tế nước ta, cung cấp sản lượng lớn trong việc tiêu dùng trong nước cũng như xuất khẩu. Thuộc bộ phận nông nghiệp, trồng cây cảnh cũng đang được áp dụng nhiều nơi, quy mô từ nhỏ đến lớn rất đa dạng. Ví dụ như việc trồng hoa trong khuôn viên của mỗi gia đình, hay các khu vực miền Tây, bà con nơi đây trồng cây cảnh để bán cho người dân, để chuyển lên các vùng khác. Quy mô lớn hơn, có đầu tư hơn nữa như là các làng hoa…………… Vì vậy, để có thể khắc phục các nhược điểm nói trên, tăng hiệu quả chăm sóc, chúng tôi quyết định thực hiện đề tài: “Hệ thống giám sát – chăm sóc cây cảnh ứng dụng IoT”. 1.2 MỤC TIÊU - Tìm hiểu về môi trường sống, đặc tính của hoa cúc, từ đó nhìn nhận được hạn chế khi sử dụng phương pháp truyền thống. - Đề xuất giải pháp……… - ……….. 1.3 NỘI DUNG NGHIÊN CỨU - Khảo sát về môi trường sống của cây cảnh với các thông số như nhiệt độ, độ ẩm, độ ẩm đất. - Nêu lên…….. - …….. 1.4 GIỚI HẠN - Đây chỉ là mô hình demo, chưa …… - ……. 1.5 BỐ CỤC Chương 1: Tổng quan Trình bày vấn đề, lý do chọn đề tài, mục tiêu, giới hạn nghiên cứu và bố cục đồ án. Chương 2: Cơ sở lý thuyết Tìm hiểu môi trường sống của hoa cúc, đặt vấn đề và nêu giải pháp khắc phục. Tìm hiểu về một hệ thống IoT, các các thiết bị cần cho hệ thống. Nghiên cứu các chuẩn truyền dữ liệu (I2C, UART, One – Wire). Chương 3: Tính toán – thiết kế Đặt mục tiêu cho hệ thống. Kết nối phần cứng, tạo cơ sở dữ liệu đồng bộ trên Firebase, tạo App Inventor. Sơ đồ khối và lưu đồ hoạt động. Chương 4: Thi công hệ thống Vẽ sơ đồ nguyên lý, thi công mạch in và làm mô hình thực tế hoàn chỉnh. Chương 5: Kết luận – đánh giá và hướng phát triển So sánh kết quả đạt được với mục tiêu mong muốn đã đặt ra ban đầu. Nêu lên hướng tối ưu đề tài.
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN KỸ THUẬT MÁY TÍNH – VIỄN THÔNG
TP HỒ CHÍ MINH – 11/2020
Trang 2TÓM TẮT
Thời đại kỷ nguyên số tác động mạnh mẽ đến tốc độ hiện đạihóa của cuốc sống, một trong những lợi ích của nó là côngnghiệp hóa Điều này giúp con người làm việc với tiết kiệm thờigian, công sức, chi phí rất nhiều
Song song với công nghiệp, nông nghiệp cũng đang dầnchuyển sang tự động hóa ở nhiều khu vực, ví dụ như mô hìnhtrồng cây cảnh kết hợp với dịch vụ tham quan đang rất pháttriển, mang lại nguồn lợi khá lớn cho người dân như là các lànghoa ở miền Tây Nhưng hầu hết các hoạt động như tưới tiêu,chăm sóc, giám sát đều thực hiện theo truyền thống, dẫn đếnngười dân sẽ chi nhiều tiền cho việc thuê mướn nhân công
Để khắc phục nhược điểm trên, chúng tôi muốn thực hiện đềtài với mục tiêu: giảm chi phí thuê mướn nhân công, giảm thờigian cho việc chăm sóc mà hiệu quả không giảm, tạo ra ứngdụng chạy trên điện thoại dễ sử dụng để thay thế phương phápthủ công của người dân
Nhóm thực hiện đề tài
Trang 3MỤC LỤC
Trang 4DANH MỤC HÌNH ẢNH
Trang 6DANH MỤC BẢNG
Trang 7CÁC TỪ VIẾT TẮT
API Application Programming
Interface Giao diện lậptrình ứng dụngFCM Firebase Cloud Message Dịch vụ gửi
thông báoGPIO General Purpose Input Output Ngõ giao tiếp
vào raI2C Inter – Intergrated Circuit
IDE Integrated Development
Environment Môi trường pháttriển tích hợpIoT Internet Of Things
JSON JavaScript Object Notation
MCU Micro Controller Unit
SDA Serial Data Line Tín hiệu dữ liệuSCL Serial Clock Line Tín hiệu xung UART Universal Asynchronous
Receiver – Transmitter Truyền nhận bấtđồng bộ
Trang 8Vì vậy, để có thể khắc phục các nhược điểm nói trên, tăng
hiệu quả chăm sóc, chúng tôi quyết định thực hiện đề tài: “Hệ thống giám sát – chăm sóc cây cảnh ứng dụng IoT”
1.2 MỤC TIÊU
- Tìm hiểu về môi trường sống, đặc tính của hoa cúc, từ đónhìn nhận được hạn chế khi sử dụng phương pháp truyềnthống
- Đề xuất giải pháp………
- ………
1.3 NỘI DUNG NGHIÊN CỨU
- Khảo sát về môi trường sống của cây cảnh với các thông sốnhư nhiệt độ, độ ẩm, độ ẩm đất
- Nêu lên……
- ……
Trang 9Chương 2: Cơ sở lý thuyết
Tìm hiểu môi trường sống của hoa cúc, đặt vấn đề và nêugiải pháp khắc phục Tìm hiểu về một hệ thống IoT, các các thiết
bị cần cho hệ thống Nghiên cứu các chuẩn truyền dữ liệu (I2C,UART, One – Wire)
Chương 3: Tính toán – thiết kế
Đặt mục tiêu cho hệ thống Kết nối phần cứng, tạo cơ sở dữliệu đồng bộ trên Firebase, tạo App Inventor Sơ đồ khối và lưu
đồ hoạt động
Chương 4: Thi công hệ thống
Vẽ sơ đồ nguyên lý, thi công mạch in và làm mô hình thực tếhoàn chỉnh
Chương 5: Kết luận – đánh giá và hướng phát triển
So sánh kết quả đạt được với mục tiêu mong muốn đã đặt raban đầu Nêu lên hướng tối ưu đề tài
Trang 10sứ trắng, nâu, đen trang trí bàn làm việc, văn phòng hay những
Trang 11không gian nội thất sang trọng góp phần làm tăng màu sắc cũngnhư sự tươi mới cho không gian.
Hoa cúc đồng tiền còn gọi là hoa đồng tiền, có nguồn gốc từchâu Phi [1] Thân hoa cao
Hình 2.3 Cúc đồng tiền hoa màu cam
Đất được cày sâu 30-40cm, tơi xốp, khử tuyến trùng, khử vikhuẩn [1] Lên luống tuỳ thuộc vào điều kiện sinh thái
bị sâu bệnh, cần tỉa cả lá mọc không đúng trật tự làm ảnhhưởng đến quá trình quang hợp của các lá khác
- Thứ hai, do yêu cầu cần theo dõi thường xuyên, đặc biệt là
độ ẩm và nhiệt độ, nên cần thuê mướn nhân công
- Thứ ba, điều kiện môi trường giữa ban ngày và ban đêmkhác nhau, nên cần chăm sóc cây vào ban đêm Vì những
Trang 12lý do trên, nên chúng tôi muốn ứng dụng IoT vào mô hình
để giải quyết vấn đề
Giải pháp đặt ra:
- Dùng cảm biến đo nhiệt độ, độ ẩm, độ ẩm đất
- Động cơ thứ nhất là máy bơm nước tạo độ ẩm đất thíchhợp
- Động cơ thứ hai là đèn giúp tăng nhiệt độ, độ ẩm thíchhợp, thắp sáng giúp tăng độ sinh trưởng cho hoa
- Yêu cầu điều khiển bật tắt máy bơm nước, đèn LED
- Ngoài điều khiển chế độ bằng tay và còn có tính năng tựđộng, áp dụng vào ban đêm để chăm sóc cây hoa
- Cài đặt giới hạn nhiệt độ và độ ẩm đất để tưới tự động
- Hiển thị cập nhật thông số liên tục để theo dõi
- Thiết kế app điện thoại để tiện theo dõi và điều khiển động
cơ chăm sóc cây hoa
2.3 YÊU CẦU THIẾT KẾ MẠCH
Thiết kế Hệ thống giám sát – chăm sóc cây cảnh ứng dụngIoT, với hai chức năng chính là giám sát và điều khiển
Thiết bị cần cho đề tài
Trước tiên, để tạo nên một hệ thống IoT thì cần một vi điềukhiển có thể kết nối/ phát wifi cho các thiết bị khác cùng kết nốivào nên sử dụng vi điều khiển NODE MCU ESP8266 làm bộ điềukhiển trung tâm
Yêu cầu đo nhiệt độ, độ ẩm đất cần tối thiểu 2 cảm biến, đó
là cảm biến nhiệt độ - độ ẩm DHT11 và cảm biến độ ẩm đất có
mô đun chuyển đổi
Về phần điều khiển, đầu vào cần kết nối nút nhấn để tạotrạng thái động cơ Đầu ra cần rơ-le kết nối với động cơ DC, chophép cấp nguồn cho động cơ chạy
Hệ thống có chức năng theo dõi cập nhật các giá trị nhiệt
độ, độ ẩm và trạng thái động cơ nên sử dụng màn hình LCD2004
để hiển thị
Trang 13NODE MCU kết nối với LCD và động cơ Vì vậy nếu chỉ sửdụng riêng lẽ NODE MCU thì không đủ chân kết nối tất cả cácinput, output, nguy cơ dẫn đến không đủ dòng cấp Vì nguyênnhân trên, đề tài sử dụng thêm vi điều khiển Arduino Uno R3 vớivai trò Slave đối với Master là NODE MCU Arduino Uno R3 kếtnối với 3 nút nhấn và cảm biến để đọc giá trị và gửi về NODEMCU.
Hệ thống gồm:
– Vi điều khiển Arduino Uno R3
– Vi điều khiển NODE MCU ESP8266
– Cảm biến độ ẩm đất
– Cảm biến đo nhiệt độ - độ ẩm DHT11
– LCD 2004 và mô đun I2C
– Rơ-le, Máy bơm, Đèn LED thanh
– Nút nhấn
2.3.1 Vi điều khiển Arduino Uno R3
Arduino Uno R3 là một bo mạch có thể sử dụng 3 vi điềukhiển họ 8 bit là ATmega8, ATmega168, ATmega328p [2] Bộ xử
lý này cung cấp 14 chân output digital, 6 chân analog, hỗ trợ bộtruyền dữ liệu UART, SPI, có thể thực hiện nhiều tác vụ nhưđiều khiển led, kết nối cảm biến đo nhiệt độ, độ ẩm, hiển thịLCD
Trang 14Hình 2.4 Sơ đồ các chân trên Arduino Uno R3
Nhằm đảm bảo hoạt động ổn định, cần nắm rõ và tuân thủcác thông số đầu vào cấp cho vi điều khiển và muốn sử dụngđúng chức năng các chân input / output của Arduino Uno R3,chúng ta phải biết được các đặc tính chân trên chip ATmega328p(hình 2.5)
Bảng 2.1 Thông số kỹ thuật Atmega328p
Vi điều khiển ATmega328pĐiện áp hoạt động 5V
Điện áp cấp (tốt
Điện áp giới hạn 6 – 20VChân I/O digital 14 (6 chân PWM)Chân Input analog 6
Dòng qua mỗi chân
Trang 15Hình 2.5 Sơ đồ chân của vi điều khiển ATmega328p
Năng lượng: Arduino Uno R3 được cấp nguồn 5V thông qua
cổng USB hoặc cấp nguồn ngoài qua chân Vin Thông thườngcấp nguồn bằng pin vuông 9V Nếu cấp nguồn vượt quá ngưỡnggiới hạn trên có thể làm hỏng vi điều khiển
- Chân GND: cực âm của nguồn điện trong Arduino UNO Khidù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
- Chân 5V: cấp điện áp 5V đầu ra Dòng tối đa là 500mA
- Chân 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa là 50mA
- Chân Vin: cấp nguồn ngoài cho Arduino UNO
- Chân IOREF: điện áp hoạt động của vi điều khiển trênArduino UNO có thể được đo ở chân này, mặc định là 5V
- Chân RESET: được nối với GND qua một điện trở 10KΩ,dùng khởi động lại vi điều khiển
Digital: được sử dụng làm chân nhập, xuất tín hiệu số thông
qua các hàm chính như pinMode(), digitalWrite(), digitalRead()
Trang 16Analog: độ phân giải mỗi chân là 10 bit (0 – 1023 ) Các
chân này dùng để đọc tín hiệu điện áp 0 – 5V (mặc định) tươngứng với 1024 giá trị, sử dụng hàm analogRead()
PWM: làm nhiệm vụ cấp xung PWM thông qua hàm
analogWrite()
UART: vi điều khiển ATmega328p thiết lập cấu hình truyền
dữ liệu qua chân D0 (RX) và chân D1 (TX)
2.3.2 Vi điều khiển NODE MCU ESP8266
Nhắc đến IoT không thể bỏ qua ESP8266, một thành phần cơbản trong hệ thống IoT Được công ty bán dẫn Espressif Systems(Trung Quốc) sản xuất, với khả năng lập trình được, ESP8266 tíchhợp Wifi 2.4GHz [3] Bên dưới là phiên bản đầu tiên ESP-01
Hình 2.6 Mô đun ESP – 01Phiên bản mới ESP8266EX được tạo nên nhờ sự phát triển quacác thời kỳ [3]
Trang 17Hình 2.7 Sơ đồ chân ESP8266EX
Để tiện cho việc tập trung vào phát triển phần mềm, hạnchế phải kết nối phần cứng nên đây là lí do NODE MCU đượchình thành Hình 2.8 minh họa sự kết hợp để hình thành NODEMCU ESP8266
Hình 2.8 Kết hợp tạo nên NODE MCU
Trang 18Vi điều khiển NODE MCU V1.0 được sử dụng trong cácproject SmartHome, SmartGarden, phát triển trên nền tảng chipESP8266EX, tích hợp GPIO, PWM, IIC, ADC và One-Wire hỗ trợcho việc lập trình [3]
Ngôn ngữ lập trình: C/C++, Micropython, NodeMCU – Lua
Nhập xuất tín hiệu số qua các chân GPIO và các đều cần lưu
ý trong quá trình lập trình:
Trang 19Hình 2.9 Các chân GPIO của NODE MCU
Trong 13 chân GPIO, sử dụng chân GPIO16 nếu thật sự cầnthiết
Chân GPIO1 và GPIO3 nếu không dùng cho truyền UART thì cầntránh sử dụng 2 chân này vì nó được nối trực tiếp với chân TX
và RX của bộ UART0
GPIO10 và GPIO9 dùng giao tiếp External Flash của ESP8266
GPIO0: dùng định cấu hình mode cho ESP8266 điều khiểntrong quá trình nạp chương trình, nếu muốn chuyển cấu hìnhkhác thì có thể thiết lập lại mức logic của 3 chân này
Các GPIO còn lại dùng bình thường
2.3.3 Cảm biến độ ẩm đất
Ứng dụng: trong nông nghiêp, bơm tự động cho các vườncây khi đất khô, chậu cây thông minh trong nhà, văn phòng, cácứng dụng của hệ thống nhà thông minh
Cảm biến độ ẩm đất được hoạt động với 2 chế độ ngõ raAnalog và Digital [2] Hai đầu đo của cảm biến được cắm vào đất
để phát hiện độ ẩm, dùng dây nối giữa cảm biến và modulechuyển đổi Thông tin về độ ẩm đất sẽ được đọc về và gửi tớimodule chuyển đổi Module chuyển đổi có cấu tạo chính gồm
Trang 20một IC so sánh LM393 Ngưỡng so sánh và tín hiệu cảm biến sẽ
là 2 đầu vào của LM393, khi độ ẩm thấp hơn ngưỡng định trước,ngõ ra của IC là mức cao (5V), ngược lại là mức thấp (0V) Mộtbiến trở định ngưỡng so sánh với tín hiệu đọc về từ cảm biến
Hình 2.10 Cảm biến độ ẩm đất và mô đun chuyển đổi
Tính độ ẩm đất:
Hàm map (value, a1, a2, b1, b2); có chức năng chuyển đổi từ tín
hiệu tương tự (lấy từ chân Analog của cảm biến) thành giá trị độ
ẩm đất
Trong đó:
value: giá trị Analog thu thập được từ cảm biến
a1, a2: giới hạn thang đo hiện tại
b1, b2: giới hạn cần chuyển đổi
Sử dụng thực tế: Cắm trực tiếp 2 chân đo của cảm biến
vào đất như hình 2.11 Khi cấp nguồn thì có đèn led báo sáng.Mạch phân áp đưa tín hiệu đầu ra analog đưa vào chân sosánh của mạch opam và chân đầu ra analog Mạch so sánh cóchức năng so sánh và đưa tính hiệu logic (1 or 0) ở đầu radigital [2]
Trang 21Hình 2.11 Cắm chân đo của cảm biến độ ẩm đất
Giới hạn khoảng cách truyền: 20m
Nguyên lý hoạt động của DHT11:
Kết nối nguồn cho DHT11 và chân data vào chân ngõ radigital của vi điều khiển, sau đó tín hiệu Start gửi từ MCU đến
Trang 22DHT11, yêu cầu đo và chờ xác nhận Khi vi điều khiển giao tiếpthành công, DHT11 sẽ gửi lại 5 byte dữ liệu và nhiêt độ [4].
Hình 2.13 Kết nối DHT11 với MCU
Giai đoạn 1: gửi tín hiệu khởi tạo Start
Đầu tiên, MCU thiết lập chân dữ liệu (data) của DHT làOUTPUT và kéo chân này xuống mức thấp trong khoảng >18ms.Lúc này DHT sẽ hiểu MCU muốn lấy dữ liệu Sau đó, MCU kéochân data về mức cao và thiết lập INPUT cho chân này Tiếptheo, DHT bắt đầu kéo chân data xuống mức thấp trong khoảng
từ 20-40µs, nếu sau khoảng này, chân data không được kéoxuống thấp tương đương với kết nối với vi điều khiển khôngthành công Chân data ở mức thấp trong 80µs và lên cao 80µs.Nếu chân data lên cao có nghĩa là hoàn thành quá trình giao tiếp
và tiếp theo là đọc dữ liệu
Giai đoạn 2: Đọc giá trị trên DHT11 gồm 5byte giá trị nhiệt độ
và độ ẩm
Bảng 2.2 Cấu trúc dữ liệu DHT11 gửi cho MCU
Độ ẩm $Byte 1 Phần nguyên
$Byte 2 Phần thập phânNhiệt độ $Byte 3 Phần nguyên
$Byte 4 Phần thập phânKiểm tra dữ
liệu $Byte 5 Tính tổng Nếu kết quả là8 bit → chính xác, ngược
lại là sai
Giai đoạn 3: Đọc giá trị trên vi điều khiển
Trang 23DHT11 sẽ gửi về MCU 40 bit tương đương 5 byte dữ liệu Saukhi gửi tín hiệu Start, chân data được kéo lên mức cao trongvòng 26-28µs để gửi bit ‘0’, sau đó gửi tiếp bit Start tiếp theo.Sau khi gửi tín hiệu Start, chân data được kéo lên mức caokhoảng 70µs để gửi bit ‘1’, sau đó gửi tiếp bit Start tiếp theo.2.3.5 Màn hình hiển thị LCD2004 I2C
LCD 2004 là một thành phần quen thuộc trong các dự án –khắc phục được nhược điểm kết nối cần đến 8 dây của cácmodule hiển thị khác LCD 2004 có khả năng hiển thị 4 hàng,mỗi hàng 20 kí tự, tương ứng với 4 hàng 20 cột [2] Nguyên nhânLCD có sự kết hợp với mô đun I2C là do LCD kết nối quá nhiềuchân với vi điều khiển Thay vì sử dụng ít nhất 6 chân để kết nốivới LCD thì chỉ cần 2 chân SDA và SCL để kết nối IC LCM2004 hỗtrợ giao tiếp I2C với 4 chân đầu vào: SCL, SDA, VCC, GND Để sửdụng được LCD2004 phải biết địa chỉ trong đường truyền I2C
Hình 2.14 Màn hình LCD2004 và mô đun chuyển đổi I2C
Thông số kĩ thuật:
Trang 24 Sử dụng điện áp đầu vào từ 3.3 – 5VDC.
Dòng điện tiêu thụ 350uA - 600uA
Đèn led nền có thể điều khiển bằng biến trở hoặc PWM
Có thể điều khiển bằng 6 chân tín hiệu
Sơ đồ chân của LCD 2004 giống vối các sản phẩm LCDthông thường với 16 chân [2]
Hình 2.15 Sơ đồ chân của LCD2004
Vss: GND
Vcc: 5V
Constrast Adjustment (VEE): điều khiển độ sáng màn hình
Register select (RS): lựa chọn thanh ghi (RS=0 chọn thanh ghilệnh, RS=1 chọn thanh ghi dữ liệu)
Read/Write (R/W): R/W=0 ghi dữ liệu , R/W=1 đọc dữ liệu
Enable Pin (E): cho phép ghi vào LCD
D0 - D7: chân dữ liệu, chỉ sử dụng 4 chân dữ liệu ở chế độ 4bit
Backlight: tắt bật đèn màn hình LCD
2.3.6 Rơ-le
Rơ-le là thiết bị đóng ngắt điện cơ đơn giản – có thể được
xem như công tắc [2] Nó gồm 2 phần chính là cuộn hút và cáctiếp điểm
Trang 25Hình 2.16 Rơ-le 5V
Nguồn cấp: 5V
Điện áp kích rơ le: 5V
Dòng điện cực đại: 10A
Thời gian tác động: 10ms
Thời gian nhả hãm: 5ms
Thiết bị có 5 chân [2], hai chân Vcc dùng cấp nguồn, chânchung (COM) kết nối với chân thường đóng Chân thường đóng
và thường mở kết nối với tải (động cơ)
Hình 2.17 Sơ đồ nguyên lý rơ-le
Trong đề tài này, rơ-le sẽ kết nối với NODE MCU, dùngtransistor để cho phép kích relay Do rơ-le dùng nguồn 5V, khôngthể dùng chân digital của NODE MCU kích trực tiếp, ta phải dùngtransistor
Trang 27Ứng dụng: hoạt động với vai trò như công tắc dùng bật / tắt
thiết bị, động cơ Khi nhấn nút, 4 chân của nút nhấn đều đượcnối với nhau, cho phép dòng điện từ một chân bất kì có thể tới 3chân còn lại
Hình 2.21 Nút nhấn nhả 4 chân
Nguyên lý: Kết nối dây như hình dưới đây Một chân nút
nhấn kết nối với nguồn 5V, chân còn lại qua trở 10K nối GND vàchân tín hiệu nối với chân Digital của vi điều khiển
Trang 28Hình 2.22 Nguyên lý hoạt động của nút nhấn
Khi không nhấn, không có sự kết nối giữa 2 chân của nútnhấn, chân tín hiệu sẽ kết nối với chân GND, giá trị đọc được làLOW, khi nhấn nút, nguồn 5V sẽ được cấp vào chân tín hiệu vàgiá trị đọc được là HIGH
2.4 GIỚI THIỆU VỀ IOT
"Internet of Things" được viết tắt là IoT [3] Những năm gầnđây, hệ thống IoT không còn xa lạ với con người, nhất là nhữngkhu vực thành thị Những ứng dụng của nó như là SmartHome,SmartCity,…
IoT là khái niệm vạn vật với nhau, kết nối các vật với conngười – thu thập và chia sẽ dữ liệu với nhau dựa trên mạngInternet, 3G, 4G, Wifi, ZigBee, Bluetooth IoT là một kịch bảnmới của thế giới, khi mà mỗi đồ vật, con người được cung cấpmộ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ớimáy tính IoT đã phát triển từ sự hội tụ của công nghệ khôngdây, công nghệ vi cơ điện tử và Internet Nói đơn giản là một tậphợp các thiết bị có khả năng kết nối với nhau, với Internet và vớithế giới bên ngoài để thực hiện một công việc nào đó
Trang 29Các thiết bị được kết nối với nhau và quan trọng là cùng kếtnối vào một mạng Con người có thể giám sát, điều khiển thiết
bị, thu thập dữ liệu ở bất cứ nơi nào và bất cứ thời điểm nào Và
để điều khiển, con người cần một thứ trung gian gọi là Platform –được tích hợp trong các thiết bị kết nối
Các cảm biến, các thiết bị đo, gửi dữ liệu thu thập được lênIoT Platform Sau đó IoT platform sẽ thực hiện tích hợp dữ liệunhận được và phân tích để chia sẻ thông tin với các ứng dụng đểgiải quyết vấn đề
IoT có rất nhiều ứng dụng trong các lĩnh vực đời sống khácnhau Có thể kể ra bao gồm từ lò vi sóng thông minh, tự độngnấu thức ăn trong một khoảng thời gian thích hợp, cho đếnnhững chiếc xe tự lái, có cảm biến phức tạp phát hiện vật thểtrên đường đi, đến các thiết bị thể dục có thể đo được nhịp timcủa con người và số bước đi đã thực hiện ngày hôm đó, sau đó
sử dụng thông tin đó để đề xuất các kế hoạch tập thể dục phùhợp
Hình 2.23 thể hiện một mô hình IoT trong nông nghiệp gồmcác thành phần cơ bản như Database (cloud), cảm biến, vi điềukhiển xử lý, đèn chiếu sáng [5]
Hình 2.23 Mô hình IoT trong nông nghiệp [2]
Trang 302.5 TÌM HIỂU CÁC CHUẨN TRUYỀN DỮ LIỆU
2.5.1 Chuẩn truyền UART
UART là viết tắt của cụm từ Universal AsynchronousReceiver – Transmitter, tức là giao thức truyền nhận dữ liệukhông đồng bộ [6],[7] Để truyền dữ liệu, máy tính / vi điềukhiển thực hiện theo hai cách là nối tiếp hoặc song song Cónhững điểm khác biệt và tương đồng giữa chúng Dù truyền theocách nào thì chúng đều phải kết nối với thiết bị ngoại vi Đối vớitruyền nối tiếp, truyền từng bit trong n – bit trong khi đó truyềnsong song truyền n – bit trên n đường truyền Dữ liệu truyền làdãy số được gọi là bit 0 và bit 1
Hình 2.24 Ví dụ về chuỗi dữ liệu gửi từ máy tính
Trong truyền nối tiếp, ta thường bắt gặp thuật ngữ “đồngbộ” và “bất đồng bộ” [7] Đồng bộ ở đây có nghĩa là dữ liệu sẽđược truyền kèm theo bit đầu tiên là bit Start (thường là bit 0) vàkết thúc là bit Stop (bit 1), bit kiểm tra chẵn lẽ Parity Start bit làbit đầu tiên trên đường truyền, báo cho bộ thu dữ liệu xác định
là sẽ có gói tin được gửi đến, Stop bit là bit cuối cùng, tươngđương kết thúc gói tin được gửi Parity là bit dùng đánh giá dữliệu của gói tin có được truyền chính xác hay không
Arduino Uno R3 được tích hợp bộ truyền dữ liệu UART vớichân D0 tương ứng với chân TX, chân D1 tương ứng chân RX[2] Có 2 cách để khai báo UART khi sử dụng, cách thứ nhất là
Serial.begin(9600), trong đó 9600 là tốc độ Baud – tương đương
Trang 31việc sử dụng chân D0 và D1 để truyền nhận dữ liệu Cách thứhai, chúng ta sẽ sử dụng thư viện riêng SoftwareSerial để khaibáo chân truyền – nhận, vẫn phải khai báo tốc độ baud Cáchnày ưu điểm hơn cách thứ nhất đối với việc khi nạp chương trìnhchúng ta không cần bỏ kết nối UART trước khi nạp.
Hình 2.25 Chân truyền nhận UART trên Arduino Uno R3Nối dây 2 thiết bị [6]: khi nối giao tiếp giữa Arduino với viđiều khiển khác, ngoài việc nối chân TX - RX, cần chú ý nốichung chân GND giữa hai thiết bị với nhau, để cùng mức logic(tham khảo hình 2.26)
Hình 2.26 Kết nối UART giữa 2 vi điều khiển
2.5.2 Chuẩn truyền I2C
I2C là viết tắt của cụm từ Inter – Intergrated Circuit, là giaothức nối tiếp đồng bộ, được phát triển vào đầu năm 1980, đây làchuân truyền được nhiều nhà sản xuất tin tưởng sử dụng [8]
Trang 32Các IC/ thiết bị giao tiếp với nhau qua Bus giao tiếp Sau đó, I2Ctrở thành chuẩn giao tiếp điều khiển công nghiệp Ngoài Philiips,các tên tuổi khác cũng sử dụng I2C như là Texas Intrument(TI),Maximdallas, National Shemiconductor,… Ứng dụng giao tiếpcủa I2C rất rộng, áp dụng nhiều loại IC khác như Pic, Arm, StaticRam, EEPROM, ADC, DAC …
I2C sử dụng hai đường truyền tín hiệu là SCL và SDA, master
sẽ là thiết bị phát xung nhịp clock Đường còn lại truyền dữ liệutheo hai hướng
Hình 2.27 Master và Slave trên bus I2C
Thông thường, trên một bus dữ I2C sẽ có master và slaveđược kết nối, mỗi thiết bị đều có địa chỉ truyền riêng, không gâynhầm lẫn trong quá trình truyền dữ liệu, do đó mỗi thiết bị sẽđược đánh 7 bit địa chỉ cố định, tương ứng với 128 thiết bị có thểkết nối [8] Đó là về lý thuyết, thực tế chỉ có 112 địa chỉ được sửdụng trực tiếp, 16 còn lại được sử dụng vào mục đích riêng Việcđọc hay ghi dữ liệu được quy định với 1 là write, 0 là read Mỗithiết bị có thể truyền hoặc nhận, hoặc vừa truyền vừa nhậntrong suốt thời gian kết nối Một thiết bị hay một IC khi kết nốivới bus I2C sẽ được cấu hình vai trò, quyền điều khiển thuộc vềthiết bị chủ, tạo xung đồng bộ cho toàn hệ thống, quản lý địa chỉ
Trang 33của thiết bị tớ trong suốt quá trình giao tiếp Khi muốn thực hiệntruyền nhận dữ liệu, master sẽ định địa chỉ slave trên đườngtruyền SDA Chân SCL phát xung nhịp đồng bộ hóa dữ liệu giữacác thiết bị Hai chân SDA và SCL luôn hoạt động ở chế độ mở.
Điểm mạnh của I2C chính là hiệu suất và sự đơn giản, mộtkhối điều khiển trung tâm có thể điều khiển cả một mạng thiết
bị mà chỉ cần hai lối ra điều khiển
2.5.3 Chuẩn truyền One – Wire
One Wire là một chuẩn giao tiếp được thiết kế bởi DallasSemiconductor, chuẩn giao tiếp bất đồng bộ và bán song công(half-duplex) [8] Với One Wrie, mối quan hệ master - slave đượcquy định rất chặt chẽ Trên bus có thể dùng nhiều thiết bị với vaitrò là slave nhưng chỉ có duy nhất một master Vì dùng một dây
để truyền nhận nên có tốc độ thấp
Hình 2.28 Truyền nhận dữ liệu ở chế độ 1-wire
Ứng dụng của chuẩn One Wire chủ yếu sử dụng cho việc thuthập dữ liệu, truyền nhận dữ liệu thời tiết, nhiệt độ, công việckhông yêu cầu tốc độ cao
Trang 34Cơ sở truyền nhận: restart, 0 write, 1 write, Read.
- Tín hiệu trên bus 1-wire chia thành các khe thời gian 60µm
- Write 1 signal (truyền bit 1): Master kéo bus xuống mức
thấp một khoảng A rồi nhả về mức cao khoảng B
- Write 0 signal (truyền bit 0): Master kéo bus xuống mứcthấp khoảng C rồi trả về mức cao khoảng D
- Read (đọc bit): Master kéo bus xuống mức thấp khoảng A,nếu slave muốn gửi bit ‘0’ thì sẽ giữ bus ở mức thấp, nếumuốn gửi bit ‘1’ thì nhả bus về mức cao Bus lấy mẫu saukhoảng A+E
- Restart: Chuẩn bị giao tiếp, Master kéo bus xuống mứcthấp một khoảng H rồi nhả bus Khoảng thời gian bus ởmức thấp là tín hiệu Reset Nếu có thiết bị slave trên bus,
nó sẽ trả lời bằng tín hiệu Presence, nếu không có trả vềthì master sẽ hiểu là không có slave hay là đường truyềnlỗi hoặc Slave đang bận