ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout) ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout) ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout) ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout) ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout)
ĐỒ ÁN ĐO NHIỆT ĐỘ VÀ ĐỘ ẨM QUA SMS MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC TỪ VIẾT TẮT ADC EEPROM GPRS GSM IC LCD LED PIC RAM RS RW SMS SIM TTL UART USART VDD VSS Analog Digital Converter Electrically Erasable Programmable Read-Only General Packet Radio Service Global System for Mobile Integrated Circuit Liquid Crystal Display Light Emitting Diode Programable Intelligent Computer Random Access Memory Register Select Read/write Short Message Services Subcriber Identity Module Transistor-transistor logic Universal Asynchronous Receiver Transmitter Universal Synchronous & Asynchronous Receiver Transmitter Voltage Drain Drain Voltage for Substrate and Sources ĐỒ ÁN Trang 5/26 CHƯƠNG TÌM HIỂU CHUNG 1.1 Giới thiệu sơ lược đề tài Tên đề tài: Đo nhiệt độ độ ẩm qua SMS - Tìm hiểu vi điều khiển PIC16F877A - Tìm hiểu Module SIM, cảm biến nhiệt độ - Thiết kế mạch đo nhiệt độ, độ ẩm có hiển thị LCD gửi cảnh báo qua SMS - Lập trình điều khiển thi công phần cứng 1.2 Sơ đồ giải thuật Hình 1-1 Sơ đồ giải thuật 1.3 Sơ đồ khối Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 6/26 Hình 1-2 Sơ đồ khối - Khối nguồn: Cung cấp nguồn cho hệ thống - Khối cảm biến nhiệt độ, độ ẩm: Tiến hành đọc giá trị nhiệt độ, độ ẩm gửi kết vi điều khiển - Khối điều khiển: Xử lý giá trị đọc tiến hành gửi qua Module SIM, tác động đến khối cảm biến nhiệt độ, độ ẩm để đọc giá trị thời điểm - Module SIM: Nhận giá trị nhiệt độ, độ ẩm từ vi điều khiển tiến hành gửi giá trị nhận đến điện thoại di động SMS - Điện thoại di động: Nhận tin nhắn từ Module SIM gửi đến CHƯƠNG Đo nhiệt độ độ ẩm qua SMS TÌM HIỂU LINH KIỆN ĐỒ ÁN Trang 7/26 1.4 Vi điều khiển PIC16F877A 1.1.1 Giới thiệu chung PIC tên vi điều khiển hãng General Instrument đặt tên cho vi điều khiển họ Vi điều khiển PIC16F877A thuộc họ 16F8XXX với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh thực thi với chu kỳ xung clock Tốc độ hoạt động tối đa cho phép 20MHz với chu kỳ lệnh 200ns Bộ nhớ chương trình 8Kx14 bit, nhớ liệu 368x8 byte RAM nhớ liệu EEPROM với dung lượng 256x8 byte Số port I/0 với 33 pin I/0 Hình 2-3 PIC16F877A[3] 1.1.2 Đặc điểm PIC16F877A 1.1.1.1 Các đặc tính ngoại vi PIC Gồm có khối chức sau: + Timer0: Bộ đếm bit với chia tần số bit + Timer1: Bộ đếm 16 bit với chia tần số, thực chức đếm dựa vào xung clock ngoại vi vi điều khiển hoạt động chế độ sleep Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 8/26 + Timer2: Bộ đếm bit với chia tần số, postcaler + Hai Capture/ so sánh/ điều chế độ rộng xung + Các chuẩn giao tiếp khác + Cồng giao tiếp song song với chân điều khiển bên - 1.1.1.2 Các đặc tính analog kênh chuyển đổi ADC 10bit - Hai so sánh 1.1.1.3 Các đặc tính khác Bên cạnh đó, PIC 16F877A có vài đặc tính khác vi điều khiển như: + Bộ nhớ flash với khả ghi/ xóa 100.000 lần + Bộ nhớ EEPROM với khả ghi/ xóa 1.000.000 lần, lưu trữ 40 năm + Khả tự nạp chương trình với điều khiển phần mềm + Nạp chương trình mạch điện + Chế độ sleep tiết kiệm lượng, chức bảo mật chương trình + Hoạt động với nhiều dạng Oscillator khác 1.1.3 Sơ đồ chân PIC 16F877A Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 9/26 Hình 2-4 Sơ đồ chân PIC16F877A[3] Cổng xuất/ nhập phương tiện mà vi điều khiển dùng để tương tác với giới bên Sự tương tác đa dạng, thơng qua đó, chức vi điều khiển thể cách rõ ràng PIC 16F877A có cổng xuất/ nhập PORTA, PORTB, PORTC, PORTD, PORTE 1.1.1.4 PORTA Port A bao gồm chân từ RA0-RA5 Đây chân chiều điều khiển ghi TRISA PORTA ngõ ADC, so sánh, ngõ vào analog, ngõ vào xung clock timer0 Hình 2-5 Bảng chức PortA[3] 1.1.1.5 PORTB Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 10/26 PORTB gồm chân từ RB0-RB7, giá trị ghi TRISB quy định PORTB Hình 2-6 Bảng chức PortB[3] 1.1.1.6 PORTC PORTC gồm chân từ RC0-RC7,các giá trị ghi TRISC quy định PORTC, chân PORTC đa hợp với chức ngoại vi Hình 2-7 Bảng chức PortC[3] 1.5 LCD 16x2 Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 15/26 1.7 Module SIM 800A 1.1.9 Giới thiệu chung Module SIM 800A module wireless Nó làm việc với mạng wireless GSM., việc gửi nhận liệu thơng qua sóng, module SIM 800A giống điện thoại di động GSM, tức yêu cầu thẻ sim với mạng wireless để hoạt động Module SIM 800A module thay cho Module SIM900A đảm bảo đầy đủ thiết kế cần thiết module sim như: Mạch chuyển mức tín hiệu logic sử dụng Mosfet, IC giao tiếp RS232 MAX232, mạch nguồn xung dòng cao,khe sim chuẩn, led báo hiệu, angten GSM Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 16/26 Hình 2-11 Module SIM 800A[4] 1.1.10 Thông số kỹ thuật - Nguồn cấp đầu vào 5-18VDC - Mức tín hiệu giao tiếp TTL RS232 - Tích hợp chuyển mức tín hiệu TTL Mosfet tốc độ cao - Sử dụng khe micro SIM hỗ trợ SIM card 1.8v;3v -Băng tần: GSM 850Mhz.SIM800A tự động tìm kiếm băng tần 1.1.11 Khảo sát sơ đồ chân Module SIM SIM 800A Hình 2-12 Sơ đồ chân SIM800A[4] Thứ tự chân: Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 17/26 - Chân 1: Chân ON/OFF ta cần kích xung có mức tích cực dương vào khoảng 1s, lúc đèn status sáng, sau chớp nháy với tần suất nhanh báo hiệu SIM800 khởi động tìm mạng Sau 10s sau Led Status nhấp nháy chậm báo hiệu SIM800 hoạt động bình thường - Chân : Request to send - Chân : đầu dùng để báo mạng kết nối hệ thống - Chân : Clear to send - Chân : đầu vào pin dự phòng cho module - Chân : Data carrier detection - Chân : Chân vào chuyển đổi tín hiệu tương tự sang số - Chân : Ring chân loa báo hiệu có gọi đến - Chân 9, 11 : chân loa nghe thoại - Chân 13,15 : chân MIC - Chân 10 : chân đầu cuối liệu - Chân 12 : chân truyền liệu - Chân 14 : chân nhận liệu - Chân 16 : chân RESET SIM900 - Chân 17,19 : chân nguồn cấp cho sim hoạt động - Chân 18,20 : chân mass 1.1.12 Khảo sát tập lệnh AT Command Các lệnh AT hướng dẫn sử dụng để điều khiển modem AT cách viết gọn chữ Attention Mỗi dòng lệnh bắt đầu với “AT” hay “at” Đó lý lệnh modem gọi lệnh AT Nhiều lệnh sử dụng để điều khiển modem quay số sử dụng dây mối (wired dial-up modems), chẳng hạn ATD (Dial), ATA (Answer), ATH (Hool control) ATO (return to online data state), hỗ trợ modem GSM/GPRS điện thoại di động Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 18/26 Bên cạnh lệnh AT thông dụng này, modem GSM/GPRS điện thoại di động hỗ trợ lệnh AT đặc biệt cơng nghệ GSM Nó bao gồm lệnh liên quan tới SMS AT+ CMGS (gửi tin nhắn SMS), AT+CMSS (gửi tin nhắn SMS từ vùng lưu trữ), AT+CMGL (chuỗi liệt kê tin nhắn SMS) AT+CMGR (đọc tin nhắn SMS) Ngoài ra,các modem GSM hỗ trợ lệnh AT mở rộng Những lệnh AT mở rộng định nghĩa chuẩn GSM Với lệnh AT mở rộng làm số thứ sau: - Đọc, viết, xóa tin nhắn - Gửi tin nhắn SMS - Kiểm tra chiều dài tín hiệu - Đọc, viết tìm kiếm mục danh bạ 1.8 Giao thức USART 1.1.13 Định nghĩa USART( Universal Synchronous & Asynchronous Receiver Transmitter) nghĩa truyền nhận nối tiếp đồng không đồng Khái niệm USART( hay UART nói đến truyền nhận không đồng bộ) thường để thiết bị phần cứng, chuẩn giao tiếp.USART hay UART cần kết hợp với thiết bị chuyển đổi điện áp để tạo chuẩn giao tiếp Chuẩn RS232 kết hợp chip UART chip chuyển đổi mức điện áp Tín hiệu từ chip UART thường theo mức TTL: Mức logic cao 5V, mức logic thấp 0V tín hiệu theo chuẩn RS232 thường 12V cho mức logic cao -12V cho mức logic thấp 1.1.14 Các thông số truyền nhận UART Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 19/26 Tốc độ Baud: Khoảng thời gian dành cho bit truyền Phải cài đặt tốc độ Baud giống hai đầu gửi nhận Khung truyền: Khung truyền quy đinh số bit lần truyền Start bit: Là bit truyền khung truyền báo hiệu thiết bị nhận có gói liệu truyền đến Đây bit bắt buộc phải có Data: Dữ liệu cần truyền Bit có trọng số nhỏ truyền trước bit có trọng số lớn Parity bit: Kiểm tra liệu truyền có không Stop bit: bit báo cho thiết bị biết bit gửi xong Thiết bị nhận tiến hành kiểm tra khung truyền nhằm đảm bảo tính đắn liệu Đây bit bắt buộc phải có 1.1.15 Q trình truyền liệu UART Để bắt đầu cho việc truyền liệu UART, start bit gửi đi, sau bit liệu kết thúc Stop bit Khi trạng thái chờ, mức điện mức cao Khi bắt đầu truyền liệu, Start bit chuyển từ mức xuống mức để thơng báo cho nhận q trình truyền tín hiệu chuẩn bị diễn Sau Start bit bit liệu D0-D7 truyền đi, Bit parity truyền sau để nhận kiểm tra tính đắn liệu truyền Sau cùng, Stop bit truyền để báo cho thiết bị nhận biết bit gửi xong Thiết bị nhận kiểm tra khung truyền nhằm đảm bảo tính đắn liệu Hình 2-13 Q trình truyền liệu UART[4] Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 20/26 CHƯƠNG THIẾT KẾ VÀ THI CÔNG MẠCH 1.9 Sơ đồ nguyên lý Hình 3-14 Sơ đồ nguyên lý 1.10 Sơ đồ layout Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 21/26 Hình 3-15 Sơ đồ layout 1.11 Mạch hoàn thiện Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 22/26 Hình 3-16 Mạch in PCB Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 23/26 Hình 3-17 Mạch hàn linh kiện hoàn chỉnh Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 24/26 CHƯƠNG KẾT LUẬN 1.12 Ưu điểm Hiển thị nhiệt độ, độ ẩm gửi cảnh báo qua SMS có tầm quan trọng đặc biệt nhiều ngành công nghiệp ứng dụng Việc gửi giá trị nhiệt độ, độ ẩm qua SMS dùng cảm biến DHT11 có ưu điểm đơn giản, dễ thiết kế, chế tạo đưa vào sử dụng thực tế Ưu điểm gửi SMS so với phương thức truyền khác việc phổ biến sóng điện thoại nước ta nên gửi tín hiệu tốc độ cao, khoảng cách lớn giá thành rẻ giúp người dùng dù xa biết giá trị nhiệt độ, độ ẩm mơi trường nơi đặt cảm biến từ có điều chỉnh phù hợp, kịp thời cho phù hợp với mục đích sản xuất từ góp phần nâng cao suất, chất lượng sản phẩm đồng thời hạn chế rủi ro không mong muốn 1.13 Nhược điểm Ngoài ưu điểm trên, nhược điểm việc hiển thị nhiệt độ, độ ẩm dùng cảm biến DHT11 gửi cành báo qua SMS tồn nhiều nhược điểm Cảm biến DHT11 cho kết có sai số cao, độ bền thấp nên hạn chế cơng việc đòi hỏi tính xác cao đặt ngồi nơi có thời tiết khắc nghiệt Ngoài ra, việc dùng vi điều khiển PIC16F877A khiến tốc độ xử lý mạch khơng cao, khó phát triển lên ứng dụng phức tạp 1.14 Hướng phát triển đề tài Từ đề tài cảnh báo nhiệt độ, độ ẩm qua SMS ta phát triển ứng dụng điều khiển hệ thống điều khiển tưới tự động, hệ thống kiểm soát nhiệt độ, độ ẩm nhà kho, giàn phơi đồ thông minh dựa vào nhiệt độ, độ ẩm môi trường gửi giá trị người dùng để điều chỉnh giá trị cho phù hợp TÀI LIỆU THAM KHẢO Tiếng Việt Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 25/26 [1] http://www.hocavr.com/ [2] http://www.academia.edu/ [3] http://thuvien.utehy.edu.vn/ [4] http://fet.iuh.edu.vn/ Tiếng Anh [5] Nigel Gardner(2002), PIC micro MCU : An introduction to programming the Microchip PIC in CCS C PHỤ LỤC Code đồ án: #include Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 26/26 #device *=8 adc=10 #fuses nowdt,hs,noput,noprotect,nodebug,nobrownout,nolvp, nocpd,nowrt #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=PORT1) #define LCD_RS_PIN #define LCD_RW_PIN PIN_D1 PIN_D2 #define LCD_ENABLE_PIN PIN_D3 #define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5 #define LCD_DATA6 PIN_D6 #define LCD_DATA7 PIN_D7 #include #define dht pin_b0 void khoitao_sim(){ delay_ms(4000); // cho sim900a duoc khoi dong xong printf("AT"); putc(13); delay_ms(1000); // gui lenh AT printf("AT+CMGF=1"); putc(13); delay_ms(1000); // cau hinh tin nham printf("AT+CMGS=\"+841666520574\"");putc(13); delay_ms(1000); } void dht_read(unsigned int8 &temp, unsigned int8 &humid) { unsigned int8 buff[5]; unsigned int8 n, tmp, t; Đo nhiệt độ độ ẩm qua SMS ĐỒ ÁN Trang 27/26 output_low(dht); delay_ms(20); output_float(dht); set_timer0(0); while(input(dht)) {t=get_timer0();if(t>100) break;}//wait 80us set_timer0(0); while(!input(dht)){t=get_timer0();if(t>100) break;}//wait 80us set_timer0(0); while(input(dht)) {t=get_timer0();if(t>100) break;} for(n=0;n100) break;}//start, 50us set_timer0(0); while(input(dht)) {t=get_timer0();if(t>100) break;} tmp=get_timer0(); if(tmp>5 && tmp20 && tmp