1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Smart home

58 11 0

Đ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

Tiêu đề Thiết Kế Mô Hình Smart Home Đơn Giản Sử Dụng Module Wifi Esp8266
Tác giả Trần Văn Tiệp
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Thể loại Đồ Án/Khoá Luận Tốt Nghiệp Đại Học
Định dạng
Số trang 58
Dung lượng 5,14 MB

Nội dung

TẬP ĐỒN BƯU CHÍNH VIỄN THƠNG VIỆT NAM HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - ĐỒ ÁN/KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC Đề tài: “Thiết kế mơ hình smart home đơn giản sử dụng module wifi ESP8266” Người hướng dẫn : Sinh viên thực hiện: Trần Văn Tiệp Lớp : D12DTMT NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIỂM (Của giảng viên hướng dẫn) Điểm: (Bằng chữ:…………………………… ) Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp…? Hà Nội, Ngày… Tháng… Năm 2013 CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN (ký, họ tên) LỜI CẢM ƠN Bước vào ngưỡng cửa ước mơ cánh cửa đại học với niềm ước mơ công nghệ thông tin em tưởng chừng ngã gục đứng dậy ngày em biết tin em trượt ngành công nghệ thông tin đại học Bách Khoa Hà Nội tháng ngày tháng ngày em sống tuyệt vọng khơng biết đâu làm gì, hội mở với em lần có hội bước vào học viện Bưu Chính Viễn Thơng có thay đổi ngành em chọn công nghệ thông tin mà em theo đường em mách bảo ngành kỹ thuật điện tử, ngày em bước vào trường em chưa hiểu biết nhiều điện tử với hồi nghi khơng biết cơng việc sau trường em làm gì, trình học em nghiên cứu điều Nhưng thời gian thực tế học học viện trả lời em tất em thực thích thú đam mê bị cuấn vào ngành điện tử với ứng dụng gần với sống hưu ích theo xu xã hội Nhưng điều khiến em thực ấn tượng quý trọng nhiều nhiệt huyết, tận tâm thầy cô khoa Em xin cảm ơn cô Bùi Thị Dân, cô Vũ Anh Đào, thầy Nguyễn Trung Hiếu, thầy Nguyễn Ngọc Minh thầy cô thực đưa em đến với khoa điện tử, đem đến cho em đam mê nhiệt huyết tuổi trẻ, điện tử thầy cô em bạn may mắn có đón nhận tình cảm thầy cô danh cho Sau cánh cửa đồ an tương lại mới, đường mới, công việc cho em bạn tập đoàn FPT sofware, khoảng 40 bạn tổng số trăm bạn làm việc em tập đoàn FPT sofware cịn nhiều bạn khác có việc tập đoàn khác sảm phẩm đào tạo tâm huyết thầy cô Em xin lần thay mặt bạn cảm ơn thầy cô nhiều em xin chúc thầy cô sức khỏe thành cơng a ! DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT CPU: Central Process Unit Khối xử lý trung tâm RAM: Random Access Memory Bộ Nhớ truy nhập ngẫu nhiên ROM: Read Only Memory Bộ Nhớ đọc HDMI: High-Definition Multimedia Interface Giao diện đa phương tiện độ phân giải cao GPIO: General Purpose Input Output Cổng vào vơi mục đích MQTT: Message Queuing Telemetry TransportGiao thức publish/subscribe tin IOT: Internet Of Things Là liên kết máy đến máy WPA: Wi-Fi Protected Access Giao Thức an ninh mạng không dây UART: Universal Asynchronous Receive/Transmit Truyền nhận liệu không đồng TXD: Transmitted Data Truyền liệu RXD: Received Data Nhận liệu RST: Reset Làm lại IC: Integrated Circuit Mạch điện chứa link kiện bán dẫn VCC: Voltage Constant Current Điện áp có dịng khơng đổi VDD: Voltage Drain – Drain Điện áp cực máng Page AC: Alternating Current GND: Ground EEPROM:Electrically Erasable Programmable QoS: Quality of Service IP: Internet Protocol TCP: Transmission Control Protocol MAC: Media Access Control SSL: Secure Sockets Layer TTL: Time To Live URL: Uniform Resource Locator PIR: Passive Infrared Sensor Dòng thay đổi theo thời gian Đất Vùng nhớ không bay Khả giúp cho việc truyền liệu Giao thức internet Giao thức điều khiển vận chuyển Địa vật lý Tiêu chuẩn công nghệ bảo mật Thời gian sống Sử dụng tham chiếu đến tài nguyên mạng Hồng ngoại thụ động DANH MỤC CÁC BẢNG/ HÌNH VẼ MỤC LỤC Page Đồ án tốt nghiệp đại học Chương Giới thiệu smart home MỞ ĐẦU Điện tử ngành khoa học đa nhiệm điện tử đáp ứng địi hỏi khơng ngừng ngành lĩnh vực khác nhu cầu thiết yếu người sống ngày Một ứng dụng quan trọng cảu điện tử wifi ứng dụng vào mơ hình smart home IOT, wifi ứng dụng vào nhiều công công nghiệp sống với nhiều ứng dụng khác với thiết bị điều khiển từ xa tinh vi đạt suất kinh tế thật cao Xuất phát từ ứng dụng em thiết kế mơ hình smart home sử dụng module wifi ESP8266 Thiết kế mudule thực thi: mạch điều khiển thiết bị theo kích thước hộp âm tường để ứng dụng đưa vào nhà xây dựng thực tế module gồm kênh cảm biến điện dung gắn vào mặt trơn SINO S190 gộp âm tường để dễ dàng trạm cảm biến đóng ngắt thiết bị tăng giảm độ sáng thiết bị nhà module thiết kế điều khiển tối đa thiết bị (đèn ) module tích hợp ESP 8266 để nhận lệnh từ server raspberry pi, gửi trạng thái hoạt động module lên server qua chuẩn giao thực MQTT IOT Thiết kế tách rời module cảm biến: đặt phòng làm nhiệm vụ đếm số người phòng, đọc cảm biến độ ẩm, nhiệt độ cảm biến gas, đo dòng điện tiêu thụ toàn thiết bị mơ hình smart home gửi liệu thu thập cảm biến cho server, server gửi lại giá trị cảm biến nhận cho module thực thi phân tích có độn thái thực tương ưng Nội dung bao gồm chương : - Chương 1: Giới thiệu smart home - Chương 2: Link kiện module sử dụng - Chương 3: Tổng quan mơ hình smart home xây dựng - Chương 4: Chương trình hoạt động client mơ hình smart home Đề tài giúp em hiểu rõ nguyên lý thu phát phát ứng dụng vào trình ngiên cứu em : Đã làm Thiết kế module thực thi điều khiển thiết bị điện áp chiều điện áp từ đến 60V Thiết bị cảm biến: nhiệt độ , độ ẩm, gas, cảm biến đo dòng, cảm biển hồng ngoại hoạt động xác nhạy cảm mơi trường kích thích Thực truyển nhận tốt data web openhab phần mềm openhab viết androi Mơ hình xây dựng vào xây dụng nhà thực tế 2.Vẫn đề chưa làm Trong tháng làm đồ án tháng em thử việc tập đoàn FPT Sofware nên em gặp nhiều khó khăn thời gian áp lực cơng việc mới, đồ án nghiên cứu trực tiếp vào xây dựng nhà thực tế anh quản lý em tập đồn FPT sofware với địi hỏi khắt khe nhà mà khiến cho áp lực đề tài tăng cao thực đề tài thời gian ngắn nên sản phẩm demo đồ an chưa tích hợp nhiều tính ngơi nhà xây dựng thực tế Hướng phát triển đề tài Sẽ xây dựng tích hợp đầy đủ tình smart home thực tế làm, xây dựng đầy đủ chi tiết tài liệu để bạn khóa sau nghiên cứu phat triển kế thừa CHƯƠNG GIỚI THIỆU VỀ SMART HOME Trần Văn Tiệp – D12DTMT Page Đồ án tốt nghiệp đại học Chương Giới thiệu smart home 1.1 Giới thiệu smart home Nhà thông minh xu hướng công nghệ tất yếu giới, trở thành tiêu chuẩn nhà đại kỷ nguyên Internet of Things – kết nối vạn vật qua internet Bên cạnh đó, tiện nghi tiết kiệm lượng dần trở thành tiêu chuẩn cần thiết nhằm nâng cao chất lượng sống Vậy nên bắt đầu cho "kỷ nguyên công nghệ" Công nghệ thiết bị cho nhà thông minh công ty ngành xây dựng quan tâm nhiều Tại châu Âu, ngày có nhiều điều luật bắt buộc ngơi nhà xây phải có chứng thân thiện mơi trường, cách nhiệt tốt, giảm tiêu thụ điện, nước khí đốt, Dưới cách mà ngơi nhà thơng minh giúp bạn có sống tiện nghi thoải mái hơn: Hình 1 Mơ hình smart home Các cánh cửa tự động đóng mở chúng nhận diện bạn ông chủ nhà Tự điều chỉnh độ sáng bóng đèn điện bạn đọc sách, xem ti-vi hay ngủ Các thiết bị điện tử từ gia dụng đến giải trí ngơi nhà điều khiển dễ dàng thơng qua giọng nói hay Smartphone bạn Đưa cảnh báo vật dụng gây nguy hiểm cho trẻ em chúng có ý định sử dụng vật dụng Tính an ninh tự báo động có người cố tình xâm nhập trái phép, tự động khóa trái cửa, báo cảnh sát,… ln trạng thái sẵn sàng 1.2 Yêu cầu tổng thể - Có kịch cho đèn chế độ (ngủ, đọc sách, làm việc ) - Tự động đóng ngát đèn có người phịng, phịng có >2 cửa vào - Đóng ngắt đèn có dimmer (sáng từ từ, tắt từ từ) Phịng có nhiều đèn đèn điều khiển độc lập Đèn sáng ngồi trời tối Mùa đơng bật đèn sáng ấm, mùa hè bật đèn sáng lạnh Trần Văn Tiệp – D12DTMT Page Đồ án tốt nghiệp đại học Chương Giới thiệu smart home - Điều chỉnh sáng tối đèn theo ý muốn - Đo dòng điện báo lượng điện tiêu thụ - Cảnh báo cho chủ nhà (bật đèn, hú còi) có người vào kích hoạt chế độ chống trộm - Báo vị trí xác người phịng - Báo cửa chưa đóng - Kéo rèm trời sáng - Đo mực nước bể, hiển thị theo % độ mịn 5-10% - Tự động bơm nước bể < 50% - Điều khiển thiết bị smartphone bảng điều khiển trung tâm 1.3 Phần cứng Cảm biến: - Đếm số người phòng - Nhiệt độ, độ ẩm - Cường độ ánh sáng - Mực nước - Dòng điện - PIR - Đóng mở cửa (cửa vào cửa sổ) - Cảm biến Gas, CO2 - Camera (cửa ngõ) - Cảm biến điện :) Đèn : - LED 1m 12V -> dùng làm đèn hắt tủ bếp hắt lên trần phòng ngủ Remove bỏ điện trở LED - LED âm tường: 36v -> dùng làm đèn trần phòng khách Remove bỏ đổi nguồn 220 -> 36v điện trở hạn dòng - LED 12v (3 bóng cắt từ led thanh) -> dùng làm đèn tường - Điện áp tối đa bóng led 3.3v Nối tiếp bóng để điện áp khác Nguồn - Ưu tiên dùng nguồn 24V - Nguồn cho LED: Điện áp bội 3.3v -> phòng dùng cục sạc laptop 19-20v - Nguồn cho hệ thống điều khiển: 5V từ điện lưới acquy Optional: - Nguồn dự phòng: acquy 12v - 20AH (giá 1M) - Pin lượng mặt trời: 100W (1mx0.8m) + sạc Đi dây tường: - Đi đường nguồn chiều 20v dây to phòng có cục adapter 20v – 4A - Đi đường nguồn chiều 5V dây vừa – tầng có cục adapter 5v – 2A - Đường 220v quanh nhà phục vụ cho ổ cắm adapter - Nguồn 24V (pin mặt trời) đấu thẳng vào phịng) - Mỗi tầng có tủ điện 1.4 Kịch cho phòng Phòng khách - Đếm số người phịng - Khi có người vào - Kiểm tra độ sáng bật đèn với độ sáng phù hợp, có dimmer - Bật tivi, âm lượng nhỏ Trần Văn Tiệp – D12DTMT Page Đồ án tốt nghiệp đại học Chương Giới thiệu smart home - Bật quạt trần nhiệt độ > 30o - Khi hết người, giảm độ sáng đèn trần 10%, đèn tường 50%, tắt quạt Tắt hết đèn sau 5p - Trên tường có nút điều chỉnh độ sáng, tắt mở theo ý muốn (reset auto hết người phòng) Phòng ngủ - Đếm số người phịng - Khi có người vào, check độ sáng bật đèn với độ sáng phù hợp, có dimmer - Khi hết người, tắt hết đèn - Trên tường có nút điều chỉnh độ sáng theo ý muốn - Bật quạt thơng gió CO2 ngưỡng cho phép - Điều chỉnh độ ẩm Tăng đần nhiệt độ sáng - Kéo dèm theo thời gian đặt trước - Trên tường có nút điều chỉnh độ sáng theo ý muốn Phịng bếp - Báo động khí gas, Co2 - Bật quạt thơng gió CO2 đạt ngưỡng - Tủ bếp có đèn, bật đèn tủ mở cửa tủ - Đếm số người phịng - Khi có người vào, check độ sáng bật đèn với độ sáng phù hợp, có dimmer - Khi hết người, giảm độ sáng đèn trần 10%, đèn tường 50% Tắt hết đèn sau phút - Trên tường có nút điều chỉnh độ sáng, tắt mở theo ý muốn (reset auto hết người phòng) Phòng tắm - Đếm số người phịng - Khi có người vào, check độ sáng bật đèn với độ sáng phù hợp, có dimmer - Khi hết người, giảm độ sáng đèn trần 10%, Tắt hết đèn sau 5p - Trên tường có nút điều chỉnh độ sáng, tắt mở theo ý muốn (reset auto hết người phịng) Cửa ngõ - Bấm chng, hình home server tự camera cửa ngõ - Camera ghi hình có chuyển động - Khi có người vào, check độ sáng bật đèn với độ sáng phù hợp, có dimmer - Khi hết người, giảm độ sáng đèn 50%, Tắt hết đèn sau 10p Trần Văn Tiệp – D12DTMT Page Đồ án tốt nghiệp đại học Chương Link kiện va mudule sử dụng CHƯƠNG 2: LINK KIỆN VÀ MODULE SỬ DỤNG 2.1 Server raspberry pi 2.1.1 Giới thiệu raspberry pi Hình Mặt raspberry pi2 Chip Raspberry pi sử dụng CPU nhân lõi ARM cotex A7 chip đồ họaBroadcom VideoCore IV – 250MHz, RAM GB bị chia sẻ 250MB cho chip đồ họa khe cắm thẻ nhớ micro SD phục vụ lưu trữ điện rộng Raspberry pi tích hợp nhiều cổng kết nối có cổng HDMI, cổng kết nối ethernet 10/100, USB 2.0, microUSB, cổng kết nối camera, hình đầy đủ chân cắm GPIO vi mạch điều khiển thông thường Mạch hỗ trợ sạc 5V 2A hỗ trợ sạc Camera: Connector 15-pin MIPI Camera Serial Interface (CSI-2) Display: Connector Display Serial Interface (DSI) Memory Card Slot: Micro SD Cũng giống số model máy tính Raspberry pi khác, model Raspberry pi 2có thể chạy tảng Androi số tảng dựa linux bao gồm: Raspbian: hệ điều hành dựa Debian Ubuntu Mate: Ubuntu Desktop Snappy Ubuntu Core: chủ yếu dành cho nhà phát triển Openelec: hệ thống giải trí đa phương tiện OSMC: hệ thống giải trí đa phương tiện Pidora: hệ điều hành dựa Fedora RISC OS: hệ điều hành Linux, … 2.1.2 Mục đích sử dụng Raspberry pi đề tài smart home Sử dụng Raspberry pi smart home đóng vai trò server lưu trữ liệu, tương tác với thiết bị ( Device ) trao đổi liệu với thiết bị thông qua chuẩn giao thức IOT MQTT, Orange pi one đóng vai trị MQTT server (Broker) mơ hình MQTT cịn thiết bị đóng vai trị MQTT client Trong MQTT client đăng ký vài kênh (topic) gửi để trao đổi liệu với MQTT server gọi Subcribe mỗ client (có thể điện thoại máy tính ) client nhận liệu từ trạm khác gửi sang kênh đăng ký việc gửi liệu sang kênh đăng ký gọi publish Trần Văn Tiệp – D12DTMT Page Đồ án tốt nghiệp đại học Chương Link kiện va mudule sử dụng 2.2 Module wifi ESP8266 2.2.1 Giới thiệu module ESP8266 Hình 2 ESP8266 Module wifi ESP8266-07/ESP8266-12 chip tích hợp cao – System on chip, có khả xử lý lưu trữ tốt cung cấp khả vượt trội để trang bị thêm tính wifi hệ thống khác đóng vai trị giải pháp độc lập ESP8266 cung cấp khả kết nối wifi đầy đủ khép kín dùng để tạo web server đơn giản sử dụng accsess point ESP8266 hỗ trợ chuẩn kết nối wifi 802.11 b/g/n, hoạt động tần số 2.4Ghz hỗ trợ WPA/WPA2 Chuẩn điện áp hoạt động la 3.3V, chuẩn giao tiếp UART với tốc độ Baudrate lên đến 115200 bit/s có chế độ hoạt động client, access piont client access piont 2.1.2 Sơ đồ chân chức Hình Sơ đồ chân ESP8266 Trần Văn Tiệp – D12DTMT Page 10 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home break; case BUTTON2_ONE_CLICK: printf("BUTTON2_ONE_CLICK\r\n"); ticker.detach(); if (device.light2.is_on) { device.light2.is_on = false; } else { device.light2.is_on = true; } send_click_buttons(device.btn_state, device.slider, device.light2.target_strengh); device.btn_state = BUTTON_IDLE; break; case BUTTON2_DOUBLE_CLICK: if (device.btn_state != prev_btn_state) { printf("BUTTON2_DOUBLE_CLICK\r\n"); ticker.attach(0.6, blink_led2); } if (device.slider == RIGHT_SLIDE) { device.light2.target_strengh += SLIDER_STEP; device.light2.target_strengh = (device.light2.target_strengh > MAX_STRENGH) ? MAX_STRENGH : device.light2.target_strengh; send_click_buttons(device.btn_state, device.slider, device.light2.target_strengh); device.slider = BUTTON_IDLE; click_timeout = 0; } else if (device.slider == LEFT_SLIDE) { device.light2.target_strengh -= SLIDER_STEP; device.light2.target_strengh = (device.light2.target_strengh > MAX_STRENGH) ? MIN_STRENGH : device.light2.target_strengh; send_click_buttons(device.btn_state, device.slider, device.light2.target_strengh); device.slider = BUTTON_IDLE; click_timeout = 0; } click_timeout += 1; break; case BUTTON3_ONE_CLICK: printf("BUTTON3_ONE_CLICK\r\n"); ticker.detach(); if (device.light3.is_on) { device.light3.is_on = false; } else { device.light3.is_on = true; } send_click_buttons(device.btn_state, device.slider, device.light3.target_strengh); device.btn_state = BUTTON_IDLE; break; case BUTTON3_DOUBLE_CLICK: Trần Văn Tiệp – D12DTMT Page 44 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home if (device.btn_state != prev_btn_state) { printf("BUTTON3_DOUBLE_CLICK\r\n"); ticker.attach(0.6, blink_led3); } if (device.slider == RIGHT_SLIDE) { device.light3.target_strengh += SLIDER_STEP; device.light3.target_strengh = (device.light3.target_strengh > MAX_STRENGH) ? MAX_STRENGH : device.light3.target_strengh; send_click_buttons(device.btn_state, device.slider, device.light3.target_strengh); device.slider = BUTTON_IDLE; click_timeout = 0; } else if (device.slider == LEFT_SLIDE) { device.light3.target_strengh -= SLIDER_STEP; device.light3.target_strengh = (device.light3.target_strengh > MAX_STRENGH) ? MIN_STRENGH : device.light3.target_strengh; send_click_buttons(device.btn_state, device.slider, device.light3.target_strengh); device.slider = BUTTON_IDLE; click_timeout = 0; } click_timeout += 1; break; default: break; } prev_btn_state = device.btn_state; if (click_timeout > CLICK_TIMEOUT) {//CLICK_TIMEOUT =1000 ticker.detach(); device.btn_state = BUTTON_IDLE ; } } Hình Hàm xử lý sau trạm phím Sau thực hàm xử lý sau trạm phím, ta thực gửi trạng thái đèn độ sáng đèn MQTT broker: - Nếu phím trạm xác định one click trạng thái đèn bật ta tiến hành gửi giá trị phần trăm độ sáng 100% cho MQTT broker qua kênh (topic: ESPx/BTz x ID ESP8266 , cịn z số thứ tự phím trạm - Nếu Phím trạm xác định double click, kiêm tra xem trượt sang trái hày trượt sang phải ( trượt sang trái thời gian:cnt_5ms - device.light3.cnt_snap < 500 ms, trượt sang phải cnt_5ms - device.light3.cnt_snap < 500ms ) Nếu trượt sang trai tiến hành giảm độ sáng đèn mức 128 đơn vị (mức sáng tối đa đèn 1023), trượt phải tiến hành tằng mức sáng đèn tương ứng lên 128 đơn vị: Tính tỉ lệ phần trăm độ sáng = ( độ sáng +1):1024 Trần Văn Tiệp – D12DTMT Page 45 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home Rồi tiến hành gửi phần trăm độ sáng qua kênh (topic ) tương ứng đến MQTT broker giao tiếp MQTT client MQTT broker thiết lập chế độ QoS :0 nên phiên giao dịch MQTT client MQTT broker gửi lần void send_click_buttons(unsigned int button_state, unsigned int slider, unsigned int target_strengh) { int val_str[3]; int value = ((target_strengh + 1) * 100) / 1024; val_str[2] = value / 100; val_str[1] = (value % 100) / 10; val_str[0] = value % 10; sprintf(dimmer, "%d%d%d", val_str[2], val_str[1], val_str[0]); printf("dimmer=%s\n", dimmer); if ((button_state & BUTTON1_ONE_CLICK) && ((counter_5ms - device.light1.cnt_snap) > DOUBLE_CLICK_TIME)) { sprintf(topic, "/ESP%d/BT1", device.id); printf(" -%s:%d (s)\n", topic, millis() / 1000); //client.publish(topic, state_bt); if (device.light1.is_on ) { client.publish(topic, dimmer); } else { client.publish(topic, "0"); } printf("topic= %s\n", topic); printf("\n"); /*printf(" -:%d (s)\n",millis()/1000); */ } if (button_state & BUTTON1_DOUBLE_CLICK) { /*sprintf(topic, "/ESP%d/BTD1", device.id); client.publish(topic, "100"); printf("topic= %s\n", topic); printf("\n");*/ if (slider & LEFT_SLIDE) { sprintf(topic, "/ESP%d/BT1", device.id); client.publish(topic, dimmer); printf("LIGHT1.Brighness: %d\n", value); printf("\n"); } if (slider & RIGHT_SLIDE) { sprintf(topic, "/ESP%d/BT1", device.id); client.publish(topic, dimmer); Trần Văn Tiệp – D12DTMT Page 46 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home printf("LIGHT1.brighness: %d\n", value); printf("\n"); } } if ((button_state & BUTTON2_ONE_CLICK) && (((counter_5ms - device.light2.cnt_snap) > DOUBLE_CLICK_TIME) && \ ((counter_5ms - device.light1.cnt_snap) > SLIDER_TIME) && \ ((counter_5ms - device.light3.cnt_snap) > SLIDER_TIME))) { sprintf(topic, "/ESP%d/BT2", device.id); printf(" -%s:%d (s)\n", topic, millis() / 1000); //client.publish(topic, "100"); if (device.light2.is_on ) { client.publish(topic, dimmer); } else { client.publish(topic, "0"); } /*printf(" -:%d (s)\n",millis()/1000); */ printf("topic= %s\n", topic); } if (button_state & BUTTON2_DOUBLE_CLICK) { /* sprintf(topic, "/ESP%d/BTD2", device.id); client.publish(topic, "100"); printf("topic= %s\n", topic); printf("\n"); */ if (slider & LEFT_SLIDE) { sprintf(topic, "/ESP%d/BT2", device.id); client.publish(topic, dimmer); printf("LIGHT2.Brighness: %d\n", value); printf("\n"); } if (slider & RIGHT_SLIDE) { sprintf(topic, "/ESP%d/BT2", device.id); client.publish(topic, dimmer); printf("LIGHT2.brighness: %d\n", value); printf("\n"); } } if ((button_state & BUTTON3_ONE_CLICK) && ((counter_5ms - device.light3.cnt_snap) > DOUBLE_CLICK_TIME)) { sprintf(topic, "/ESP%d/BT3", device.id); Trần Văn Tiệp – D12DTMT Page 47 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home printf(" -%s:%d (s)\n", topic, millis() / 1000); //client.publish(topic, "100"); if (device.light3.is_on ) { client.publish(topic, dimmer); } else { client.publish(topic, "0"); } /* printf(" -:%d (s)\n",millis()/1000); */ printf("topic= %s\n", topic); printf("\n"); } if (button_state & BUTTON3_DOUBLE_CLICK) { /* sprintf(topic, "/ESP%d/BTD3", device.id); client.publish(topic, "100"); printf("topic= %s\n", topic); printf("\n"); */ if (slider & LEFT_SLIDE) { sprintf(topic, "/ESP%d/BT3", device.id); client.publish(topic, dimmer); printf("LIGHT3.Brighness: %d\n", value); printf("\n"); } if (slider & RIGHT_SLIDE) { sprintf(topic, "/ESP%d/BT3", device.id); client.publish(topic, dimmer); printf("LIGHT3.brighness: %d\n", value); printf("\n"); } } /*if (slider & LEFT_SLIDE) { sprintf(topic, "/ESP%d/LFTSL", device.id); client.publish(topic,"100"); printf("topic= %s\n", topic); printf("\n"); } if (slider & RIGHT_SLIDE) { sprintf(topic, "/ESP%d/RHTSL", device.id); client.publish(topic,"100"); printf("topic= %s\n", topic); printf("\n"); } */ Trần Văn Tiệp – D12DTMT Page 48 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home } Hình Chương trình mơ tả cho q trình SP8266 đồng thời thực liên tiếp đăng ký kênh nhận liệu truyền từ MQTT broker, qua phân tích giải mã lệnh xem MQTT broker gửi lệnh thực thi điều khiển thiết bị : Trần Văn Tiệp – D12DTMT Page 49 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home Hình Lưu đồ thuật tốn phân tích xử lý liệu từ mqtt broker gửi void callback(char* topic, byte* payload, unsigned int length) { String st_topic = topic; st_topic.remove(0, 6); // = lenght of "/ESP1/LIGHT1" unsigned int msg_data = 0; unsigned int pl[3] = {0}; Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { printf("%c", payload[i]); char_to_int((payload + i), (pl + i)); } switch (length) { case 3: msg_data = (100 * pl[0]) + (10 * pl[1]) + pl[2]; /* length of payload= digit,ingore to null character of payload */ break; case 2: msg_data = (10 * pl[0]) + pl[1]; /* length of payload= digit,ingore to null character of payload */ break; case 1: msg_data = pl[0];/* length of payload= digit,ingore to null character of payload */ break; } msg_data = ((msg_data * 1024) / 100); /*printf("\nmsg_data=%d\n",msg_data);*/ printf("\n"); if (st_topic.equals("LIGHT1")) { teston_off_comandqtt(payload, &msg_data); device.light1.is_on = (msg_data != 0) ? true : false; if (device.light1.is_on) { device.light1.target_strengh = msg_data; Trần Văn Tiệp – D12DTMT Page 50 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home } } if (st_topic.equals("LIGHT2")) { teston_off_comandqtt(payload, &msg_data); device.light2.is_on = (msg_data != 0) ? true : false; if (device.light2.is_on) { device.light2.target_strengh = msg_data; } } if (st_topic.equals("LIGHT3")) { teston_off_comandqtt(payload, &msg_data); device.light3.is_on = (msg_data != 0) ? true : false; if (device.light3.is_on) { device.light3.target_strengh = msg_data; } } if (st_topic.equals("LIGHT4")) { teston_off_comandqtt(payload, &msg_data); device.light4.is_on = (msg_data != 0) ? true : false; if (device.light4.is_on) { device.light4.target_strengh = msg_data; } } } Hình Chương trình mơ tả cho bước lắng nghe phân tích liệu từ MQTT broker 4.3 Xây dựng ESP8266 MQTT client cảm biến nhiệt độ gửi giá trị cảm biến lên MQTT broker Trong hệ thống smart home, cảm biến nhiệt độ đóng vai trị quan trọng, giúp biết trạng thái nóng lạnh ngơi nhà từ có thay đổi phù hợp (tự làm tự động hệ thống) Ví dụ hệ thống tự động tăng nhiệt độ máy lạnh tắt quạt trời lạnh vào ban đêm ta ngủ Trong này, xây dựng cảm biến nhiệt độ nhỏ gọn dùng Mini-Esp Wemos D1 mini, cảm biến nhiệt độ Ds18B20 giao thức MQTT để truyền data server Trần Văn Tiệp – D12DTMT Page 51 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home Hình Mỗ tả phần cứng cảm biến nhiệt độ Để linh hoạt, ta cần module dùng pin thay cấp nguồn trực tiếp Vì esp8266 dùng wifi giao thức tốn pin nên ta cho module đọc nhiệt độ môi trường 20 phút lần (tần suất cao nhanh hết pin) sau chuyển sang chế độ deep sleep (là chế độ tiết kiệm pin với tất kết nối wifi bị tắt) Sau 20 phút, esp8266 tự động khởi động lại, đọc nhiệt độ gửi server lại tiếp tục sleep Để thức dậy sau lần ngủ, ta cần phải nối chân D0 với chân RST Đoạn code Arduino điều khiển cho esp8266 thiết lập kết nối Wifi giao thức MQTT đến MQTT server (hay gọi MQTT broker), sau đọc nhiệt độ thơng qua Ds18b20 gửi đến topic (channel) MQTT broker, sau chuyển sang trạng thái deep sleep 20 giây Hình 10 Lưu đồ thuật toán hoạt động ESP8266 cảm biến nhiệt độ Trần Văn Tiệp – D12DTMT Page 52 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home /* Sketch which publishes temperature data from a DS1820 sensor to a MQTT topic This sketch goes in deep sleep mode once the temperature has been sent to the MQTT topic and wakes up periodically (configure SLEEP_DELAY_IN_SECONDS accordingly) Hookup guide: - connect D0 pin to RST pin in order to enable the ESP8266 to wake up periodically - DS18B20: + connect VCC (3.3V) to the appropriate DS18B20 pin (VDD) + connect GND to the appopriate DS18B20 pin (GND) + connect D4 to the DS18B20 data pin (DQ) + connect a 4.7K resistor between DATA and VCC */ #include #include #include #include #define SLEEP_DELAY_IN_SECONDS 30 #define ONE_WIRE_BUS // DS18B20 pin const char* ssid = "… "; /* ID wifi esp8266 kết nối */ const char* password = "….";/* mật khâu wifi */ const char* mqtt_server = "192.168.67.105";/*ghi địa IP Orange pi */ const char* mqtt_username = ""; const char* mqtt_password = ""; const char* mqtt_topic = "ESP3/TEMPLATE"; /* kênh đăng ký truyền liệu lên mqtt broker */ WiFiClient espClient; PubSubClient client(espClient); OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); char temperatureString[6]; void setup() { // setup serial port Serial.begin(115200); // setup WiFi setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(callback); // setup OneWire bus DS18B20.begin(); } void setup_wifi() { delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.print("Connecting to "); Trần Văn Tiệp – D12DTMT Page 53 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection "); // Attempt to connect if (client.connect("ESP8266Client", mqtt_username, mqtt_password)) { Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in seconds"); // Wait seconds before retrying delay(5000); } } } float getTemperature() { Serial.println("Requesting DS18B20 temperature "); float temp; { DS18B20.requestTemperatures(); temp = DS18B20.getTempCByIndex(0); delay(100); } while (temp == 85.0 || temp == (-127.0)); return temp; Trần Văn Tiệp – D12DTMT Page 54 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home } void loop() { if (!client.connected()) { reconnect(); } client.loop(); float temperature = getTemperature(); // convert temperature to a string with two digits before the comma and digits for precision dtostrf(temperature, 2, 2, temperatureString); // send temperature to the serial console Serial.print("Sending temperature: "); Serial.println(temperatureString); // send temperature to the MQTT topic client.publish(mqtt_topic, temperatureString); delay(500); Serial.print("Closing MQTT connection "); client.disconnect(); Serial.print("Closing WiFi connection "); WiFi.disconnect(); Serial.print("Entering deep sleep mode for "); Serial.print(SLEEP_DELAY_IN_SECONDS); Serial.println(" seconds "); ESP.deepSleep(SLEEP_DELAY_IN_SECONDS * 1000000, WAKE_RF_DEFAULT); delay(500); // wait for deep sleep to happen } 4.4 Xây dựng cảm biến hống ngoại đếm số người phòng Module phát vật cản khoảng 2- 60 cm, góc phát 35độ Khi phát vật cản tín hiệu đầu out mức thấp led xanh sáng Có thể điều chỉnh khoảng cách cách vặn biến trở Chỉnh triết áp để tăng khoảng cách theo chiều kim đồng hồ ngược lại để giảm khoảng cách - Cổng chân Output điều khiển trực tiếp relay chân vi điều khiển - Điện áp hoạt động module 3V – 5V Mắt thu hồng ngoại phát ánh sáng vùng có bước sóng hồng ngoại(bước sóng lớn bước sóng ánh sáng đỏ ) mắt thu bình thường có nội trở lớn mắt thu bị tia hồng ngoại chiếu vào nội trở giảm xuống lợi dụng nguyên lý chế cảm biến PIR đếm số người phòng -Khai báo chân cảm biến đèn led Khai báo hàm setup INPUT_PULLUP: Mặc định không kết nối với mạch kết nối với cực dương pin nhận giá trị HIGH, pin thơng tới cực âm xuống đất nhận giá trị LOW tương ứng với - int infrared = 4; int led = 2; void setup() Trần Văn Tiệp – D12DTMT Page 55 Đồ án tốt nghiệp đại học Chương Chương trình hoạt động client mơ hình smart home { pinMode(led,OUTPUT); pinMode(infrared, INPUT_PULLUP); } void loop() { if(digitalRead(infrared) == 0) { digitalWrite(led,HIGH); } else { digitalWrite(led,LOW); } } Trần Văn Tiệp – D12DTMT Page 56 Đồ án tốt nghiệp đại học Kết luận KẾT LUẬN Sau gần tháng thiết kế thi cơng mạch “ điều khiển thiết bị sóng wifi “ em thực thành công đề tài Kết đạt tạo mạch hoàn chỉnh chạy ổn định, điều khiển thiết bị mơ hình smart home Qua đúc kết thu thập nhiều kinh nghiệm lĩnh vựa iot, kinh nghiệp thiết kế gia công mạch điện tử Củng cố thêm kinh nghiệm kiến thức học Bên cạnh cịn nhiều hạn chế số lượng thiết bị điều khiển demo đồ án mạch ứng dụng gây lãng phí tính đề lúc thiết kế mạch (lúc thiết kế mạch thực thi điều khiển thiết bị lúc thi công demo điều khiển thiết bị) Số cảm biết thiết bị làm so với lúc demo bị rút ngắn lại Hướng phát triển đề tài: Điều khiển nhiều thiết bị mở rộng tính giao điện trình duyệt phần mềm androi Trần Văn Tiệp – D12DTMT Page 57 Đồ án tốt nghiệp đại học Tài liệu tham khảo TÀI LIỆU THAM KHẢO Tiếng Việt: Tiếng Anh: Danh mục Website tham khảo: http://www.easytech.vn/index.php/2016/03/31/cai-dat-openhab-tren-raspberry-pi/ http://bluetech.com.vn/……………… http://hotrocntt.com/raspberry-ngoi-nha-thong-minh.html http://www.breadboard.me/index.php/2016/04/08/cam-bien-nhiet-do-wifi-dung http://www.easytech.vn/index.php/2016/06/21/o-cam-dien-thong-minh-smart-plug/ http://www.easytech.vn/index.php/2016/06/15/thiet-bi-da-cam-bien-phong/ http://www.easytech.vn/index.php/2016/06/18/remote-da-dung-cho-smart-home/ Trần Văn Tiệp – D12DTMT Page 58 ... Chương 1: Giới thiệu smart home - Chương 2: Link kiện module sử dụng - Chương 3: Tổng quan mô hình smart home xây dựng - Chương 4: Chương trình hoạt động client mơ hình smart home Đề tài giúp em... client mơ hình smart home CHƯƠNG CHƯƠNG TRÌNH HOẠT ĐỘNG CỦA CLIENT TRONG MƠ HÌNH MART HOME 4.1 Mạch thiết kế điều khiển thiết bị Hình Mạch in điều khiển thiết bị wifi mơ hình smart home, mặt top... SMART HOME Trần Văn Tiệp – D12DTMT Page Đồ án tốt nghiệp đại học Chương Giới thiệu smart home 1.1 Giới thiệu smart home Nhà thông minh xu hướng công nghệ tất yếu giới, trở thành tiêu chuẩn nhà đại

Ngày đăng: 05/01/2022, 16:56

HÌNH ẢNH LIÊN QUAN

Hình 1. 1 Mô hình smart home - Smart home
Hình 1. 1 Mô hình smart home (Trang 6)
Hình 2. 1 Mặt trên của raspberry pi2 - Smart home
Hình 2. 1 Mặt trên của raspberry pi2 (Trang 9)
Hình 2. 3 Sơ đồ chân ESP8266 - Smart home
Hình 2. 3 Sơ đồ chân ESP8266 (Trang 10)
Hình 2. 2 ESP8266 - Smart home
Hình 2. 2 ESP8266 (Trang 10)
Hình 2. 4 Sơ đồ nguyên lý cảm biến điện dung TTP223-BA6 - Smart home
Hình 2. 4 Sơ đồ nguyên lý cảm biến điện dung TTP223-BA6 (Trang 11)
Hình 2. 5 Sơ đồ chân Mosfet IRFR 3709 - Smart home
Hình 2. 5 Sơ đồ chân Mosfet IRFR 3709 (Trang 13)
Hình 2. 6 Module uart PL2303 - Smart home
Hình 2. 6 Module uart PL2303 (Trang 14)
Hình 2. 7 Sơ dồ chân DS18B20 - Smart home
Hình 2. 7 Sơ dồ chân DS18B20 (Trang 15)
Hình 2. 8 Module hồng ngoại - Smart home
Hình 2. 8 Module hồng ngoại (Trang 16)
Hình 2. 10 Module remote đa dụng - Smart home
Hình 2. 10 Module remote đa dụng (Trang 18)
Hình 2. 9 Sơ đồ chân module MQ2 - Smart home
Hình 2. 9 Sơ đồ chân module MQ2 (Trang 18)
Hình 4. 1 Mạch in điều khiển thiết bị bằng wifi trong mô hình smart home, mặt top - Smart home
Hình 4. 1 Mạch in điều khiển thiết bị bằng wifi trong mô hình smart home, mặt top (Trang 39)
Hình 4. 2 Mạch in điều khiển thiết bị bằng wifi trong mô hình smart home, mặt bottom - Smart home
Hình 4. 2 Mạch in điều khiển thiết bị bằng wifi trong mô hình smart home, mặt bottom (Trang 39)
Hình 4. 3 Lưu đồ thuật toán code xử lý cảm biến điện dung - Smart home
Hình 4. 3 Lưu đồ thuật toán code xử lý cảm biến điện dung (Trang 40)
Hình 4. 4 Code sử dụng ngắt ngoài ESP8266 để phát hiện trạm phím - Smart home
Hình 4. 4 Code sử dụng ngắt ngoài ESP8266 để phát hiện trạm phím (Trang 42)
w