- -
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
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
• 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
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
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
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