MC LC
6. Ý nghĩa khoa học và ý nghĩa thực tiễn
1.5. HOME ASSISTANT (HASS)
1.5.1. Khái niệm
Home Assistant (Hass) là một mã nguồn mở miễn phí, thƣờng đƣợc cài đặt trên máy tính, giúp ta kết nối tất cả các thiết bị thông minh vào cùng một hệ thống, quản lý giám sát nhà thông minh ở bất kỳ đâu trên thế giới và trên mọi thết bị.
Home Assistant đƣợc lập trình bằng ngôn ngữ Python, đƣợc cộng đồng phát triển nên nó đƣợc cung cấp hoàn toàn miễn phí, khả năng an toàn, bảo mật thông tin do nó hoạt động trong mạng LAN, không hề đƣa dữ liệu đi bất cứ đâu. Nhà sáng lập nên Home Assistant chính là Nabucasa, là ngƣời phát triển để đƣa hệ thống Home Assistant lên Cloud (hệ thống điện toán đám mây) giúp cho việc quản lý Home Assistant trở nên dễ dàng và thuận tiện.
Hình 1.25. Giao diện màn hình Home Assistant
Home Assistant (Hass) giống nhƣ một bộ não trung tâm, nhận lệnh từ các nơi gửi về và xử lý rồi lại gửi đi các thiết bị đích để thực thi. Nó có ƣu điểm là khả năng tích hợp cao với các thiết bị khác. Hiện tại các thiết bị có thể
tích hợp với Hass trên 1492 thiết bị, khả năng mở rộng của Hass hiện tại rất tốt. Khi các thiết bị đƣợc tích hợp vào Hass thì chúng sẽ làm việc chung với nhau, dù chúng là những hãng khác nhau. Nếu chúng ta chỉ dùng thiết bị điều khiển trung tâm của riêng một hãng nào đấy thì hầu nhƣ chỉ các thiết bị của hãng mới hoạt động liên kết đƣợc với nhau [24].
1.5.2. Một số đặc điểm của Home Assistant
- Giống nhƣ hầu hết các hệ thống tự động, Home Assistant cung cấp bản client trên điện thoại và máy tính để điều khiển các thiết bị nhà thông minh từ xa. Home Assistant không hoàn toàn khác biệt so với các framework IoT khác nên nó dễ dàng kết nối với nhiều nền tảng khác nhau từ Nest đến Ardunio hay Kodi, …
- Có một điểm mạnh của Home Assistant do Python mang tới đó là: Việc mở rộng hệ thống rất dễ dàng. Python là ngôn ngữ năng động, nó cho phép tạo ra sự linh hoạt mà những nhà lập trình Java luôn thèm khát. Với Python thật dễ dàng để kiểm tra và tạo các mẫu thử cho từng phần mới trên bản cài đặt hiện có mà không bị ảnh hƣởng vĩnh viễn đến các thành phần khác. ặc biệt là với phiên bản Python mới mà MicroPython vừa đƣa ra dành cho các hệ thống nhúng, nhƣ Arduino và ESP32 thì khả năng nó sẽ trở thành ngôn ngữ chung cho tất cả các mức độ IoT, từ cảm biến đến tự động hóa để tích hợp với các dịch vụ của bên thứ ba. Home Assistant là một chƣơng trình dựa trên sự kiện, kết hợp máy trạng thái theo dõi thực thể - tất cả các thiết bị đƣợc chọn. Mỗi thực thể có một định danh, điều kiện trạng thái và các thuộc tính. Thuộc tính là các mô tả của trạng thái, chẳng hạn nhƣ màu sắc, mức độ sáng trên bóng đèn th ng minh Philips Hue.
1.5.3. Tính năng của Home Assistant
- Giám sát: Home Assistant sẽ theo dõi tình trạng của tất cả các thiết bị trong nhà thay cho chúng ta, miễn là các thiết bị đó nằm trong danh sách
đƣợc Home Assistant hỗ trợ. Tính tới thời điểm này nền tảng hỗ trợ là 1063 thiết bị đến từ Nest, IFTTT, Google, Hue, MQTT, Facebook, Microsoft,…
- iều khiển: iều khiển tất cả các thiết bị từ một giao diện duy nhất, thân thiện với website, điện thoại, ...
- Tự động hóa: Thiết lập các quy tắc tiên tiến để kiểm soát thiết bị. Và từ đó biến ngôi nhà của chúng ta thành một thiên đƣờng sống đáng mơ ƣớc.
Home Assistant giúp kết nối thiết bị Xiaomi, kết nối thiết bị Broadlink, kết nối oogle Home, Alexa hay hàng trăm các hãng lại với nhau ở cùng một nơi, trong cùng 1 hệ thống để quản lý thống nhất, không mất thời gian qua lại các ứng dụng và gia tăng hiệu quả, sự thông minh cho ngôi nhà thông minh.
Tính đến thời điểm này, Home Assistant đã có thể kết nối 1492 thiết bị của hàng trăm hãng cung cấp thiết bị lại với nhau. Ngoài ra, Home Assistant còn có thể mở rộng chức năng một cách dễ dàng, hay tạo ngữ cảnh cực kỳ thuận tiện và có thể tƣơng tác với tất cả các hãng với nhau. Giống nhƣ hầu hết các hệ thống nhà thông minh, Hass cung cấp bản client trên điện thoại và máy tính để điều khiển các thiết bị nhà thông minh từ xa [24].
1.6. Ả IẾ HÔ G DÂY
Với yêu cầu của đề tài đặt ra là điều khiển, giám sát đƣợc các thiết bị điện phòng học, qua quá trình nghiên cứu, tìm hiểu tài liệu chúng tôi đã chọn giải pháp tối ƣu cho khối xử lý trung tâm là SP32 đƣợc phát triển bởi Espressif Systems. Là một vi điều khiển 32bit, đáp ứng đầy đủ các yêu cầu ban đầu đặt ra, ngoài ra còn có thể mở rộng thêm một số chức năng khác khi cải tiến hệ thống.
1.6.1. Giới thiệu chip Wifi ESP32. 1.6.1.1. Tổng quan ESP32. 1.6.1.1. Tổng quan ESP32.
ESP32 là một chip đƣợc tích hợp công nghệ Wifi và Bluetooth với công nghệ tiêu thụ năng lƣợng cực thấp. Nó cung cấp một nền tảng tích hợp
mạnh mẽ, đáp ứng nhu cầu hiệu năng tốt nhất, tính linh hoạt, thiết kế nhỏ gọn, hiệu suất cao và độ tin cậy trong nhiều ứng dụng. Các dòng chip ESP32 bao gồm ESP32-D0WDQ6, ESP32- D0WD, ESP32-D2WD và ESP32-S0WD.
spressif đã thiết kế và sản xuất ra một số module để ngƣời dùng dễ dàng tiếp cận hơn với dòng chip ESP32. Các thành phần chính trên những module này bao gồm chip ESP32, bộ tạo dao động thạch anh, mạch ăngten, chỉ khác nhau về một số chức năng tùy từng phiên bản nhƣ số lƣợng chân GPIO, các thiết bị ngoại vi đƣợc thêm vào nhƣ: màn hình L , bảng cảm ứng, khe cắm thẻ SD, module máy ảnh,… dƣới đây là một số phiên bản đã đƣợc phát triển và đƣa vào sử dụng [25].
Bảng 1.3: Các phiên bản module của ESP32
Module Th nh phần
Chip Flash RAM
ESP-WROOM-32 ESP32-D0WDQ6 4MB - ESP-WROOM-32D ESP32-D0WD 4MB - ESP-WROOM-32U ESP32-D0WD 4MB - ESP-SOLO-1 ESP32-S0WD 4MB - ESP-WROVER ESP32-D0WDQ6 4MB 8MB ESP-WROVER-I ESP32-D0WDQ6 4MB 8MB
Phiên bản ESP32-WOOM-32 là một module vi điều khiển (MCU) Wifi (Wireless Fidelity) - BT (Bluetooth) - BTE (Bluetooth Low Energy) phổ biến và mạnh mẽ phục vụ cho nhiều ứng dụng khác nhau từ những ứng dụng đơn giản nhƣ điều khiển thiết bị, đọc giá trị cảm biến đến những nhiệm vụ phức tạp nhƣ mã hóa giọng nói, phát nhạc trực tuyến, giải mã MP3,…[25]
Module này đƣợc xây dựng với lõi nhân là chip ESP32-D0WDQ6, chip đƣợc thiết kế để có thể mở rộng. Có 2 lõi CPU (Central Processing Unit) có thể kiểm soát riêng biệt và tần số xung đồng hồ dao động từ 80MHz đến 240MHz. Do tích hợp Bluetooth, Bluetooth LE, Wifi nên rất nhiều ứng dụng có thể thực hiện đƣợc trên module. Sử dụng Wifi cho phép kết nối trong phạm vi rộng, không giới hạn, sử dụng Bluetooth cho phép kết nối một cách dễ dàng. Module cũng hỗ trợ truyền dữ liệu lên đến 150Mbps.
- Kiến trúc [25].
Hình 1.27. Kiến trúc của ESP32
- Một s ứng dụng của ESP32: a số các ứng dụng của SP32 đƣợc phục vụ cho các dự án IoT nhƣ: Nhà th ng minh, Robot c ng nghiệp, nhận dạng giọng nói, nhận dạng hình ảnh, ứng dụng chăm sóc sức khỏe, …
1.6.1.2. Đặc điểm ESP32.
• ức năng l ợng thấp: hip SP32 đƣợc thiết kế cho các ứng dụng di động, điện tử, ứng dụng IoT. ESP32 có tất cả các đặc tính của một chip tiêu thụ mức năng lƣợng thấp, nhiều chế độ hoạt động giúp giảm thiểu tối đa năng lƣợng mà chip tiêu tốn. Ví dụ cảm biến trong ứng dụng IoT, SP32 đƣợc đánh thức theo chu kỳ và chỉ phát hiện khi có một điều kiện cụ thể.
• Tích hợp ho n chỉnh: hip SP32 có khả năng tích hợp cao Wifi và luetooth cho các ứng dụng IoT, với khoảng 20 thiết bị ngoại vi. SP32 tích hợp ăngten, sóng R (Radio frequency), bộ khuếch đại c ng suất, bộ khuếch đại thu tiếng ồn, module quản lý năng lƣợng, …
Thông s kỹ thuật cơ bản của module ESP32-WOOM-32 0
Bảng 1.4: Thông số kỹ thuật cơ bản của module ESP32-WOOM-32
oại ặc tr ng Thông s
Wifi iao thức 802.11 b/g/n (802.11n lên đến 150 Mbps) Tần số 2.4GHz ~ 2.5GHz
Bluetooth
iao thức Bluetooth v4.2 và Bluetooth Lower Energy Radio
NZ với độ nhạy -97dBm
Máy phát Class-1, Class-2, Class-3 AFH
Audio CVSD và SBC
Phần cứng
iao tiếp module
Thẻ S , UART, SP , S O, 2 , Led PWM, Motor PWM, I2S, IR, Counter, P O, cảm biến cảm ứng, A , A
hip cảm biến Hall sensor (từ trƣờng) Thạch anh 40MHz
SPI Flash 4MB
iện áp hệ thống 2.7V ~ 3.6V òng hệ thống Trung bình: 80mA òng điện tối
thiểu của nguồn cung cấp
500mA
Nhiệt độ hoạt động -40℃ ~ +85℃
Kích thƣớc (18.0) mm x (25.5) mm x (3.1) mm
1.6.1.3. Sơ đồ chân của module ESP32-WOOM-32
Module có tổng cộng 38 chân 0
Bảng 1.5: Định nghĩa các chân module ESP32-WOOM-32
Tên S oại hức năng
GND 1 P (nguồn) Ground
3V3 2 P hân nguồn cung cấp 3V3
EN 3 I (input) ho phép module hoạt động, mức cao SENSOR_VP 4 I GPIO36, ADC1_CH0, RTC_GPIO0 SENSOR_VN 5 I GPIO39, ADC1_CH3, RTC_GPIO3 IO34 6 I GPIO34, ADC1_CH6, RTC_GPIO4 IO35 7 I GPIO35, ADC1_CH7, RTC_GPIO5
IO32 8 I/O (input, output)
GPIO32, XTAL_32K_P, ADC1_CH4, TOUCH9, RTC_GPIO9
IO33 9 I/O GPIO33, XTAL_33K_N, ADC1_CH5, TOUCH8, RTC_GPIO8
IO25 10 I/O GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6
IO26 11 I/O GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7
IO27 12 I/O GPIO27, ADC2_CH7, TOUCH7 RTC_GPIO17
IO14 13 I/O GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16
IO12 14 I/O GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15
GND 15 P Ground
IO13 16 I/O GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14
SHD/SD2 17 I/O GPIO9, SD_DATA2, U1RXD SWP/SD3 18 I/O GPIO10, SD_DATA3, U1TXD SCS/CMD 19 I/O GPIO11, SD_CMD, U1RTS SCK/CLK 20 I/O GPIO6, SD_CLK, U1CTS
SDO/SD0 21 I/O GPIO7, SD_DATA0, U2RTS SDI/SD1 22 I/O GPIO8, SD_DATA1, U2CTS
IO15 23 I/O GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13
IO2 24 I/O GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12
IO0 25 I/O GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1
IO4 26 I/O GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10
IO16 27 I/O GPIO16, HS1_DATA4, U2RXD IO17 28 I/O GPIO17, HS1_DATA5, U2TXD
IO5 29 I/O GPIO5, HS1_DATA6 IO18 30 I/O GPIO18, HS1_DATA7 IO19 31 I/O GPIO19, U0CTS
NC 32 - -
IO21 33 I/O GPIO21, VSPIHD
TXD0 35 I/O GPIO1, U0TXD, CLK_OUT3 IO22 36 I/O GPIO22, VSPIWP, U0RTS IO23 37 I/O GPIO23, VSPID
GND 38 P Ground
Hình 1.28. Sơ đồ bố trí chân của module ESP32-WOOM-32
1.6.1.4. Chức năng tích hợp trong ESP32
ESP32 có cấu hình khủng, thêm chức năng, tăng số chân /O, thêm nhiều cảm biến, giá thành phù hợp, …
a. Cấu hình ESP32
Hình 1.29. Hình ảnh thực tế board ESP32
CPU:
• CPU: Xtensa Dual-Core LX6 microprocessor. • hạy hệ 32 bit
• Tốc độ xử lý 160MHz up to 240 MHz
• Tốc độ xung nhịp đọc flash chip 40MHz đến 80 MHz (tùy chỉnh khi lập trình)
• RAM: 520 K yte SRAM: 520 K SRAM liền chip (trong đó 8 K RAM RT tốc độ cao – 8 K RAM RT tốc độ thấp (dùng ở chế độ DeepSleep).
Hỗ trợ 2 giao tiếp không dây
• Wi-Fi: 802.11 b/g/n/e/i
• Bluetooth: v4.2 BR/EDR and BLE
Hỗ trợ tất cả các loại giao tiếp
• 8-bit DACs (digital to analog) 2 cổng • Analog(ADC) 12-bit 16 cổng.
• I²C – 2 cổng • UART – 3 cổng
• SPI – 3 cổng (1 cổng cho chip LASH ) • I²S – 2 cổng
• SD card /SDIO/MMC host • Slave (SDIO/SPI)
• Ethernet MAC interface with dedicated DMA and IEEE 1588 support
• CAN bus 2.0 • IR (TX/RX)
• ăm xung PWM (tất cả các chân ) • Ultra low power analog pre-amplifier
• xternal lash (bộ nhớ flash ngoài) và SRAM: SP32 hỗ trợ nhiều external QSP flash và SRAM, có thể truy cập ở tốc độ cao. SRAM đƣợc hổ trợ lên đến 8M , đọc và ghi 8bit, 16bit, 32bit.
Cảm biến tích hợp trên chip ESP32: 1 cảm biến Hall (cảm biến từ trƣờng), 1 cảm biến đo nhiệt độ, ảm biến chạm (điện dung) với 10 đầu vào khác nhau.
Bảo mật:
IEEE 802.11 standard security features all supported, including WFA, WPA/WPA2 and WAPI, Secure boot, Flash encryption, 1024-bit OTP, up to 768-bit for customers, Cryptographic hardware acceleration: AES, SHA-2, RSA, elliptic curve cryptography (ECC), random number generator (RNG)
Nguồn điện hoạt động: Nhiệt độ hoạt động -40 + 85oC; điện áp hoạt động: 2.2 - 3.6V, số cổng GPIOs: 34
Tổ chức bộ nhớ [25]
Hình 1.30. Cấu trúc và địa chỉ bộ nhớ của ESP32
ánh giá chung
Với SP8266, cùng với wifi SP32 hỗ trợ thêm truyền nhận lutooth, RAM nhiều hơn, tốc độ xử lý nhanh hơn, số chân P O nhiều hơn, nhiều cổng giao tiếp hơn, nhiều chân PWM hơn, nhiều chân A hơn, tích hợp cả 3 loại cảm biến (nhiệt độ, hall, touch sensor),… Tốc độ xử lý SP32 với các
dòng mạch nhúng khác, theo nhƣ kết quả tại trang
web https://hilo90mhz.com/arduino-esp32-,... thì SP32 hiện tại đang đứng đầu về cấu hình cũng nhƣ tốc độ xử lý.
b. Timers và Watchdogs [25]
64bit dựa trên bộ chia trƣớc 16bit và bộ định thời đếm lên, xuống.
ặc tr ng của Timer: Bộ chia 16 bit từ 2 đến 65536; Timer 64bit; Cho phép cấu hình Timer đếm lên, đếm xuống; Cho phép dừng và tiếp tục bộ đếm thời gian.
• Timer Watchdogs ( ộ định thời giám sát): ESP32 có 3 Timer Watchdogs bao gồm 2 module hẹn giờ (Main Watchdogs Timer) và một module RTC (RTC Watchdog Timer). Một bộ đếm thời gian Watchdog có 4 giai đoạn, mỗi giai đoạn có thể kích hoạt một trong bốn hành động là: ngắt, thiết lập lại CPU, thiết lập lại lõi, thiết lập lại hệ thống.
c. Hệ th ng xung đồng hồ (Clock)
• CPU Clock: Khi đƣợc reset, dao động thạch anh bên ngoài đƣợc đặt lại mặc định cho PU. ao động thạch anh kết nối với PLL (Phase-Locked Loop) để tạo ra xung tần số cao (160MHz). Ngoài ra, SP32 có bộ dao động nội 8MHz và có thể sử dụng đƣợc bộ dao động này cho một số ứng dụng nhất định.
• RTC Clock (Real Time Clock): Có các nguồn hoạt động: Thạch anh bên ngoài tốc độ thấp (32KHz); Thạch anh bên ngoài với bộ chia 4; ộ dao động nội R (150KHz, có thể điều chỉnh đƣợc), ộ dao động nội 8MHz; Xung nội 32.25KHz. Khi ở chế độ bình thƣờng, cần truy cập PU nhanh hơn, ứng dụng có thể chọn xung tốc độ cao bên ngoài với bộ chia 4 hoặc dao động nội 8MHz. Khi hoạt động ở chế độ năng lƣợng thấp, ứng dụng có thể chọn thạch anh bên ngoài tốc độ thấp (32KHz), dao động nội RC hoặc xung nội 31.25KHz.
d. WiFi: ESP32 thực hiện giao thức TCP/IP và Wifi 802.11 b/g/n, quản lý năng lƣợng đƣợc xử lý để giảm thiểu thời gian thực hiện các tác vụ. Các thƣ viện của Wifi cung cấp để định cấu hình và giám sát chức năng kết nối mạng ESP32, nó cấu hình cho: Chế độ trạm (hay chế độ STA hoặc chế độ
Wifi client): ESP32 kết nối với một điểm truy cập; Chế độ AP (hay chế độ Soft-AP hoặc chế độ điểm truy cập): các trạm kết nối với ESP32; Chế độ kết hợp AP-STA ( SP32 đồng thời là điểm truy cập và là trạm đƣợc kết nối với các điểm truy cập khác); Các chế độ bảo mật khác nhau cho các chế độ trên (WPA, WPA2, W P, …); Quét các điểm truy cập (chủ động và thụ động); Chế độ giám sát các gói Wifi của tiêu chuẩn IEEE802.11 [25].
e. Bluetooth: ESP32 tích hợp bộ điều khiển liên kết Bluetooth, thực hiện các giao thức nhƣ điều chế, giải điều chế, xử lý gói, xử lý luồng bit [25].
f. RTC và quản lý năng l ợng thấp: Với việc sử dụng công nghệ quản lý năng lƣợng tiên tiến, ESP32 có thể chuyển đổi giữa các chế độ năng lƣợng khác nhau. Bao gồm các chế độ: Chế độ hoạt động, chip đƣợc bật, có thể truyền, nhận; Chế độ ngủ modem: PU đƣợc hoạt động và xung đồng hồ có thể cấu hình, Wifi/Bluetooth bị tắt; Chế độ ngủ light: CPU tạm dừng hoạt động, bộ nhớ RTC và các thiết bị ngoại vi RT cũng nhƣ bộ xử lý đồng thời ULP vẫn chạy, bất kỳ sự kiện đánh thức nào sẽ đánh thức chip hoạt động; Chế