Trong đề tài này sinh viên sẽ ứng dụng module Arduino Uno R3 kết hợp với sim900 shield và web server để thực hiện điều khiển bật tắt các thiết bị từ xa, đồng thời giám sát hoạt động của
Trang 1KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
KHÓA LUẬN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
HỆ THỐNG TƯỚI CÂY THÔNG MINH GIAO TIẾP WEB SERVER VÀ SIM900 DÙNG ARDUINO
GVHD: TS NGUYỄN THANH HẢI SVTH: NGUYỄN TRỌNG PHI HÙNG MSSV: 11141282
SVTH: VÒNG VIỄN HÙNG MSSV: 11141284
S K L 0 0 3 8 1 0
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO - - -
Khóa : 2011 Ngành : Công nghệ kỹ thuật Điện tử - Truyền thông GVHD: TS NGUYỄN THANH HẢI
Trang 3CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Ngày nhận đề tài: 02/03/2015 Ngày nộp đề tài: 20/07/2015
1 Tên đề tài: Hệ thống tưới cây thông minh giao tiếp web server và Sim900 dùng Arduino
2 Các số liệu, tài liệu ban đầu: Khảo sát thực tế và thiết kế một hệ thống “ hệ thống tưới cây thông minh giao tiếp web server và sim900 dùng arduino” Hệ thống gồm một module xử lý chính (Master) với khối công suất điều khiển 4 ngõ ra Đông thời một module xử lý phụ (Slave) dùng để thu thập số liệu về các cảm biến độ ẩm đất, nhiệt độ + độ ẩm không khí, cảm biến siêu âm dùng đo mực nước
3 Nội dung thực hiện đề tài: Giới thiệu tổng quát về cơ sở lý thuyết liên quan, cơ sở
lý luận, đề cương, cách thức nghiên cứu Giới thiệu về sim900, kit Arduino và các module shield, các loại cảm biến sử dụng Tiến hành tính toán, xử lý các số liệu liên quan, tiến hành lập trình, thiết kế phần cứng kết nối và mô hình hoàn chỉnh
4 Sản phẩm: Bao gồm mô hình vườn cây, các khối xử lý (Master, Slave), khối công suất và các thiết bị điều khiển
TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN
TS Nguyễn Thanh Hải
Trang 4CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc
*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên: Nguyễn Trọng Phi Hùng MSSV: 11141282
Vòng Viễn Hùng MSSV: 11141284
Ngành: Công nghệ kỹ thuật Điện tử - Truyền Thông
Tên đề tài: Hệ thống tưới cây thông minh giao tiếp web server và Sim900 dùng Arduino
Họ và tên Giáo viên hướng dẫn: TS Nguyễn Thanh Hải
Tp Hồ Chí Minh, ngày 29 tháng 07 năm 2015
Giáo viên hướng dẫn
TS Nguyễn Thanh Hải
Trang 5CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc
*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên: Nguyễn Trọng Phi Hùng MSSV: 11141282
Vòng Viễn Hùng MSSV: 11141284
Ngành: Công nghệ kỹ thuật Điện tử - Truyền thông
Tên đề tài: Hệ thống tưới cây thông minh giao tiếp web server và Sim900 dùng Arduino
Họ và tên Giáo viên phản biện: ………
……… NHẬN XÉT
1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:……….(Bằng chữ: )
Tp Hồ Chí Minh, ngày 27 tháng 07 năm 2015
Giáo viên phản biện
Trang 6LỜI CẢM ƠN
Lời đầu tiên, sinh viên thực hiện đề tài xin được phép chân thành gửi lời cảm ơn đến thầy giáo Nguyễn Thanh Hải, giáo viên hướng dẫn đề tài đã định hướng và trao đổi những kinh nghiệm để sinh viên thực hiện những nội dung trong đề tài một cách hoàn chỉnh
Sinh viên thực hiện đề tài cũng xin trân trọng cảm ơn các thầy /cô trong trường Đại Học Sư Phạm Kỹ Thuật TPHCM nói chung và thầy /cô khoa Điện – Điện Tử , khoa Đào Tạo Chất Lượng Cao nói riêng đã tận tình truyền đạt những kiến thức nền tảng để sinh viên thực hiện hoàn thành tốt đề tài
TP HCM, Ngày 27 Tháng 07 Năm 2015 Sinh viên thực hiện đề tài
Nguyễn Trọng Phi Hùng
Vòng Viễn Hùng
Trang 7TÓM TẮT
Hiện nay, công nghệ ngày càng phát triển khả năng xử lý cũng như điều khiển thiết bị ngày càng đa dạng Việc điều khiển các thiết bị từ xa mà không cần trưc tiếp tác động đang là xu thế ngày nay, nó giúp công việc điều khiển trở nên dễ dàng và tiện lợi
Trong đề tài này sinh viên sẽ ứng dụng module Arduino Uno R3 kết hợp với sim900 shield và web server để thực hiện điều khiển bật tắt các thiết bị từ xa, đồng thời giám sát hoạt động của hệ thống Việc dùng các tin nhắn điện thoại và mạng internet để điều khiển sẽ làm tăng khoảng cách điều khiển và tự cập nhật thông tin hoạt động từ hệ thống nhanh chóng dù ta ở ở nơi rất xa
Mô hình hệ thống sử dụng hai cảm biến độ ẩm đất để theo dõi lượng nước dưới nền đất, sử dụng cảm biến DHT22 để theo dõi nhiệt độ + độ ẩm không khí Đồng thời theo dõi mực nước bồn chứa bằng cách sử dụng cảm biến siêu âm Các giá trị này sẽ được đo đạt ở một nơi khác và truyền về khối xử lý chính thông qua kênh truyền RF của moduled RF APC220-43 để đảm bảo phạm vi theo dõi được lớn hơn, từ những giá trị thu được này ta có thể điều khiển các động cơ bơm và làm mát một cách hiểu quả nhất
Mặc dù sinh viên thực hiện đề tài đã cố gắng hoàn thành nhiệm vụ đề tài đặt ra và đúng thời hạn nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, mong Thầy/ Cô
và các bạn sinh viên thông cảm Sinh viên thực hiện đề tài mong nhận được những ý kiến của Thầy/ Cô và các bạn sinh viên
Trang 8Abstract Currently, the technology is growing processing power as well as control devices are increasingly diverse The control devices remotely without directly attributable impact is the trend today, it helps job control easy and convenient
In this project students will application Arduino Uno R3 module combined with sim900 shield and web server to perform switching control of remote devices, simultaneous monitoring of system operation The use of the phone message and internet for control will increase the distance control and update information from the system works quickly even though we in the faraway
The system uses 2 soil humidity sensor to monitor moisture under ground, using DHT22 sensors to monitor temperature + air humidity It also can monitor tank levels using one other ultrasonic sensors The measured values will be achieved in one place and transmitted to the main processing unit uses RF moduled APC220-43 to guaranteed range wider track these values can control the pump motor and cooling a most effective way
Although the students to implement the project was trying to complete the task subject and deadlines set out but certainly will not avoid the shortcomings Students implement the project forward opinions of teachers and students
Trang 9MỤC LỤC
TRANG BÌA PHỤ……… i
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN iii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iv
LỜI CẢM ƠN v
TÓM TẮT vi
MỤC LỤC viii
DANH MỤC HÌNH xi
DANH MỤC BẢNG xiii
DANH MỤC TỪ VIẾT TẮT xiv
CHƯƠNG 1: TỔNG QUAN 1
1.1 Tình hình nghiên cứu hiện nay: 1
1.2 Tính cấp thiết của đề tài: 1
1.3 Mục tiêu nghiên cứu 1
1.4 Nhiệm vụ nghiên cứu 1
1.5 Đối tượng và phạm vi nghiên cứu 2
1.6 Phương ph́áp Nghiên cứu 2
1.7 Bố cục của Đồ án 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT PHẦN CỨNG 4
2.1 Tổng quan về Arduino 4
2.1.1 Arduino là gì? 4
2.1.2 Khả năng của bo mạch Arduino 4
2.1.3 Phần mềm lập trình 5
2.1.4 Shield tương thích mở rộng 6
Trang 102.2 Các loại bo mạch Arduino 7
2.2.1 Arduino Uno R3 8
2.2.2 Arduino sim900 shield 9
2.2.3 Arduino Enthernet shield 12
2.3 Giới thiệu module sim900 13
2.3.1 Đặc điểm của module sim900 14
2.4 Các loại cảm biến 16
2.4.1 Cảm biến DHT22 16
2.4.3 Cảm biến siêu âm HC SR4 22
2.5 Bộ thu phát APC220-43 433 MHz RF Transceiver Module 25
2.6 Tổng quan về LCD 26
2.6.1 Chức năng các chân 27
2.6.2 Module giải mã cho LCD 28
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT PHẦN MỀM 29
3.1 Xây dựng web server 29
3.1.1 Web server là gì? 29
3.1.2 Máy chủ ảo VPS 29
3.1.3 Phần mềm XAMPP 30
3.2 Điều khiển dùng SMS 33
3.2.1 Tổng quan về hệ thống thông tin di động GMS 33
3.2.2 Hệ thống tin nhắn SMS 34
3.2.3 Khảo sát tập lệnh AT của moduled sim900 35
CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 38
4.1 Sơ đồ khối của hệ thống và hoạt động 38
4.1.1 Yêu cầu của hệ thống 38
4.1.2 Sơ đồ khối hệ thống 39
4.1.3 Nguyên lý hoạt động của hệ thống 39
Trang 114.1.4 Chức năng từng khối 40
4.2 Thiết kế, tính toán hệ thống 41
4.2.1 Tính toán giá trị cảm biến siêu âm 41
4.2.2 Thiết kế mạch nguồn 43
4.2.3 Thiết kế mạch nút nhấn 44
4.3 Lưu đồ thuật toán của hệ thống 47
4.3.1 Lưu đồ hệ thống điều khiển tự động 47
4.3.2 Lưu đồ hệ thống điều khiển qua SMS 48
4.3.3 Lưu đồ hệ thống điều khiển qua nút nhấn 49
CHƯƠNG 5: KẾT QUẢ THI CÔNG 49
5.1 Xây dựng web server dựng trên phần mềm XAMPP trên máy chủ ảo VPS 50
5.2 Xây dựng mạch điều khiển 52
5.3 Xây dựng mô hình hệ thống 58
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61
6.1 Kết Luận 61
6.1.1 Ưu điểm của hệ thống 61
6.1.2 Nhược điểm của hệ thống 61
6.2 Hướng phát triển trong tương lai 61
TÀI LIỆU THAM KHẢO 63
PHỤ LỤC 64
Trang 12DANH MỤC HÌNH
Hình 2.1: Logo Arduino 4
Hình 2.2: Lưu đồ chương trình 6
Hình 2.3: các loại shield cho arduino 7
Hình 2.4: Các loại Board Arduino 7
Hình 2.5: Board Arduino Uno R3 8
Hình 2.6: Moduled sim900 shield 10
Hình 2.6: Mô tả phần cứng sim900 shield 11
Hình 2.7: Arduino Enthernet shield 12
Hình 2.8: Module SIM900 13
Hình 2.9: Cảm biến DHT22 16
Hình 2.10: Sơ đồ kết nối dây với cảm biến DHT22 với vi xử lý 17
Hình 2.11: Quá trình gửi nhận dữ liệu giữa Vi điều khiển và DHT22 18
Hình 2.12: Vi điều khiển gửi yêu cầu cho cảm biến 19
Hình 2.13: Quá trình gửi dữ liệu về của cảm biến 20
Hình 2.15: Mạch so sánh của cảm biến độ ẩm đất 22
Hình 2.16: Cảm biến siêu âm HC SR04 22
Hình 2.17: Giản đồ xung hoạt động của cảm biến siêu âm 23
Hình 2.18: Tầm quét của cảm biến siêu âm 24
Hình 2.19: Module RF APC220-43 25
Hình 2.20: màn hình LCD 16x2 26
Hình 2.21: Module giao tiếp LCD theo chuẩn I2C 28
Hình 3.1: Mô hình kết nối web server 29
Hình 3.2: Hệ điều hành và bảng giá cho thuê Vps của Vultr 30
Hình 3.3: Giao diện điều khiển của Xampp 31
Trang 13Hình 3.4: Hệ quảng trị cơ sở dữ liệu MySQL 33
Hình 3.5: Cấu trúc một tin nhắn SMS 35
Hình 4.1: Sơ đồ khối của hệ thống 39
Hình 4.2: Sơ đồ nguyên lý mạch nguồn cho relay 43
Hình 4.3: Sơ đồ mạch in của khối nguồn cấp cho relay 43
Hình 4.4: Sơ đồ nguyên lý khối nút nhấn và LED trạng thái 45
Hình 4.5: Sơ đồ mạch in khối nút nhấn 46
Hình 4.6: Lưu đồ hoạt động điều khiển tự động 47
Hình 4.7: Lưu đồ điều khiển qua SMS 48
Hình 4.8: Lưu đồ điều khiển qua nút nhấn 49
Hình 5.1: Giao diện đăng nhập web server 50
Hình 5.2: Giao diện điều khiển của web server 51
Hình 5.3: Giao diện máy chủ ảo VPS 52
Hình 5.4: Khối điều khiển của hệ thống 52
Hình 5.5: Khối thu thập dữ liệu của hệ thống (Slave) 53
Hình 5.6: Khối xử lý chính của hệ thống (Master) 54
Hình 5.7: Khối 4 Relay điều khiển động cơ 55
Hình 5.8: Giao diện điều khiển ở chế độ tự động 56
Hình 5.9: Giao diện điều khiển ở chế độ thủ công 57
Hình 5.10: Mô hình toàn hệ thống 58
Hình 5.11: Vị trí bố trí các khối Master, Slave, cảm biến trên mô hình 59
Hình 5.13: Vị trí bố trí khu vườn 61
Trang 14DANH MỤC BẢNG
Bảng 2.1: Thông số kĩ thuật của board Uno R3 9
Bảng 2.2: Chức năng của các chân LCD 26
Bảng 2.3: Các chân kết nối và chức năng của RF 220-43 27
Bảng 4.1: Giá trị đo của cảm biến siêu âm 42
Trang 15DANH MỤC TỪ VIẾT TẮT
GSM: Global System for Mobile communication
SMS: Short Message Service
PDU: Protocol data unit
XAMPP: X + Apache + Mysql + PHP + Perl
VPS: Virtual Private Server
MCU: Microprocessor Control Unit
USART: Universal Synchronous & Asynchronous serial Reveiver and
Transmitter
MySQL:Structured Query Language
LED: Light Emitting Diode
Trang 16CHƯƠNG 1: TỔNG QUAN 1.1 Tình hình nghiên cứu hiện nay:
Ngày nay với sự phát triển của khoa học công nghệ, con người đã và đang thay đối lối sống, lối tư duy nhằm thích ứng với nền công nghệ mới Internet đã và đang là một thứ không thể thiếu trong đời sống công nghệ Bên cạnh việc tìm kiếm thông tin, giải trí internet còn được dùng trong việc điều khiển và giám sát thiết bị Đồng thời tại Việt Nam công nghệ sử dụng mạng điện thoại đang được phát triển mạnh mẽ trong mấy năm gần đây Việc áp dụng các tính năng ưu việt của mạng điện thoại trong việc điều khiển thiết bị và giám sát hệ thống được thực hiện ngày càng phổ biến
Trước khi thực hiện đề tài này Nhóm đã tìm hiểu thông qua mạng internet và trực tiếp từ thư viện đồ án của nhà trường Thì các mô hình điều khiển thông minh giao tiếp qua Sim900 hoặc web server đều đã được thực hiện Tuy nhiên chủ yếu đều sử dụng các dòng vi điều khiển như PIC hoặc PLC và mỗi đều tài đều ít hay nhiều mang những khuyết điểm của nó Và việc ứng dụng card Arduino trong hệ thống điều khiển thông minh giao tiếp web server và Sim900 thì hoàn toàn chưa có
1.2 Tính cấp thiết của đề tài:
Cùng với công cuộc công nghiệp hóa và hiện đại hóa đất nước, lĩnh vực tự động hóa có những bước phát triển vượt bật và trở thành yếu tố quan trọng không thể thiếu của nền công nghiệp hiện đại khi nói đến tự động hóa là nói đến sự thay thế dần đến hoàn toàn các hoạt động chân tay bằng máy móc trong các dây chuyền sản xuất
Trong nền công nghiệp hiện đại thì vấn đề thời gian là rất quan trọng Con người ngày càng bận rộn với công việc không có nhiều thời gian để chăm sóc cây trồng một giải pháp được đưa ra là tự động hóa để chăm sóc chúng, vấn đề này càng được quan tâm nhiều hơn Đây chính là ý tưởng cho đề tài tốt nghiệp này
1.3 Mục tiêu nghiên cứu
Mục đích của đề tài là thiết kế được mô hình hệ thống tưới cây sử dụng các cảm biến để đo và hiển thị thông số: nhiệt độ, độ ẩm không khí, độ ẩm đất, mực nước bồn chứa qua 2 chế độ tự động và thủ công đều khiển trực tiếp hoặc gián tiếp qua sim900
và web server Từ đó ta điều chỉnh nhiệt độ, độ ẩm không khí, độ ẩm đất cho phù hợp với các yêu cầu của cây trồng thông qua điều khiển các thiết bị, động cơ như: máy bơm nước, máy phun sương, quạt thông gió
1.4 Nhiệm vụ nghiên cứu
- Thiết kế giao diện và điều khiển trên máy tính sử dụng web server
Trang 17- Thiết kế và điều khiển hệ thống qua điện thoại sử dụng Sim900
- Thiết kế và thi công, lập trình khối đo nhiệt độ, độ ẩm, độ ẩm đất và đo mực nước bồn chứa
- Thiết kế mạch điều khiển thiết bị: máy bơm nước bồn chứa, quạt, máy bơm nước tưới cây
- Lắp ráp các khối điều khiển và chạy thử nghiệm hệ thống mô hình vườn cây
- Viết báo cáo luận văn
- Báo cáo đề tài tốt nghiêp
1.5 Đối tượng và phạm vi nghiên cứu
- Thiết kế mô hình vườn cây đơn giản
- Sử dụng module truyền không dây APC220-43 433 MHz RF Transceiver Module
để truyền nhận dữ liệu
- Giám sát và điều khiển vườn bằng cảm biến và giao tiếp với máy tính qua Enthernet shield qua giao diện web server và giao tiếp qua điện thoại sử dụng Sim900 shield
- Điều khiển quạt để mô phỏng hệ làm mát
- Điều khiển máy bơm để tưới nước cho cây
- Sử dụng kít Arduino Uno R3 để điều khiển hệ thống tưới cây
1.6 Phương ph́áp Nghiên cứu
- Phương pháp tham khảo tài liệu: đọc tài liệu từ các đồ án trước của các anh chị, qua sách giáo trình, tham khảo các tài liệu trên mạng internet
- Phương pháp quan sát: khảo sát một số module, mạch điện thực tế có trên thị trường và một số mạch trên internet
- Phương pháp thực nghiệm: từ những kiến thức học được trong trường và sự hướng dẫn của giáo viên em đã khảo sát và tiến hành lắp ráp các dạng mạch điện
từ đó chọn ra các mạch tối ưu nhất cho mô hình
1.7 Bố cục của Đồ án
- Chương 1: Tổng quan Chương này trình bày khái quát về lĩnh vực nguyên cứu, tầm quan trọng của đề tài, mục tiêu, nhiệm vụ và giới hạn thực hiên đề tài
- Chương 2: Cơ sở lý thuyết Chương này trình bày cơ sở lý thuyết liên quan đến
đề tài Giới thiệu về các loại kit, các loại cảm biến
- Chương 3: Cơ sở lý thuyết Chương này trình bày cơ sở lý thuyết về xây dựng web server Các chuẩn giao tiếp, tập lệnh điều khiển
Trang 18- Chương 4: Thiết kế và thi công mạch Chương này trình bày về hoạt động thi công đồ án, về việc tính toán lựa chọn linh kiện và phương án thiết kế Lưu đồ hoạt động của hệ thống
- Chương 5: Kết quả thi công và so sánh, đánh giá thực nghiệm Trong chương chủ yếu trình bày về những kết quả đã đạt được trong đồ án, về mô hình, khối điều khiển và khối công suất
- Chương 6: Kết luận và hướng phát triển của đề tài Tổng kết về các ưu điểm và nhược điểm của đề tài, đồng thời đưa ra các hướng phát triển đề tài phù hợp
Trang 19CHƯƠNG 2: CƠ SỞ LÝ THUYẾT PHẦN CỨNG 2.1 Tổng quan về Arduino
Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng chứng tỏ được sức mạnh của chúng thông qua vô số ứng dụng độc đáo của người dùng trong
cộng đồng nguồn mở (open-source) Tuy nhiên tại Việt Nam Arduino vẫn còn chưa
được biết đến nhiều Vậy Arduino là “cái” gì?
Hình 2.1: Logo Arduino 2.1.2 Khả năng của bo mạch Arduino
Bo mạch Arduino sử dụng dòng vi xử lý 8-bit megaAVR của Atmel với hai chip phổ biến nhất là ATmega328 và ATmega2560 Các dòng vi xử lý này cho phép lập trình các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh với các loại bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều ngõ có khả
Trang 20năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C)
Xung nhịp: 16MHz
EEPROM: 1KB (ATmega328) và 4KB (ATmega2560)
SRAM: 2KB (Atmega328) và 8KB (Atmega2560)
Flash: 32KB (Atmega328) và 256KB (Atmega2560)
Đọc tín hiệu cảm biến ngõ vào:
a) Digital:
Các bo mạch Arduino đều có các cổng digital có thể cấu hình làm ngõ vào hoặc ngõ ra bằng phần mềm Do đó người dùng có thể linh hoạt quyết định số lượng ngõ vào và ngõ ra Tổng số lượng cổng digital trên các mạch dùng Atmega328 là 14, và trên Atmega2560 là 54
b) Analog:
Các bo mạch Arduino đều có trang bị các ngõ vào analog với độ phân giải 10 bit (1024 phân mức, ví dụ với điện áp chuẩn là 5V thì độ phân giải khoảng 0.5mV) Số lượng cổng vào analog là 6 đối với Atmega328 Với tính năng đọc analog, người dùng
có thể đọc nhiều loại cảm biến như nhiệt độ, áp suất, độ ẩm, ánh sáng, siêu âm
Xuất tín hiệu điều khiển ngõ ra:
a) Digital output:
Tương tự như các cổng vào digital, người dùng có thể cấu hình trên phần mềm để quyết định dùng ngõ digital nào là ngõ ra Tổng số lượng cổng digital trên các mạch dùng Atmega328 là 14, và trên Atmega2560 là 54
b) PWM output:
Trong số các cổng digital, người dùng có thể chọn một số cổng dùng để xuất tín hiệu điều chế xung PWM Độ phân giải của các tín hiệu PWM này là 8-bit Số lượng cổng PWM đối với các bo dùng Atmega328 là 6, và đối với các bo dùng Atmega2560
là 14 PWM có nhiều ứng dụng trong viễn thông, xử lý âm thanh hoặc điều khiển động
cơ mà phổ biến nhất là động cơ servos trong các máy bay mô hình
2.1.3 Phần mềm lập trình
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
Trang 21trì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”
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 đầu chương trình
loop( ): hàm được gọi vòng lặp tuần hoàn cho đến khi bo mạch được tắt đi
Hình 2.2: Lưu đồ chương trình 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
2.1.4 Shield tương thích mở rộng
Arduino và bảng mạch Arduino tương thích sử dụng các shield – 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
Trang 22Hình 2.3: các loại shield cho arduino
2.2 Các loại bo mạch Arduino
Về mặt chức năng, các bo mạch Arduino được chia thành hai loại: loại bo mạch chính có chip Atmega và loại mở rộng thêm chức năng cho bo mạch chính (thường được gọi là shield)
Các bo mạch chính về cơ bản là giống nhau về chức năng, tuy nhiên về mặt cấu hình như số lượng I/O, dung lượng bộ nhớ, hay kích thước có sự khác nhau Một số bo
có trang bị thêm các tính năng kết nối như Ethernet và Bluetooth
Các bo mở rộng chủ yếu mở rộng thêm một số tính năng cho bo mạch chính ví dụ như tính năng kết nối Ethernet, Wireless, điều khiển động cơ v.v…
Hình 2.4: Các loại Board Arduino
Trang 232.2.1 Arduino Uno R3
Hình 2.5: Board Arduino Uno R3 Hình trên là cận cảnh con Arduino Uno Đối với chúng ta để sử dụng Arduino thì trước tiên cần quan tâm các thành phần được đánh số ở trên:
(1) Cổng USB (loại B): đây là 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ới máy tính
(2) 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 9V đến 12V
(3) Hàng Header: đánh số từ 0 đến 13 là hàng digital pin, nhận vào hoặc xuất ra các tín hiệu số Ngoài ra có một pin đất (GND) và pin điện áp tham chiếu (AREF) (4) Hàng header thứ hai: chủ yếu liên quan đến điện áp đất, nguồn
(5) Hàng header thứ ba: các chân để nhận vào hoặc xuất ra các tín hiệu analog Ví
dụ như đọc thông tin của các thiết bị cảm biến
(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 này khác nhau Ở con Arduino Uno này thì sử dụng ATMega328
Trang 24Bảng 2.1: Thông số kĩ thuật của board Uno R3
Vi điều khiển ATmega328 (họ 8bit)
Điện áp hoạt động 5V – DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Điện áp vào khuyên
Điện áp vào giới hạn 6-20V – DC
Số chân Digital I/O 14 (6 chân PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi
2.2.2 Arduino sim900 shield
Modules SIM900 GSM/GPRS Shield sử dụng mạng điện thoại di động GSM để nhận dữ liệu từ một địa điểm từ xa Module Sim900 đáp ứng được cả 3 dịch vụ:
Tin nhắn (Short Message Service)
Âm thanh
Dịch vụ GPRS
Trang 25Module Sim900 GSM/GPRS Shield tương thích và phù hợp với hầu hết các board Arduino như (Uno R3, Mega 2560…) GPRS Shield được cấu hình và điều khiển thông qua UART bằng cách sử dụng lệnh AT Dựa trên các mô-đun SIM900, GPRS Shield giống như một điện thoại di động Ngoài những tính năng truyền thông, GPRS Shield có 12 GPIOs, 2 PWM và ADC
Hình 2.6: Moduled sim900 shield
Tính năng
− Dựa trên SIMCOM của module SIM900
− Quad-Band 850/900/1800/1900 MHz – sẽ làm việc trên các mạng GSM ở tất cả các nước trên thế giới
− Điều khiển thông qua lệnh AT
− Dịch vụ tin nhắn ngắn – để bạn có thể gửi một lượng nhỏ dữ liệu qua mạng (ASCII hoặc thập lục phân thô)
− Embedded TCP/UDP stack – cho phép bạn upload dữ liệu lên một máy chủ web
− Loa và jack cắm tai nghe – để bạn có thể gửi tín hiệu DTMF hoặc ghi âm như một máy trả lời
− Hiện được chủ thẻ SIM và GSM Antenna
− 12 GPIOs, 2 PWM và ADC (tất cả các logic 2.8 volt) – để tăng thêm chân
Arduino của bạn
− Tiêu thụ điện năng thấp – 1.5mA (chế độ ngủ)
− Dải nhiệt độ hoạt động -40 ° C đến 85 ° C
Trang 26 Mô tả phần cứng
Hình 2.6: Mô tả phần cứng sim900 shield
- Power select – Công tắc bật nguồn cho module sim900 GSM/GPRS Nguồn từ board Arduino
- Power jack – Kết nối với nguồn ngoài (4,8- 5V)
- Antenna interface – Anten thu phát sóng
- Serial port select –chọn 1 trong 2 cổng phần mềm hoặc phần cứng nối tiếp kết nối với arduino sim900 shield
- Hardware Serial – D0/D1 of Arduino
- Software serial – D7/D8 of Arduino
- Status LED – Led báo hiệu nguồn
- Net light – thông báo trạng thái SIM900 kết nối
- UART of SIM900 – UART pins breakout of SIM900
- Microphone – ngõ ra âm thanh trả lời cuộc gọi
- Speaker – ngõ vào âm thanh trả lời cuộc gọi
- GPIO,PWM and ADC of SIM900 – GPIO,PWM and ADC pins breakout of SIM900
- Power key – nút nguồn
- Các chân sử dụng cho Arduino
- D0 –D1 không sử dụng nếu chọn cổng nối tiếp phần mềm để giao tiếp với GPRS Shield
- D2 – D3– D4– D5– D6 không sử dụng
- D7 –D8 sử dụng nếu chọn cổng nối tiếp phần mềm để giao tiếp với GPRS Shield
Trang 27- D9 – Used for software control the power up or down of the SIM900
- D10 –D11 –D12 –D13 không sử dụng
- D14(A0) –D15(A1) –D16(A2) –D17(A3) –D18(A4) –D19(A5) không sử dụng
2.2.3 Arduino Enthernet shield
Arduino Ethernet Shield sử dụng nhằm giúp arduino có thể kết nối với internet
Nó được dựa trên chip Wiznet W5100, ethernet phát triển cả 2 chuẩn giao tiếp có khả năng cả 2 chuẩn TCP và UDP Arduino Ethernet Shield hỗ trợ tối đa bốn thiết bị đồng thời kết nối Sử dụng thư viện Ethernet có sẵn để kết nốivới internet thông qua một jack RJ45
Phiên bản shield này có tích hợp khe cắm thẻ micro SD, có thể được sử dụng để lưu trữ các tập tin phục vụ qua mạng Arduino Ethernet Shield tương thích với Arduino Uno và Mega (sử dụng Ethernet Thư viện) Bạn có thể truy cập vào khe cắm thẻ trên board và sử dụng thư viện SD được bao gồm tích hợp trong bộ thư viện có sẵn trong trình biên dịch arduino
Arduino giao tiếp với cả hai module W5100 và thẻ SD bằng cách sử dụng chuẩn SPI (thông qua cổng ICSP), trên các chân 11, 12, và 13 của board arduino Uno R3 và chân 50, 51 và 52 của board arduino mega 2560, chân số 10 được sử dụng để chọn W5100 và chân số 4 cho SD card Các chân không thể được sử dụng cho chức năng i/o nếu sử dụng cả 2 module cùng lúc thì chân số 10 trên board arduino Uno R3 phải được
để trống, và chân số 53 trên board arduino mega2560 nếu không thì board sẽ không thể hoạt động được
Hình 2.7: Arduino Enthernet shield
Trang 28Thông số kỹ thuật:
- Để sử dụng phải có board mạch Arduino đi kèm
- Hoạt động tại điện áp 5V (được cấp từ mạch Arduino)
- Chip Ethernet: W5100 với buffer nội 16K
- Tốc độ kết nối: 10/100Mb
- Kết nối với mạch Arduino qua cổng SPI
- Thư viện và code mẫu có sẵn trong chương trình Arduino
Lưu ý rằng bởi vì W5100 và SD card sử dụng chung chuẩn truyền SPI, vì vậy một thiết bị duy nhất có thể được hoạt động tại một thời điểm Nếu bạn đang sử dụng cả hai thiết bị ngoại vi trong chương trình của bạn, điều này cần được xử lý bởi các thư viện tương ứng
2.3 Giới thiệu module sim900
Giống như một điện thoại di động GSM, một modem GSM yêu cầu 1 thẻ sim với một mạng wireless để hoạt động
Module Sim900 là một trong những loại modem GSM Nhưng Module Sim900 đựoc nâng cao hơn có tốc độ truyền dữ liệu nhanh hơn Nó sữ dụng công nghệ
Trang 29GSM/GPRS hoạt động ở băng tầng GSM 850Mhz, EGSM 900Mhz, DCS 1800Mhz và PCS 1900Mhz, tính năng GPRS của Sim900 có nhiều lớp
8 lớp điện dung
10 lớp điện dung
Và hỗ trợ GPRS theo dạng đồ thị mã hóa CS-1, CS-2, CS-3 và CS-4
2.3.1 Đặc điểm của module sim900
1 Nguồn cung cấp khoảng 3.4 – 4.5V
5 Công suất truyền:
Tầng 4 (2W) tại băng tần GSM850 và EGSM900
GPRS dữ liệu tải xuống: Max 85.6 kbps
GPRS dữ liệu úp lên: Max 42.8 kbps
Sơ đồ mã hóa: CS-1, CS-2, CS-3 và CS-4
Sim 900 hỗ trợ giao thức PAP, kiểu sử dụng kết nối PPP
Sim 900 tích hợp giao thức TCP/IP
Hỗ trợ chuyển đổi phát song kênh điều khiển (PBCCH)
Trang 30 Toàn bộ chế độ tăng cường (ETS 06.50/ 06.06/ 06.80)
Tương thích với nhiều tốc độ (AMR)
Loại bỏ tiếng dội
Cổng nối tiếp sử dụng cho tập lệnh AT hoạc chuỗi dữ liệu
Hỗ trợ bắt tay phần cứng RTS/CTS và tắt/mở điều khiển dòng bằng phần mềm
Hỗ trợ tốc độ truyền 1200 BPS tới 115200 BPS
Cổng gỡ rối:
2 dây giao tiếp DBG_TXD và DBG_RXD
Cổng gỡ rối được sử dụng để gỡ rối và cập nhật phần mềm
16 Quản lý danh sách:
Hỗ trợ mẫu danh sách: SM, FD, LD, RC, ON, MC
17 Sim Application toolkit:
Trang 31 Dòng sử dụng: 2.5mA max (khi truyền dữ liệu)
Đo tốt ở độ ẩm 0-100% RH (Relative Humidity) với sai số 2-5%
Đo tốt ở nhiệt độ -40 to 80°C sai số ±0.5°C
Tần số lấy mẫu tối đa 0.5Hz (2s/1 lần)
Kích thước 27mm x 59mm x 13.5mm (1.05" x 2.32" x 0.53")
Trang 32c) Sơ đồ kết nối với vi điều khiển
Hình 2.10: Sơ đồ kết nối dây với cảm biến DHT22 với vi xử lý
Trên Hình 2.10, chân thứ 2 của cảm biến sẽ được nối vào một chân digital của aruino uno R3, thực hiện truyền nhận tín hiệu diễn ra theo chuẩn I2C ( truyền nhận tín hiệu một dây), chân số 1 được cấp nguồn 5V từ kít, chân số 3 bỏ trống, chân 4 nối với GND của board
Cấu trúc dữ liệu trên 1 - wire bus
DATA = 16 bit dữ liệu RH + 16 bit Nhiệt độ + 8 bit check-sum
Ví dụ: MCU nhận được 40 bit dữ liệu từ DHT22 như
0000 0010 1000 1100 0000 0001 0101 1111 1110 1110
16 bit RH data 16 bit T data 8 bit check sum
Ở đây chúng ta chuyển đổi 16 bit dữ liệu RH (Relative Humidity) từ hệ nhị phân
để sang hệ thập phân,
0000 0010 1000 1100 → 652
Từ đó tính được độ ẩm tương đối RH:
RH = 652/10 = 65 2% RH Chúng ta chuyển đổi 16 bit dữ liệu T (Temperature) từ hệ nhị phân để hệ thống thập phân,
0000 0001 0101 1111 → 351 Tính được giá trị nhiệt độ của cảm biến DHT22
T = 351/10 = 35.1 ℃
DATA
Trang 33- Khi bit cao nhất của nhiệt độ là 1, có nghĩa là ta đo nhiệt độ dưới 00 C
Hình 2.11: Quá trình gửi nhận dữ liệu giữa Vi điều khiển và DHT22
Để có thể giao tiếp với DHT22 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:
Trang 34Bước 1: MCU gửi tín hiệu Start và chờ DHT22 gửi tín hiệu đáp ứng
Hình 2.12: Vi điều khiển gửi yêu cầu cho cảm biến
MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời gian ít nhất 1- 10ms Khi đó DHT22 sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ
ẩm
MCU đưa chân DATA lên mức 1chờ đáp ứng của DHT22, Sau khoảng 20-40us thì DHT22 sẽ kéo chân DATA xuống thấp Nếu > 40us mà chân DATA ko được kéo xuống mức thấp nghĩa là ko giao tiếp được với DHT22
Nếu có đáp ứng của cam biến chân DATA sẽ ở mức thấp 80us, sau đó nó được DHT22 kéo lên cao trong 80us và quá trình truyền dữ liệu sẽ diễn ra ngay sau đó Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT22 ko
Bước 2: MCU đọc giá trị trên DHT22
Sau khi giao tiếp được với DHT22, DHT22 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về MCU, tương ứng chia thành 5 byte kết quả của nhiệt độ và độ ẩm
Trang 35Hình 2.13: Quá trình gửi dữ liệu về của cảm biến
Khi cảm biến DHT22 gửi dữ liệu đến VĐK, việc truyền tải mỗi bit bắt đầu khi DATA đang ở mức thấp và tồn tại trong khoảng thời gian 50us, sau khoảng thời gian này dữ liệu DATA chuyển lên mức cao và thời gian tồn tại mức cao sẽ quyết định giá trị trả về của cảm biến là bít “0” hay “1”
+ Bit 0: Thời gian tồn tại mức cao của DHT22 là 26 - 28us
+ Bit 1: Thời gian tồn tại mức cao của DHT22 là 70us
Và cứ như vậy mà từng bit dữ liệu của cảm biến sẽ được gửi về MCU sau mỗi 50us delay, và thực hiện cho đủ 40 bit thì dừng hoặc tiếp tục đo giá trị nhiêt độ, độ ẩm nếu MCU gửi tín hiệu Start
Trang 36Độ nhạy của cảm biến độ ẩm đất có thể điều chỉnh được (Bằng cách điều chỉnh chiết áp màu xanh trên board mạch)
Phần đầu dò được cắm vào đất để phát hiện độ ẩm, khi độ ầm của đất đạt ngưỡng thiết lập, đầu ra DO sẽ chuyển trạng thái từ mức thấp lên mức cao
Trang 37Hình 2.15: Mạch so sánh của cảm biến độ ẩm đất 2.4.3 Cảm biến siêu âm HC SR4
a) Giới thiệu
Hình 2.16: Cảm biến siêu âm HC SR04 HC-SR04 là module cảm biến siêu âm dùng để đo khoảng cách từ cảm biến đến vật cản Khoảng cách mà cảm biến có thể đo được là từ 2 – 400cm, độ chính xác có thể đạt được ± 3mm HC-SR04 có 2 loa siêu âm phát/thu, tương ứng với hai chân điều khiển Trigger/Echo, để phát và nhận sóng siêu âm
Trang 38b) Đặc điểm kỹ thuật
- Điện áp hoạt động: 5V
- Dòng tiêu thu: 15mA
- Tần số siêu âm: 40Hz
- Giới hạn khoảng cách đo được: 20mm - 4000mm
- Giới hạn góc phát siêu âm: 15o
- Tín hiệu ra (Trigger): xung TTL 10us
- Tín hiệu vào (Echo): xung TTL, tùy thuộc khoảng cách
- Kích thước module (dài x rộng x cao): 45mm x 20mm x 15mm
Sơ đồ chân của HC-SR04 gồm: VCC, trig, echo, GND Trong đó:
- VCC > pin 5V Arduino
- trig > chân digital (OUTPUT), đây là chân sẽ phát tín hiệu từ cảm biến
- echo > chân digital (INPUT), đây là chân sẽ nhận lại tín hiệu được phản xạ từ vật cản
- GND -> GND Arduino
c) Nguyên tắc làm việc cơ bản
Hình 2.17: Giản đồ xung hoạt động của cảm biến siêu âm Theo Hình 2.18 để đo khoảng cách MCU sẽ thực hiện các bước
Trang 39- Sử dụng chân IO (chân Trig) kích tín hiệu mức cao tồn tại ít nhất 10us
- Module tự động gửi liên tiếp 8 xung tần số 40 kHz và chờ tín hiệu xung phản hồi
- Nếu có tín hiệu phản hồi lại tại chân echo là mức cao, thì thời gian tồn tại mức cao của chân echo là thời gian sóng siêu âm được trả về
- Và công thức xác định khoảng cách: D = ( T * V) / 2 (2.1)
Trong đó:
D: khoảng cách phát hiện vật cần đo T: thời gian tín hiệu mức cao thu được tại chân echo
V: vận tốc âm thanh khoảng 344m/s
Hình 2.18: Tầm quét của cảm biến siêu âm
Khi sóng siêu âm phát ra và thu về, cảm biến siêu âm, một cách gián tiếp cho ta biết vị trí các chướng ngại vật theo hướng quét của cảm biến Khi đó, dường như trên quãng đường đi từ cảm biến đến chướng ngại vật, sóng siêu âm không gặp bất cứ vật cản nào, và đâu đó xung quanh vị trí mà thong số cảm biến ghi nhận được, có một chướng ngại vật Và vì thế, cảm biến siêu âm có thể được mô hình hóa thành một hình quạt, trong đó các điểm ở giữa dường như không có chướng ngại vật, còn các điểm trên biên thì dường như có chướng ngại vật nằm ở đâu đó
Trang 402.5 Bộ thu phát APC220-43 433 MHz RF Transceiver Module
Hình 2.19: Module RF APC220-43 Module APC220-43 là mạch tích hợp thu phát bá song công có công suất thấp với tốc độ MCU cao, khả năng IC RF tốt Sửa lỗi hiệu quả cao với công nghệ mã hóa Interleaving, nó có thể chống nhiễu và cải thiện độ nhạy cao Nó có thể có hiệu suất tốt trong môi trường nhiễu phức tạp ví dụ như trong công nghiệp Kỹ thuật này hiệu quả cao trong lĩnh vực truyền tải dữ liệu
APC220-43 là module có chi phí hợp lý và dễ ứng dụng nó không chỉ truyền nhận với bộ đệm lớn mà còn cung cấp lên đến 100 kênh truyền Các thông số đó thiết lập dễ dàng và khá lý tưởng cho việc truyền dẫn dữ liệu không dây
Thông số kỹ thuật:
• Khoảng cách truyền 1000m ở tốc độ baud (2400bps)
• Công suất đầu ra là 20 mW
• Tần số là từ 418MHz đến 455MHz
• Kích thước của Module 37.5mm x 18.3mm x 7.0mm
• Hơn 100 kênh
• Điều chế GFSK
•Giao diện UART / TTL
•Trên 256 byte dữ liệu đệm phù hợp để chuyển dữ liệu lớn