CẢM BIẾN độ ẩm DÙNG ARDUINO XUẤT LCD và gửi về MODULE SIM900A (có code và layout) CẢM BIẾN độ ẩm DÙNG ARDUINO XUẤT LCD và gửi về MODULE SIM900A (có code và layout) CẢM BIẾN độ ẩm DÙNG ARDUINO XUẤT LCD và gửi về MODULE SIM900A (có code và layout) CẢM BIẾN độ ẩm DÙNG ARDUINO XUẤT LCD và gửi về MODULE SIM900A (có code và layout)
Trang 1CẢM BIẾN ĐỘ ẨM DÙNG ARDUINO XUẤT LCD VÀ GỬI VỀ
MODULE SIM900A
Trang 2DANH MỤC CÁC BẢNG BIỂU X DANH MỤC CÁC TỪ VIẾT TẮT XI
CHƯƠNG 1 TÌM HIỂU VỀ HỆ THỐNG CHỐNG TRỘM HỒNG NGOẠI 1
1.1 GIỚI THIỆU ĐỀ TÀI 1
1.1.2 Định hướng đề tài 2
CHƯƠNG 2 CÁC LINH KIỆN CẦN DÙNG 3
2.1 VY XỬ LÝ ARDUINO UNO R3 3
2.1.1 Giới vi xử lý Arduino 3
2.2 CẢM BIẾN DHT 11 9
2.2.1 Giới thiệu 9
2.2.2 Nguyên lý hoạt động 10
2.3 MÀN HÌNH LCD 16×2 10
2.3.1 Giới thiệu 10
2.3.2 Sơ đồ kết nối chân với MCU 12
2.3.3 Nguyên lý hoạt động 13
2.4 MODULE SIM 900A 14
2.4.1 Giới thiệu 14
2.4.2 Nguyên lý hoạt động 14
CHƯƠNG 3 TIẾN TRÌNH THIẾT KẾ MẠCH 16
3.1 THIẾT KẾ MẠCH 16
3.1.1 Lưu đồ giải thuật 16
3.1.2 Sơ đồ mô phỏng mạch 17
3.1.3 Chức năng của linh kiện 17
3.1.4 Nguyên lý hoạt động 18
Trang 3CHƯƠNG 4 HOÀN CHỈNH MẠCH THỰC TẾ 19
4.1 XUẤT GIỮ LIỆU NHIỆT ĐỌ, ĐỘ ẨM 19
4.2 GỬI TIN NHẮN KHI ĐỘ ẨM CAO 19
CHƯƠNG 5 KẾT LUẬN 20
5.1 ĐÁNH GIÁ SƠ BỘ 20
5.2 HƯỚNG PHÁT TRIỂN 20
TÀI LIỆU THAM KHẢO 21
PHỤ LỤC 22
Trang 4HÌNH 1-2: SƠ ĐỒ KHỐI TỔNG QUÁT 2
HÌNH 2.1: ARDUINO UNO R3 4
HÌNH 2.2: TÊN CÁC CHÂN CỦA ARDUINO UNO R3 7
HÌNH 2.3: CẢM BIẾN DHT11 9
HÌNH 2.4: SƠ ĐỒ NỐI CHÂN DHT11 10
HÌNH 2.5: LCD 16×2 10
HÌNH 2.6: SƠ ĐỒ NỐI CHÂN CỦA LCD 16×2 12
HÌNH 2.7: CÁC CHÂN CỦA LCD 16×2 13
HÌNH 2.8: MODULE SIM 900A 14
HÌNH 2.9: SƠ ĐỒ NỐI CHÂN MODULE SIM 900A 15
HÌNH 3.1: LƯU ĐỒ GIẢI THUẬT 16
HÌNH 3.2: HÌNH ẢNH MÔ PHỎNG 17
HÌNH 4.1: MẠCH THỰC TẾ 19
HÌNH 4.2: NHẬN VÀ GỬI SMS 19
DANH MỤC CÁC BẢNG BIỂU BẢNG 2-1 BẢNG THÔNG SỐ CỦA ARDUINO UNO R3 8
BANG 2-2 CHỨC NĂNG CÁC CHÂN LCD 11
Trang 5GSM Global System for Mobile Communication.
SIM Subscriber Identity Module.
VDC Volt Direct Current
Trang 6CHƯƠNG 1 TÌM HIỂU VỀ MẠCH CẢM BIẾN ĐỘ ẨM DÙNG VI
XỬ LÝ
1.1 Giới thiệu đề tài
- Môi trường sống của con người ngày nay do bị tác động bởi nhiều lýdo( nhiệt độ, độ ẩm ), nên hay thay đổi một cách bất thường gây nên nhiều hậuquả không mong muốn cho đời sống của con người Do đó các mạch cảm biến đã rađời nhằm nắm bắt được sự thay đổi của môi trương từ đó đưa ra các giải pháp hợp
lý Mạch cảm biến độ ẩm dùng vi xử lý arduino la một trong những mạch vi xử lýđơn giản để đo độ ẩm của môi trường và có thể báo động cho con người một cáchnhanh chóng khi độ ẩm tăng cao, nhằm đưa ra các giải pháp hợp lý Các mạch này
có thể dùng trong nhà hay phục vụ một phần trong công nghệ trồng cây trong nhàkính
Các mạch cảm biến độ ẩm thường gặp
Hình 1.1: Các mạch cảm biến độ ẩm thường gặp
Mạch cảm biến độ ẩm dùng vi xử lý hiện nay giá thành tương đối rẻ, và hoạtđộng khá hiệu quả để đo độ ầm của môi trường Mạch đo độ ẩm đất dùng để tưới
Trang 7cây và mạch đo nhiệt độ, độ ẩm trong các bo mạch như led điện tử cũng được sửdụng phổ biến.
1.1.1 Định hướng đề tài
- Mạch sử dụng một vi xử lý trung tâm là arduino, cảm biến nhiệt độ độ ẩmDHT11, màn hình LCD, module sim 900a Cảm biến DHT11 sẽ ghi nhận độ ẩm củamôi trường và truyền dữ liệu đến arduino để xử lý, khi độ ẩm vượt quá một ngưỡngcho phép nào đó thì vi xử lý arduino đã được lập trình sẵn sẽ báo động qua loa đồngthời gửi tin nhắn đến điệ thoại thông qua modulesim 900a và xuất kết quả ra mànhình LCD
Hình 1.2: sơ đồ khối tổng quát
CHƯƠNG 2 CÁC LINH KIỆN CẦN DÙNG
2.1 VI XỬ LÝ ARDUINO UNO R3
2.1.1 Giới thiệu vi xử lý arduino
- Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tácvới nhau hoặc với môi trường được thuận lợi hơn Gồm một board mạch nguồn mở
DHT11
LOAA
MODULE SIM 900A
ARDUINO
LCD
SMSCODE
Trang 8được thiết kế trên nền tảng vi xử lý AVR Atmel 8 bit Gồm một cổng giao tiếpUSB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board
Trang 9lên máy tính Dây cáp có hai đầu Đầu ra được dùng để cắm vào cổng USBtrên board Arduino, đầu 1b dùng để cắm vào cổng USB trên máy tính.
ICSP của Atmega 16U2
- ICSP là chữ viết tắt của In – Circuit Serial Programming Đây là các chângiao tiếp SPI của chip Atmega 16U2 Các chân này thường ít được sử dụngtrong các dự án về Arduino
Chân xuất tín hiệu ra
- Có tất cả 14 chân xuất tín hiệu ra trong Arduino Uno, những chân có dấu ~
là những chân có thể băm xung ( PWM ), tức có thể điều khiển tốc độ động
cơ hoặc độ sáng của đèn
Trang 10- Các chân ICSP của Atmega 328 được sử dụng cho các giao tiếp SPI ( SerialPeripheral Interface ), một số ứng dụng của Arduino có sử dụng chân này, ví
dụ như sử dụng module RFID, RC522 với Arduino hay Ethernet Shield vớiArduino
Chân lấy tín hiệu Analog
- Các chân này lấy tín hiệu Analog ( tín hiệu tương tự ) từ cảm biến để ICAtmega 328 xử lý Có tất cả 6 chân lấy tín hiệu Analog, từ A0 đến A5
Chân cấp nguồn cho cảm biến
- Các chân này dùng để cấp nguồn cho các thiết bị bên ngoài như rơle, cảmbiến, RC servo, trên khu vực này có sẵn các chân GND ( chân nối đất, chân
âm ), chân 5V, chân 3.3V Nhờ những chân này mà người sử dụng khôngcần thiết bị biến đổi điện khi cấp nguồn cho cảm biến, roowle, rc servo, Ngoài ra trên khu vực này còn có các chân Vin và chân reset, chân IOREF.Tuy nhiên các chân này thường ít được sử dụng
Các linh kiện khác trên board Arduino Uno
- Ngoài các linh kiện đã liệt kê trên, Arduino Uno còn một số linh kiện đángchú ý khác Trên board có tất cả 4 đèn led, bao gồm 1 led nguồn ( led ONnhằm cho biết loa đã được cấp nguồn ), 2 led Tx và Rx, 1 led L Các led Tx
và Rx sẽ nhấp nháy khi có dữ liệu truyền từ board lên máy tính hoặc ngượclại thông qua cổng USB Led L được kết nối với chân số 13 Led này đượcgọi là led on board ( tức led trên board ), led này giúp người dùng có thể thựchành các bài đơn giản mà không cần dùng thêm led ngoài
- Trong 14 chân ra của board còn có 2 châ 0 và 1 có thể truyền nhận dữ liệunối tiếp TTL Có một số ứng dụng đến tính năng này, ví dụ ứng dụng điềukhiển mạch Arduino Uno qua điện thoại sử dụng bluetooth HC05
- Thêm vào đó, chân 2 và 3 cũng được sử dụng cho lập trình ngắt ( interrupt ),đồng thời còn vài chân khác có thể sử dụng cho các chức năng khác
Trang 11Hình 2.2: Tên các chân trên Arduino Uno R3
Trang 12Bảng 2-1: Bảng thông số của Arduino Uno R3
2.2 CẢM BIẾN DHT11
Trang 14Hình 2.4: Sơ đồ nối chân DHT11
2.2.2 Nguyên lý hoạt động
- Để có thể giao tiếp với DHT11 theo chuẩn 1 chân xử lý thực hiện theo 2
bước:
Gửi tín hiệu muốn đo ( start ) tới DHT11, sau đó DHT11 xác nhận lại
Khi đã giao tiếp được với DHT11, cảm biến sẽ gửi lại 5 byte giữ liệu và
nhiệt độ đo được
2.3 MÀN HÌNH LCD 16×2
2.3.1 Giới thiệu
Hình 2.5: LCD 16×2
Bảng 2-2:Chức năng các chân LCD
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của
mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V
của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của LCD
4 RS Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND)
hoặc logic “1” (VCC) để chọn thanh ghi
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế
độ “ghi” write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc”
Trang 15-read) + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trongLCD.
5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để
LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc
6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7,
các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanhghi bên trong nó khi phát hiện một xung (high-to-low transition) của tínhiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiệncạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khinào chân E xuống mức thấp
7 14 DB0
-DB7 Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU Có 2 chếđộ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bitDB7
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bitMSB là DB7
15 - Nguồn dương cho đèn nền
16 - GND cho đèn nền
2.3.2 Sơ đồ kết nối với MCU
Hình 2.6: Hoạt động nạp xả của transistor.
Trang 16- VSS: tương đương GND – cực âm.
- VDD: tương đương với VCC – cực dương ( 5V )
- Contrast Voltage ( Vo ): Điều khiển địa chỉ nào sẽ được ghi dữ liệu
- Register Select ( RS ): Đọc ( mode ) hay ghi ( write mode ) dữ liệu ? Nó sẽphụ thuộc vào giá trị gửi vào
- Enable pin: Cho phép ghi vào LCD
- D0 – D7: 8 chân dữ liệu, mỗi chân sẽ có giá trị HIGH hoặc LOW nếu đang
ở chế độ đọc ( read mode ) sẽ nhận giá trị HIGH hoặc LOW nếu đang ở chế
độ ghi ( write mode )
- Backlight ( Back Anode (+) và Backlight Cathode (-)): Tắt bật màn hìnhLCD
Trang 17- Chip HD44780 có hai thanh ghi 8 bit quan trọng: Thanh ghi lệnh IR( Instructor Register ) và thanh ghi dữ liệu DR ( Data Register )
- Thanh ghi IR: Để điều khiển LCD, người dung phải ra lệnh thông qua támđường bus DB0 – DB7 Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõrang Người dung chỉ việc cung cấp địa chỉ lệnh bằng bảng mã lệnh tại chỉ
mà IR cung cấp và thực hiện lệnh đó
- Thanh ghi DR: Thanh ghi dung để chứa dữ liệu 8 bit để ghi vào vùng RAMDDRAM hoặc CGRAM ( ở chế độ ghi ) hoặc dùng để chứa dữ liệu từ haivùng RAM này gửi ra cho MPU ( ở chế độ đọc ) Nghĩa là, khi MPU ghithông tin DR, mạch nội bên trong chip sẽ tự động ghi thông tin này vàoDDRAM hoặc CGRAM Hoặc khi thông tin về địa chỉ được ghi vào IR, dữliệu ở địa chỉ này trong vùng RAM nội của HD44780 sẽ được chuyển ra DR
đê truyền cho MPU
2.4 MODULE SIM 900A
2.4.2 Giới thiệu
Hình 2.8: Module sim 900a.
Trang 182.4.3 Nguyên lý hoạt động
Nối mạch
5V nối với chân 5V của mạch Arduino
GND nối với GND của board Arduino
TX nối với chân 2 của board Arduino
RX nối với chân 3 của board Arduino
PWR đây là chân bật tắt module sim900A
SPK chân này cần kết nối nếu bạn muốn xuất âm thanh loa thoại
MIC chân này cần kết nối nếu bạn muốn tạo mic để đàm thoại
- Sử dụng các module nối tiếp để gửi AT để module GSM, sau đó nó có thể kiểm soát các module đê gửi tin nhắn, thực hiện cuộc gọi và kết nối với mạng GPRS Có thể kết nối với cổng giao tiếp USB
Sơ đồ kết nối với MCU ( Arduino UNO R3 )
Trang 19Hình 2.9: Sơ đồ nối chân Module sim 900a.
CHƯƠNG 3 TIẾN TRÌNH THIẾT MẠCH
Trang 20Hình 3.1: Lưu đồ giải thuật.
3.1.2 Sơ đồ mô phỏng mạch
Hình 3.2: Hỉnh ảnh mô phỏng.
3.1.3 Chức năng của linh kiện
- MCU ( Arduino UNO R3 ): Là bộ xử lý để điều khiển toàn bộ quá trình hoạtđộng của mạch ( xuất dữ liệu về độ ẩm qua LCD, báo động loa kêu khi độ
ẩm vượt quá ngưỡng cho phép, điều khiển module sim 900 gửi tin nhắn khi
độ ẩm vượt quá ngưỡng cho phép đồng thời cũng nhận tin nhắn từ điện thoại
để MCU tắt báo động )
- DHT11: có nhiệm vụ thu nhận dữ liệu về độ ẩm để MCU xử lý
Trang 213.1.5 Viết code cho chương trình
- Qua lưu đồ giải thuật ta có thể code hoàn thiện chương trình
- Code hoản chỉnh nằm ở phụ lục
Trang 23CHƯƠNG 5 KẾT LUẬN
5.1 ĐÁNH GIÁ SƠ BỘ
- Hệ thống tuy đơn giản nhưng có thể được áp vào nhiều dự án thực tế trong cuộcsống trong những môi trường cần có nhiệt độ, độ ẩm ổn định Như những nơi nuôitrồng những loại thực vật nhạy cảm với nhiệt độ, độ ẩm
5.2 HƯỚNG PHÁT TRIỂN
- Có thể tối ưu hóa mô hình để có thể tích hợp vào nhiều vi mạch với những ưu
điểm mạnh hơn như trong dự án nhà thông minh
Trang 24TÀI LIỆU THAM KHẢO
- Arduino Uno R3: http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi
- Module sim: arduino-module-nhan-tin-voi-arduino
http://arduino.vn/bai-viet/851-su-dung-module-sim900a-mini-voi LCD: http://arduino.vn/baihttp://arduino.vn/bai-viet/851-su-dung-module-sim900a-mini-voi viet/531http://arduino.vn/bai-viet/851-su-dung-module-sim900a-mini-voi dieuhttp://arduino.vn/bai-viet/851-su-dung-module-sim900a-mini-voi khienhttp://arduino.vn/bai-viet/851-su-dung-module-sim900a-mini-voi lcdhttp://arduino.vn/bai-viet/851-su-dung-module-sim900a-mini-voi banghttp://arduino.vn/bai-viet/851-su-dung-module-sim900a-mini-voi arduinohttp://arduino.vn/bai-viet/851-su-dung-module-sim900a-mini-voi uno
Trang 25const int DHTPIN = A0;
const int DHTTYPE = DHT11;
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Trang 28Serial.println((int)pos);
if((int)pos>0 && (int)pos<=20){
Serial.print("NUOVO MESSAGGIO, POS="); Serial.println((int)pos);