HƢỚNG PHÁT TRIỂN

Một phần của tài liệu Điều khiển thiết bị điện thông qua trợ lý ảo google assistant 50 (Trang 84 - 121)

- -

Tạo ra phần mềm có thể chạy trên hệ điều hành IOS Có thể điều khiển bằng trợ lí ảo Siri

CHƢƠNG 6 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

- -

Thiết kế thiết bị đèn nhỏ gọn hơn Thiết kế mạch bắt Wifi tốt hơn

TÀI LIỆU THAM KHẢO

TÀI LIỆU THAM KHẢO

Tiếng việt

[1] Huỳnh Đoàn Bảo Duy, chủ đề “tìm hiểu về hệ điều hành android” trong mục “kinh nghiệm hay” từ trang web , “dienmayxanh com” năm 2015

[2] Trang web , “vtcacademy edu vn” trong mục “tin tức”với chủ đề “nhận diện 5 lợi ích của của Firebase”

[3] Trang web , “smartshop vn” trong mục “tin tức công nghệ” với chủ đề “ tìm hiểu công nghệ thu phát sóng wifi” ngày 28 tháng 7 năm 2015

Sách tham khảo

[4] Trần Thị Hà,Trƣơng Thị Bích Ngà, Nguyễn Thị Lƣỡng,…Giáo trình: Điện tử

cơ bản, Xuất bản: Đại học Quốc gia Tp HCM, 2013

[5] Nguyễn Văn Hiệp – Đinh Quang Hiệp, “Lập trình android cơ bản ”, Nhà xuất bản ĐH Quốc Gia, Tp HCM, 2015

Tiếng anh

[6] Datasheet ESP8266 12EX [7] Datasheet OptoPC817 [8] Datasheet IRF830 [9] Datasheet DHT11 [10] Datasheet PIR AM312

PHỤ LỤC

PHỤ LỤC

 GIỚI THIỆU TỔNG QUAN VỀ PHẦN CỨNG  Thiết bị đầu vào

a Cảm biến DHT11 [9]

DHT11 Là cảm biến nhiệt độ, độ ẩm rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1-wire ( giao tiếp digital 1-wire truyền dữ liệu duy nhất) Cảm biến đƣợc tích hợp bộ tiền xử lý tín hiệu giúp dữ liệu nhận về đƣợc chính xác mà không cần phải qua bất kỳ tính toán nào

• Đặc điểm: o o o o o Điện áp hoạt động : 3V - 5V (DC)

Dải độ ẩm hoạt động : 20% - 90% RH, sai số ±5%RH Dải nhiệt độ hoạt động : 0°C ~ 50°C, sai số ±2°C Tần số lấy mẫu tối đa: 1 Hz

Khoảng cách truyền tối đa: 20m

• Sơ đồ chân Cảm biến DHT11 gồm 2 chân cấp nguồn, và 1 chân tín hiệu Hiện nay, thông dụng ngoài thị trƣờng có hai loại đóng gói cho DHT11: 3 chân và 4 chân Xem các hình dƣới

PHỤ LỤC

b Module cảm biến chuyển động PIR AM312 [10]

Cảm biến thân nhiệt chuyển động PIR (Passive infrared sensor) PIR

AM312 đƣợ c s ử dụng để phát hi ệ n chuy ển động c ủa các vậ t th ể phát ra b ức x ạ hồng ngo ại (con ngƣờ i, con vậ t, các vậ t phát nhi ệ t)

Hình 7 2 Module cảm biến PIR AM312 (adsbygoogle = window.adsbygoogle || []).push({});

o Thông số kỹ thuật: - - - - - - - Điện áp làm việc: DC 2 7-12V Tiêu thụ điện : <0,1mA

Thời gian trễ: 2 giây Thời gian chặn: 2 giây

Kích hoạt: có thể đƣợc lặp đi lặp lại

Phạm vi cảm biến: 3 mét, góc hình nón ≤100 độ Nhiệt độ làm việc: -20 - + 60oC

 Thiết bị điều khiển trung tâm

o Mạch wifi ESP8266 ESP- 12 E NodeMCU [6]

ESP8266 ESP - 12E NodeMCU là module truyền nhận WiFi sử dụng chip ESP8266EX SoC (System on Chip), với lõi vi xử lý 32 bit hoạt động

PHỤ LỤC

Chúng ta có thể dùng nó để đƣa những dự án kết nối đến Internet Đơn giản nó sử dụng ngõ giao thức nối tiếp với tốc độ Baud 9600(mặc định) Kết nối mạng không dây, giống nhƣ một máy chủ hoặc một cầu nối trung gian

Hình 7 3 Chip ESP8266EX

o Tính năng của Chip ESP8266EX

• Hổ trợ 3 chuẩn 802 11 b /g/n

• Tích hợp MCU 32 it có công suất thấp

• Tích hợp10-bit ADC

• Tích hợp chuẩn giao thức TCP/IP

• Tích hợp TR switch, alun, LNA, khuếch đại công suất và mạng lƣới

• Hỗ trợ anten thu sóng

• WiFi 2 4 GHz, hổ trợ chuẩn ảo mật WPA/WPA2

• Hỗ trợ các chế độ STA/AP/STA+AP

• SDIO 2 0, (H) SPI, UART, I2C, I2S, IR Remote Control, PWM, GPIO

• STBC, 1x1 MIMO, 2x1 MIMO

• Chế độ tiết kiệm năng lƣợng <10uA, Dòng rò khi ở chế độ nghỉ < 5uA

• Thời gian đánh thức đến khi truyền gói tin là < 2ms

• Công suất tiêu thụ ở chế độ (DTIM3)< 1 0mW

• Ở chế độ 802 11 POUT +20dBm

• Nhiệt độ hoạt động -40C ~ 125C o Ứng dụng chính

• Những ứng dụng IoT chính bao gồm:

PHỤ LỤC

• Nhà tự động

• Ổ cắm thông minh và đèn thông minh (adsbygoogle = window.adsbygoogle || []).push({});

• Mạng lƣới mạng internet

• Điều khiển không dây trong công nghiệp

o Chức năng từng chân chip ESP8266 ESP - 12E NodeMCU

Hình 7 4 Sơ đồ chân mạch ESP8266 ESP – 12E NodeMCU

Bảng 7 1 Bảng chức năng từng chân mạch ESP8266 ESP – 12E NodeMCU

Chân Tên chân Thể loại Chức năng

1 EXT –RSTB I Thiết lập lại tín hiệu ( khi điện áp xuống mức thấp) 2 ADC I Đọc điện áp ngõ vào

3 EN I Cho phép chip hoạt động khi mức cao 4 GPIO15 I/O GPIO15, HSPI_CS, UART0_RTS 5 GPIO14 I/O GPIO14, HSPI_CLK

6 GPIO12 I/O GPIO12, HSPI_MISO

7 GPIO13 I/O GPIO13; HSPI_MOSI; UART0_CTS 8 VCC P Cấp nguồn 3V3 cho chip

9 CS0 I/O Kết nối tới SD_CMD (Series R: 200Ω); SPI_CS0; GPIO11

10 MISO I/O Kết nối tới SD_D0 (Series R: 200Ω); SPI_MSIO; GPIO7

PHỤ LỤC

Bảng 7 2 Bảng thông số của chip ESP8266EX

Danh mục Tiêu chí Giá trị

Thông số wifi Chứng chỉ FCC/CE/TELEC/SRRC Giao thức Wifi 802 11 b/g/n Tần số 2 4G-2 5G (2400M-2483 5M) Tx 802 11 b: + 20 dBm 802 11 g: +17 dBm 802 11 n: +14 dBm Rx 802 11 b: -91 dbm (11 Mbps) 802 11 g: -75 dbm (54 Mbps) 802 11 n: -72 dbm (MCS7) Loại Anten PCB Trace, External, IPEX Connector,Ceramic Chip

Bus Ngoại vi

UART/SDIO/SPI/I2C/I2S

GPIO/PWM 12 GPIO10 I/O Kết nối tới SD_D3 (Series R: 200Ω); SPIWP;

HSPIWP; GPIO10

13 GPIO8 I/O Kết nối tới SD_D1 (Series R: 200Ω); SPI_MOSI; GPIO8

14 GPIO6 I/O Kết nối tới SD_CLK (Series R: 200Ω); SPI_CLK; GPIO6

15 GND P Nối GND cho chip

16 GPIO15 I/O GPIO15; HSPI_CS; UART0_RTS

17 GPIO2 I/O Kết nối UART Tx trong quá trình nạp chƣơng trình ; GPIO2

18 GPIO0 I/O GPIO0; SPI_CS2

19 GPIO4 I/O GPIO4

20 GPIO5 I/O GPIO5

21 GPIO3 I/O Kết nối UART Rx trong quá trình nạp chƣơng trình ; GPIO3

22 GPIO1 I/O Kết nối UART Tx trong quá trình nạp chƣơng GPIO1; SPI_CS1 (adsbygoogle = window.adsbygoogle || []).push({});

PHỤ LỤC Điện áp hoat động Dòng điện tiêu thụ WiFi mode Bảo mật Mã hóa Software Development Giao thức mạng hổ trợ 3 0~3 6V Trung bình 80mA station/softAP/SoftAP+station WPA/WPA2 WEP/TKIP/AES

Supports Cloud Server Development / SDK for custom firmware developmen

IPv4, TCP/UDP/HTTP/FTP

o Tổ chức bộ nhớ trong chip ESP8266EX

ESP8266EX WiFi SoC đƣợc nhúng vào một bộ điều khiển bộ nhớ, bao gồm SRAM và ROM MCU có thể truy cập vào bộ nhớ thông qua đƣờng iBUS, dBUS, và AHB Tất cả các thành phần trong bộ nhớ đã đƣợc truy cập thì sẽ đƣợc quyết định bởi bộ nhớ trung tâm, bộ nhớ này sẽ cho phép trình tự hoạt động của bộ nhớ theo thời gian khi nhận đƣợc yêu cầu từ bộ vi xử lý

Phiên bản này cung cấp dung lƣợng SRAM nhƣ sau:

Kích thƣớc RAM <36kB, có nghĩa rằng khi ESP8266EX đang làm việc theo chế độ kết nối với router, không gian lập trình truy cập cho ngƣời dùng là khoảng 36kB )

Không có ROM chƣơng trình trong SoC, do đó chƣơng trình sử dụng trong ROM phải đƣợc lƣu trữ trong SPI flash (trong SPI flash này cho phép ta lƣu trữ đƣợc 16MB)

o Bộ điều chế xung PWM

Chip ESP8266EX hổ trợ cho chúng ta 4 ngõ ra PWM theo mạch ESP8266 ESP – 12E NodeMCU nhƣ sau:

Bảng 7 3 Bảng các chân pwm của mạch ESP8266 ESP-12E NodeMCU

Số chân Tên chân Ngõ I/O Tên chức năng

PHỤ LỤC

PWM đƣợc tạo ra bởi chƣơng trình do chúng ta viết trong chip

ESP8266EX Ví dụ, điều khiển ánh sáng đèn LED, thì PWM đƣợc thực hiện bởi sự đóng ngắt ngõ ra điện áp theo thời gian, thời gian tối thiểu tới 44 ns dải tần số PWM có thể điều chỉnh từ 1000 us cho tới 10000 us hay giữa 100Hz và 1KHz

 Thiết bị đầu ra a Opto PC817 [7]

Opto PC817 là cách ly quang (hay còn gọi là OPTO) là một linh kiện bán dẫn cấu tạo gồm 1 bộ phát quang và một cảm biến quang tích hợp trong 1 khối bán

dẫn, bộ phát quang là 1 diode phát quang dùng để phát ra ánh sáng kích cho các cảm biến quang dẫn, còn cảm biến quang là phototran

Hình 7 5 Opto PC817

Opto PC817 đƣợc dùng để cách ly gi ữa các kh ối chênh l ệ ch nhau về điệ n hay công su ất nhƣ khối có công su ấ t nh ỏ vớ i kh ối điệ n áp l ớ n Ho ặ c có th ể dùng để chố ng nhi ễ u cho các mạ ch c ầ u H, ngỏ ra PLC, ch ống nhi ể u cho các thi ế t b ị đo lƣờ ng

Thông số kỹ thuật

• IF = 50mA

• VR = 6V

5 GPIO14 I/O PWM2

PHỤ LỤC • P = 70mW • PC = 150mW • IC = 50mA • VCEO = 35V • VECO = 6V • Nhiệt độ: -30 ~ 100 độ C b Mosfet IRF830 [8]

Mosfet IRF830 là Transistor hiệu ứng trƣờng là một Transistor đặc biệt có cấu tạo và hoạt động khác với Transistor thông thƣờng Mosfet thƣờng có công suất lớn hơn rất nhiều so với BJT, Mosfet IRF830 có công suất là 125W

Hình 7 6 Mosfet IRF830

• G: Gate gọi là cực cổng

• D: Drain gọi là cực máng

• S: Source gọi là cực nguồn (adsbygoogle = window.adsbygoogle || []).push({});

Mosfet IRF830 có nguyên tắc hoạt động dựa trên hiệu ứng từ trƣờng để tạo ra dòng điện, là linh kiện có trở kháng đầu vào rất lớn, khi điện áp chân kích cực VGS > 0 thì giá trị điện trở giảm xuống cho dòng điện ID thoát xuống S, dòng điện chạy từ D xuống S

PHỤ LỤC

• Điện áp VGS = +/-20V

• Dòng chịu đựng trung bình là 5 9A

• Nhiệt độ hoạt động: -55oC ~ 175oC

• Công suất: 125W c Led bulb 30W

Là loại led có nguồn sáng chất rắn, hiệu suất cao, có độ bền cao, không chứa thủy ngân và hóa chất độc hại, không phát ra tia tử ngoại, an toàn cho ngƣời sử

dụng và thân thiện môi trƣờng

 PHẦN MỀM VIẾT CHƢƠNG TRÌNH  Giới thiệu phần mềm lập trình

Nhóm chúng em sử dụng phần mềm lập trình Arduino IDE để lập trình cho mạch vi điều khiển ESP8266 ESP-12E NodeMCU

Phần mềm Arduino IDE đang đƣợc sử dụng rất rộng rãi trên thế giới để lập trình cho các mạch Arduino, phần mềm đƣợc thiết kế rất dễ dàng cho ngƣời sử dụng kể cả những ngƣời không chuyên về lập trình về các vi điều khiển cũng dễ dàng tiếp cận và lập trình đƣợc, dựa trên thƣ viện nguồn mở nên rất dễ trong việc tìm kiếm tài liệu và các chƣơng trình liên quan, giúp ngƣời sử dụng có thể dễ dàng tạo ra các dự án của riêng mình mà cũng không cần quá am hiểu về phần cứng của vi điều khiển Ngôn ngữ sử dụng để lập trình là ngôn ngữ C và ngôn ngữ C++

Các ƣớc sử dụng phần mềm lập trình Arduino IDE để lập trình: Tải phần mềm và mở phần mềm

Để sử dụng đƣợc chƣơng trình lập trình chúng ta tiến hành tải phần mềm từ trang web: arduino cc

Nhóm chúng em sử dụng phần mềm để lập trình cho mạch vi điều khiển ESP8266 ESP-12E NodeMCU nên nhóm em lựa chọn phiên bản Arduino IDE 1 8 8 hoặc cao hơn và cụ thể là phiên bản Arduino IDE 1 8 8

Sau khi tải phần mềm về thành công, mở phần mềm và phần mềm sẽ xuất hiện giao diện nhƣ hình và chúng ta có thể tiến hành lập trình

PHỤ LỤC

Hình 7 7 Giao diện phần mềm Arduino IDE

• Tạo project, viết chƣơng trình và biên dịch cho vi điều khiển ESP8266 ESP- 12E NodeMCU:

Để có thể lập trình cho mạch vi điều khiển ESP8266 ESP-12E NodeMCU trên phần mềm Arduino IDE thì chúng ta cần cài bộ thƣ viện hỗ trợ

Để cài thƣ viện cần mở phần mềm Arduino IDE sau đó lựa chọn vào “File” sau đó lựa chọn “Preferences” và thêm đƣờng dẫn để cài đặt bộ thƣ viện tại “ManagerURLs”:

http://arduino esp8266 com/stable/package_esp8266com_index json”

Hình 7 8 Đường dẫn để cài gói thư viện lập trình cho ESP8266 NodeMCU

Sau đó nhóm chúng em tiến hành vào mục “Tools” và lựa chọn vào “Board” tiếp sau đó là “Boards Manager” để cài đặt thêm thƣ viện cho mạch vi điều khiển

PHỤ LỤC

Hình 7 9 Tiến hành cài đặt gói thư viện cho ESP8266 NodeMCU

Tiếp sau đó nhóm chúng em sẽ cài đặt các thông số để có thể lập trình, biên dịch và nạp chƣơng trình cho ESP8266 ESP-12E NodeMCU, nhóm chúng em tiến hành chọn vào “Tools” sau đó chọn “Board” và tiếp tục chọn “NodeMCU 1 0 (ESP- 12E Module)

Sau đó thiết lập các thông số nhƣ tốc độ xử lý của CPU (CPU Frequency) lựa chọn tùy theo mục đích sử dụng, bộ nhớ Flash, tốc độ nạp chƣơng trình 115200 (Upload Speed) là tốc độ nạp chƣơng trình cao, tốc độ càng cao nạp càng nhanh Thông tin thông số nhƣ hình 7 10

Hình 7 10 Thiết lập thông số cho ESP8266 NodeMCU trên IDE (adsbygoogle = window.adsbygoogle || []).push({});

Tiến hành kết nối mạch nạp cho mạch vi điều khiển ESP8266 ESP-12E NodeMCU

PHỤ LỤC

Sau khi đã cài đặt xong nhóm chúng em tiến hành lập trình cho mạch vi điều khiển ESP8266 ESP-12E NodeMCU, chƣơng trình sáng tắt led đổi trạng thái sau 1s, sáng tắt một đèn led đƣợc kết nối vào chân D0 và trên phần cứng của mạch có thiết kế một đèn led kết nối vào chân D0 này Sau khi lập trình xong tiến hành biên dịch và nạp chƣơng trình chọn vào biểu tƣợng theo nhƣ khung tô đỏ nhƣ hình 7 11

Hình 7 11 Nạp chương trình nhấp nháy led cho ESP

Sau khi chọn nạp chƣơng trình thì quá trình iên dịch và nạp sẽ tiến hành nhƣ hình ên dƣới, sẽ có thông báo hiện lên số % chƣơng trình đƣợc nạp Khi đủ 100% thì chƣơng trình đã nạp hoàn thành và mạch vi điều khiển ESP8266 ESP-12E NodeMCU sẽ hoạt động theo chƣơng trình đã lập trình

Để điều khiển thiết bị từ xa chúng ta có nhiều cách nhƣ tạo Webserver, sử dụng trang Web io adafruit com, cơ dở dữ liệu thời gian thực Firebase,… Trong đề tài này nhóm chúng em sử dụng 2 sử dụng 2 server đó là Adafruit và Firebase, dùng Adafruit để điểu khiển thiết bị bằng giọng nói với sự trợ giúp của Google assistant và Firebase để gửi dữ liệu lên và đọc dữ liệu về cho ESP và điện thoại

Do nhóm em sử dụng 2 trang Web trên nên trong phần mềm Arduino IDE cần cài các thƣ viện của Adafruit và thƣ viện của Firebase

PHỤ LỤC

Hình 7 12 Thư viên Adafruit_Mqtt

Để tiến hành tải bộ thƣ viện Firebase nhóm chúng em tiến hành truy cập vào đƣờng dẫn web: https://github com/firebase/firebase-arduino sau đó nhóm chúng em tiến hành lựa chọn “Clone or download”, sau đó lựa chọn “Download ZIP” Sau đó nhóm em tiến hành thêm bộ thƣ viện này vào phần mềm Arduino IDE

 TẠO DỰ ÁN TRÊN WEB :

Sau khi cài đặt các thƣ viện xong, nhóm em chuyển sang tạo các dự án trên 2 trang Web trên, tuy nhiên để Google assistant liên kết đƣợc với Adafruit ta cần 1 trang Web trung gian là ifttt com, trang web này cho phép ngƣời phát triển đặt các câu thoại giữa ngƣời dùng với Google assistant và Google assistant phản hồi lại các câu lệnh đã đặt trƣớc

Đầu tiên tạo dự án trên Adafruit : tại trang địa chỉ : io adafruit com

Sau khi tạo tài khoản trên Adafruit thì nhóm em bắt đầu tạo 1 Dashboard tên “datn” bằng cách bấm vào Action – creat a new dashboard

PHỤ LỤC

Hình 7 13 Tạo Dashboard trên Adafruit

Sau khi có Dashboard, chúng em vào Dashboard add thêm Block Và block chúng em cần add đó làToggle (nhƣ hình)

Hình 7 14 Tạo Block trong Dashboard

Sau đó chúng em cần tạo các Feed mới bằng cách điền tên feed vào vị trí 1 bấm creat ở vị trí 2 và bấm next ở vị trí 3

PHỤ LỤC

Chúng ta đặt tên cho Block và điền 1 ở block on và 0 ở block off, và bấm creat block

Hình 7 16 Tạo trạng thái cho Button

Tƣơng tự nhƣ vậy chúng em cứ tạo các block khác và có kết quả nhƣ hình 7 17

Một phần của tài liệu Điều khiển thiết bị điện thông qua trợ lý ảo google assistant 50 (Trang 84 - 121)