Mục lục:

Cảm biến hiện diện: 12 bước
Cảm biến hiện diện: 12 bước

Video: Cảm biến hiện diện: 12 bước

Video: Cảm biến hiện diện: 12 bước
Video: Cảm biến hiện diện và Cảm biến chuyển động nên chọn con nào? 2024, Tháng mười một
Anonim
Cảm biến hiện diện
Cảm biến hiện diện

Thiết bị đeo được thường là thiết bị hỗ trợ BLE. Họ thường quảng cáo định kỳ một số dữ liệu dọc theo địa chỉ MAC của nó. Chúng tôi sử dụng một ESP để quét những dữ liệu này và kích hoạt một sự kiện thông qua internet khi nó tìm thấy một địa chỉ MAC cụ thể. Việc triển khai cụ thể này dành cho một người dùng duy nhất trên phích cắm thông minh được kết nối với đèn. Nhưng nó cũng có thể được sử dụng với một nhóm thiết bị đã đăng ký với bất kỳ loại thiết bị hỗ trợ IOT nào.

Quân nhu

  1. ESP32
  2. (tùy chọn) KIỂM TRA Ổ cắm tường WiFi S10
  3. Thiết bị hỗ trợ BLE thuộc bất kỳ loại nào

Bước 1: Xác định tình huống của bạn

Xác định tình huống của bạn
Xác định tình huống của bạn

Đối với trình kích hoạt, bạn có thể sử dụng hầu hết các thiết bị đeo được hiện đại. Đây có thể là Apple Watch, dây đeo mi, điện thoại hoặc thậm chí là thiết bị đeo tự làm của riêng bạn dựa trên ESP32.

Có lẽ là một trong những bước quan trọng nhất. Bạn phải suy nghĩ trước trong 3 điều:

1. Thiết bị đeo hoặc thiết bị nào sẽ là yếu tố kích hoạt cảm biến khoảng cách.

2. Điều gì sẽ kích hoạt cảm biến (điều này được thực hiện thông qua IFTTT).

3. Khi nào cảm biến sẽ kích hoạt

Đối với ví dụ này, tôi sẽ sử dụng Apple Watch của mình để kích hoạt phích cắm thông minh để bật đèn khi tôi ngồi vào bàn làm việc.

Trong hướng dẫn này, chúng ta sẽ xem xét phích cắm thông minh của TECKIN. Bạn có thể tìm thấy nó ở amazon với giá tốt. Nó cũng tương thích với Alexa và google Home. Giá trị lớn!

Bước 2: (Giới thiệu) Đặt kích hoạt - Nhiều người dùng

Nếu bạn muốn định cấu hình để nó hoạt động với bất kỳ người nào có thiết bị hỗ trợ BLE đủ gần với cảm biến của bạn, thì hãy bỏ qua bước tiếp theo. Điều này khá hữu ích, là cài đặt cá nhân tôi sử dụng. Hãy nhớ rằng cảm biến này có thể dễ dàng bị tấn công hoặc khai thác để kích hoạt, vì vậy tôi sẽ không tin tưởng nhiều từ một quầy bảo mật; chỉ đối với một thực tế (tức là, tôi không muốn nó được kích hoạt bởi PC của tôi vì nó sẽ luôn ở bên cạnh cảm biến).

Bước 3: (Giới thiệu) Đặt trình kích hoạt - Người dùng bị giới hạn

Bước này thay đổi rất nhiều trong quá trình thiết lập của bạn. Để hạn chế thiết bị nào có thể kích hoạt cảm biến, bạn có nhiều lộ trình để hạn chế:

- Địa chỉ MAC BLE (tương đương với địa chỉ IP trên mạng wifi. Lý do nó không đảm bảo bảo mật vì nó không phải là địa chỉ MAC thực của mô-đun. Trên thiết bị iOS, nó thay đổi mỗi khi bạn khởi động lại bluetooth, không vui lắm)

- Mã nhà sản xuất (tùy chọn tốt hơn, nhưng không có cách nào để giới hạn các thiết bị cụ thể từ cùng một nhà sản xuất / kiểu máy)

- Tên, UIDD dịch vụ (hiếm nhưng là lựa chọn tốt nhất, chủ yếu là thiết bị đeo được tự làm hoặc có thể là ứng dụng Android)

Một số lưu ý:

1. Nếu đó là thiết bị iOS:

- Bạn có một số ưu và khuyết điểm quan trọng. Pro, họ truyền mức năng lượng mà tại đó nó là dữ liệu quảng cáo. Điều đó rất hữu ích ở giai đoạn hiệu chuẩn, bạn sẽ thấy rằng việc sử dụng Apple Watch rất hữu ích vì nó phát sóng ở 24db, iPhone và hầu hết các thiết bị truyền ở 12db.

CON, bạn sẽ phải tìm cách giải quyết. Địa chỉ MAC được quảng cáo (phương pháp nhận dạng chính) thay đổi mỗi khi tín hiệu bluetooth được khởi động lại, có nghĩa là bạn sẽ phải tải lên mã mỗi lần … không vui. Bạn có thể sử dụng dữ liệu nhà sản xuất có thể khác nhau giữa các kiểu máy. Điều này có nghĩa là bạn có thể giới hạn để nó cảm nhận được "tất cả iPhone 8".

2. Nếu đó là thiết bị Android:

- Cá nhân tôi không có thiết bị Android. Nhưng có lẽ có nhiều ứng dụng có thể sửa địa chỉ MAC hoặc thậm chí thêm tên được cá nhân hóa (nếu đó là cách bạn muốn thực hiện). Trên thiết bị iOS có một ứng dụng "nrf connect" có thể thực hiện việc này. Nhưng không liên tục, có nghĩa là nếu bạn khóa màn hình hoặc chuyển đổi ứng dụng, cấu hình sẽ tắt sau vài giây.

3. Một ESP32 khác. (đặt cược tốt nhất của bạn)

- Một mã đơn giản như thế này có thể được thực hiện trong một thiết bị như thế này; một ban nhạc thông minh được hỗ trợ bởi esp32. Mã thực sự là một ví dụ từ thư viện ESP BLE BLE_IBeacon.ino. Tôi chưa kiểm tra nó nhiều vì ban nhạc thông minh của tôi đang được vận chuyển, có lẽ sẽ sớm đăng các bản cập nhật.

Bước 4: (Thiết lập) - IFTTT

(Thiết lập) - IFTTT
(Thiết lập) - IFTTT

Ok, vì vậy ở giai đoạn này, bạn có thể nên xem xét tất cả các mô tả về quy trình làm việc của mình. Bạn có thiết bị kích hoạt của mình, bạn có một nơi để đặt ESP với kết nối không dây với internet và bạn có một hành động mà IFTTT có thể tự động hóa.

IFTTT mạnh mẽ; cho dù đó chỉ là gửi một thông báo đơn giản đến thiết bị của bạn, bạn muốn gửi một tweet hay bật bóng đèn bằng phích cắm thông minh. Trong hướng dẫn này, chúng tôi sẽ triển khai hướng dẫn cuối cùng với phích cắm thông minh TECKIN tương thích với IFTTT. Dù bằng cách nào, hãy tải xuống ứng dụng IFTTT hoặc truy cập trang web IFTTT.com và tạo một tài khoản.

Thời cơ đã tới!

Nếu bạn chỉ muốn gửi thông báo hoặc thứ gì đó khác ngoài phích cắm Smart Life, bạn có thể bỏ qua bước tiếp theo.

Bước 5: (Thiết lập) IOT Device * tùy chọn *

Tải xuống ứng dụng "Smart Life" từ PlayStore (android) hoặc AppStore (iOS). Hướng dẫn khá dễ hiểu, mặc dù quá trình này hơi phức tạp. Tôi phát hiện ra ở giai đoạn quét (khi nút màu xanh lam nhấp nháy) nó dừng lại ở một số điểm, sau đó tôi nhấn thủ công để bật và tắt một vài lần. Điều đó đã giúp tôi. Dù sao đi nữa; việc thiết lập phích cắm này không có gì khác biệt với ứng dụng của chúng tôi, vì vậy nếu bạn đã sở hữu một phích cắm và đã kết nối nó với ứng dụng của mình, bạn nên sẵn sàng sử dụng.

LƯU Ý: Bạn cần có thể bật và tắt nút chuyển từ ứng dụng trước khi chuyển sang bước này. Điều đó có nghĩa là bạn đã định cấu hình đúng phích cắm thông minh.

Ứng dụng IFTTT sẽ đồng bộ hóa liền mạch với ứng dụng "Cuộc sống thông minh", có thể nhắc xác thực trong khi tạo sự kiện ở bước tiếp theo.

Bước 6: (Thiết lập) IFTTT Webhook Api * Người dùng có kinh nghiệm *

(Thiết lập) IFTTT Webhook Api * Người dùng có kinh nghiệm *
(Thiết lập) IFTTT Webhook Api * Người dùng có kinh nghiệm *

Nếu bạn chưa sử dụng trước ứng dụng IFTTT và không cảm thấy thoải mái với một số thuật ngữ kỹ thuật, hãy bỏ qua bước này để xem Hướng dẫn chi tiết (kèm ảnh) ở bước tiếp theo.

1. Tạo một sự kiện mới.

2. Đặt "this" thành api webhook. Viết ra tên bạn đặt cho sự kiện.

3. Đặt "điều đó" thành hành vi mong muốn của bạn. Đối với cuộc sống thông minh tìm kiếm phích cắm thông minh và chọn 'bật'.

4. Chọn phích cắm thông minh của bạn và nhấn kết thúc.

5. Tại màn hình chính, hãy tìm thẻ 'webhooks'. Sau khi bạn nhấn nó, hãy nhấn "get more" ở dưới cùng.

6. Tài liệu báo chí. Thao tác này sẽ hiển thị cho bạn khóa api của bạn cùng với trình tạo và kiểm tra URL.

7. Sử dụng trình tạo URL de với tên bạn đã viết ở # 2. Sao chép điều đó và viết ra.

8. Lặp lại nếu bạn muốn một hành vi được kích hoạt khi cảm biến hiện diện không còn hoạt động. Trong trường hợp của chúng tôi, hãy lặp lại số 3 nhưng chọn 'tắt'. Ngoài ra, ở vị trí thứ 2, lần này tên cũng sẽ khác.

Nếu bạn đã hoàn tất, hãy bỏ qua bước tiếp theo.

Bước 7: (Thiết lập) IFTTT Webhook Api * Dành cho người mới bắt đầu có ảnh *

(Thiết lập) IFTTT Webhook Api * Dành cho người mới bắt đầu có ảnh *
(Thiết lập) IFTTT Webhook Api * Dành cho người mới bắt đầu có ảnh *
(Thiết lập) IFTTT Webhook Api * Dành cho người mới bắt đầu có ảnh *
(Thiết lập) IFTTT Webhook Api * Dành cho người mới bắt đầu có ảnh *
(Thiết lập) IFTTT Webhook Api * Dành cho người mới bắt đầu có ảnh *
(Thiết lập) IFTTT Webhook Api * Dành cho người mới bắt đầu có ảnh *

Hướng dẫn chi tiết * hướng dẫn bằng hình ảnh phải tương tự với Android và trên web *

IFTTT là một quy trình làm việc đơn giản, nếu "điều này xảy ra" thì "điều đó xảy ra". Bạn phải tạo một cái mới, 1. trên ứng dụng nhấn "get more" và một danh sách sẽ hiển thị.

2. Ngay bên dưới thanh tìm kiếm có ghi "tạo các applet của riêng bạn từ đầu", hãy nhấn vào dấu Cộng.

3. Nhấn dấu cộng "this"

Trong trường hợp của chúng ta, "this" sẽ là một cuộc gọi api thông qua internet. Lệnh gọi api là một tham khảo cho một URL, giống như khi bạn nhập tìm kiếm trên google và url là google.com/ (một chuỗi ký tự dài). Để tạo api: (sau khi nhấn "this")

4. Tìm kiếm "webhooks"

5. Chọn tùy chọn duy nhất

6. Đặt tên cho sự kiện của bạn (trong ví dụ này, chúng tôi sẽ sử dụng "Sit"). Viết ra tên này, rất quan trọng.

7. Nhấn Create Trigger

Vâng! chúng tôi gần gũi hơn, Bây giờ đến phần "đó". Đối với hướng dẫn này, chúng tôi sẽ đặt "that" để bật Smart plug. Nhưng bạn có thể chọn bất kỳ thứ gì từ IFTTT. Một cách tốt để kiểm tra thiết lập là chọn "thông báo" sẽ gửi thông báo đến điện thoại của bạn mỗi khi cảm biến kích hoạt (hoặc api được gọi, ngay cả từ trình duyệt web: hữu ích cho việc thử nghiệm!)

8. Nhấn dấu cộng "that"

9. Tìm kiếm "Cuộc sống thông minh" (hoặc "thông báo")

10. Nhấn 'bật' (bạn sẽ cần lặp lại bước này để tạo một sự kiện khác để tắt khi bạn rời đi)

11. Nếu bạn có cả hai ứng dụng và phích cắm được định cấu hình chính xác, bạn sẽ thấy phích cắm của mình ở menu thả xuống 'thiết bị / nhóm nào.

12. Chọn Tạo Hành động và sau đó hoàn tất.

Bây giờ bạn sẽ thấy sự kiện được kết nối. Bây giờ chúng ta cần lấy URL api. Đối với điều này:

13. Đi tới Màn hình chính IFTTT

14. Tìm thẻ Webhooks

15. Chọn "Nhận thêm"

16. Nhấn vào nút Tài liệu. Bạn sẽ thấy một trang web có khóa của mình.

17. Tại chỗ dành sẵn "{event}", hãy điền tên sự kiện của bạn (ghi nhớ Điểm 6)

18. Đi tới cuối trang và nhấn vào "Kiểm tra"

Những gì bạn có thể sẽ thấy là một biểu ngữ màu xanh lá cây "sự kiện đã được kích hoạt" và bạn nên xem liệu nó có hoạt động hay không. Trong trường hợp của chúng tôi, phích cắm sẽ bật. Hoặc bạn sẽ thấy một thông báo nếu bạn quyết định đi theo con đường đó. Có thể mất một chút thời gian, nhưng không quá một phút để xem bạn có thực hiện được hay không. Hãy nhớ rằng nó có thể phân biệt chữ hoa chữ thường.

19. Cuối cùng. Sao chép url nơi bạn đã thay thế tên sự kiện của mình (ở 17) và lưu nó ở nơi an toàn. Bạn sẽ cần điều này sớm.

20. Lặp lại 1-12. Lúc này lúc 6 tuổi, chúng tôi sẽ sử dụng "Stand". Thay vào đó, tại 10, hãy chọn 'tắt'.

21. Lặp lại 13-18 nếu bạn muốn, nhưng bạn có thể loại bỏ url mà bạn đã sao chép ở 19, nhưng bây giờ hãy thay đổi nơi bạn đã viết "Ngồi" và thay thế bằng "Đứng". Bạn có thể kiểm tra điều này trên trình duyệt web. Nó sẽ nói 'Xin chúc mừng! Bạn đã bắn sự kiện Stand '. Sau đó, phích cắm đã được tắt.

Bước 8: (Mã) Lập trình ESP32

(Mã) Lập trình ESP32
(Mã) Lập trình ESP32

Bạn có thể bỏ qua bước này nếu cảm thấy thoải mái khi tải lên các bản phác thảo từ Arduino IDE lên Bảng ESP32 của mình. Chỉ nên nhớ đặt phân vùng tối thiểu là 2mb cho ứng dụng vì bản phác thảo có trọng lượng lớn hơn giới hạn thông thường một chút là 1,2mb.

Có rất nhiều hướng dẫn tuyệt vời trên mạng, đây là một số hướng dẫn tôi khuyên bạn nên:

circuitdigest.com/microcontroller-projects…

Nhưng vẫn còn, vì vậy bạn không phải là quá mất mát tôi sẽ phân tích một số điểm chính quan trọng.

- ESP32 không phải là bảng Arduino nhưng nó vẫn có thể được lập trình bởi Arduino IDE. Với mã Arduino đơn giản. Tuy nhiên, bạn vẫn cần phải định cấu hình IDE để hoạt động với ESP32.

- Bạn sẽ cần cài đặt một số thư viện thông qua 'Trình quản lý bảng bổ sung' theo tùy chọn. Đây là URL bạn nên dán:

- (tùy chọn, có thể hữu ích) Tại Tools-> Manage Libraries… -> (tìm thư viện esp BLE)

- tại Công cụ, bây giờ bạn sẽ có một danh sách dài các thiết bị ESP, tôi khuyên bạn nên sử dụng mô-đun nhà phát triển ESP32

- (QUAN TRỌNG) Chọn (không có ứng dụng Ota 2mb / 2mb spifs) ở trình quản lý phân vùng. Bước này rất quan trọng vì ứng dụng trở nên khá nặng do sử dụng cả kết nối wifi / http cũng như máy quét BLE.

Nếu bạn làm đúng mọi thứ, bạn sẽ có thể lập trình ESP32. Bây giờ quá trình làm như vậy tương tự như arduino trong một số bo mạch. Cắm nó vào, chọn bo mạch phù hợp, cổng USB và bạn đã hoàn tất. Tuy nhiên, trong nhiều trường hợp khác, bạn sẽ phải tiếp tục

Bước 9: (Mã) Tải mã lên ESP32

(Mã) Tải mã lên ESP32
(Mã) Tải mã lên ESP32

Ok, nếu bạn đang ở đây, điều đó có nghĩa là bạn đã tải thành công bản phác thảo lên bảng ESP32, tốt nhất là bản phác thảo flash.ino.

Bây giờ, đây là mã chính được đính kèm, bạn cũng có thể tìm thấy nó tại repo GitHub. Bạn phải thay thế những thứ sau:

SSID - Tên wifi của bạn

PSK - Mật khẩu wifi của bạn

sit - URL có "Sit" từ api IFTTT bạn đã viết trước đó

đứng - URL có "Đứng" Từ api IFTTT bạn đã viết trước đó

Bây giờ, hãy đưa thiết bị kích hoạt của bạn đến gần bảng và sau đó tải mã lên. Sau đó mở Serial Monitor (baud 115200) sau khi nạp mã thành công.

Nếu bạn định sử dụng tính năng này với bất kỳ loại thiết bị hỗ trợ BLE nào, hãy bỏ qua bước tiếp theo.

LƯU Ý: nếu bạn nhận được thông báo lỗi bộ nhớ vì cài đặt mặc định chỉ để lại 1mB bộ nhớ (trong số 4mB hiện tại) cho mã thô ESP. Nó để lại một phần cho một số thứ như một tùy chọn để lập trình qua mạng. Tôi thường làm như sau:

- tại Công cụ, bây giờ bạn sẽ có một danh sách dài các thiết bị ESP, tôi khuyên bạn nên sử dụng mô-đun nhà phát triển ESP32-Chọn 'no Ota 2mb app / 2mb spifs' ở trình quản lý phân vùng.

Điều này mang lại cho tôi gấp đôi không gian bộ nhớ, cần thiết cho ứng dụng này.

Bước 10: (Mã) Tải mã lên ESP32 * tùy chọn *

(Mã) Tải mã lên ESP32 * tùy chọn *
(Mã) Tải mã lên ESP32 * tùy chọn *

Đây là phần phức tạp được đề cập ở Bước "Đặt kích hoạt". Màn hình sẽ xuất ra địa chỉ MAC (sẽ giống như ##: ##: ##: ##: ## trong đó # là một số hoặc một chữ cái từ a đến f), Mã nhà sản xuất và RSSI (một số âm). Ở đây bạn phải chơi xung quanh một chút để tìm ra thiết bị của bạn. Tôi thường đặt nó bên cạnh bảng để có thể nhìn rõ đâu là số nhỏ nhất. Tôi bỏ chọn hộp 'tự động cuộn' để có thể sao chép các giá trị.

  • Nếu đó là Địa chỉ Mac, hãy điền 'myDevice' vào đó. Sau đó bỏ ghi chú dòng # 96 và dòng chú thích # 95
  • Nếu đó là Tên điền 'myDevice' với nó. Sau đó bỏ ghi chú dòng # 97 và dòng chú thích # 95
  • Nếu đó là MaufactureData mà bạn không may mắn vào lúc này, tôi vẫn đang phát triển phần đó.

Để thêm hỗ trợ cho các thiết bị có thể, bạn có thể sao chép câu lệnh điều kiện ở # 96 hoặc # 97 và đặt chúng cạnh nhau theo cú pháp sau:

if ((condition1) || (condition2) || (condition3)) {

Thêm các biến khác (myDevice1, myDevice2, myDevice3) cho phù hợp.

Bước 11: Đặt ESP và Hiệu chỉnh

Đặt ESP và Hiệu chỉnh
Đặt ESP và Hiệu chỉnh

Đây là phần quan trọng nhất của quá trình thiết lập. Cẩn thận thực hiện quá trình này sẽ thấy sự khác biệt trong việc nó hoạt động như một phép thuật hoặc chỉ khiến bạn đau đầu.

Tại thời điểm này, đoạn mã bạn tải lên đang hoạt động với các thông số mà tôi đã tự kiểm tra và sử dụng hàng ngày với điện thoại trên bàn của tôi; nó không có nghĩa là nó cũng sẽ hiệu quả với bạn. Vì vậy, bạn cần phải tự mình thực hiện hiệu chuẩn.

1. Đặt Bảng ESP32 tại vị trí CỐ ĐỊNH cuối cùng của nó. Nếu vì lý do nào đó bạn di chuyển vị trí của ESP32, có lẽ bạn nên thực hiện lại việc này. Điều này sẽ đảm bảo cho bạn một trải nghiệm tốt về tổng thể.

1. (bổ sung) hãy nhớ rằng bạn sẽ cần có thể kết nối với máy tính của mình trong khi thực hiện việc này. Nếu bạn không thể vì bạn đang sử dụng máy tính để bàn, bạn sẽ phải thử và ghi nhớ rằng mọi thử nghiệm phải gần giống nhau về vị trí, thiết bị kích hoạt và các yếu tố khác có thể tính đến.

2. Mở Serial Monitor với mã đang chạy.

Theo mặc định, mã sẽ đăng qua Giám sát nối tiếp RSSI (Chỉ báo cường độ tín hiệu đã nhận) của mỗi thiết bị bluetooth được tìm thấy (hoặc chỉ (các) thiết bị phù hợp với thông số của bạn). Chơi xung quanh một chút với thiết bị hoạt động chính của bạn (thiết bị kích hoạt). Bạn phải xác định các ngưỡng bạn muốn sử dụng là gì. Điều chỉnh cẩn thận cấu hình này sẽ

3. Khi bạn xác định các ngưỡng, hãy thay thế chúng tại đây:

  • near_thrsh
  • far_thrsh

4. Tải lên lại mã, kiểm tra và lặp lại cho đến khi bạn tìm thấy hiệu suất tối ưu.

Một số điều cần xem xét:

1. Bạn muốn chênh lệch khoảng 20db giữa các ngưỡng. Nếu near_thrsh được đặt thành 50 thì far_thrsh mong muốn là 70 trở lên. Nếu sự khác biệt quá ngắn, thì bạn có thể tìm thấy một số khoảng cách hoặc vị trí mà bảng đang kích hoạt và tắt liên tục. Việc gia tăng sự khác biệt này sẽ đảm bảo bạn tránh được hành vi không mong muốn này. Cá nhân tôi thấy rằng 20db ký quỹ là đủ tốt.

2. Khi kiểm tra hiệu chuẩn, các tình huống thực tế càng nhiều càng tốt, điều này sẽ giúp xác định hiệu suất tốt nhất.

3. Nghiên cứu lớp ở dòng 82 của mã; đây là nơi mà tất cả các logic được thực hiện. Mã được nhận xét tốt mặc dù. Hãy hỏi tại GitHub!

Bước 12: Xin chúc mừng! Bạn xong việc rồi

Hãy cho tôi biết trong phần nhận xét của bất kỳ đề xuất nào hoặc nếu bạn đang gặp sự cố. Hãy nhớ kiểm tra GitHub nếu sự cố của bạn đã được giải quyết!

Đề xuất: