Đ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)
Trang 1THỜI TIẾT DÙNG PIC
Trang 3Hình 3-4: Sơ đồ chân LCD 16x2 7
Hình 3-4: Servo 8
Hình 4-1: Sơ đồ giải thuật 9
Hình 4-2: Sơ đồ nguyên lý 10
Hình 4-3: Mạch in 11
Trang 4TCP Transmission Control Protocol
LCD Liquid crystal display
Wifi Wireless Fidelity
Trang 51.2 Yêu cầu về đề tài
Đầu tiên mạch sẽ tự động cấu hình kết nối wifi, sau đó truy cập website thời tiếttại nơi cần thiết để lấy dữ liệu thời tiết, nhiệt độ , độ ẩm, ấp suất…để điều khiểngiàn phơi đồ, ở đây dùng động cơ servo Hiển thị lên LCD thông tin thời tiết
Ta có thể ứng dụng vào các giàn phơi đồ thủ công , thời tiết mưa hay nắng sẽ tựđộng điều khiển động cơ mô phỏng cho giàn phơi đồ quay ra hay vào
1.3 Hướng thực hiện
- Thiết lập cho hệ thống sơ đồ khối
- Nguyên lý truyền nhận dữ liệu qua wifi
- Hiển thị thông tin thời tiết lên LCD
- Tìm hiểu linh kiện
- Hoàn thành lập trình và thi công phần cứng
CHƯƠNG 2 TÌM HIỂU LÝ THUYẾT VỀ TRUYỀN NHẬN DỮ LIỆU
QUA WIFI
Trang 6điện thoại, máy tính bảng đều có thể kết nối Wifi
• Wifi dùng sóng radio (sóng vô tuyến) để truyền nhận dữ liệu qua hệ thống mạng Máy tính gồm một card mạng không dây sẽ truyền dữ liệu gửi vào tín hiệu radio
• Tín hiệu này được truyền đi thông qua một an-ten, router được gọi là bộ giải
mã Dữ liệu được gửi đến Internet thông qua một kết nối Ethernet
• Mạng không dây hoạt động như đường 2 chiều, các dữ liệu nhận được từ internet cũng sẽ đi qua router và được mã hoá thành tín hiệu radio để thiết bị nhận được
• Một số chuẩn Wifi phổ biến [1]:
Tín hiệu Wifi hoạt động gửi và nhận dữ liệu ở tần số 2.5GHz đến 5GHz, cao hơn nhiều so với tần số của điện thoại di động, radio vì vậy tín hiệu Wifi chứa nhiều
dữ liệu hơn nhưng 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 , trong đó gồm 4 chuẩn nhỏ hơn là
802.11/a/b/g/n
• Truyền dữ liệu:
Đặc điểm cơ bản giao thức TCP [2]:
• Có cơ chế sửa lỗi/truyền lại nên truyền dữ liệu không lỗi
• Các gói dữ liệu được truyền theo đúng thứ tự
• Truyền lại các gói dữ liệu mất
• Loại bỏ nhữn gói dữ liệu trùng lặp
• Hạn chế tắc nghẽn đường truyền
Trang 7Đặc điểm cơ bản của giao thức UDP [3]:
TCP cung cấp thứ tự truyền nhận và sự tin cậy còn UDP thì không, các gói dữ liệu được truyền có thể đến nhưng không đúng thứ tự hoặc bị mất mà không có phản hồi UDP nhanh và hiệu quả hơn với các dữ liệu kích thước nhỏ và yêu cầu khắt khe
về thời gian
Trang 81.5 Tìm hiểu linh kiện
1.1.1 PIC18F4550
PIC
VI ĐIỀU KHIỂN
ESP8266MODULE WIFINGUỒN
SERVOĐỘNG CƠLCD 16x2
HIỂN THỊ
Trang 9Hình 3-2: Sơ đồ chân PIC18F4550 Thông số PIC18F4550
Trang 10Hình 3-3: Sơ đồ chân Esp8266
Thông số các 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 của vi điều khiển
• Rx: nối đến chân Tx của 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 sẽ 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ó 3 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ợ 2 giao tiếp TCP và UDP
• Có thể kết nối với 5 Device, làm việc như 1 Access Point
1.1.3 LCD 16x2
Trang 11Hình 3-4: Sơ đồ chân LCD 16x2
1 VSS: nối với GND
2 VDD: nối với VCC
3 Constrast Voltage (Vo): chỉnh độ sáng màn hình
4 Register Select (RS): địa chỉ nào được ghi dữ liệu
5 Read/Write (RW): đọc , ghi dữ liệu
6 Enable pin: Cho phép ghi dữ liệu vào LCD
7 D0 - D7: chân dữ liệu, nếu đang ở chế độ đọc mỗi chân sẽ có giá trị HIGHhoặc LOW , và nếu đang ở chế độ ghi nó sẽ nhận giá trị HIGH hoặc LOW
8 Backlight (Backlight Anode (+) và Backlight Cathode (-)): bật,tắt đèn nềnLCD
1.1.4 Động cơ servo
Trang 12Hình 3-4: Servo
1. Nối với GND
2. Nối VCC
3. Chân điều khiển bằng xung PPM
Thời gian xung PPM 1ms ở mức cao góc quay của servo là 0 độ, 1.5ms góc quay 90 độ và 2ms góc quay là 180 độ Các góc biến đổi từ 0-180 được xác định trong khoảng thời gian 1-2ms ở mức cao của xung
CHƯƠNG 4 THI CÔNG MẠCH
1.6 Sơ đồ giải thuật
Không thành côngKhởi động
Cài đặt cấu hình
Trang 13Thành công
Sau 10 giây Trời mưa
Hình 4-1: Sơ đồ giải thuật Giải thích sơ đồ :
Khi cấp nguồn hệ thống sẽ cấu hình cho hệ thống, khi kết nối tới wifi thànhcông , hệ thống sẽ tự động kết nối tới website thời tiết gởi một chuổi yêu cầu đểtruy xuất trả dữ liệu thời tiết về Sau đó hệ thống sẽ tiến hành xử lý các thông sốnhiệt độ, độ ẩm , áp suất, thời tiết hiển thị lên LCD, nếu trời mưa servo quay,sau 10 giây hệ thống sẽ lấy dữ liệu và xử lý lại một lần
1.7 Yêu cầu thi công
• Thực hiện test linh kiện
• Kết nối hoàn chỉnh với vi điều khiển
• Code , cấu hình cho hệ thống
• Thiết kế layout mạch
• Tiến hành chạy mạch xem đã đạt yêu cầu hay chưa
1.8 Kết quả thi công
Truy cập websiteTruy xuất dữ liệu
Xử lý dữ liệu
Servo quayHiển thị LCD
Trang 14Hình 4-2: Sơ đồ nguyên lý
Trang 15Hình 4-3: Mạch in
Trang 16CHƯƠNG 5 KẾT LUẬN
1.9 Kết luận
• Hoàn thành yêu cầu của đề tài
• Ứng dụng vào các giàn phơi đồ thủ công bằng tay
• Hệ thống được ứng dụng tự động để hổ trợ con người tự động khi cần thiết.Nhược điểm:
• Dữ liệu thời tiết không chính xác dẫn đến điều khiển sai
1.10 Hướng phát triển
Đề tài này dừng lai ở mức mô hình do thời gian hạn chế,sản phẩm còn rất sơsài, nếu có thời gian nhiều hơn em ứng dụng vào thực tế và nghiên cứu thêmchuyên sâu hơn, khi có thời gian và điều kiện em hi vọng đề tài này được mởrộng thêm các chức năng như giao tiếp với smartphone điều khiển trực tiếp quainternet, cảnh báo qua tin nhắn …
Với những nghiên cứu và hướng đi phát triển của đề tài này ,cùng với sự góp ýcủa quý thầy cô em hi vọng hệ thống này sẽ phát triển tốt hơn, ứng dụng vàothực tế đóng góp vào xã hội phục vụ nhu cầu con người
Trang 17[1] https://vi.wikipedia.org/wiki/Wi-Fi
[2] https://vi.wikipedia.org/wiki/TCP
[3] https://vi.wikipedia.org/wiki/UDP
Trang 18PHỤ LỤC A
#include <18F4550.h>
#device ADC=16
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18)used for I/O
#FUSES NOXINST //Extended set extension and Indexed Addressingmode disabled (Legacy mode)
#use delay(clock=12000000,crystal=12000000)
#use rs232(UART1,baud=115200,parity=N,bits=8,stream=WIFI_ESP,errors)//Khaibao su dung uart cung
#define ledv PIN_C2
#define ledr PIN_C1
#define ledon output_low
#define ledoff output_high
Trang 19#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 <lcd.c>
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";
Trang 20id=1566083&APPID=e18ed508495f62a6bebbe38820666815 HTTP/1.0\r\nHost:api.openweathermap.org\r\n\r\n" ; //1581130: Hanoi-Viet nam
char *WEATHER_IP= "api.openweathermap.org"; //api.openweathermap.org void get_internet()
Trang 21for (int mem_loop = 0; mem_loop < 150; mem_loop++) { wifi_buff[n] = timed_getc();
Trang 22WHILE(!kbhit(WIFI_ESP) && (++timeout < 2000000)) //20 second {
Trang 24// printf(usb_cdc_putc, "\r\nNhiet do:%s"nhiet_do);
d_nhiet_do = atof (nhiet_do);//treo neu gia tri nhiet do sai dinh dang d_nhiet_do -= 273.15; //kelvin-celsius
printf (LCD_PUTC, "\fT=%f",d_nhiet_do);
// printf(usb_cdc_putc, "\r\nAp suat:%s"ap_suat_khi);
printf (LCD_PUTC, "\nP=%s hp",ap_suat_khi);
Trang 25char *oks = "OK";
unsigned int8 try_get=1;
printf(LCD_PUTC, "\fChange baude\n115200");
delay_ms(1000);
do { //ATE0
Trang 26setup_uart(9600, WIFI_ESP);//change baude
Trang 27join_AP(SSID_JOIN,PASS_JOIN);