Mục lục:

[15 phút] Đồng hồ Weasley / Chỉ báo ai là nhà - Dựa trên TR-064 (beta): 4 bước (có hình ảnh)
[15 phút] Đồng hồ Weasley / Chỉ báo ai là nhà - Dựa trên TR-064 (beta): 4 bước (có hình ảnh)

Video: [15 phút] Đồng hồ Weasley / Chỉ báo ai là nhà - Dựa trên TR-064 (beta): 4 bước (có hình ảnh)

Video: [15 phút] Đồng hồ Weasley / Chỉ báo ai là nhà - Dựa trên TR-064 (beta): 4 bước (có hình ảnh)
Video: 😊 Vân Sơn Chuyển Âm Châu Tinh Trì | Đường Bá Hổ Điểm Thu Hương | Film Bản Gốc @VanSonBolero 2024, Tháng bảy
Anonim
Image
Image
[15 phút] Đồng hồ Weasley / Chỉ báo ai là nhà - Dựa trên TR-064 (beta)
[15 phút] Đồng hồ Weasley / Chỉ báo ai là nhà - Dựa trên TR-064 (beta)

CẬP NHẬT: Xem bước 3.

Câu chuyện dài (TL; DR bên dưới): Một thời gian trước, tôi đã viết một đoạn mã bash nhỏ trên máy tính của mình để quét mạng tìm các thiết bị đã đăng ký và so sánh tên máy chủ của chúng với một danh sách có tên liên quan. Mỗi khi thiết bị đăng nhập hoặc đăng xuất khỏi mạng, tôi sẽ nhận được thông báo. Như thế này, tôi có một ý tưởng về ai ở nhà (không chỉ đôi khi thật tuyệt khi biết ai ở nhà để hỏi họ xem họ có muốn tham gia một bữa ăn hay không, mà còn có thể giúp bạn tránh những tình huống khó xử). Vấn đề là phương pháp này không đáng tin cậy lắm. Thật không may, một số thiết bị không trả lời ping (ví dụ: điện thoại thông minh) và dường như chuyển sang một số chế độ tiết kiệm năng lượng, do đó không thể phát hiện một cách đáng tin cậy bằng các lệnh như nmap. Tôi đã cố gắng khắc phục điều này bằng cách yêu cầu ít nhất 10 lần phủ định trước khi cuối cùng thông báo rằng thiết bị đã rời mạng. Nhìn chung, nó hoạt động, nhưng chậm, không đáng tin cậy và không độc đáo. Ngoài ra, tôi muốn có thể kiểm tra xem ai đang ở nhà mà không cần mở máy tính của mình. Vì vậy, tôi đã đặt những chiếc ESP8266 này - và muốn chơi với chúng. Nhưng tôi không muốn xây dựng trạm thời tiết dựa trên ESP 10.120.124.812 hoặc tương tự (tại sao bạn muốn theo dõi thời tiết bằng nhiệt kế ± 2 ° C cáu kỉnh của mình khi bạn vẫn có thể truy cập một số trang web?). Vậy là kế hoạch đã được thực hiện. Thật không may, nó chỉ ra rằng ESP dường như không được trang bị để ping đúng cách (điều này thật tệ khi bắt đầu, hãy nhớ chứ?) Hãy để một mình thực hiện quét mạng toàn diện. Tôi đã cân nhắc việc viết một số thư viện cho điều đó - nhưng vì C ++ của tôi rất hạn chế, đây là dự án ESP đầu tiên của tôi và tôi không phải là thiên tài với các công cụ mạng và tôi đã loại bỏ ý tưởng đó. Sau khi thực hiện một số nghiên cứu, tôi phát hiện ra rằng bộ định tuyến (nhãn hiệu Fritz! Box) thực sự có một API! ĐƯỢC !!!! Giao thức được gọi là TR-064. Một cái tên đầy cảm hứng như vậy, đúng không? Thực hiện một số nghiên cứu về vấn đề này, tôi đã tìm thấy một tài liệu (khá tồi tệ) trên mạng. Tôi đã mất một thời gian để giải quyết nó. Tôi có thể đăng một bài hướng dẫn thực hành nhiều hơn trong những ngày tới (và cách giao tiếp với / kiểm tra API này bằng tiện ích bổ sung của trình duyệt). Khi tôi hiểu API, tôi bắt đầu sử dụng nó từ ESP của mình. Một câu chuyện ngắn: Tôi có một giải pháp duck-tape-and-wd40 đang chạy và làm những gì tôi muốn (truy vấn API cho các thiết bị được kết nối, so sánh chúng với danh sách địa chỉ MAC và chuyển đổi các đèn LED cho phù hợp). và giải pháp linh hoạt và API này có rất nhiều thứ để cung cấp (bạn có thể thay đổi cài đặt (bật / tắt wifi, thay đổi mật khẩu, mở / đóng wifi khách, thay đổi nguồn tín hiệu), khởi động lại bộ định tuyến, truy vấn tốc độ kết nối,…) - vì vậy tôi quyết định tạo một thư viện TR-064 toàn cầu! TL; DR; Thiết bị cho biết qua đèn LED ai hiện đang ở nhà. Hoạt động tuyệt vời, vẫn chưa có nhà ở tuyệt vời (này - bạn có nhận thấy bản beta trong tiêu đề không?). Sử dụng giao thức SOAP để giao tiếp với bộ định tuyến. Đã viết thư viện Arduino để biến điều đó thành hiện thực. hữu ích, nếu bạn muốn rời khỏi giai đoạn breadboard • Một số thiết kế 3D một / hoặc chế biến gỗ có thể hữu ích cho liên kết dự án nhà ởGithub [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] để tham khảo nhanh.

Quân nhu

  • ESP8266 hoặc ESP32 trên Development-Board hoặc với lập trình viên khác (2 ~ 6 €)
  • Cáp USB phù hợp với bộ lập trình
  • Bộ đổi nguồn (ví dụ: USB hoặc pin ~ 2 €)
  • Một vài đèn LED và điện trở (~ 1 €)
  • (Vỏ bọc)

=> Khoảng 4-6 € cho một thiết kế tối thiểu. Điều đó có nghĩa là đối với tôi, tôi có thể dễ dàng treo một vài chiếc quanh nhà. Nếu lười, bạn cũng có thể sử dụng bảng phát triển với đèn LED đi kèm (xem bước 4 để biết thêm chi tiết).

Bước 1: Thiết lập bộ định tuyến của bạn (tùy chọn, nhưng được tư vấn)

Thiết lập bộ định tuyến của bạn (tùy chọn, nhưng được tư vấn)
Thiết lập bộ định tuyến của bạn (tùy chọn, nhưng được tư vấn)
Thiết lập bộ định tuyến của bạn (tùy chọn, nhưng được tư vấn)
Thiết lập bộ định tuyến của bạn (tùy chọn, nhưng được tư vấn)

Giao thức được thiết kế như một giao thức chung cho các bộ định tuyến, nhưng tôi chỉ biết rằng (hầu hết) các bộ định tuyến Fritz! Box (rất phổ biến, ít nhất là ở Châu Âu) sử dụng nó. Không biết về các thương hiệu khác. Vì vậy, tôi sẽ giả định rằng bạn đang sử dụng hộp Fritz !. Nếu bạn có thể làm cho điều này hoạt động (hoặc không thực hiện được) trên bất kỳ bộ định tuyến nào khác, tôi rất sẵn lòng thêm nó vào hướng dẫn này (thậm chí có thể bắt đầu một danh sách tương thích ngắn?).

Bước này không cần thiết, bạn cũng có thể chỉ sử dụng tài khoản quản trị viên của mình, nhưng điều đó không được khuyến khích vì những lý do rõ ràng (có thể bị chặn hoặc trích xuất từ ESP của bạn, bạn có thể vô tình thay đổi nội dung bạn không muốn,…) - vì vậy tôi khuyên bạn nên làm điều đó.

Dù sao, chúng ta bắt đầu:

  1. Đăng nhập vào Fritz! Box của bạn bằng cách gõ fritz.box vào thanh url của trình duyệt yêu thích của bạn.
  2. Tìm trang để tạo người dùng FRITZ! Box mới (bạn cần nâng cao nó phải nằm trong Hệ thống, nếu bạn không tìm thấy, hãy thử cập nhật thiết bị của bạn).
  3. Tạo một tài khoản mới như bạn thấy trong hình (sử dụng tên người dùng / mật khẩu khác!).
  4. Đăng xuất.

Bước 2: Mã

Image
Image
Phần cứng (beta)
Phần cứng (beta)
  1. Bạn có thể lấy thư viện từ Github.

  2. Trong các ví dụ, bạn sẽ tìm thấy một tệp có tên home-indicator.ino, là mã cho dự án này. Đặt thư mục ví dụ trong thư mục chủ dự án arduino IDE của bạn và thư mục khác vào thư mục thư viện trong cùng thư mục chủ dự án.
  3. (Re) Khởi động IDE của bạn.
  4. Mở home-indicator.ino trong IDE và nhập cài đặt của bạn. Nó phải là khá rõ ràng những gì sẽ đi đến đâu. Nếu bạn có bất kỳ câu hỏi cho tôi biết!
  5. Bây giờ bạn có thể biên dịch nó và chuyển nó sang ESP của bạn!

Bước 3: Phần cứng (beta)

Phần cứng (beta)
Phần cứng (beta)
Phần cứng (beta)
Phần cứng (beta)
Phần cứng (beta)
Phần cứng (beta)

Ừ… Đây là bước, nơi tôi vẫn cần phải làm việc thêm. Nhưng tôi đoán có đủ tài liệu trên web để tìm ra điều gì đó:) Thiết lập như trong hình chỉ là một diode có điện trở ~ 100Ohm được nối với GPIO {5, 4, 0, 2}, là D1, Các chân D2, D3, D4 (theo thứ tự đó) của bảng MCU ESP8266 của tôi và cáp nhỏ màu cam đưa các cực âm đến GND (được đánh dấu G trên bảng của tôi). Nếu bạn lười, bạn có thể làm những gì bạn thấy trong hình ảnh thứ hai. Chỉ cần sử dụng bảng phát triển với đèn LED đi kèm (như "ESP-202", xem hình ảnh - khoảng 3,50-5,00 € bao gồm cả phí vận chuyển). Sau đó, bạn có thể chỉ cần kết nối nó với nguồn điện USB hoặc sử dụng bộ pin đi kèm, vẽ một giao diện trên một mảnh giấy và dán nó vào tường. Đối với bảng cụ thể này, các cổng là:

int userPins [numUser] = {5, 4, 2, 14, 16};

từ đầu đến cuối.

Bước 4: Outlook / Tham khảo

Đây là những gì tôi vẫn dự định: 1. Tạo một ngôi nhà đẹp (rõ ràng là như vậy) 2. Thêm GUI đẹp để quản lý người dùng / đèn LED / MAC / thiết bị đã biết 3. Cải thiện thư viện (xem Github để biết điều đó) 4. Khắc phục: đôi khi đèn LED phản ứng chậm chạp (mất một chút thời gian cho đến khi chúng tắt, sau khi thiết bị rời đi) mà không có lý do rõ ràng 5. Móc đồ ở hành lang và có thể thêm vài thứ xung quanh nhà Rất muốn nhận được một số ý kiến đóng góp từ các bạn! Và như mọi khi, tôi thực sự hạnh phúc khi thấy những người khác xây dựng những thứ mà bạn nghĩ ra, vì vậy hãy dành một phút để nhận xét và đăng ảnh!:):) Một số tài liệu tham khảo khác Tôi sẽ liên kết một số nội dung ở đây, có thể giúp ích cho bạn: • Tài liệu tham khảo TR-064 • Một số anh chàng đang lộn xộn với shell và TR-064 (tốt để nắm được API) • Harry Potter Wikipedia: Mục nhập Đồng hồ Weasley • Một số người đang xây dựng Đồng hồ Weasly đẹp nhưng phức tạp * _ * Nó dựa trên một ứng dụng dành cho điện thoại của bạn để xác định vị trí của bạn. Nếu bạn đang ở trong một số khu vực được xác định trước, đèn tương ứng trên đồng hồ sẽ bật sáng. Đối với tôi, điều đó quá phức tạp và nhiều chỗ có thể hỏng / hỏng: • Ứng dụng cần được cập nhật • Mọi người đều phải sử dụng các ứng dụng này • Và không sao với ảnh hưởng đến quyền riêng tư • Ứng dụng chỉ hoạt động với Internet kết nối • Bạn phải sử dụng một máy chủ trung gian để kết nối giao tiếp (trừ khi bạn muốn thiết lập bạn đặc biệt là máy chủ và mở mạng gia đình của bạn cho lưu lượng bên ngoài - đúng vậy, lại có một thiết bị IOT không an toàn khác được kết nối trực tiếp với internet!) • dịch vụ trung gian có thể ngoại tuyến vào một ngày nào đó / thay đổi API của nó, •… Bạn cần thêm phần mềm. Nhiều phần mềm hơn có nghĩa là có nhiều nơi để sửa lỗi hơn;) Tuy nhiên, họ đã làm một công việc tuyệt vời và nếu bạn muốn làm điều gì đó như vậy, hãy truy cập trang web của họ, điều đó thực sự tuyệt vời!

Đề xuất: