Cách tốt để thiết bị IoT nhận cài đặt mạng là gì?


13

Tôi đang trong quá trình xây dựng một thiết bị IoT bằng cách sử dụng ESP8266. Thiết bị cuối cùng sẽ chứa một vài động cơ và tôi muốn điều khiển các động cơ này bằng MQTT. Tôi muốn làm cho thiết bị càng rẻ càng tốt, vì vậy tôi muốn tránh những thứ như màn hình và bàn phím.

Vì vậy, khi thiết bị được bật, nó được cho là kết nối với WiFi cục bộ và sau đó đến một nhà môi giới MQTT. Nhưng làm thế nào để biết SSID cục bộ để kết nối và tên người dùng và mật khẩu thì sao? Vì thiết bị không có màn hình hoặc bàn phím, không có cách nào để nhập những thứ này. Và làm thế nào để người dùng biết liệu thiết bị có thể kết nối hay không? Để khắc phục sự cố, sẽ tốt hơn nếu thiết bị ít nhất có một số cách để cho biết vấn đề có thể là gì.

Giải pháp tôi đã nghĩ đến là có một nút và một đèn LED trên thiết bị. Nút sẽ được đánh dấu "config" hoặc tương tự. Khi nhấn nút, thiết bị sẽ bắt đầu hoạt động như một điểm truy cập WiFi với SSID được xác định trước. Nó sẽ có một máy chủ web, vì vậy người dùng có thể kết nối với máy tính xách tay hoặc điện thoại đến điểm truy cập được xác định trước này và nhập cài đặt mạng cục bộ (SSID, tên người dùng và mật khẩu) cũng như địa chỉ cho nhà môi giới MQTT. Đèn LED sẽ được sử dụng để biểu thị chế độ hoạt động và cũng là dấu hiệu lỗi. Ví dụ, khi đèn LED phát sáng ổn định, mọi thứ đều được kết nối, đèn flash dài có nghĩa là nó đang ở chế độ cấu hình, đèn flash ngắn có nghĩa là có lỗi hoặc có lỗi tương tự.

Câu hỏi của tôi là, giải pháp tôi đã đề xuất một cách làm tiêu chuẩn khi gặp vấn đề này? Tức là nó sẽ cảm thấy như một dòng chảy quen thuộc với người dùng, hoặc một cách khác sẽ tốt hơn? Sau khi thực hiện một chút tìm kiếm tôi đã tìm thấy ví dụ này , mà dường như là một luồng người dùng tương tự. Vẫn sẽ quan tâm đến việc nghe những gì bạn có kinh nghiệm về điều này, và nghe cách bạn sẽ giải quyết nó?

Nếu nó chỉ ra rằng đây là một cách tốt và hữu ích để giải quyết vấn đề này, và vì nó là một loại giải pháp chung chung, sẽ tốt hơn nếu không phát minh lại bánh xe quá nhiều. Tôi nghĩ rằng có thể có một thư viện có thể làm tất cả những điều này. Thư viện sẽ được cấu hình với chân đầu vào cho nút và chân đầu ra cho đèn LED, sau đó chăm sóc phần còn lại. Nó có thể được xây dựng dựa trên thư viện PubSubClient và dựa trên hướng dẫn ESP8266: Kết nối với nhà môi giới MQTT . Vì vậy, có một thư viện làm điều này hoặc một cái gì đó tương tự? Nếu không tôi sẽ đâm và tự tạo ra, nhưng muốn nghe về những gì ngoài kia trước.

Cảm ơn!

Câu trả lời:


13

Những gì bạn mô tả thực sự là một cách khá phổ biến (phổ biến nhất?) Để giải quyết vấn đề tích hợp các thiết bị WiFi IoT vào mạng LAN cục bộ của bạn.

Ví dụ: theo kinh nghiệm của tôi, Thiết bị Amazon Echo được thiết lập theo cách này hoặc một loạt các công tắc thông minh / phích cắm thông minh (ví dụ: thiết bị Shelly ).

Tùy thuộc vào yêu cầu của bạn, bạn cũng có thể thoát khỏi mà không cần đèn LED và nút.
Đây là một giải pháp với các chi tiết kỹ thuật sẽ cố gắng kết nối với mạng được định cấu hình và nếu không thành công, hãy mở một điểm truy cập để định cấu hình.
Và đây là một triển khai thứ hai bằng cách sử dụng một cổng bị khóa trong chế độ AP.

Việc thực hiện phần MQTT PubSub và nút và đèn LED vào bản phác thảo tương ứng nên khá đơn giản.

Các lựa chọn thay thế:
Đối với các lựa chọn thay thế có thể cho việc sử dụng chế độ AP để định cấu hình, vui lòng xem kỹ thuật Thiết lập bảo vệ Wi-Fi (WPS)Giao thức cung cấp thiết bị .


Cảm ơn cho một câu trả lời rất tốt! Thư viện WifiManager trong liên kết thứ hai của bạn dường như chính xác là những gì tôi đang tìm kiếm. Tôi sẽ thử nó và xem nếu tôi yêu nó. Nếu không, tôi sẽ sử dụng thông tin trong liên kết đầu tiên để xây dựng giải pháp của riêng mình ...
Mikael Lindqvist

1
Ồ ... Và đây là một bổ sung cũng thêm phần MQTT: github.com/dreed47/WifiMQTTManager
Mikael Lindqvist

1

Ngoài ra còn có dự án luftdaten.info là một cảm biến hạt nguồn mở với phần sụn riêng. Họ làm một điều tương tự như những gì bạn đề xuất, chỉ không có nút cấu hình. Họ làm như vậy, bằng cách khởi động máy chủ web theo mặc định, khi thiết bị được bật. Sau một ngưỡng nhất định (tôi nghĩ rằng nó ở đâu đó trong khoảng 3-10 phút), máy chủ web nội bộ sẽ bị tắt - vì vậy không thể cấu hình nữa cho đến chu kỳ nguồn tiếp theo.

Giải pháp này có thể quá không an toàn cho một số trường hợp nhất định, nhưng bạn có thể muốn biết về tuy nhiên.

Biên tập:

Để có được cấu hình ban đầu vào thiết bị, quy trình sau đây được thực hiện:

Khi thiết bị được khởi động, nó sẽ cố gắng truy cập mạng WLAN được định cấu hình (không có mạng WLAN được định cấu hình ở lần khởi động đầu tiên). Nếu không kết nối được với mạng WLAN được cấu hình sẵn, nó sẽ đặt IP tĩnh và mở rộng mạng không dây của chính nó mà không cần mật khẩu, nơi người ta có thể kết nối và thực hiện cấu hình ban đầu thông qua địa chỉ IP tĩnh.


2
Chỉ cần khởi động một máy chủ web sẽ không giải quyết được vấn đề làm thế nào để truyền SSID / Mật khẩu cho mạng wifi cho thiết bị để thực sự có được nó trên mạng.
hardillb

@hardillb Đúng, hãy xem luftdaten.info để biết thêm chi tiết . Khi thiết bị được khởi động, nó sẽ cố gắng truy cập mạng WLAN được định cấu hình (không có mạng WLAN được định cấu hình ở lần khởi động đầu tiên). Nếu không kết nối được với mạng WLAN được cấu hình sẵn, nó sẽ đặt IP tĩnh và mở rộng mạng không dây của chính nó mà không cần mật khẩu, nơi người ta có thể kết nối và thực hiện cấu hình ban đầu thông qua địa chỉ IP tĩnh.
Jens Kohl

0

HWFPS1464E p.selampannan periasamy151 @ gmail csperiasamy chỉ hợp tác


Chỉ hợp tác với HWFPS1464E /periasamy151 @ gmail (cha và con trai là tất cả)
Periasamy1972

tội phạm bất hợp pháp tấn công các tài liệu của tôi nên ngay lập tức bị chặn tại thẻ chính của tôi 2988
Periasamy1972

tội phạm bất hợp pháp đã tấn công các tài liệu của tôi nên ngay lập tức bị chặn tại thẻ chủ 2988 của tôi nhưng vấn đề trở lại tạo ra tài liệu của tôi người đó xin vui lòng giúp tôi
Periasamy1972
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.