1. Trang chủ
  2. » Luận Văn - Báo Cáo

Điều khiển hệ thống iot bằng giọng nói

67 5 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

Định dạng
Số trang 67
Dung lượng 6,16 MB
File đính kèm IoT voice.zip (6 MB)

Nội dung

Điều khiển hệ thống IoT bằng giọng nói GVHD Th s Nguyễn Thành Thái BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN HOÀNG GIANG TRẦN VĂN SANG ĐIỀU KHIỂN HỆ THỐNG IOT BẰ.

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM KHOA CÔNG NGHỆ THÔNG TIN - NGUYỄN HOÀNG GIANG TRẦN VĂN SANG ĐIỀU KHIỂN HỆ THỐNG IOT BẰNG GIỌNG NĨI Ngành: Cơng Nghệ Thông Tin Giảng viên hướng dẫn: Th.S Nguyễn Thành Thái TP HỒ CHÍ MINH, Tháng 12 Năm 2022 INDUSTRIAL UNIVERSITY OF HO CHI MINH CITY FALCUTY OF INFORMATION TECHNOLOGY Nguyen Hoang Giang Tran Van Sang CONTROL THE IOT SYSTEM BY VOICE Major: Information Technology Instructor: MS Nguyen Thanh Thai HO CHI MINH CITY, DECEMBER 2022 ABSTRACT In recent years, the explosion of the internet of things (IoT) in the industrial revolution 4.0 has resulted in many new technologies being developed that have had far-reaching impacts on life, production, education education creates many new jobs, new technologies contribute to the development of all aspects of society That has created great opportunities and challenges for us, in order to keep up with the development of the times, we must promptly grasp this change so as not to be left behind and keep up with the rapid development speed of technology In this report, a voice control IoT system is developed where the users can remotely access the home appliances The users can merely provide voice commands or text messages through which they will be able to turn the appliances ON or OFF depending upon the necessity With the above thoughts and with the guidance of Mr Nguyen Thanh Thai, the group decided to choose the topic "Control the IoT system by voice" LỜI CẢM ƠN Đề tài kết trình học tập rèn luyện nhóm Khoa Cơng nghệ cơng tin, Trường Đại học Công nghiệp TP.HCM Để thực thành công đề tài này, chúng em xin chân thành cảm ơn đến quý thầy, cô Khoa Công nghệ thông tin rèn luyện, truyền đạt kiến thức kinh nghiệm quý báu cho chúng em suốt trình học tập giúp đỡ chúng em hoàn thành đề tài khóa luận Đặc biệt, nhóm em xin gửi lời cảm ơn chân thành đến Thầy Nguyễn Thành Thái tận tình hướng dẫn nhóm, góp ý tạo điều kiện kiến thức, hỗ trợ tài liệu để nhóm hồn thành đề tài nghiên cứu Do thời gian thực hạn chế khó khăn việc vừa học vừa làm nên q trình thực nhóm khơng tránh khỏi thiếu xót, hạn chế Kính mong nhận góp ý q thầy, để đề tài nhóm ngày hồn thiện tương lai Nhóm chúng em xin chân thành cảm ơn TP Hồ Chí Minh, ngày tháng 12 năm 2022 Nhóm sinh viên thực Nguyễn Hoàng Giang Trần Văn Sang NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Phần đánh giá: (thang điểm 10) - Thái độ thực hiện: Nội dung thực hiện: Kỹ trình bày: Tổng hợp kết quả: Điểm số: …… … Điểm chữ: TP Hồ Chí Minh, ngày … tháng 12 năm 2022 Giáo viên hướng dẫn Th.s Nguyễn Thành Thái NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN TP Hồ Chí Minh, ngày … tháng 12 năm 2022 Giảng viên phản biện NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN TP Hồ Chí Minh, ngày … tháng 12 năm 2022 Giảng viên phản biện MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC TỪ VIẾT TẮT IoT Internet of Things: API Application Programming Interface VNC Virtual Network Computing FRD Firebase Realtime Database JSON JavaScript Object Notation REST Representational State Transfer HTTP HyperText Transfer Protocol 10 Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái Hình 4.15 Push data lên database SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái CHƯƠNG 5: KẾT LUẬN 5.1 Kết đạt Điều khiển thiết bị giọng nói thơng qua Google Assistant: kết hợp dialogflow firebase thơng qua web hook Hình 5.1 Voice Assistant thiết bị di động SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái Sử dụng giọng nói để điều khiển thiết bị điện thoại thơng minh: Hình 5.2 Thiết bị hoạt động sau dùng voice điều khiển Data lưu vào firebase data theo thời gian thực: Hình 5.3 Data push sau điều khiển thiết bị SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái Website: IOT viết tảng Reactjs: điều khiển giám sát data thiết bị trả từ firebase tích hợp với voice control Hình 5.4 Giao diện web app viết reatjs 5.2 Hạn chế đề tài hướng phát triển Hạn chế đề tài: - Chưa điều khiển tiếng việt - Chức hệ thống hạn chế, chưa phong phú - Cịn phụ thuộc vào Firebase Realtime Database, chưa tích hợp database thơng dụng mà cịn phụ thuộc vào tảng cloud Hướng phát triển: - Tiếp tục traing cho AI Google hiểu từ điều khiển phức tạp - Phát triển hệ thống thông minh: Dựa tần suất thời gian sử dụng thiết bị mà phát triển hệ thống cách tự động hóa thơng minh - Tích hợp thêm nhiều thiết bị phức tạp sử dụng tự động cảm biến để thơng minh SVTH: Nguyễn Hồng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái TÀI LIỆU THAM KHẢO Tiếng Việt [1].https://daihancorp.com/blogs/tin-tuc/internet-of-things-va-nhung-van-dethach-thuc-an-ninh-thong-tin [2] https://securitydaily.net/internet-of-things-iot-la-gi/ [3].https://vi.wikipedia.org/wiki/Internet_V%E1%BA%A1n_V%E1%BA %ADt#cite_note-Definition-IoT-26 [4].https://vi.wikipedia.org/wiki/Raspberry_Pi_OS [5].https://openplanning.net/11385/gioi-thieu-ve-python [6].https://itnavi.com.vn/blog/nodejs-la-gi/? [7].https://vi.wikipedia.org/wiki/Tr%E1%BB%A3_l%C3%BD_Google Tiếng Anh [8].https://firebase.google.com/docs/functions/get-started [9].https://firebase.google.com/docs/web/setup [10].https://www.raspberrypi.org/products/raspberry-pi-4-modelb/specifications/ [11].https://ckeditor.com/docs/cs/latest/examples/webhooks/webhooks-servernodejs.html/ [12].https://makezine.com/projects/use-raspberry-pi-for-voice-control/ [13].https://IoT-analytics.com/5-things-know-about-IoT-platform SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái PHỤ LỤC Phụ lục 1: Khảo sát người dùng Yêu cầu người dùng Phân tích yêu cầu - Hệ thống gồm: Thiết bị thông minh: Hệ thống bao gồm thành Điện thoại, máy tính, Dialogflow, phần nào? Fulfillment, Raspberry thiết bị điện Dữ liệu đầu vào hệ thống ? Dữ liệu hệ thống lưu đâu ? Hệ thống bao gồm chức ? Ngồi thiết bị di động hệ thống điều khiển thiết bị cách khác khơng? Hệ thống sử dụng ngơn ngữ để điều khiển thiết bị ? Hệ thống có chức dự đoán nhiệt độ đưa gợi ý cho người dùng không ? Hệ thống tiếp nhận yêu cầu phản hồi lại thời gian ? - Input sử dụng giọng nói nhận từ Voice Assistant thiết bị thông minh văn nhập vào Có thể điều khiển web app - Dữ liệu hệ thống lưu trữ tảng Firebase Realtime Database, cập nhật theo thời gian thực với độ trễ ngắn - Chuyển đổi từ giọng nói để sang hành động để điều khiển thiết bị - Thu thập hiển thị số nhiệt độ, độ ẩm từ Raspberry pi gửi vào firebase - Ngoài sử dụng thiết bị thơng minh cịn điều khiển thông qua web app viết Reactjs - Do mặt hạn chế đề tài nên người dùng sử dụng ngôn ngữ tiếng anh để điều khiển thiết bị - Hệ thống tạm dừng mức nghiên cứu nên chưa có chức dự đoán đưa gợi ý cho người dùng tương lai nhóm cố gắng hồn thiện sớm cập nhật chức - Do liệu hệ thống lưu trữ theo thời gian thực nên thời gian phản hồi yêu cầu người dùng nhanh, sau tiếp nhận yêu cầu Phụ lục 2: Đánh giá khảo sát Qua việc khảo sát yêu cầu người dùng hệ thống IoT kết hợp điều khiển thiết bị thông minh cho thấy: - Hệ thống đáp ứng phần cầu người dùng hạn chế nhiều mặt: thiếu thiết bị, hạn chế vấn đề sử dụng ngơn ngữ tự nhiên,… SVTH: Nguyễn Hồng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái - Người dùng mong muốn thêm hệ thống an ninh gia đình khóa cửa, camera an ninh máy phát rị nước phát ngăn chặn mối nguy hiểm, đồng thời gửi cảnh báo tới chủ nhà - Trong tương lai, nhóm phát triển thêm nhiều chức cho hệ thống dự đốn thơng tin thời tiết đưa gợi ý cho người dùng, tự động điều khiển hoạt động thiết bị dựa thói quen người dùng, cập nhật ứng dụng nói tiếng Việt điện thoại… SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái NHẬT KÝ LÀM VIỆC Tuần Từ Ngày Đến ngày 13/08/2022 20/08/2022 20/08/2022 30/08/2022 05/09/2022 10/09/2022 Nội dung thực Liên hệ giáo viên hướng dẫn xác định đề tài thực thiện Xin hướng dẫn cụ thể từ giảng viên hướng dẫn đề tài Lên Mơ hình ý tưởng chi tiết, tìm kiếm tham khảo tài liệu Lên Kế hoạch mua sắm thiết bị, 11/09/2022 22/09/2022 test thiết bị Tham khảo ý kiến người dùng Tìm hiểu cách thức hoạt động, 24/09/2022 30/09/2022 giao tiếp, truyền liệu thành phần hệ thống: Raspberry, Sensor,… Cài đặt thư viện, tìm hiểu ngôn 01/10/2022 10/10/2022 11/10/2022 18/10/2022 18/10/2022 25/10/2022 26/10/2022 01/11/2022 02/11/2022 04/11/2022 10 11 05/11/2022 07/11/2022 ngữ Python, Diglow, Actions Google Viết chương trình xử lý liệu từ thiết bị sensor Dựng Mơ hình hệ thống VIết chương trình xử lý hành động từ dialogflow Traning dialogflow actions google, viết wed hook Tạo data: Realtime Database Firebase Và viết kết nối database từ actions google đến với cloud kết nối 12 08/11/2022 10/11/2022 database từ raspberry Hoàn thiện mơ hình kết hợp web app viết reactjs để hiển SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái thị thơng tin điều khiển nhiệt độ thu thập Tiếp tục hồn thiện mơ hình sửa 13 10/11/2022 16/11/2022 lỗi cịn tồn động Viết báo cáo khóa luận nộp báo cáo tiến độ cho GVHD SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái CHƯƠNG TRÌNH/CODE Code python Raspberrry: #DHT11 import RPi.GPIO as GPIO import pyrebase from time import sleep from datetime import datetime import board import adafruit_dht import psutil config = { "apiKey" : "AIzaSyCv49tXi0UC27uLzyUnqTV9c1bOWVWHrVE" , "authDomain" : "controldevices-f56de.firebaseapp.com" , "databaseURL":"https://controldevices-f56de-defaultrtdb.firebaseio.com" , "projectId" : "controldevices-f56de" , "storageBucket" : "controldevices-f56de.appspot.com" , "messagingSenderId" : "66509810211" , "appId" : "1:66509810211:web:264cf827d071b72ba19f96" , "measurementId" : "G-RLQBYK07SG" } firebase = pyrebase.initialize_app(config) #DHT11 # We first check if a libgpiod process is running If yes, we kill it! for proc in psutil.process_iter(): if proc.name() == 'libgpiod_pulsein' or proc.name() == 'libgpiod_pulsei': proc.kill() sensor = adafruit_dht.DHT11(board.D23) row = 0; try while True: # Bucle principal database = firebase.database() ProjectBucket = database.child("devices") try: temp = sensor.temperature humidity = sensor.humidity now = datetime.now() # dd/mm/YY H:M:S dt_string = now.strftime("%d-%m-%Y %H:%M:%S") data = dt_string + (" Temperature: {}*C Humidity: {}% ".format(temp, humidity)); print(data) SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái except RuntimeError as error: data = str(error.args[0]) sleep(3.0) continue except Exception as error: sensor.exit() raise error sleep(3.0) database.child("device4").set(data); except KeyboardInterrupt: # Salir CTRL+C print("Salida.") GPIO.cleanup() # Limpiar GPIO import RPi.GPIO as GPIO import pyrebase from time import sleep from datetime import datetime import board #import adafruit_dht import psutil config = { "apiKey" : "AIzaSyCv49tXi0UC27uLzyUnqTV9c1bOWVWHrVE" , "authDomain" : "controldevices-f56de.firebaseapp.com" , "databaseURL" : "https://controldevices-f56de-defaultrtdb.firebaseio.com" , "projectId" : "controldevices-f56de" , "storageBucket" : "controldevices-f56de.appspot.com" , "messagingSenderId" : "66509810211" , "appId" : "1:66509810211:web:264cf827d071b72ba19f96" , "measurementId" : "G-RLQBYK07SG" } firebase = pyrebase.initialize_app(config) LedPin = 18 Fan = 24 servoPIN = 25 # pin11 GPIO.setmode(GPIO.BCM) # Numbers GPIOs by physical location GPIO.setup(LedPin, GPIO.OUT) GPIO.setup(Fan, GPIO.OUT) GPIO.setup(servoPIN, GPIO.OUT) SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GPIO.output(LedPin, GPIO.HIGH) GVHD: Th.s Nguyễn Thành Thái # Set LedPin high(+3.3V) to turn on led) p = GPIO.PWM(servoPIN, 50) # GPIO 17 for PWM with 50Hz p.start(2) oldDoor = False row = 0; try: while True: # Bucle principal database = firebase.database() ProjectBucket = database.child("devices") # control led estadoLED = ProjectBucket.child("device1").get().val() if estadoLED: GPIO.output(LedPin, GPIO.HIGH); # led on else: GPIO.output(LedPin, GPIO.LOW); # led off # control fan ProjectBucket2 = database.child("devices") estadoFan = ProjectBucket2.child("device2").get().val() #print(estadoFan) if estadoFan: GPIO.output(Fan, GPIO.HIGH); # fan on else: GPIO.output(Fan, GPIO.LOW); # fan off # control fan ProjectBucket3 = database.child("devices") estadoDoor = ProjectBucket3.child("device3").get().val() #print(estadoDoor) if oldDoor != estadoDoor: p.start(2) p.ChangeDutyCycle(2) else: p.start(7) p.ChangeDutyCycle(8) # oldDoor = estadoDoor # p.stop() except KeyboardInterrupt: print("Salida.") # Salir CTRL+C SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói p.stop() GPIO.cleanup() GVHD: Th.s Nguyễn Thành Thái # Limpiar GPIO Code web hook: const express = require('express') const bodyParser = require('body-parser') const {WebhookClient} = require('dialogflow-fulfillment'); const firebase = require('firebase') const firebaseConfig = { apiKey: "AIzaSyCv49tXi0UC27uLzyUnqTV9c1bOWVWHrVE", authDomain: "controldevices-f56de.firebaseapp.com", projectId: "controldevices-f56de", storageBucket: "controldevices-f56de.appspot.com", messagingSenderId: "66509810211", appId: "1:66509810211:web:264cf827d071b72ba19f96", measurementId: "G-RLQBYK07SG" }; firebase.initializeApp(firebaseConfig) let database = firebase.database() const app = express() app.use(bodyParser.json()) const port = process.env.PORT || 3000 app.post('/dialogflow-fulfillment', (request, response) => { dialogflowFulfillment(request, response) }) app.listen(port, () => { console.log(`Listening on port ${port}`) }) const dialogflowFulfillment = (request, response) => { const agent = new WebhookClient({request, response}) function sayHello(agent){ agent.add("Hello, Sang") } function turnonled(agent){ database.ref('devices/device1').set(true); agent.add("the light already turn on"); } function turnoffled(agent){ database.ref('devices/device1').set(false); agent.add("the light already turn off"); } function turnonfan(agent){ database.ref('devices/device2').set(true); SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái agent.add("the fan already turn on"); } function turnofffan(agent){ database.ref('devices/device2').set(false); agent.add("the fan already turn off"); } function turnondoor(agent){ database.ref('devices/device3').set(true); agent.add("the door already turn on"); } function turnoffdoor(agent){ database.ref('devices/device3').set(false); agent.add("the door already turn off"); } function getDHT(agent){ //database.ref('devices/device4').set(false); return database.ref('devices/device4').once('value') then(function(snapshot) { let data =snapshot.val(); agent.add(`${data}`) }) } let intentMap = new Map(); intentMap.set("Default Welcome Intent", sayHello); intentMap.set("turnonled", turnonled); intentMap.set("turnoffled", turnoffled); intentMap.set("turnonfan", turnonfan); intentMap.set("turnofffan", turnofffan); intentMap.set("turnondoor", turnondoor); intentMap.set("turnoffdoor", turnoffdoor); intentMap.set("dht", getDHT); agent.handleRequest(intentMap);} SVTH: Nguyễn Hoàng Giang – 20126571 Trần Văn Sang – 20126541 Trang ... nghiên cứu Đề tài ? ?Điều khiển hệ thống IOT giọng nói? ?? mục tiêu đề tài tạo hệ thống Voice Assistant sử dụng hệ thống IoT tích hợp với cơng nghệ có để điều khiển thiết bị giọng nói điện thoại thông... Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái Tiến hành báo cáo đồ án tốt nghiệp 1.4 Giới hạn Xây dựng hệ thống IOT điều khiển giọng nói với quy mơ nhỏ với cơng nghệ có... Trần Văn Sang – 20126541 Trang Điều khiển hệ thống IoT giọng nói GVHD: Th.s Nguyễn Thành Thái 3.1.4 Hệ điều hành Raspbian Hình 3.4 Hệ điều hành Raspbian Raspbian hệ điều hành máy tính dựa Debian

Ngày đăng: 09/12/2022, 15:29

w