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ậu quả 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ách nhanh 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......
ĐỒ ÁN CẢM BIẾN ĐỘ ẨM DÙNG ARDUINO XUẤT LCD VÀ GỬI VỀ MODULE SIM900A MỤC LỤC DANH MỤC CÁC HÌNH VẼ IX DANH MỤC CÁC BẢNG BIỂU X DANH MỤC CÁC TỪ VIẾT TẮT XI CHƯƠNG TÌM HIỂU VỀ HỆ THỐNG CHỐNG TRỘM HỒNG NGOẠI 1.1 GIỚI THIỆU ĐỀ TÀI 1.1.2 Định hướng đề tài .2 CHƯƠNG CÁC LINH KIỆN CẦN DÙNG 2.1 VY XỬ LÝ ARDUINO UNO R3 2.1.1 Giới vi xử lý Arduino 2.2 CẢM BIẾN DHT 11 2.2.1 Giới thiệu 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 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ô mạch 17 3.1.3 Chức linh kiện .17 3.1.4 Nguyên lý hoạt động 18 3.1.5 Viết code cho chương trình 18 CHƯƠNG 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 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 DANH MỤC CÁC HÌNH VẼ HÌNH 1-1: CÁC MẠCH CẢM BIẾN ĐỘ ẨM THƯỜNG GẶP HÌNH 1-2: SƠ ĐỒ KHỐI TỔNG QUÁT HÌNH 2.1: ARDUINO UNO R3 HÌNH 2.2: TÊN CÁC CHÂN CỦA ARDUINO UNO R3 HÌNH 2.3: CẢM BIẾN DHT11 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 DANH MỤC CÁC TỪ VIẾT TẮT LCD Liquid Crystal Display GSM Global System for Mobile Communication SIM Subscriber Identity Module VDC Volt Direct Current ĐỒ ÁN Trang 1/26 CHƯƠNG 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 người ngày bị tác động nhiều lý do( nhiệt độ, độ ẩm .), nên hay thay đổi cách bất thường gây nên nhiều hậu không mong muốn cho đời sống người Do mạch cảm biến đời nhằm nắm bắt thay đổi mơi trương từ đưa giải pháp hợp lý Mạch cảm biến độ ẩm dùng vi xử lý arduino la mạch vi xử lý đơn giản để đo độ ẩm môi trường báo động cho người cách nhanh chóng độ ẩm tăng cao, nhằm đưa giải pháp hợp lý Các mạch dùng nhà hay phục vụ phần cơng nghệ trồng 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ý giá thành tương đối rẻ, hoạt động hiệu để đo độ ầm môi trường Mạch đo độ ẩm đất dùng để tưới Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 2/26 mạch đo nhiệt độ, độ ẩm bo mạch led điện tử sử dụng phổ biến 1.1.1 Định hướng đề tài - Mạch sử dụng vi xử lý trung tâm arduino, cảm biến nhiệt độ độ ẩm DHT11, hình LCD, module sim 900a Cảm biến DHT11 ghi nhận độ ẩm môi trường truyền liệu đến arduino để xử lý, độ ẩm vượt ngưỡng cho phép vi xử lý arduino lập trình sẵn báo động qua loa đồng thời gửi tin nhắn đến điệ thoại thông qua modulesim 900a xuất kết hình LCD DHT11 LOAA CODE ARDUINO LCD MODULE SIM 900A SMS Hình 1.2: sơ đồ khối tổng quát CHƯƠNG 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 board mạch vi xử lý, nhằm xây dựng ứng dụng tương tác với với môi trường thuận lợi Gồm board mạch nguồn mở Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 3/26 thiết kế tảng vi xử lý AVR Atmel bit Gồm cổng giao tiếp USB, chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác 2.1.2 Cấu tạo arduino Hình 2.1: ARDUINO UNO R3 Cáp USB - Đây cáp thường bán kèm theo bo, dây cáp dùng để nạp chương trình cho board dây đồng thời lấy nguồn từ usb máy tính để board hoạt động Ngồi cáp USB cịn dùng để chuyển liệu từ Arduino Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 4/26 lên máy tính Dây cáp có hai đầu Đầu dùng để cắm vào cổng USB board Arduino, đầu 1b dùng để cắm vào cổng USB máy tính IC Atmega 16U2 - IC lập trình chuyển đổi USB - to – Serial dùng để giao tiếp với máy tính thơng qua giao thức Serial ( dùng cổng COM ) Cổng nguồn - Cổng nguồn nhằm sử dụng nguồn điện bên ngồi pin, bình ác quy hay adapter cho board Arduino hoạt động Nguồn điện cấp vào cổng nguồn DC có hiệu điện từ 6V đến 20V, nhiên hiệu điện tốt mà nhà sản xuất khuyên dùng từ 7V đế 12V Cổng USB - Cổng USB board Arduino dùng để kết nối với cáp USB Nút reset - Nút reset dùng để reset lại chương trình chạy Đơi chương trình chạy gặp lỗi, người dùng reset lại chương trình ICSP Atmega 16U2 - ICSP chữ viết tắt In – Circuit Serial Programming Đây chân giao tiếp SPI chip Atmega 16U2 Các chân thường sử dụng dự án Arduino Chân xuất tín hiệu - Có tất 14 chân xuất tín hiệu Arduino Uno, chân có dấu ~ chân băm xung ( PWM ), tức điều khiển tốc độ động độ sáng đèn IC Atmega 328 - IC Atmega 328 linh hồn board mạch Arduino Uno, IC sử dụng việc thu thập liệu từ cảm biến, xử lý liệu, xuất tín hiệu ra, Chân ICSP Atmega 328 Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 5/26 - Các chân ICSP Atmega 328 sử dụng cho giao tiếp SPI ( Serial Peripheral Interface ), số ứng dụng Arduino có sử dụng chân này, ví dụ sử dụng module RFID, RC522 với Arduino hay Ethernet Shield với Arduino Chân lấy tín hiệu Analog - Các chân lấy tín hiệu Analog ( tín hiệu tương tự ) từ cảm biến để IC Atmega 328 xử lý Có tất 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 dùng để cấp nguồn cho thiết bị bên rơle, cảm biến, RC servo, khu vực có sẵn chân GND ( chân nối đất, chân âm ), chân 5V, chân 3.3V Nhờ chân mà người sử dụng không cần thiết bị biến đổi điện cấp nguồn cho cảm biến, roowle, rc servo, Ngoài khu vực cịn có chân Vin chân reset, chân IOREF Tuy nhiên chân thường sử dụng Các linh kiện khác board Arduino Uno - Ngoài linh kiện liệt kê trên, Arduino Uno số linh kiện đáng ý khác Trên board có tất đèn led, bao gồm led nguồn ( led ON nhằm cho biết loa cấp nguồn ), led Tx Rx, led L Các led Tx Rx nhấp nháy có liệu truyền từ board lên máy tính ngược lại thông qua cổng USB Led L kết nối với chân số 13 Led gọi led on board ( tức led board ), led giúp người dùng thực hành đơn giản mà khơng cần dùng thêm led ngồi - Trong 14 chân board cịn có châ truyền nhận liệu nối tiếp TTL Có số ứng dụng đến tính này, ví dụ ứng dụng điều khiển mạch Arduino Uno qua điện thoại sử dụng bluetooth HC05 - Thêm vào đó, chân sử dụng cho lập trình ngắt ( interrupt ), đồng thời cịn vài chân khác sử dụng cho chức khác Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 10/26 VDD VEE RS R/W E - 14 DB0 DB7 15 - 16 - mạch điều khiển Chân cấp nguồn cho LCD, thiết kế mạch ta nối chân với VCC=5V mạch điều khiển Điều chỉnh độ tương phản LCD Chân chọn ghi (Register select) Nối chân RS với logic “0” (GND) logic “1” (VCC) để chọn ghi + Logic “0”: Bus DB0-DB7 nối với ghi lệnh IR LCD (ở chế độ “ghi” - write) nối với đếm địa LCD (ở chế độ “đọc” read) + Logic “1”: Bus DB0-DB7 nối với ghi liệu DR bên LCD 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, nối với logic “1” để LCD chế độ đọc Chân cho phép (Enable) Sau tín hiệu đặt lên bus DB0-DB7, lệnh chấp nhận có xung cho phép chân E + Ở chế độ ghi: Dữ liệu bus LCD chuyển vào(chấp nhận) ghi bên phát xung (high-to-low transition) tín hiệu chân E + Ở chế độ đọc: Dữ liệu LCD xuất DB0-DB7 phát cạnh lên (low-to-high transition) chân E LCD giữ bus đến chân E xuống mức thấp -Tám đường bus liệu dùng để trao đổi thơng tin với MPU Có chế độ sử dụng đường bus : + Chế độ bit : Dữ liệu truyền đường, với bit MSB bit DB7 + Chế độ bit : Dữ liệu truyền đường từ DB4 tới DB7, bit MSB DB7 Nguồn dương cho đèn GND cho đèn 2.3.2 Sơ đồ kết nối với MCU Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 11/26 Hình 2.6: Hoạt động nạp xả transistor - 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 ghi liệu - Register Select ( RS ): Đọc ( mode ) hay ghi ( write mode ) liệu ? Nó phụ thuộc vào giá trị gửi vào - Enable pin: Cho phép ghi vào LCD - D0 – D7: chân liệu, chân có giá trị HIGH LOW chế độ đọc ( read mode ) nhận giá trị HIGH LOW chế độ ghi ( write mode ) - Backlight ( Back Anode (+) Backlight Cathode (-)): Tắt bật hình LCD 2.3.3 Nguyên lý hoạt động Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 12/26 - Khi sản xuất LCD, nhà sản xuất tích hợp chip điểu khiển ( HD44780 ) bên lớp vỏ địa chân giao tiếp cần thiết Các chân đánh số thứ tự hình Hình 2.7: Hoạt động nạp xả transistor - Chip HD44780 có hai ghi bit quan trọng: Thanh ghi lệnh IR ( Instructor Register ) ghi liệu DR ( Data Register ) - Thanh ghi IR: Để điều khiển LCD, người dung phải lệnh thông qua tám đường bus DB0 – DB7 Mỗi lệnh nhà sản xuất LCD đánh địa rõ rang Người dung việc cung cấp địa lệnh bảng mã lệnh mà IR cung cấp thực lệnh - Thanh ghi DR: Thanh ghi dung để chứa liệu bit để ghi vào vùng RAM DDRAM CGRAM ( chế độ ghi ) dùng để chứa liệu từ hai vùng RAM gửi cho MPU ( chế độ đọc ) Nghĩa là, MPU ghi thông tin DR, mạch nội bên chip tự động ghi thông tin vào DDRAM CGRAM Hoặc thông tin địa ghi vào IR, liệu địa vùng RAM nội HD44780 chuyển DR đê truyền cho MPU 2.4 MODULE SIM 900A 2.4.2 Giới thiệu Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 13/26 Hình 2.8: Module sim 900a - Thơng số kỹ thuật: Kích thước: 49 × 47 Trọng lượng: 28 gam VCC5 – DC5 V đầu vào VCC4 – DC3.5 V – 4.5 V đầu vào VCC – MCU SIM 900A module 5V mức TTL thông tin lien lạc, pin kết nối với DC 5V Khi t nhông tin liên lạc 3.3V pin kết nối với DC 3.3V 2.4.3 Nguyên lý hoạt động Nối mạch 5V nối với chân 5V mạch Arduino GND nối với GND board Arduino Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 14/26 TX nối với chân board Arduino RX nối với chân board Arduino PWR chân bật tắt module sim900A SPK chân cần kết nối bạn muốn xuất âm loa thoại MIC chân cần kết nối bạn muốn tạo mic để đàm thoại - Sử dụng module nối tiếp để gửi AT để module GSM, sau kiểm sốt module đê gửi tin nhắn, thực gọi 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 ) Hình 2.9: Sơ đồ nối chân Module sim 900a CHƯƠNG TIẾN TRÌNH THIẾT MẠCH 3.1 THIẾT KẾ MẠCH Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 15/26 3.1.1 Lưu đồ giải thuật Bắt đầu MCU đọc cảm biến Xuất LCD IF Độ ẩm > 65 MCU gửi SMS Độ ẩm =v) { digitalWrite(10, HIGH); sms.SendSMS(number, "Do am cao:))"); delay(1000); } pos=sms.IsSMSPresent(SMS_UNREAD); Cảm biến độ ẩm dùng Arduino xuất LCD ĐỒ ÁN Trang 24/26 Serial.println((int)pos); if((int)pos>0 && (int)pos 65 MCU gửi SMS Độ ẩm =