Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
9,24 MB
Nội dung
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BỘ MƠN KỸ THUẬT MÁY TÍNH ĐỒ ÁN MƠN HỌC HỆ THỐNG NHÚNG Đề tài : Thiết Kế Hệ thống Cảm Biến Chuyển Động Và ReLay Nhóm sinh viên thực : Vũ Tiến Hoàng - K195520207026 : Phạm Minh Hùng- K195520207028 Lớp : 55ĐVT.01 Giáo viên hướng dẫn : ThS Đỗ Duy Cốp Thái Nguyên – 2022 KHOA ĐIỆN TỬ CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM BỘ MƠN KỸ THUẬT MÁY TÍNH Độc lập - Tự - Hạnh phúc PHIẾU GIAO ĐỀ TÀI ĐỒ ÁN MƠN HỌC HỆ THỐNG NHÚNG Nhóm sinh viên: : Vũ Tiến Hoàng - K195520207026 Phạm Minh Hùng - K195520207028 Lớp: 55ĐVT.01 Ngành: Kỹ Thuật Điện Tử Ngày giao đề: Ngày hoàn thành: Tên đề tài Thiết kế cảm biến chuyển động relay Yêu cầu bước thực 1- Giới thiệu phân tích yêu cầu tốn thiết kế 2- Trình bày tổng quan cơng nghệ 3- Mơ tả cụ thể trình tự bước thiết kế, kết minh họa 4- Kết luận hướng phát triển TRƯỞNG BỘ MÔN GIÁO VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) (Ký ghi rõ họ tên) NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Thái Nguyên, ngày….tháng… năm 2022 GIÁO VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) NHẬN XÉT CỦA GIÁO VIÊN CHẤM ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Thái Nguyên, ngày….tháng… năm 2022 GIÁO VIÊN CHẤM (Ký ghi rõ họ tên) MỤC LỤC CHƯƠNG 1: LÝ THUYẾT TỔNG QUAN 1.1 Khái niệm nhà thông minh 1.2 Cơ sở hình thành hệ thống tắt bật đèn thông minh 10 1.3 Yêu cầu công nghệ hệ thống tắt bật đèn thơng minh 10 1.3.1 Tính tự động 10 1.3.2 Tính thơng minh 11 1.3.3 Tính đơn giản 11 1.3.4 Tính thẩm mỹ 11 1.3.5 Tính thuận tiện 11 CHƯƠNG 2: NỀN TẢNG GIAO TIẾP 12 2.1 Home Assistant 12 2.2 Các tính Home Assitant 13 2.3 Giao thức MQTT 15 2.3.1 MQTT gì? .15 2.3.2 Hoạt động 16 2.3.3 Tính năng, đặc điểm bật 16 2.3.4 Ưu điểm 17 2.3.5 Nhược điểm 17 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 18 3.1 Sơ đồ nguyên lý 18 3.2 Chọn linh kiện 18 3.2.1 Module ESP8266 18 3.2.2 Module Relay 5V 21 3.2.3 Cảm biến chuyển động HC PIR-SR501 21 CHƯƠNG 4: CÀI ĐẶT 24 4.1 Home Assistant 24 4.2 MQTT – Add-on Mosquitto broker .30 4.3 Sơ đồ thuật toán .38 CHƯƠNG 5: KẾT LUẬN 39 5.1 Các kết đạt 39 5.2 Hướng phát triển tài 39 mục lục hình ản đề Hình 1.1 Ảnh minh họa Hình 1.2 Đèn thơng minh thị trường 10 Hình 2.1 Một giao diện quản lý nhà thông minh với Home Assistant 12 Hình 2.2 Giao diện quản lý Home Assistant thân thiện dễ dùng 13 Hình 2.3 Home Assistant kết nối thương hiệu khác để hồn tất tác vụ nhà thơng minh cần thiết 15 Hình 2.4 Sơ đồ hoạt động MQTT Hình 3.1 16 Sơ đồ nguyên lý 18 Hình 3.2 Module ESP8266 18 Hình 3.3 Sơ Đồ Chân NodeMCU ESP8266 19 Hình 3.4 Sơ đồ chân Module Relay 5V kênh 21 Hình 4.1 Sơ đồ thuật tốn 38 LỜI NĨI ĐẦU Ngày nay, việc ứng dụng cho hệ thống nhúng ngày trở nên phổ biến: từ ứng dụng đơn giản điều khiển chốt đèn giao thông định thời, đếm sản phẩm dây chuyền sản xuất, điều khiển tốc độ động điện chiều, thiết kế biển quảng cáo dùng Led ma trận, đồng hồ thời gian thực….đến ứng dụng phức tạp hệ thống điều khiển robot, kiểm soát nhà máy hệ thống kiểm soát máy lượng hạt nhân Các hệ thống tự động trước sử dụng nhiều công nghệ khác hệ thống tự động hoạt động nguyên lý khí nén, thủy lực, rơle điện, mạch điện tử số, thiết bị máy móc tự động cam chốt khí thiết bị, hệ thống có chức xử lý mức độ tự động thấp so với hệ thống tự động đại xây dựng tảng hệ thống nhúng Với mong muốn giới thiệu ứng dụng hệ thống nhúng đời sống đại, nhóm chúng em đưa mơ hình: Thiết Kế Hệ thống Cảm Biến Chuyển Động Và Relay Trong trình thực đồ án mơn học, nhóm chúng em cố gắng thiết kế cho mơ hình đơn giản nhất, ổn định nhất; nhiên vấn đề thời gian kinh nghiệm nên mơ hình cịn gặp phải vấn đề chưa thể khắc phục Chúng em xin chân thành cảm ơn thầy cô tận tình hướng dẫn, bảo chúng em trình thực đồ án CHƯƠNG 1: LÝ THUYẾT TỔNG QUAN 1.1 Khái niệm nhà thông minh Nhà thông minh (tiếng Anh “Smart Home”) hệ thống nhà thông minh nhà/căn hộ trang bị hệ thống tự động tiên tiến dành cho điều khiển đèn chiếu sáng, nhiệt độ, truyền thông đa phương tiện, an ninh, rèm cửa, cửa nhiều tính khác nhằm mục đích làm cho sống ngày tiện nghi, an tồn góp phần sử dụng hợp lý nguồn tài nguyên Nhà thông minh sử dụng thiết bị kết nối Internet để quản lý giám sát thiết bị hệ thống từ xa ánh sáng nhiệt độ Hình 1.1 Ảnh minh họa 10 53 Sau ta tìm đến file “configuration.yaml” Open Notepad++ để cấu hình thực thể Thêm topic trạng thái, cài đặt trạng thái cho thực thể thuộc mqqt Vì file “configuration.yaml” có yaml, liệu file thể dạng ngôn ngữ YAML 54 Tiếp theo, ta thêm thực thể topic tương ứng với thực thể Trong đồ án, em thêm hai thực thể tương ứng module relay 5V cảm biến PIR 501 Với ba dòng “state_topic:”, “command_topic:”, “availability_topic:” tương đương với ba kênh mqtt broker Các giá trị “payload” tương ứng với giá trị “state_topic”, giá trị “state” tương ứng với giá trị “command_topic”, giá trị “payload_available”, “payload_not_available” tương ứng với giá trị “availablility_topic” 55 Sau đó, ta phải check xem cấu hình hay chưa Nếu sai phải sử lại cho sau bấm “Restart” Và chọn “OK” Rồi đợi lúc để server tiến hành việc khởi động lại, Home Assitant sau khởi động lại nhận thiết bị MQTT switch (relay) binary_sensor (PIR 501) vừa thêm vào 56 57 Tiếp theo, ta cần kiểm tra MQTT Broker hoạt động Sử dụng công cụ MQTT Explorer để kiểm cổng 1833 IP MQTT broker hoạt động chưa, kết conneted Mosquitto broker hoạt động Với ô Module IP địa IP máy ảo Home Assistant 4.3 Sơ đồ thuật tốn 58 Hình 4.1 Sơ đồ thuật toán CHƯƠNG 5: KẾT LUẬN 5.1 Các kết đạt - Nắm rõ thực hành kiến thức học môn “Hệ thống nhúng” vào đời sống - Hiểu hệ thống quản lý nhà thông minh Home Assistant tùy biến theo yêu cầu - Hiểu giao thức MQTT, cài đặt thành công client NodeMCU ESP8266 giao tiếp với broker - Hoàn thành sản phẩm tắt bật đèn thông minh sử dụng giao thức MQTT - Sản phẩm cho phép điều khiển chỗ, từ xa qua HassIO SmartPhone, cho phép HassIO tự động điều khiển theo kịch lập sẵn 5.2 Hướng phát triển đề tài - Chế tạo nhiều sản phẩm smarthome sử dụng giao thức MQTT để giao tiếp với HassIO cảm biến nhiệt độ, cảm biến độ ẩm, cảm biến chuyển động, … - Cấu hình thư viện NabuCasa Home Assistant Cloud để giao tiếp với Google Assistant, để điều khiển thiết bị qua qua giọng nói thơng qua trợ lý giọng nói Google - Tìm hiểu giao thức khác sử dụng lượng Zigbee để sử dụng cho cảm biến không dây, sử dụng pin 59 TÀI LIỆU THAM KHẢO [1] Tài liệu HassIO: https://www.home-assistant.io/ [2] Giao thức MQTT: https://mqtt.org/ [3] Add-on Mosquitto broker: https://github.com/homeassistant/addons/tree/master/mosquitto [4] Config MQTT: https://www.home-assistant.io/integrations/mqtt/ [5] MQTT Client Component: https://esphome.io/components/mqtt.html [6] NodeMCU ESP8266: https://esphome.io/devices/nodemcu_esp8266.html [7] Relay: https://randomnerdtutorials.com/guide-for-relay-module-with-arduino/ [8] Arduino IDE: https://www.arduino.cc/en/software [9] Esp8266 board on Arduino: https://github.com/esp8266/Arduino [10] ESP8266WiFi lib on Arduino: https://arduinoesp8266.readthedocs.io/en/latest/ [11] MQTT lib on Arduino: https://github.com/knolleary/pubsubclient 60 Source code ESP8266 //ESP8266 Simple MQTT switch controller #include "PubSubClient.h" #include void callback(char* topic, byte* payload, unsigned int length); void reconnect(); #define MQTT_SERVER "192.168.1.69" //MQTT IP Address #define MQTT_USER "user_mqtt" #define MQTT_PASS "1" #define MQTT_PORT 1883 const char* ssid = "Son Mai"; const char* password = "0912002581"; //Pin In ESP8266 const int sensorPin = const int switchPin = const int buttonPin = const int switchPin_2 unsigned char onoff = D1; D2; D6; = D5; 0; // Trạng thái đèn cửa //topic switch_1 Đèn cầu thang char const* switchStateTopic = "/home/switch1/status"; char const* avaiSwitchTopic = "/home/bedroom/switch1/available"; //topic switch_2 Đèn cửa char const* switchStateTopic_2 = "/home/switch2/status"; char const* avaiSwitchTopic_2 = "/home/stair/switch2/available"; //topic sensor Sensor char const* sensorStateTopic = "/home/sensor_pir/status"; char const* avaiSensorTopic = "/home/sensor_pir/available"; //Topic Light HomeAssistant char const* Topic2 = "inLight"; WiFiClient wifiClient; PubSubClient client(MQTT_SERVER, MQTT_PORT, wifiClient); //Gui Gia Tri Payload to MQTT Home Assistant void mqtt_send(char const* topic, char* msg){ 61 Serial.print("MQTT_Send to topic "); Serial.print(topic); Serial.print(" msg: "); Serial.println(msg); client.publish(topic, msg); } // Doc gia tri tu MQTT Home Assistant void mqtt_subscribe(char const* topic){ Serial.print("MQTT subscribe to "); Serial.println(topic); //Serial.println(msg); client.subscribe(topic); } // Bật đèn cửa void switch_on() { digitalWrite(switchPin_2, HIGH); Serial.println("BAT DEN"); mqtt_send(switchStateTopic_2, "on"); } // Tắt đèn cửa void switch_off() { digitalWrite(switchPin_2, LOW); Serial.println("TAT DEN"); mqtt_send(switchStateTopic_2, "off"); } void setup() { //initialize pinMode(switchPin, OUTPUT); // Relay Switch pinMode(buttonPin, INPUT); // button by hand pinMode(sensorPin, INPUT); // SR501 - PIR sensor pinMode(switchPin_2, OUTPUT); client.setCallback(callback); //LOW=off led-buidin digitalWrite(switchPin, LOW); digitalWrite(buttonPin, LOW); digitalWrite(switchPin_2, LOW); // Mở cổng Serial Serial.begin(115200); delay(100); //Kết nối với Wifi 62 WiFi.begin(ssid, password); // Kết nối với mạng WIFI kết nối với máy ch ủ MQTT reconnect(); //Đợi chút trước bắt đầu vòng l ặp delay(2000); } void loop() { // Kết nối lại kết nối if (!client.connected() && WiFi.status() == 3) { reconnect(); } // Duy trì kết n ối MQTT client.loop(); if(digitalRead(sensorPin) == HIGH) { digitalWrite(switchPin, HIGH); //Relay cho dòng qua mqtt_send(sensorStateTopic, "on"); mqtt_send(switchStateTopic, "on"); } else { digitalWrite(switchPin, LOW); //Relay khơng cho dịng qua mqtt_send(sensorStateTopic, "off"); mqtt_send(switchStateTopic, "off"); } // Kiểm tra chân nút nhấn mức cao(tức nút đ ược nh ấn) if (digitalRead(buttonPin) == HIGH) { // Kiểm tra lại sau 10ms delay(10); // Nếu chân nút nhấn chắn m ức cao if (digitalRead(buttonPin) == HIGH) { // Nếu onoff = if (onoff == 0) { // Đảo trạng thái thành onoff = onoff = 1; // Xuất đèn LED mức cao (Bật LED) switch_on(); // Gửi "1" lên Home Assistant cập nh ật tr ạng thái b ấm nút mqtt_send("inLight", "1"); // Ngược lại 63 } else { // Đảo trạng thái thành onoff = onoff = 0; mqtt_send("inLight", "0"); // Xuất đèn LED mức thấp (T LED) switch_off(); } } // Nếu chân nút nhấn mức cao dừng // Chờ đến nút nhấn đ ược thả while (digitalRead(buttonPin) == HIGH); } if(!client.connected() && WiFi.status() == 3) reconnect(); else client.loop(); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.println("] = "); for (int i=0;i