1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ĐIỀU KHIỂN GIÀN PHƠI đồ THEO THỜI TIẾT DÙNG PIC (có code và layout)

28 698 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 716,93 KB

Nội dung

ĐIỀU KHIỂN GIÀN PHƠI đồ THEO THỜI TIẾT DÙNG PIC (có code và layout) ĐIỀU KHIỂN GIÀN PHƠI đồ THEO THỜI TIẾT DÙNG PIC (có code và layout) ĐIỀU KHIỂN GIÀN PHƠI đồ THEO THỜI TIẾT DÙNG PIC (có code và layout) ĐIỀU KHIỂN GIÀN PHƠI đồ THEO THỜI TIẾT DÙNG PIC (có code và layout) ĐIỀU KHIỂN GIÀN PHƠI đồ THEO THỜI TIẾT DÙNG PIC (có code và layout)

ĐỒ ÁN ĐIỀU KHIỂN GIÀN PHƠI ĐỒ THEO THỜI TIẾT DÙNG PIC MỤC LỤC DANH MỤC HÌNH ẢNH Hình 3-1: Sơ đồ khối Hình 3-2: Sơ đồ chân PIC18F4550 .5 Hình 3-3: Sơ đồ chân Esp8266 Hình 3-4: Sơ đồ chân LCD 16x2 Hình 3-4: Servo Hình 4-1: Sơ đồ giải thuật Hình 4-2: Sơ đồ nguyên lý 10 Hình 4-3: Mạch in .11 DANH MỤC CÁC TỪ VIẾT TẮT UDP User Datagram Protocol TCP Transmission Control Protocol LCD Liquid crystal display Wifi Wireless Fidelity ĐỒ ÁN Trang 5/24 CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu Điện tử trở thành ngành khoa học đa nhiệm vụ Điện tử đáp ứng nhu cầu thiết yếu người sống ngày Xuất phát từ nhu cầu người, em nghiêng cứu mạch ứng dụng nhỏ :“Điều khiển giàn phơi đồ theo thời tiết” Đề tài giúp em hiểu rõ ứng dụng nguyên lý, lý thuyết học vào thực tế Đồng thời hiểu thêm điều chưa học nâng cao kỹ thực hành để áo dụng thực tế 1.2 Yêu cầu đề tài Đầu tiên mạch tự động cấu hình kết nối wifi, sau truy cập website thời tiết nơi cần thiết để lấy liệu thời tiết, nhiệt độ , độ ẩm, ấp suất…để điều khiển giàn phơi đồ, dùng động servo Hiển thị lên LCD thơng tin thời tiết Ta ứng dụng vào giàn phơi đồ thủ công , thời tiết mưa hay nắng tự động điều khiển động mô cho giàn phơi đồ quay hay vào 1.3 Hướng thực - Thiết lập cho hệ thống sơ đồ khối - Nguyên lý truyền nhận liệu qua wifi - Hiển thị thông tin thời tiết lên LCD - Tìm hiểu linh kiện - Hồn thành lập trình thi cơng phần cứng CHƯƠNG • TÌM HIỂU LÝ THUYẾT VỀ TRUYỀN NHẬN DỮ LIỆU QUA WIFI Wifi mạng kết nối Internet không dây, sử dụng sóng vơ tuyến để truyền tín hiệu Loại sóng vơ tuyến tương tự sóng điện thoại, truyền hình Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 6/24 radio Và hầu hết thiết bị điện tử ngày máy tính, laptop, điện thoại, máy tính bảng kết nối Wifi • Wifi dùng sóng radio (sóng vơ tuyến) để truyền nhận liệu qua hệ thống mạng Máy tính gồm card mạng khơng dây truyền liệu gửi vào tín hiệu radio • Tín hiệu truyền thông qua an-ten, router gọi giải mã Dữ liệu gửi đến Internet thơng qua kết nối Ethernet • Mạng khơng dây hoạt động đường chiều, liệu nhận từ internet qua router mã hố thành tín hiệu radio để thiết bị nhận • Một số chuẩn Wifi phổ biến [1]: Tín hiệu Wifi hoạt động gửi nhận liệu tần số 2.5GHz đến 5GHz, cao nhiều so với tần số điện thoại di động, radio tín hiệu Wifi chứa nhiều liệu lại bị hạn chế khoảng cách truyền Sóng Wifi dùng chuẩn kết nối 802.11 , gồm chuẩn nhỏ 802.11/a/b/g/n • Truyền liệu: Đặc điểm giao thức TCP [2]: • Có chế sửa lỗi/truyền lại nên truyền liệu không lỗi • Các gói liệu truyền theo thứ tự • Truyền lại gói liệu • Loại bỏ nhữn gói liệu trùng lặp • Hạn chế tắc nghẽn đường truyền Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 7/24 Đặc điểm giao thức UDP [3]: TCP cung cấp thứ tự truyền nhận tin cậy UDP khơng, gói liệu truyền đến khơng thứ tự bị mà khơng có phản hồi UDP nhanh hiệu với liệu kích thước nhỏ yêu cầu khắt khe thời gian Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 8/24 CHƯƠNG 1.4 Sơ đồ khối THIẾT KẾ HỆ THỐNG PIC VI ĐIỀU KHIỂN ESP8266 MODULE WIFI NGUỒN SERVO ĐỘNG CƠ LCD 16x2 HIỂN THỊ Hình 3-1: Sơ đồ khối Giải thích sơ đồ: Cấp nguồn cho khối xung quanh ,module wifi esp8266 truy cập vào trang web thời tiết để lấy liệu, khối hiển thị, vi điều khiển khối động servo Khối module wifi thiết lập kết nối wifi sau tương tác với khối điều khiển giao tiếp UART, nhận liệu bắt đầu xử lý liệu cần thiết, sau vi điều khiển tương tác với khối servo khối hiển thị 1.5 Tìm hiểu linh kiện 1.1.1 PIC18F4550 Điều khiển giàn phơi đồ theo thời tiết ĐỜ ÁN Trang 9/24 Hình 3-2: Sơ đồ chân PIC18F4550 Thông số PIC18F4550 Kiến trúc : 8-Bit Tốc độ: 48MHz Chuẩn kết nối: I²C, SPI, UART / USB, USB Cổng I / O : 35 Bộ nhớ chương trình: 32KB (16K x 16) Loại nhớ: FLASH EEPROM : 256 x RAM : 2K x Điện áp hoạt động: 4.2 V ~ 5.5 V 1.1.2 Esp8266 Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 10/24 Hình 3-3: Sơ đồ chân Esp8266 Thơng số chân: • VCC: 3.3V dòng điện tiêu thụ đến 300mA • GND: nối với0V • Tx: nối đến chân Rx vi điều khiển • Rx: nối đến chân Tx vi điều khiển • RST: nối với mức thấp để reset • CH_PD: nối lên mức cao module bắt đầu thu phát wifi, mức thấp module dừng phát wifi • GPIO0: mức thấp (GND) để upgrade firmware • GPIO2: khơng dùng Thơng số kỹ thuật: • Hỗ trợ chuẩn 802.11 b/g/n Wi-Fi 2.4 GHz • Điện áp hoạt động: 3.3V • Giao tiếp nối tiếp UART với tốc độ Baud đến 115200 • Có chế độ: Client, Access Point, Both Client and Access Point • Chuẩn bảo mật: OPEN, WEP, WPA_PSK, WPA2_PSK, WPA_WPA2_PSK • Hỗ trợ giao tiếp TCP UDP • Có thể kết nối với Device, làm việc Access Point 1.1.3 LCD 16x2 Điều khiển giàn phơi đồ theo thời tiết ĐỜ ÁN Trang 14/24 Hình 4-2: Sơ đồ nguyên lý Điều khiển giàn phơi đồ theo thời tiết ĐỜ ÁN Trang 15/24 Hình 4-3: Mạch in Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 16/24 CHƯƠNG • • • • KẾT LUẬN 1.9 Kết luận Hoàn thành yêu cầu đề tài Ứng dụng vào giàn phơi đồ thủ công tay Hệ thống ứng dụng tự động để hổ trợ người tự động cần thiết Nhược điểm: Dữ liệu thời tiết khơng xác dẫn đến điều khiển sai 1.10 Hướng phát triển Đề tài dừng lai mức mơ hình thời gian hạn chế,sản phẩm sơ sài, có thời gian nhiều em ứng dụng vào thực tế nghiên cứu thêm chuyên sâu hơn, có thời gian điều kiện em hi vọng đề tài mở rộng thêm chức giao tiếp với smartphone điều khiển trực tiếp qua internet, cảnh báo qua tin nhắn … Với nghiên cứu hướng phát triển đề tài ,cùng với góp ý q thầy em hi vọng hệ thống phát triển tốt hơn, ứng dụng vào thực tế đóng góp vào xã hội phục vụ nhu cầu người Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 17/24 TÀI LIỆU THAM KHẢO Website: [1] https://vi.wikipedia.org/wiki/Wi-Fi [2] https://vi.wikipedia.org/wiki/TCP [3] https://vi.wikipedia.org/wiki/UDP Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 18/24 PHỤ LỤC A #include #device ADC=16 #FUSES NOWDT //No Watch Dog Timer #FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale #FUSES NOBROWNOUT #FUSES NOLVP //No brownout reset //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode) #use delay(clock=12000000,crystal=12000000) #use rs232(UART1,baud=115200,parity=N,bits=8,stream=WIFI_ESP,errors)//Khai bao su dung uart cung #define ledv PIN_C2 #define ledr PIN_C1 #define ledon output_low #define ledoff output_high Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 19/24 #define led_on output_low #define led_off output_high #define LCD_ENABLE_PIN PIN_B3 #define LCD_RS_PIN PIN_B1 #define LCD_RW_PIN PIN_B2 #define LCD_DATA4 PIN_B4 #define LCD_DATA5 PIN_B5 #define LCD_DATA6 PIN_B6 #define LCD_DATA7 PIN_B7 #include const int8 NEW_VERSION=1; const int8 OLD_VERSION=2; int8 VERSION_CODE=NEW_VERSION; #include"esp/wifi.c" #include"sonbui/mystr.c" char *SSID_JOIN="Da Thi";//"SonBui-AP"; char *PASS_JOIN="11111111";//"a12344321"; Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 20/24 char *DATA_SEND="GET id=1566083&APPID=e18ed508495f62a6bebbe38820666815 api.openweathermap.org\r\n\r\n" ; /data/2.5/weather? HTTP/1.0\r\nHost: //1581130: Hanoi-Viet nam char *WEATHER_IP= "api.openweathermap.org"; //api.openweathermap.org void get_internet() { char *write = ">"; int1 OK = False; printf(LCD_PUTC, "\fGData HCM,VN\nopenweathermap.org"); delay_ms(1000); if( client_Start(0,TYPE_TCP,WEATHER_IP,80)) //kET NOI TOI SERVER DE LAY DU LIEU { printf(LCD_PUTC, "\fGet data"); int16 length=strlen(DATA_SEND); DO { clear_mem(); fprintf(WIFI_ESP, AT_SEND); fprintf(WIFI_ESP, "=%u", 0); fprintf(WIFI_ESP, ",%lu",length); Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 21/24 fprintf(WIFI_ESP, CRLF); for (int mem_loop = 0; mem_loop < 150; mem_loop++) { wifi_buff[n] = timed_getc(); n++; if (n > 150) n = 0; if (timeout_error) break; } char *pch = strstr(wifi_buff, write); IF(pch) { OK = TRUE; break; } delay_ms(100); } WHILE(!OK); //Send http get clear_mem(); printf(LCD_PUTC, "\fSend Get"); fprintf(WIFI_ESP, "%s",DATA_SEND); Long LONG timeout; Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 22/24 timeout = 0; WHILE(!kbhit(WIFI_ESP) && (++timeout < 2000000)) //20 second { delay_us(10); } WHILE(!(fgetc(WIFI_ESP)=='{')) ; printf(LCD_PUTC, "\f{"); wifi_buff[0]='{';n=1; { wifi_buff[n] = timed_getc(); n++; if (n > 512) n = 0; }while(!timeout_error) ; printf(LCD_PUTC, "\fPrint Data"); //printf(usb_cdc_putc, "\r\nWF:%s"wifi_buff); char *jstart="\"main\":{"; char *jstop=",\"visibility\""; char *p1 = strstr(wifi_buff,jstart); if(p1) { Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 23/24 // printf(usb_cdc_putc, "\r\n\fp1:%s"p1); char *p2 = strstr(p1,jstop); if(p2) { // printf(usb_cdc_putc, "\r\n\fp2:%s"p2); size_t len = p2-p1; char *jmain = (char*)malloc(sizeof(char)*(len+1)); strncpy(jmain, p1, len); jmain[len] = '\0'; // printf(usb_cdc_putc, "\r\nRes:%s"jmain); char *temp="\"temp\":"; char *temp_min=",\"temp_min\":"; char *ap_suat=",\"pressure\":"; //char *ap_suat_end=",\"sea_level"; char *do_am=",\"humidity\":"; char *do_am_end="}"; double d_nhiet_do; free(res) ; char *nhiet_do=extract_string(temp,ap_suat,jmain); if(nhiet_do) Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 24/24 { // printf(usb_cdc_putc, "\r\nNhiet do:%s"nhiet_do); d_nhiet_do = atof (nhiet_do);//treo neu gia tri nhiet sai dinh dang d_nhiet_do -= 273.15; //kelvin-celsius printf (LCD_PUTC, "\fT=%f",d_nhiet_do); } free(res) ; char *ap_suat_khi=extract_string(ap_suat,do_am,jmain); if(ap_suat) { // printf(usb_cdc_putc, "\r\nAp suat:%s"ap_suat_khi); printf (LCD_PUTC, "\nP=%s hp",ap_suat_khi); } free(res) ; char *do_am_khi=extract_string(do_am,temp_min,jmain); if(do_am_khi) { // printf(usb_cdc_putc, "\r\nDo am khi:%s"do_am_khi); lcd_gotoxy(10,1) ; Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 25/24 printf (LCD_PUTC, "H=%s %%",do_am_khi); } free(jmain) ; } } } else { printf (LCD_PUTC, "\f Can't connect to\nopenweathermap.org"); delay_ms(1000); } } void detech_version() {//Autoselect baude and cmd int1 OK = False; char *oks = "OK"; unsigned int8 try_get=1; printf(LCD_PUTC, "\fChange baude\n115200"); delay_ms(1000); { //ATE0 try_get++; Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 26/24 if(try_get>=10) { setup_uart(9600, WIFI_ESP);//change baude VERSION_CODE=OLD_VERSION; printf(LCD_PUTC, "\fChange baude\n9600"); delay_ms(1000); break; } clear_mem(); fprintf(WIFI_ESP, AT_RESET); fprintf(WIFI_ESP, CRLF); delay_ms(2000); fprintf(WIFI_ESP, AT_ECHO_OFF); fprintf(WIFI_ESP, CRLF); for (int mem_loop = 0; mem_loop < 150; mem_loop++) { wifi_buff[n] = timed_getc(); n++; if (n > 150) n = 0; if (timeout_error) break; } char *pch = strstr(wifi_buff, oks); Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 27/24 IF(pch) { OK = TRUE; printf(LCD_PUTC, "\fATE0"); } delay_ms(100); } WHILE(!OK); } void main() { lcd_init (); printf (LCD_PUTC, "\f Huynh Van Tien\n41302397"); delay_ms(1000); //printf (LCD_PUTC, "\fESP8266 Test\nmualinhkien.vn"); detech_version(); esp_init(); setup_AP(SSID_SET,PASS_SET,5,ECN_WAP2_PSK); delay_ms(1000); join_AP(SSID_JOIN,PASS_JOIN); delay_ms(1000); Điều khiển giàn phơi đồ theo thời tiết ĐỒ ÁN Trang 28/24 client_Start(0,TYPE_TCP,WEATHER_IP,80); LAY DU LIEU delay_ms(1000); get_ip(); clear_mem(); while (TRUE) { get_internet(); for(int16 loop=0;loop

Ngày đăng: 04/05/2018, 17:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w