Mục lục:

Giám sát nhà thông minh bằng Alexa và Arduino: 9 bước (có hình ảnh)
Giám sát nhà thông minh bằng Alexa và Arduino: 9 bước (có hình ảnh)

Video: Giám sát nhà thông minh bằng Alexa và Arduino: 9 bước (có hình ảnh)

Video: Giám sát nhà thông minh bằng Alexa và Arduino: 9 bước (có hình ảnh)
Video: FPT Jetking: ĐỒ ÁN KÌ 1: Sản phẩm mô hình nhà thông minh 2024, Tháng mười một
Anonim
Image
Image
Thu thập tài liệu
Thu thập tài liệu

Trong thế giới hiện nay, mọi người dành nhiều thời gian ở nơi làm việc hơn là ở nhà của họ. Do đó, cần có hệ thống giám sát nhà để mọi người có thể biết được tình trạng của ngôi nhà khi họ đang làm việc. Sẽ tốt hơn nếu một người có thể hỏi "ai đó" về nhà của họ trong giờ làm việc. Điều này có thể được thực hiện bằng cách sử dụng Amazon Alexa như một trợ lý có thể cung cấp cho người dùng thông tin cần thiết về nhà của họ.

Không chỉ nơi làm việc, người dùng có thể biết tình trạng ngôi nhà ở bất kỳ nơi nào trên thế giới miễn là họ có kết nối Internet và Amazon Alexa.

Các chức năng sau được thực hiện trong dự án này:

1) Kiểm soát các thiết bị gia dụng như quạt và đèn

2) Cho biết trạng thái của các thiết bị

3) Cho biết điều kiện thời tiết của ngôi nhà (nhiệt độ và độ ẩm)

4) Gửi ảnh chụp nội thất của ngôi nhà cho người dùng qua Gmail khi có nhu cầu.

5) Gửi thông báo trong trường hợp -

* Kẻ xâm nhập (cũng gửi ảnh)

* Ngọn lửa

* Khách (cũng gửi ảnh)

Bước 1: Thu thập tài liệu

Thu thập tài liệu
Thu thập tài liệu
Thu thập tài liệu
Thu thập tài liệu
Thu thập tài liệu
Thu thập tài liệu

Vật liệu thiết yếu

Arduino Uno

Mô-đun Wifi ESP8266

Linkit Smart 7688 Duo

DHT11

Rơ le

Cảm biến chướng ngại vật hồng ngoại

Webcam

Amazon Echo Dot

Bảng mạch và dây jumper

Phần mềm và Dịch vụ trực tuyến:

Thingspeak.com

Arduino IDE

Bộ kỹ năng Amazon Alexa

Amazon Alexa Echosim.io (để Kiểm tra Kỹ năng)

Backendless

PushingBox

Bước 2: Lập trình Arduino và ESP8266

Lập trình Arduino và ESP8266
Lập trình Arduino và ESP8266
Lập trình Arduino và ESP8266
Lập trình Arduino và ESP8266

Tải xuống Arduino IDE từ trang web chính thức:

Mở Arduino IDE và đi tới tệp-> tùy chọn-> trong loại URL trình quản lý bảng bổ sung -

Đi tới công cụ -> bảng -> Quản lý bảng và cài đặt gói esp8266 được tìm thấy cuối cùng.

Để lập trình arduino chỉ cần cắm cáp USB từ arduino vào máy tính và chọn Arduino / Genuino UNO trong công cụ-> bảng. Đồng thời đảm bảo rằng bạn chọn quyền Cổng COM trong Công cụ (có thể tìm thấy số cổng COM trong Trình quản lý thiết bị). Viết Chương trình cần thiết, Biên dịch nó và nhấp vào tải lên nếu không có lỗi.

Để lập trình ESP8266, hãy thực hiện kết nối như trong sơ đồ. kết nối usb từ arduino với Máy tính. Trong công cụ-> bảng-> chọn Generic ESP8266 và cũng chọn cổng COM bên phải. Viết Chương trình cần thiết, Biên dịch nó và nhấp vào tải lên nếu không có lỗi. Đảm bảo rằng bạn kết nối Arduino RST với GND (arduino hoạt động giống như một lập trình viên với ESP8266).

Trong Dự án này Đầu tiên, ESP8266 được lập trình và sau đó các kết nối mạch được gỡ bỏ. Sau đó, mạch được kết nối lại như trong hình có tên là "Circuit Connections". Và sau đó arduino được lập trình.

Bước 3: Định cấu hình Thingspeak.com

Định cấu hình Thingspeak.com
Định cấu hình Thingspeak.com

Tạo một tài khoản trên thingspeak.com.

chúng tôi sử dụng các kênh trong thingspeak để lưu trữ thông tin điều khiển thiết bị và định tuyến nó đến arduino / alexa. chúng tôi cũng lưu trữ các giá trị nhiệt độ và độ ẩm trong các kênh. Nó giống như một vị trí lưu trữ thông tin.

Đăng nhập vào thingspeak, truy cập kênh của tôi và tạo kênh mới. Đặt tên và mô tả cho các kênh của bạn. Trong dự án của chúng tôi, chúng tôi cần 8 kênh (bạn có thể thực hiện công việc bằng cách sử dụng ít kênh hơn nhưng sẽ hơi phức tạp trong khi lập trình). Ngoài ra, điều khoản có giới hạn thời gian khi cập nhật kênh. Phải có khoảng cách 10-15 giây giữa các lần cập nhật liên tiếp một kênh cụ thể.

Tám kênh với các giá trị và ý nghĩa của chúng được đưa ra dưới đây

tên kênh (giá trị1-ý nghĩa, giá trị2-ý nghĩa, v.v.):

1) Điều khiển thiết bị (0-đèn sáng, 1 đèn Tắt, 2 quạt BẬT, 3 Tắt quạt)

2) trạng thái đèn (0- đèn tắt, 1 đèn sáng)

3) trạng thái quạt (0- quạt tắt, 1- quạt bật)

4) độ ẩm (giá trị độ ẩm)

5) nhiệt độ (giá trị của nhiệt độ)

6) thông báo kẻ xâm nhập (1- cảnh báo kẻ xâm nhập)

7) thông báo cháy (1- cảnh báo cháy)

8) thông báo của khách (1- thông báo của khách)

khi bạn nhấp vào bất kỳ kênh nào, bạn có thể thấy id kênh của kênh đó và viết khóa API trong tab khóa API. id kênh là bắt buộc để nhận thông tin / giá trị trong kênh. Và khóa ghi là bắt buộc để lưu trữ một giá trị trong kênh.

Yêu cầu http để cập nhật kênh là:

api.thingspeak.com/update?api_key=&field1=

được thay thế bằng các phím ghi tương ứng của kênh và có thể là (0/1 trong trường hợp điều khiển thiết bị hoặc giá trị nhiệt độ / độ ẩm)

Yêu cầu http đối với giá trị đọc từ một kênh là:

api.thingspeak.com/channels//field/field1/last.html

được thay thế bằng id kênh cụ thể của kênh mà chúng tôi muốn đọc từ đó.

Bước 4: Chương trình

Chương trình được chia thành 3 phần:

A) Chương trình cho Arduino: chương trình cho arduino rất đơn giản. Nó nhận dữ liệu từ ESP8266 tuần tự và dựa trên dữ liệu nhận được, các thiết bị được kiểm soát. Thông tin thêm về chương trình được tìm thấy trong các bình luận trong chính chương trình.

B) Chương trình cho ESP8266: chương trình cho ESP8266 liên quan đến 3 điều

1) cập nhật nhiệt độ và độ ẩm bằng cách sử dụng yêu cầu

client.print (Chuỗi ("GET") + "/ update? key = & field1 =" + precision + "HTTP / 1.1 / r / n" + "Máy chủ:" + máy chủ + "\ r / n" + "Kết nối: đóng / r / n / r / n "); // cập nhật độ ẩm

client.print (Chuỗi ("GET") + "/ update? key = & field1 =" + nhiệt độ + "HTTP / 1.1 / r / n" + "Máy chủ:" + máy chủ + "\ r / n" + "Kết nối: đóng / r / n / r / n "); // cập nhật nhiệt độ

được thay thế bằng phím ghi tương ứng được tìm thấy trong kênh điều tiếng cho độ ẩm và nhiệt độ tương ứng. và máy chủ là api.thingspeak.com.

tải xuống thư viện dht từ:

2) đọc từ các kênh tương ứng của điều khiển và thiết bị điều khiển dựa trên các giá trị thu được: client.print (String ("GET") + "/channels//field/field1/last.html HTTP / 1.1 / r / n" + " Máy chủ: "+ máy chủ +" / r / n "+" Kết nối: đóng / r / n / r / n ");

nơi được thay thế bằng id kênh tương ứng được tìm thấy trong thingspeak.

3) Gửi cảnh báo trong trường hợp nhiệt độ cao thông qua hộp đẩy

String host1 = "api.pushingbox.com";

client.print (Chuỗi ("GET") + "/ pushbox? devid = HTTP / 1.1 / r / n" + "Máy chủ:" + host1 + "\ r / n" + "Kết nối: close / r / n / r \n");

được thay thế bằng id thiết bị của bạn trong hộp đẩy.

Bước 5: Định cấu hình Linkit Smart 7688 Duo và Webcam

Cấu hình Linkit Smart 7688 Duo và Webcam
Cấu hình Linkit Smart 7688 Duo và Webcam
Cấu hình Linkit Smart 7688 Duo và Webcam
Cấu hình Linkit Smart 7688 Duo và Webcam
Cấu hình Linkit Smart 7688 Duo và Webcam
Cấu hình Linkit Smart 7688 Duo và Webcam

Trong dự án này, bộ đôi webcam và linkit thông minh 7688 được sử dụng để chụp ảnh yêu cầu và gửi cho người dùng. Bạn cũng có thể sử dụng mô-đun camera arduino và giao diện nó với arduino hoặc sử dụng có thể sử dụng bất kỳ camera IP nào.

Nhấn và giữ nút wifi trên linkit smart 7688 trong 20 giây để thiết lập lại bo mạch. Sau đó, sau khi thiết lập lại wifi, bạn sẽ có thể thấy tên điểm truy cập của nó trong các kết nối mạng không dây. Bây giờ kết nối máy tính với mạng đó. sau khi bạn kết nối nó, hãy mở trình duyệt và nhập 192.168.100.1 vào thanh địa chỉ. Bạn sẽ có thể nhìn thấy cổng thông tin của nó. đặt mật khẩu để đăng nhập vào cổng thông tin của nó.

Sau khi bạn đăng nhập, hãy chuyển đến tab mạng và chọn Chế độ ga (chúng tôi cần nó (linkit smart 7688 duo) để truy cập internet) và kết nối nó với mạng Wifi của bạn và nhấn Cấu hình và khởi động lại.

Sau khi bo mạch khởi động lại, nó sẽ được gán một địa chỉ IP cục bộ. Tìm địa chỉ bằng bất kỳ công cụ IP nào hoặc cổng bộ định tuyến của bạn. Trong trường hợp của tôi, đó là 192.168.1.4. Bây giờ hãy nhập địa chỉ IP cục bộ vào thanh địa chỉ của trình duyệt. đảm bảo rằng máy tính được kết nối với cùng một mạng với linkit thông minh. Bạn sẽ được yêu cầu đăng nhập lại.

Để bật phát trực tuyến từ webcam, bạn nên bật trình phát -j.webp

Sau khi bạn đăng nhập, hãy chuyển đến tab dịch vụ và chọn kích hoạt trình phát -j.webp

Sau khi thiết lập có thể kết nối webcam của bạn với máy chủ usb linkit thông minh 7688 duo thông qua cáp OTG. Bây giờ để xem Stream, hãy mở trình duyệt và gõ: vào thanh địa chỉ. trong trường hợp của tôi, nó là 192.168.1.4:4400

để chụp nhanh, hãy nhập lệnh:? action = snapshot

Bây giờ hình ảnh này có sẵn cục bộ nhưng chúng ta cần cung cấp hình ảnh này cho dịch vụ hộp đẩy. Để đạt được điều này, chúng ta cần thực hiện chuyển tiếp cổng. Chuyển tiếp cổng có thể được thực hiện trong cổng bộ định tuyến. Id quy trình khác nhau đối với các bộ định tuyến khác nhau. Chỉ cần google để biết cách chuyển tiếp cho bộ định tuyến cụ thể. Nó thường có sẵn trong dịch vụ NAT. IP bên ngoài có thể được tìm thấy bằng cách nhập "whats my ip" trong google.

Bạn cần đặt địa chỉ này

tức là.. https://::? action = snapshot

trong hộp đẩy (được giải thích ở bước tiếp theo) để hộp đẩy có thể truy cập hình ảnh này và đính kèm vào thư và gửi cho bạn bất cứ khi nào cần.

Bạn cũng có thể lưu trữ hình ảnh trong thẻ nhớ vì bộ đôi Linkit smart 7688 cũng đi kèm với một khe cắm thẻ nhớ để lưu trữ thông tin. Thông tin thêm về điều này có thể được tìm thấy tại:

docs.labs. Instantk.com/resource/linkit-sm…

Bước 6: Định cấu hình PushingBox

Cấu hình PushingBox
Cấu hình PushingBox

pushbox được sử dụng để gửi thông báo về các cảnh báo khác nhau trong dự án tới gmail.

đăng nhập vào pushbox bằng tài khoản google:

đi đến dịch vụ của tôi thêm dịch vụ. có nhiều dịch vụ để lựa chọn như Gmail, twitter, thông báo đẩy cho android, v.v.

chọn Gmail (vì chúng tôi cần gửi ảnh dưới dạng tệp đính kèm) và điền vào cấu hình tên gmail thích hợp và id gmail của người dùng mà cảnh báo phải được gửi đến.

đi đến các kịch bản của tôi và tạo một kịch bản mới. đặt tên cho kịch bản (ví dụ: ALERT) thêm dịch vụ đã tạo trước đó.

viết chủ đề và nội dung thư phù hợp và nhập url để chụp ảnh màn hình của web cam để đính kèm ảnh. Tạo các kịch bản khác nhau cho các cảnh báo khác nhau.api để thực hiện một kịch bản hộp đẩy là:

Bước 7: Tạo kỹ năng Alexa bằng Backendless

Tạo kỹ năng Alexa bằng Backendless
Tạo kỹ năng Alexa bằng Backendless
Tạo kỹ năng Alexa bằng Backendless
Tạo kỹ năng Alexa bằng Backendless
Tạo kỹ năng Alexa bằng Backendless
Tạo kỹ năng Alexa bằng Backendless

backendless được sử dụng để tạo kỹ năng alexa. Nó là một chương trình kéo và thả đơn giản được sử dụng để tạo kỹ năng alexa (hoặc bất kỳ chương trình nào) có thể được truy cập bằng API không phụ trợ.

tạo tài khoản trong backendless:

  • Đăng nhập vào tài khoản của bạn trong tài khoản không phụ trợ. nhấp vào Tạo ứng dụng và đặt tên cho ứng dụng của bạn
  • Nhấp vào biểu tượng Logic kinh doanh nằm trong thanh biểu tượng bên trái. Bạn sẽ thấy màn hình DỊCH VỤ API.
  • Nhấp vào biểu tượng “+” để tạo dịch vụ mới. Đảm bảo chọn CODELESS trong cửa sổ bật lên “Dịch vụ mới”. Nhập “AlexaService” cho tên dịch vụ. Nhấp vào nút LƯU:
  • Backendless tạo Dịch vụ API và sẽ nhắc bạn tạo một phương thức cho dịch vụ. Đây sẽ là phương thức xử lý các yêu cầu từ Alexa. Nhập “handleRequest” cho tên phương thức. Đảm bảo chọn POST cho hoạt động REST và khai báo một đối số có tên là “req” và nhập “Any Object” như được hiển thị:
  • Backendless tạo một trình giữ chỗ cho logic không mã của phương thức. Nhấp vào nút EDIT để bắt đầu chuyển sang Trình thiết kế logic không có mã. Trong khối giữ chỗ chức năng đã tạo, hãy nhấp vào khu vực có nội dung “doSomething” và thay đổi nó thành “sendAlexaResponse”. Hàm này được sử dụng để làm cho alexa nói điều gì đó có thể được truyền dưới dạng đối số. Nhấp vào nút LƯU để chức năng được lưu.
  • Nhấp vào biểu tượng bánh răng nằm trong khối màu tím ngay bên cạnh từ “Chức năng”. Thêm hai đối số bằng cách kéo các khối đầu vào như thể hiện trong hình bên dưới. Gán tên của các đối số là “whatToSay” và “waitForResponse”. Lưu ý rằng khi bạn thêm đối số, khu vực Khối ngữ cảnh được tự động điền với các khối biểu thị giá trị đối số.
  • Sửa đổi logic của hàm để nó trông giống như trong hình ảnh. Đối với các khối "Tạo đối tượng", hãy sử dụng biểu tượng bánh răng để thay đổi tên của thuộc tính đối tượng. Đừng quên lưu công việc của bạn bằng cách nhấp vào nút LƯU.
  • Bây giờ chức năng tùy chỉnh đã được tạo, hãy chuyển trở lại phương thức handleRequest của dịch vụ AlexaService. Nhấp vào danh mục Chức năng tùy chỉnh trong thanh công cụ ở bên trái và kéo khối sendAlexaResponse để kết nối với trình kết nối trả lại của phương thức dịch vụ của bạn
  • Các bước trên cũng có thể được tìm thấy trong trang web của họ: https://backendless.com/developing-alexa-skill-wi…
  • Nhấp vào nút “Thêm mới” bên dưới Hàm trong phần TRÌNH DUYỆT Trong khối giữ chỗ hàm đã tạo, hãy nhấp vào khu vực có nội dung “doSomething” và thay đổi nó thành “getIntentName”, sửa đổi các khối để hàm trông giống như hình ảnh minh họa. sẽ nhận được tên ý định dựa trên các phát biểu mẫu. Quay lại dịch vụ api-> xử lý yêu cầu trong phần trình duyệt. Các biến và logic được tạo từ phần hệ thống. Tạo các biến sau được hiển thị trong hình ảnh.
  • tiếp theo, chúng tôi lưu trữ tên ý định để yêu cầu biến. Và sau đó so sánh với các ý định. Ví dụ: nếu yêu cầu là "giới thiệu" thì biến phản hồi được đặt thành "xin chào! Tôi có thể kiểm soát ……." và câu trả lời này cuối cùng được đọc to bởi alexa. sửa đổi khối như được hiển thị.
  • nếu yêu cầu là mục đích của LightsOn thì chúng tôi cập nhật kênh điều tiếng thành '0' bằng cách sử dụng http get request và đồng thời chúng tôi cập nhật trạng thái thiết bị (1/0 tùy thuộc vào Bật / Tắt). Điều tương tự cũng được lặp lại cho LightsOff, FanOn và FanOff.
  • Đối với thời tiết, chúng tôi đọc từ kênh Nhiệt độ và độ ẩm và lưu trữ kết quả trong biến phản hồi. Vì kênh chỉ cung cấp các giá trị nên chúng tôi nối các văn bản vào để làm cho câu trả lời có ý nghĩa
  • để có ảnh chụp nhanh của phòng khách, chúng tôi chạy kịch bản hộp đẩy
  • đối với trạng thái thiết bị, chúng tôi đọc thông tin từ kênh trạng thái của thingspeak:
  • đối với thông báo và cảnh báo mà chúng tôi đọc được từ các kênh cảnh báo (hỏa hoạn, kẻ xâm nhập và khách):
  • dựa trên các giá trị mà chúng tôi nhận được từ trường thông báo, các thông báo cảnh báo tương ứng được lưu trữ trong biến response0. nếu không có thông báo thì không có tin nhắn thông báo nào được lưu trữ.
  • khi thông báo được đọc hết thì '0' được cập nhật trong các kênh thông báo để alexa sẽ không đọc lại thông báo đó. Sau đó, cuối cùng dựa trên yêu cầu, biến response0 / response được đọc to.

Bước 8: Định cấu hình Kỹ năng Alexa trong Bảng điều khiển dành cho nhà phát triển Amazon:

Định cấu hình Kỹ năng Alexa trong Bảng điều khiển dành cho nhà phát triển Amazon
Định cấu hình Kỹ năng Alexa trong Bảng điều khiển dành cho nhà phát triển Amazon
Định cấu hình Kỹ năng Alexa trong Bảng điều khiển dành cho nhà phát triển Amazon
Định cấu hình Kỹ năng Alexa trong Bảng điều khiển dành cho nhà phát triển Amazon
Định cấu hình Kỹ năng Alexa trong Bảng điều khiển dành cho nhà phát triển Amazon
Định cấu hình Kỹ năng Alexa trong Bảng điều khiển dành cho nhà phát triển Amazon

truy cập bảng điều khiển dành cho nhà phát triển amazon và đăng nhập bằng tài khoản amazon.

chuyển đến bảng điều khiển dành cho nhà phát triển và nhấp vào tab ALEXA. Nhấp vào bộ kỹ năng alexa để bắt đầu.

tạo loại kỹ năng tùy chỉnh, đặt tên và tên gọi cho kỹ năng. ý định tương ứng và cách nói mẫu được đưa ra trong mã.

trong tab cấu hình, chọn HTTPS làm loại điểm cuối dịch vụ điền vào URL mặc định bằng URL API từ backendless. Chọn tùy chọn thứ 2 trong Chứng chỉ cho điểm cuối mặc định trong chứng chỉ SSL. Bạn cũng có thể kiểm tra kỹ năng bằng cách sử dụng trình mô phỏng thử nghiệm.

Sau khi kiểm tra xong, bạn có thể xuất bản kỹ năng với thông tin xuất bản bắt buộc.

Bước 9: Thiết lập và kết thúc lần cuối

Thiết lập và kết thúc cuối cùng!
Thiết lập và kết thúc cuối cùng!
Thiết lập và kết thúc cuối cùng!
Thiết lập và kết thúc cuối cùng!

Thực hiện kết nối mạch như hình.

Đôi khi ESP8266 sẽ hoạt động sai vì không đủ dòng điện. Vì vậy, mặc dù được đề cập trong mạch, bạn nên cấp nguồn cho ESP8266 từ nguồn 3.3v riêng biệt. Nếu bạn đang sử dụng pin sạc dự phòng, hãy đảm bảo rằng bạn giảm điện áp từ 5v xuống 3,3v bằng bộ điều chỉnh điện áp 3,3v. Tải chương trình lên ESP8266 và arduino. Tôi đã chỉ ra kết nối với bóng đèn, điều tương tự có thể được mở rộng cho quạt hoặc bất kỳ thiết bị nào. Cuối cùng sử dụng echo của amazon hoặc echosim.io để kiểm tra kỹ năng của bạn.

Bạn phải kích hoạt kỹ năng bằng tên gọi (như trường hợp của tôi - "myhome"). Đôi khi nó sẽ không hoạt động nếu nó được sử dụng mà không có tên gọi như tôi đã trình bày vài lần trong video của mình

Hy vọng bạn thích hướng dẫn!

Cảm ơn!

Đề xuất: