Đề tài “MẠCH ĐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG WIFI ESP8266” hướng tới mục tiêu xây dựng một mạch điều khiển cho phép người dùng có thể dễ dàng điều khiển thiết bị từ xa thông qua web server cũng như quan trắc các chỉ số như nhiệt độ, độ ẩm. Tiếp tục phát triển thêm nhiều tính năng giúp người dùng dễ dàng sử dụng, đơn giản hóa giao diện người dùng, tăng cường tính năng bảo mật cho web server, giảm tải điện năng tiêu thụ của mạch, thiết kế rút gọn nhỏ nhẹ, giảm chi phí làm mạch, tối ưu phần mềm,...
ĐỒ ÁN MÔN HỌC: HỆ THỐNG TRUYỀN THÔNG MẠCH ĐIỀU KHIỂN CÁC THIẾT BỊ TỪ XA BẰNG WIFI ESP8266 Ngành: Kỹ thuật Điện Tử - Viễn thông MỤC LỤC CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI Đặt vấn đề Mục tiêu đề tài Nội dung đề tài Phương pháp nghiên cứu 4.1 Các nguồn thông tin 4.2 Các phương pháp nghiên cứu, thu thập thông tin Các phần mềm, công cụ sử dụng 5.1.1 Proteus 5.1.2 Visual Studio Code (PlatformIO) 5.1.3 Ngrok CHƯƠNG : CƠ SỞ LÝ THUYẾT Giao thức 1.1 Tổng quan giao thức đề tài 1.2 Giao thức HTTP 1.3 Giao thức TCP 12 1.4 Internet Protocol 13 1.5 Websocket 14 Chuẩn Giao Tiếp 15 2.1 GPIO 15 2.2 OneWire 15 Giới thiệu chuẩn giao tiếp wifi 16 3.1 Khái niệm wifi 16 3.2 Các chuẩn wifi 16 CHƯƠNG 3: GIỚI THIỆU PHẦN CỨNG 18 DHT22 19 Thóa từ 20 Transitor c1815 20 Role 21 Octo pc817 23 CHƯƠNG 4: TÍNH TỐN VÀ THIẾT KẾ 25 Tổng quan đề tài 25 Phần cứng 25 2.1 Sơ đồ phần cứng 25 2.2 Sơ đồ khối phần cứng 27 Phần mềm 28 3.1 Mơ hình kết nối mạng hệ thống 28 3.2 ESP8266 Khởi tạo kết nối WI-FI 33 3.3 Sơ đồ ESP8266 Web server 34 CHƯƠNG 5: KẾT QUẢ ĐẠT ĐƯỢC 35 Vận hành website 35 Hình ảnh thực tế 38 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40 Kết luận 40 Hướng phát triển đề tài 40 TÀI LIỆU THAM KHẢO 41 DANH MỤC TỪ VIẾT TẮT HTTP: Hypertext Transfer Protocol PCB: printed circuit board TCP: Transmission Control Protocol IP: Internet Protocol URL: Uniform Resource Locator GPIO: General Purpose Input Output I2C: Inter – Integrated Circuit PC: Personal Computer WEB: World Wide Web DANH MỤC HÌNH ẢNH Hiǹ h Hình minh họa hệ thống viễn thông Hiǹ h Hình minh họa Proteus Hiǹ h Hình minh họa PlatformIO Hiǹ h 4:Sơ đồ tổng quát giao thức Hiǹ h 5:Mô hình Client – Server 10 Hiǹ h 6: Sơ đồ truyền giao thưc TCP 13 Hiǹ h 7: Sơ đồ chuyền tín hiệu IP 14 Hiǹ h 8: Sơ đồ chuyền tín hiệu Websocket 14 Hiǹ h 9:Sơ đồ truyền nhận liệu Master với nhiều Slave 16 Hiǹ h 10: Sơ đồ Pin ESP8266 18 Hiǹ h 11: Sơ đồ chân kích thước DHT22 19 Hiǹ h 12:Khóa từ 20 Hiǹ h 13: Sơ đồ pin C1815 21 Hiǹ h 14:Module Relay 22 Hiǹ h 15: Sơ đồ nguyên lí mạch roley 23 Hiǹ h 16: Sơ đồ pin PC817 24 Hình 17: Sơ đồ mạch di dây PC 25 Hiǹ h 18: Mô ảnh 3D mạch 26 Hiǹ h 19: Sơ đồ khối linh kiện mạch 26 Hiǹ h 20: Sơ đồ khối 27 Hiǹ h 21: Sơ đồ giải thích mơ hình mạng hệ thống 28 Hiǹ h 22:Web server chạy Terminal 29 Hiǹ h 23:Thiết lặp đường dẫn tới page cho website 30 Hiǹ h 24: Sơ đồ giao thức chuyền hệ thống 31 Hiǹ h 25: Code cập nhập thay đổi giá trị cho DHT22 32 Hiǹ h 26: Sơ đồ cách ESP cập nhập liệu cho client thông qua websocket 32 Hiǹ h 27: Giao diện thiết lập wifi 35 Hiǹ h 28:Giao diện login Web Server 37 Hiǹ h 29:Giao diện sau đăng nhập 37 Hiǹ h 30:Giao diện cài đặt 38 CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI Đặt vấn đề Từ xưa đến nay, người ln tìm cách tốt để giao tiếp với từ khoảng cách xa xôi, từ thời cổ đại xa xưa, tổ tiên biết sử dụng vật dụng tù đám khói để giao tiếp báo hiệu nguy hiểm từ xa, xi dịng thời gian phát triển nhân loại, ta có hình thức giao tiếp sử dụng bồ câu đưa thư, hệ thống bưu tín, tiếp tục đến thời kì cận đại cơng nghiệp hóa, ta có điện thoại đầu tiên, cơng nghệ sóng radio, tảng cho viễn cảnh nơi khoảng cách vật lý khơng cịn rào cản khơng cịn xa Và cuối cùng, ta đến với thời đại, với bùng nổ công nghệ bán dẫn, hệ thống viễn thông đại đời Internet, sống xã hội kết nối nơi mà khoảng cách vật lý khơng cịn vấn đề Hình Hình minh họa hệ thống viễn thơng Có thể thấy, song song với phát triển loài người, việc giao tiếp, truyền thơng đóng vai trị quan trọng chối cãi Các công nghệ truyền thơng mà từ phát triển theo từ hiệu kém, độ trễ cao đến hiệu cao, độ trễ gần không Nhưng ngày nay, việc giao tiếp người với người trở nên dễ dàng, người ta lại nghĩ đến viễn cảnh nơi người đồ vật hay thiết bị tương tác với bất chấp khoảng cách, tương tự người với người Ví dụ hệ thống smart home, smart garden, smart factory, kết nối với thông qua mạng lưới chặt chẽ không người với thiết bị mà thiết bị với nhau, góp phần nâng cao suất cơng việc chất lượng sống nhiều Vậy để thực viễn cảnh tốn ta cần phải giải là: “Làm để điều khiển, giám sát thiết bị khơng có mặt ??” Với phát triển ngành Điện tử - Viễn thơng, viễn cảnh nói thật thực dựa cơng nghệ có dựa ý tưởng đó, chúng em xin phép thực đề tài “MẠCH ĐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG WIFI ESP8266” để giải toán nêu trên, chắn đề tài khơng hồn hảo viễn cảnh chúng em cố gắng để hồn thiện cách tốt Mục tiêu đề tài Đề tài “MẠCH ĐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG WIFI ESP8266” chúng em hướng tới mục tiêu xây dựng mạch điều khiển cho phép người dùng dễ dàng điều khiển thiết bị từ xa thông qua web server quan trắc số nhiệt độ, độ ẩm Tiếp tục phát triển thêm nhiều tính giúp người dùng dễ dàng sử dụng, đơn giản hóa giao diện người dùng, tăng cường tính bảo mật cho web server, giảm tải điện tiêu thụ mạch, thiết kế rút gọn nhỏ nhẹ, giảm chi phí làm mạch, tối ưu phần mềm, Mục đích kết cuối chúng em hướng tới đồ án nghiên cứu, hiểu sâu giao thức truyền thông thông dụng, hiểu cách thức hoạt động, cốt lõi giao thức nâng cao tay nghề làm mạch in PCB, tư lập trình, làm việc nhóm, Nội dung đề tài - Nghiên cứu công nghệ, giao thức HTTP, Websocket, Hosting,Wifi, - Tính tốn giá trị linh kiện - Thực thiết kế, vẽ sơ đồ nguyên lý, mạch in PCB phần mềm Proteus - Thực mô sơ đồ nguyên lý phần mềm Proteus - Mua linh kiện cần thiết, test linh kiện breadboard - Thực làm mạch in, lắp linh kiện, hàn mạch - Lập trình cho vi điều khiển ESP8266 thơng qua môi trường PlatformIO - Thực host server thông qua cơng cụ Ngrok - Chạy thử mạch, tìm lỗi sửa lỗi - Thực viết báo cáo, hoàn thành đồ án Phương pháp nghiên cứu 4.1 Các nguồn thông tin - Sách, tài liệu - Tài liệu online - Nguồn thông tin chọn lọc Internet, - Những người trước có kinh nghiệm 4.2 Các phương pháp nghiên cứu, thu thập thông tin - Tìm kiếm thơng tin liên quan thơng qua nguồn nêu - Phân tích tổng hợp thơng tin có để chọn lọc thơng tin quan trọng xác - Tìm kiếm thành tựu lý thuyết đạt có liên quan đến chủ đề nghiên cứu - Theo dõi, lắng nghe cá nhân, tổ chức có làm việc lĩnh vực nghiên cứu - Sử dụng phương pháp Sandbox để tự tìm giải pháp hợp lý để giải vấn đề theo cách riêng Các phần mềm, công cụ sử dụng 5.1.1 Proteus Proteus phần mềm nhóm chúng em sử dụng để vẽ sơ đồ nguyên lý, vẽ mạch in mô Đây phần mềm thường sử dụng vào việc thiết kế mạch điện tử, vẽ sơ đồ nguyên lý thiết kế mạch in, với ưu dễ dàng sử dụng, thích hợp cho sinh viên sử dụng đồ án Ngồi Proteus cịn có số tính mơ vi điều khiển, Hình Hình minh họa Proteus 5.1.2 Visual Studio Code (PlatformIO) Visual Studio Code (VSC) trình soạn thảo code vô thông dụng sử dụng rộng rãi nhờ tính tiện dụng giao diện thân thiện, ngồi VSC cịn hỗ trợ cửa hàng extension vơ lớn với nhiều addon hữu ích q trình phát triển phần mềm có extension tên PlatformIO với chức tương tự Arduino IDE cho phép người dùng biên dịch code, upload Hình Hình minh họa PlatformIO binary lên VĐK, debugger auto complete (thứ mà Arduino IDE khơng có) số tính khác Cho nên nhóm em sử dụng PlatformIO cho việc phát triển phần mềm đồ án lần 5.1.3 Ngrok Ngrok công cụ tạo đường hầm (tunnel) localhost bạn internet Giúp người khác mạng truy cập localhost bạn thơng qua custom domain ngrok ví dụ: mydomain.ngrok.io => localhost:80 Ưu điểm: Dễ sử dụng với giá thành miễn phí, phù hợp để test dự án nhỏ Nhược điểm: Hỗ trợ giao thức, giới hạn 40 yêu cầu/phút CHƯƠNG : CƠ SỞ LÝ THUYẾT Giao thức 1.1 Tổng quan giao thức đề tài Để hình thành nên hệ thống điều khiển đọc liệu thiết bị từ xa nhóm dựa cách thức hoạt động tổng thể giao thức sẵn có internet để đưa giao thức phục vụ cho việc điều khiển từ xa cho ESP8266 TCP/IP, HTTP Websocket Mơ hình tổng qt giao thức đươc thực sau: Hình 4:Sơ đồ tổng quát giao thức 1.2 Giao thức HTTP HTTP gì? HTTP (HyperText Transfer Protocol – Giao thức truyền tải siêu văn bản) giao thức chuẩn mạng Internet, dùng để liên hệ thông tin máy chủ cung cấp dịch vụ (Web Server) máy sử dụng dịch vụ (Web Client) giao thức Client/Server dùng cho World Wide Web -WWW HTTP giao thức thuộc lớp ứng dụng mơ hình mạng lớp OSI HTTP hoạt động nào? Giao thức HTTP hoạt động dựa mơ hình Client – Server Trong mơ hình này, máy tính người dùng đóng vai trị làm máy khách (Client) Client gửi yêu cầu đến máy chủ chờ đợi phản hồi từ máy chủ Trong chân D3 (GPIO0) kết nối với chân DATA DHT22 khối thiết bị, chân D1 (GPIO5), D2 (GPIO4) kết nối lần lược chân mạch relay thông qua chân đèn opto 817 có đèn opto quang hoạt động ,nguồn opto 5V cách li với nguồn ESP8266 từ quang.Tiếp opto quang kết nối với chân (Base) transitor, chân lại transistor (Collertor) nối với nguồn V relay Cuối hai chân NO, NC relay kết nối với đèn khóa từ 2.2 Sơ đồ khối phần cứng Hình 20: Sơ đồ khối Chức khối : - Khối nguồn Đây nguồn cấp điện cho thiết bị vi điều khiển - Khối Vi xử lý Tạo lệnh điều khiển, điều khiển hoạt động hệ thống Nhận tín hiệu từ khối Module Wifi gửi xử lí gửi tín hiệu điều khiển sang khối khác 27 - Khối wifi: Kết nối với mạng WiFi mạng nội nhằm gửi nhận liệu từ Internet thông qua route, hỗ trợ giao thức TCP/IP - Khối Cảm biến Đọc liệu cảm biến từ môi trường chuyển liệu đọc đến khối vi xử lí - Khối Bật tắt Nhận tín hiệu từ khối vi sư lí để đóng mở thiết bị - Khối thiết bị Khối thiết bị nối với khối bật tắt hoạt theo điều khiển khối vi điêu khiển Phần mềm 3.1 Mơ hình kết nối mạng hệ thống Hình 21: Sơ đồ giải thích mơ hình mạng hệ thống 28 Hệ thống hoạt động sau: Lập trình thiết lập, deploy web server ESP8266 Vi điều khiển ESP8266 đóng vai trị server có khả nhận gửi yêu cầu từ Internet để bật tắt thiết bị gửi liệu cảm biến Khi ESP8266 kết nối vào mạng nội thông qua wifi, Router mạng nội cấp cho ESP8266 địa IP, địa IP địa để ta truy cập vào ESP8266 thiết bị mạng (chế độ STA), ta lập trình để ESP8266 hoạt động Gateway với địa mặc định NSX đưa 192.168.4.1 (chế độ AP) Thiết bị Lạptop PC có chức deploy server lên ngrok đề tạo public url nhờ kết nối tới ESP8266 từ ngồi Internet Ví dụ: Để tạo tunnel đến địa 192.168.1.88, ta sử dụng công cụ Ngrok từ cửa sổ terminal nhập “ngrok http 192.168.1.88” sau Enter, Ngrok tạo địa URL Public ví dụ như: Hình 22:Web server chạy Terminal Như ví dụ địa Public https://6109-2405-4803-c8377a40-d0b-fd6d-287-d357.ap.ngrok.io tạo để giữ địa tồn tại, ta phải giữ cửa sổ máy tính chạy, đóng vai trị gần giống máy chủ Sử dụng trình biên dịch Arduino thư viện, cụ thể thư viện ESPAsyncWebServer cốt lõi giúp ta lập trình ESP8266 Web Server, ta lập trình cho ESP8266 xử lý route ví dụ như: /login, /toggle, /reset_wifi, /dashboard, hàm tính với route 29 Hình 23:Thiết lặp đường dẫn tới page cho website Nhận gửi liệu thông qua giao thức HTTP Request Bật tắt thiết bị Sau người dùng truy cập vào web server đăng nhập thành công, ESP8266 gửi file dashboard.html xuống cho client, người dùng bật tắt thiết bị thông qua route /toggle, route nhận HTTP POST Request, hàm tính route nhận ba biến “token” để xác thực yêu cầu từ client, “dev” để xác định thiết bị cần bật tắt, “state” trạng thái mà ta muốn thiết bị thay đổi Do đó, phía client, ta phải lập trình để gửi HTTP POST Request đến địa ESP8266 + “/toggle” kèm theo trường liệu token, dev state Khi server hay ESP8266 nhận POST Request từ client, hàm callback route “/toggle” kích chạy, hàm lấy trường liệu để thực xử lý, bật tắt thiết bị, hoàn tất, phụ thuộc kết yêu cầu (thành công hay thất bại), ESP8266 tạo HTTP Response bên có status code, message body chứa kết trả về, ,ví dụ thành cơng, kết trả “@”, ngược lại “!”, HTTP Response gửi cho client, từ ta biết xem u cầu client có thành cơng hay khơng để dễ dàng xử lý Mạch Relay phần trung gian ESP8266 đến thiết bị Khi relay nối trực tiếp với nguồn đèn, khóa từ nguồn mà relay cần ngắt 12V từ thiết bị Khi có tín hiệu bật tắt từ ESP8266, tín hiệu chuyền qua chân số 3(Base) transitor đến relay cuối thiết bị cần bật tắt Thêm vào 30 mạch relay sử dụng thêm opto để đảm việc cách ly nguồn 5V với 12V giúp cho hệ thống hoạt động cách an toàn Hình 24: Sơ đồ giao thức chuyền hệ thống Đọc cảm biến với DHT22 Sau đăng nhập hoàn tất, client khởi tạo websocket đến địa ESP8266 + “/WS” nhằm liên tục lắng nghe có tin nhắn từ Server gửi không ? ESP8266 liên tục đọc liệu từ cảm biến DHT22 từ chân D3, sau kiểm tra xem giá trị giá trị cũ có sai khác khơng, có ESP8266 gửi Websocket message tới phía client nhằm đồng giao diện webpage Tương tự, client lắng nghe tín hiệu websocket từ Server để cập nhật thay đổi giá trị cảm biến webpage 31 Hình 25: Code cập nhập thay đổi giá trị cho DHT22 Hình 26: Sơ đồ cách ESP cập nhập liệu cho client thông qua websocket 32 3.2 ESP8266 Khởi tạo kết nối WI-FI 33 3.3 Sơ đồ ESP8266 Web server 34 CHƯƠNG 5: KẾT QUẢ ĐẠT ĐƯỢC Vận hành website Bước 1: Thiết lập wifi Nếu trước người dùng thiết lập wifi cho ESP8266 bỏ qua bước Cịn chưa cấp nguồn cho ESP8266, VDK chuyển sang chế độ AP (hoạt động giống router mạng) Người dùng sử dụng thiết bị có hỗ trợ kết nối wifi để kết nối wifi Hình 27: Giao diện thiết lập wifi mà ESP8266 phát ra, sau truy cập vào địa gateway mặc định ESP8266 “192.168.4.1” Sau giao diện thiết lập wifi cho ESP8266 xuất Sau đó, người dùng thực nhập trường tên wifi, mật khẩu, địa ip địa gateway, sau bấm nút Submit để gửi liệu tới ESP8266 Tiếp theo, ta chờ đợi 30s cho ESP xử lý kết nối lại wifi, thành công hồn thành bước thiết lập wifi, cịn khơng bước làm lại thành cơng Ta nhận biết thơng qua led module wifi chúng em lập trình cho trạng thái: o Sáng: Khơng kết nối được, phát wifi (chế độ AP) o Nhấp nháy: Đang thực việc kết nối wifi 35 o Tắt: Đã kết nối mạng wifi thành công (chế độ STA) Bước 2: Chạy ngrok lấy địa public Tiếp theo, ta sử dụng thiết bị có hỗ trợ Internet (nên PC, Laptop RPI), thực kết nối tới mạng mà ESP8266 kết nối thành công bước Mở terminal hay command line, nhập “ngrok http {địa IP ESP8266}” ví dụ: “ngrok http 192.168.1.88”, máy tính chưa cài ngrok tìm hiểu download ngrok trang web https://ngrok.com/, sau chạy lệnh hoàn tất, cửa sổ xuất hiện, với địa URL public tunnel tới ESP8266 Như trường hợp trên, địa URL Public là: https://4755-2405-4803-c8377a40-845b-d72f-6639-6ce0.ap.ngrok.io , với lần chạy, địa tạo khác nhau, muốn giữ tồn tại, ta phải giữ cho cửa sổ chạy (nên sử dụng Raspberry Pi để tối ưu thay laptop PC) 36 Cuối cùng, ta truy cập vào web server với địa đâu miễn thiết bị có mạng Hình 28:Giao diện login Web Server Bước 3: Sử dụng Web Server Đây bước cuối bước đơn giản nên khơng có để nói, đăng nhập vào Web Server thông qua giao diện web Hình 29:Giao diện sau đăng nhập 37 Từ giao diện này, ta điều khiển, bật tắt thiết bị đèn khóa cách click vào nút nhấn dưới, ngồi ta cịn quan trắc thông số nhiệt độ, độ ẩm từ Ngồi ra, ta cịn thay đổi mật đăng nhập reset lại giá trị wifi Để làm điều ta phải click chuột vào hình bánh phía bên phải giao diện: Hình 30:Giao diện cài đặt Hình ảnh thực tế 2.1 38 39 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Sau khoảng thời gian thực đồ án, nhóm chúng em đạt kết phù hợp với mục tiêu mà nhóm đề ( đề tài 90 % so với mục tiêu đề ra).Nhóm điều khiển từ xa thiết bị điện thông qua website, đặc biệt nghiên cứu cải tiến phần cứng mạch điện thiết bị để phù hợp với mục đích điều khiển đề Bên cạnh việc điều khiển nhóm thiết kế thêm mạch giám sát giá trị nhiệt độ, độ ẩm để phù hợp với nhu cầu sử dụng người đời sống Song, nhiều thiếu sót đồ án lần chúng em, từ việc thiết kế, thi công phần cứng phát triển phần mềm, tìm hiểu cơng nghệ, tham khảo tài liệu, gặp khơng khó khăn bước đầu Điều đồ án chúng em nhiều điều cần cải thiện chúng em có dự tính cho việc Tuy nhiên, cuối đồ án môn học lần chúng em kết thúc tốt đẹp, lần nữa, chúng em xin chân thành cảm ơn quý thầy cô bạn Viện Kỹ Thuật HUTECH giúp đỡ chúng em suốt trình thực đồ án Hướng phát triển đề tài - Thêm tín cảnh báo chuẩn đoán - Kết nối điều khiển đa thiết bị - Mở rộng mạch giám đa mơi trường ( Vườn, phịng, bếp, trồng…) - Website điều khiển giám sát nhiều ESP lúc 40 TÀI LIỆU THAM KHẢO Trang Web tìm kiếm [1] Trang Web, “randomnerdtutorials.com/”, chủ đề tìm kiếm “ projects-esp8266” [2] Trang Web, “randomnerdtutorials.com/”, chủ đề tìm kiếm “ NodeMCU HTTP GET and HTTP POST” [3] Trang Web, “randomnerdtutorials.com/”, chủ đề tìm kiếm “ Relay Module – Control AC Appliances” [4] Trang Web, “randomnerdtutorials.com/”, chủ đề tìm kiếm WebSocket Server: Control Outputs” [5] Trang Web, “randomnerdtutorials.com/”, chủ đề tìm kiếm “ Temperature Sensor” [6] Trang web, “smartshop.vn” mục “tin tức công nghệ” với chủ đề “ tìm hiểu cơng nghệ thu phát sóng wifi” [7] Trang web , “vi.wikipedia.org/” với chủ đề “Internet Protocol” [8] Trang web , “vi.wikipedia.org/” với chủ đề “Giao thức TCP” [9] Trang web , “vi.wikipedia.org/” với chủ đề “HyperText Transfer Protocol” Sách tham khảo [10] Nguyễn Huy Hùng Giáo trình: Mạng Thế Hệ Mới NGN, Xuất Bản: Đại Học Công Nghệ TPHCM, 2017 DataSheet [11] Datasheet esp8266 [12] Datasheet C1815 [13] Datasheet DHT22 [14] Datasheet PC817 41