Mục lục:

Bộ điều khiển chính IoT. Phần 9: IoT, Tự động hóa gia đình: 10 bước (có hình ảnh)
Bộ điều khiển chính IoT. Phần 9: IoT, Tự động hóa gia đình: 10 bước (có hình ảnh)

Video: Bộ điều khiển chính IoT. Phần 9: IoT, Tự động hóa gia đình: 10 bước (có hình ảnh)

Video: Bộ điều khiển chính IoT. Phần 9: IoT, Tự động hóa gia đình: 10 bước (có hình ảnh)
Video: Bạn thuận não trái hay phải? Cách test suy nghĩ #shots #vitamin #braintest #fyp #xuhuong #Drvitamin 2024, Tháng mười một
Anonim
Bộ điều khiển chính IoT. Phần 9: IoT, Tự động hóa gia đình
Bộ điều khiển chính IoT. Phần 9: IoT, Tự động hóa gia đình

Tuyên bố từ chối trách nhiệm

ĐỌC CÁI NÀY TRƯỚC

Tài liệu hướng dẫn này trình bày chi tiết về một dự án sử dụng nguồn điện chính (ví dụ như Vương quốc Anh 240VAC RMS), trong khi mọi sự cẩn thận đã được thực hiện để sử dụng các nguyên tắc thiết kế tốt và an toàn, luôn có nguy cơ điện giật gây chết người khi làm việc với các điện áp cung cấp này và cho mà tác giả không thể chịu bất kỳ trách nhiệm nào nếu xảy ra thương tích cá nhân hoặc thiệt hại tài sản khi theo dõi nội dung của nó. Do đó, bạn thực hiện dự án này với rủi ro của riêng bạn.

Mở đầu

Bài viết này, bài thứ 9 trong loạt bài về tự động hóa gia đình, tài liệu cách tạo và tích hợp bộ điều khiển chính Sonoff 10A IoT vào hệ thống tự động hóa gia đình hiện có bao gồm tất cả các chức năng phần mềm cần thiết để cho phép triển khai thành công trong môi trường trong nước.

Giới thiệu

Như đã đề cập ở trên, chi tiết có thể hướng dẫn này cách tạo và tích hợp bộ điều khiển nguồn điện IoT bằng Sonoff 10A từ iTead. Bản thân thiết bị này được báo cáo là được đánh giá ở mức 10amps @ 90 ~ 250VAC, tuy nhiên, việc triển khai này giảm giá trị của nó thành 5 ampe thông qua phích cắm hợp nhất cung cấp nguồn cung cấp chính 240VAC RMS trong nước của Vương quốc Anh.

Phương pháp thiết kế tích hợp hoàn toàn vào mạng IoT dựa trên MQTT / OpenHAB được trình bày chi tiết trong loạt bài này về tòa nhà tự động hóa gia đình dựa trên mã được sử dụng lại được lấy từ đây. Nó cũng có thể xử lý việc mất bất kỳ phần tử mạng IoT nào và hoàn toàn có khả năng hoạt động độc lập. Trong khi ở chế độ độc lập, việc kiểm soát thiết bị có thể đạt được bằng cách chỉ cần nhấn vào nút điều khiển ở phía trên cùng của vỏ bọc, nút này sẽ bật tắt đầu ra nguồn cung cấp trở đi.

Để cho phép điều khiển cục bộ thiết bị Sonoff này, GPIO14 được đưa ra khỏi hộp và được sử dụng làm đầu vào kích hoạt. Để đảm bảo an toàn, đầu vào này được cấp nguồn qua mạch opto-coupler và được đặt trong một vỏ bọc bằng nhựa để người vận hành không tiếp xúc với điện áp nguồn chính.

Cuối cùng, phần văn xuôi cũng phác thảo cách lập trình lại thiết bị ESP8266 trong Sonoff 10A bằng Arduino IDE và cung cấp chi tiết mạch đầy đủ của thiết bị có thể được sử dụng để lập trình mã đích một cách đáng tin cậy.

Tôi cần những bộ phận nào?

Bộ điều khiển Sonoff Mains

  1. 1 off Sonoff 10A tại đây
  2. 1 tắt ổn áp 7805L 5v tại đây
  3. 1 tắt Biến áp 240 / 6VAC 1.5VA tại đây
  4. 2 tắt 0,1 tụ gốm ở đây
  5. 1 tắt 1000uF @ 25v Tụ điện tại đây
  6. 1 tắt chỉnh lưu cầu 2W01 tại đây
  7. 2 điện trở 4K7 tắt ở đây
  8. 1 tắt điện trở 330R ở đây
  9. 1 nút SPST tắt ở đây
  10. 1 tắt Vỏ bọc ABS Mulitcomp BM12W tại đây
  11. 1 tắt bộ ghép nối quang TIL111 tại đây
  12. 1 khối thiết bị đầu cuối 3 chiều tại đây
  13. 1 đầu nối molex được mã hóa 2 chiều tại đây / tại đây
  14. 1 đầu nối molex được mã hóa 3 chiều tại đây / tại đây
  15. 1 đầu nối molex được mã hóa 5 chiều tại đây / tại đây
  16. 1 chân molex 5 chiều tại đây
  17. 1 tắt Winbond SPI Flash (W25Q32FVSIG) tại đây
  18. 1 đầu giữ cầu chì 20mm + nắp ở đây
  19. 1 off 20mm thổi nhanh 500mA cầu chì ở đây
  20. 2 đầu cáp Polyamide ở đây
  21. 1 tắt phích cắm Chính của Vương quốc Anh (BS1363 / A) tại đây
  22. 1 tắt Ổ cắm chính của Vương quốc Anh (BS1363 / A) tại đây
  23. 7 vít nylon M3 16mm CS tháo lắp, (bao gồm 10 đai ốc) tại đây / tại đây
  24. 2 off Zip quan hệ tại đây
  25. 1 tắt veroboard (quảng cáo chiêu hàng 0,1 ") tại đây
  26. 1 off Dây đồng đóng hộp 22swg có độ dài khác nhau tại đây
  27. 1 off cáp chính 3M White UK tại đây
  28. 10 giảm giá ổ cắm Molex tại đây

Lập trình viên Sonoff

  1. 1 tắt ổn áp LD33CV 3v3 tại đây
  2. 1 off tản nhiệt TO-220 tại đây
  3. 1 off Heatsink paste vào đây
  4. 1 tắt 10uF @ 16v Tụ điện ở đây
  5. 1 tắt 0,1 tụ gốm ở đây
  6. 1 nút tắt SPDT tại đây
  7. 1 điện trở 4K7 ở đây
  8. 1 đầu nối molex được mã hóa 2 chiều tại đây / tại đây
  9. 1 đầu nối molex được mã hóa 3 chiều tại đây / tại đây
  10. 5 off ổ cắm Molex tại đây
  11. 1 ổ cắm molex 6 chiều ở đây
  12. 1 nút SPST tắt ở đây
  13. 1 off ổ cắm PSU 2.1mm ở đây
  14. 1 tắt veroboard (quảng cáo chiêu hàng 0,1 ") tại đây
  15. 1 tắt USB sang bộ chuyển đổi nối tiếp (FTDI) tại đây

Tôi cần phần mềm nào?

  1. Arduino IDE 1.6.9 tại đây
  2. Arduino IDE được cấu hình để lập trình ESP8266. Xem tại đây; Thiết lập Arduino IDE để lập trình ESP8266-01

Tôi cần những công cụ nào?

  1. Sắt hàn,
  2. Máy khoan & các loại bit khác nhau (bao gồm máy cắt lỗ theo bước cho các tuyến cáp và nút điều khiển),
  3. Tua vít (nhiều loại),
  4. Cờ lê có thể điều chỉnh (hai đầu tắt, chiều rộng hàm> 25mm, cho các tuyến cáp),
  5. Tệp (nhiều loại),
  6. Cơ phó chắc chắn,
  7. Súng nhiệt,
  8. DMM (tốt nhất là CAT IV).

Tôi cần những kỹ năng gì?

  1. Hiểu biết tốt về điện tử và an toàn điện gia đình / thiết kế / hệ thống dây điện, v.v.,
  2. Kiến thức về Arduino và IDE của nó,
  3. Kỹ năng chế tạo tốt (hàn, dũa, khoan, v.v.),
  4. Kiên nhẫn một chút,
  5. Một số hiểu biết về mạng gia đình của bạn.

Các chủ đề được đề cập

  • Giới thiệu
  • Tổng quan về mạch
  • Sonoff RetroMods
  • Chi tiết xây dựng và lắp ráp
  • Bộ điều hợp lập trình Sonoff
  • Tổng quan về hệ thống phần mềm
  • Tổng quan về phần mềm
  • Cấu hình OpenHAB
  • Kiểm tra thiết bị IoT của bạn
  • Phần kết luận
  • Tài liệu tham khảo được sử dụng

Liên kết chuỗi

Đến Phần 8: Cảm biến nhiệt độ và độ ẩm WiFi IoT. Phần: 8 IoT, Tự động hóa gia đình

Đến Phần 10: Điều khiển từ xa IR qua IoT. Phần 10 IoT, Tự động hóa gia đình

Bước 1: Tổng quan về mạch

Tổng quan về mạch
Tổng quan về mạch
Tổng quan về mạch
Tổng quan về mạch
Tổng quan về mạch
Tổng quan về mạch
Tổng quan về mạch
Tổng quan về mạch

Tổng quat

Như đã đề cập trong phần giới thiệu ở trên, để có thể bật và tắt bộ điều khiển nguồn cục bộ, cần phải có đầu vào cho ESP8266 trên bo mạch của Sonoff. Việc đưa một đầu vào bên ngoài như vậy yêu cầu vỏ Sonoff ABS phải bị thủng và do đó tạo ra nguy cơ sốc tiềm ẩn. Để khắc phục điều này, tôi đã sử dụng cách ly quang học để không có khả năng tiếp xúc với điện lưới bên ngoài vỏ hệ thống bộ điều khiển nguồn.

Những gì sau đây là mô tả của mạch quang cách ly (trong hình 1 ở trên).

Chi tiết mạch

Mạch quang cách ly nhận nguồn cung cấp trực tiếp từ nguồn điện cấp cho thiết bị. 240VAC RMS được áp dụng cho biến áp bước xuống / cách ly TR1 qua J1 tiếp điểm pheonix MKDSN2, đầu cuối 3 chiều polyamide 5 / 3-5.08 được đánh giá ở 16A ở 400V có thể mang cáp 2,5mm (sq) CSA và F1 một 500mA 20mm cầu chì thổi nhanh. 6VAC có sẵn trên các cuộn dây thứ cấp của TR1 được chỉnh lưu toàn sóng bằng cầu diode B1.

Đầu ra chỉnh lưu sóng đầy đủ này sau đó được ổn định và điều chỉnh bởi C1, C2 C3, R3 và IC1, một bộ điều chỉnh shunt dòng 7805L, tạo ra một đường cung cấp 5v tốt, sạch sẽ.

Sau đó, đường ray 5v được sử dụng để điều khiển đầu vào tới OK1 một bộ cách ly quang TIL111 thông qua một nút SPST màu trắng gắn bên ngoài được kết nối qua J3. Đầu ra của TIL111 được kết hợp với đầu vào Sonoff GPIO14 thông qua R2 một điện trở kéo lên 4K7. Do đó, tốt hơn 340V cách ly đạt được (tức là Điện áp đỉnh = (240VAC * sqroot (2))).

Bước 2: Sonoff RetroMods

Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods

Để tích hợp thiết bị Sonoff 10A, cần phải thực hiện một số sửa đổi hồi cứu.

Đầu tiên là thêm đầu nối molex cao độ 5-way 0,1 như trong hình 1 ở trên. Điều này cho phép truy cập vào GPIO14 trên Sonoff sau khi nắp bảo vệ đã được thay thế như trong ảnh 2 và 3 ở trên.

Mặc dù không được hiển thị ở trên, tôi cũng đưa ra các dòng TX / RX nối tiếp để cho phép lập trình tại chỗ (tham khảo bộ khai thác cáp SK1..3 ở Bước 1 ở trên).

Sửa đổi thứ hai là tăng kích thước của thiết bị SPI Flash từ 1MByte mặc định lên 4MByte, điều này để cho phép đủ chỗ cho các tệp máy chủ web IoT được lưu trữ trong SPIFFS.

Tôi đã mua thiết bị flash SMD SPI (W25Q32FVSIG) từ Ebay tại đây

Để thay thế đèn flash, tôi tạm thời loại bỏ đèn LED Sonoff như trong hình 4 để truy cập tốt hơn vào thiết bị SMD. Để khử hàn đèn flash, tôi sử dụng súng nhiệt như hình 5 ở trên. Sau đó hàn lại cả đèn Flash 4MByte và đèn LED tương ứng (hình 6).

Bước 3: Chi tiết xây dựng và lắp ráp

Chi tiết xây dựng và lắp ráp
Chi tiết xây dựng và lắp ráp
Chi tiết xây dựng và lắp ráp
Chi tiết xây dựng và lắp ráp
Chi tiết xây dựng và lắp ráp
Chi tiết xây dựng và lắp ráp
Chi tiết xây dựng và lắp ráp
Chi tiết xây dựng và lắp ráp

Tôi đã kèm theo bộ điều khiển nguồn điện trong Hộp ABS Mulitcomp BM12W (Hình 1 ở trên). Vỏ bọc này có các hạt chèn M3 bằng đồng thau cách ly cho phép truy cập nhiều vào thiết bị mà không ảnh hưởng đến các ren buộc để có thể thay thế cầu chì bên trong nếu cần thiết hoặc có thể thực hiện kiểm tra bên trong theo thời gian (không thể nói điều này đối với thiết bị Sonoff, thiết bị này hiệu quả là đóng một lần duy nhất bằng cách sử dụng tự khai thác).

Giảm căng cơ chính cho cáp cung cấp mang nguồn chính thông qua một đệm cáp M16 Nylon / Polyamide 6/6 màu trắng hỗ trợ cáp OD Min / Max 5mm / 10mm.

Giảm căng thẳng thứ cấp thông qua một dây buộc zip duy nhất được đặt trên cáp nếu áp dụng lực căng quá mức và tuyến cáp bị lỗi, dây buộc zip sẽ giữ cáp ở đúng vị trí.

Để phù hợp với các đệm cáp và cung cấp đủ không gian để gắn Sonoff và thiết bị điện tử cách ly quang học, tôi đã loại bỏ các khung gắn PCB bên trong như được hiển thị ở trên (Hình 2).

Tất cả các thiết bị điện tử được gắn chắc chắn thông qua vít M3 nylon CS để đảm bảo sự cách ly với bên ngoài của vỏ được duy trì. Thiết bị điện tử quang cách ly được gắn với 5 điểm cố định để đảm bảo độ bền cơ âm khi thiết bị bị rơi, do đó ngăn khối lượng của biến áp cách ly làm đứt mạch veroboard.

Cung cấp cho thiết bị được thực hiện thông qua tiêu chuẩn Anh Quốc màu trắng được mã hóa 3 lõi cách điện bằng PVC cáp nhiều sợi (32 / 0,2mm sq) cáp 1mm (sq) CSA. với đường kính ngoài là 7,2mm có khả năng mang 10A.

Thiết bị được kết nối với nguồn điện chính của Vương quốc Anh (240VAC RMS) qua phích cắm an toàn 3 chân tiêu chuẩn (BS 1363 / A) đã được phê duyệt. Phích cắm được hợp nhất ở 5A.

Tất cả các cáp cấp nguồn đến mạch quang cách ly được kết nối qua tiếp điểm pheonix MKDSN2, 5 / 3-5.08 đầu cuối polyamide được đánh giá ở 16A ở 400V có thể mang cáp CSA 2,5mm (sq), do đó cung cấp dung lượng dồi dào cho hai cáp trong từng vị trí.

Không có cáp nguồn nào được đóng hộp, chỉ được xoắn để ngăn chặn các lõi bị bung ra trước khi lắp vào khối đầu nối. Thiếc cáp nguồn là một thực tế nguy hiểm vì chất hàn 'giãn ra' theo thời gian cuối cùng khiến cáp bị mất trong khối đầu nối.

Ghi chú:

  • OD = Đường kính ngoài.
  • VAC = Volts Dòng điện xoay chiều
  • RMS = Root Mean Square
  • CSA = Diện tích mặt cắt ngang
  • CS = Counter Sunk

Bước 4: Bộ điều hợp lập trình Sonoff

Bộ điều hợp lập trình Sonoff
Bộ điều hợp lập trình Sonoff
Bộ điều hợp lập trình Sonoff
Bộ điều hợp lập trình Sonoff
Bộ điều hợp lập trình Sonoff
Bộ điều hợp lập trình Sonoff
Bộ điều hợp lập trình Sonoff
Bộ điều hợp lập trình Sonoff

Có hai khía cạnh cần được xem xét khi lập trình lại Sonoff 10A thông qua Arduino IDE;

  1. Định cấu hình Arduino IDE của bạn để lập trình ESP8266,
  2. Hành động tự lập trình phần cứng.

Định cấu hình Arduino IDE của bạn để lập trình ESP8266

Để định cấu hình Ardino IDE của bạn, hãy làm theo hướng dẫn tại đây Thiết lập Arduino IDE để lập trình ESP8266-01

Lập trình phần cứng

Đây là một quy trình gồm nhiều bước như trong mọi trường hợp với ESP8266. Ở đây, nguồn Sonoff được cấp cho bo mạch thông qua nguồn điện 1 chiều 3v3 ổn định bên ngoài chứ KHÔNG phải từ nguồn điện lưới. Cần có USB sang thiết bị nối tiếp để gửi và nhận dữ liệu đến và đi từ Sonoff. Kết nối TX và RX như trong Hình 2 & 4.

Các bước lập trình (chung)

  1. Trước tiên, hãy đảm bảo rằng không có nguồn điện lưới bên ngoài được áp dụng cho Sonoff,
  2. Nhấn và giữ nút trên thiết bị Sonoff. (hình 1 ở trên, nút flash lại được đánh dấu),
  3. Áp dụng nguồn cung cấp DC 3v3 bên ngoài cho chân 1. (hình 2 ở trên),
  4. Thả nút Sonoff,
  5. Thiết bị hiện có thể được lập trình lại theo cách thông thường thông qua Arduino IDE.

Để làm cho mọi thứ dễ dàng hơn một chút, tôi đã tạo thiết bị lập trình ở trên (ảnh 3 và 4) giao tiếp với Sonoff thông qua dây nịt cáp SK1… 3 (như được mô tả trong Bước 1 có thể hướng dẫn này). Điều này cho phép lập trình ESP8266 dễ dàng hơn. Nó cũng cung cấp một phương tiện kiểm tra GPIO14 như một đầu vào thông qua việc sử dụng R1 một điện trở kéo lên 4K7 và nút S1.

Sử dụng thiết bị lập trình ở trên (Ảnh 3 & 4) Các bước lập trình là,

  1. Nhấn và giữ nút flash lại trên Sonoff,
  2. Xung nguồn cung cấp 3v3 bằng cách nhấn S2 trong giây lát,
  3. Thả nút flash lại,
  4. Thiết bị bây giờ có thể được lập trình.

LƯU Ý - CẢNH BÁO

Trong mọi trường hợp KHÔNG nên cung cấp điện qua Mains trong hoạt động lập trình lại Sonoff

Bước 5: Tổng quan về hệ thống phần mềm

Tổng quan về hệ thống phần mềm
Tổng quan về hệ thống phần mềm
Tổng quan về hệ thống phần mềm
Tổng quan về hệ thống phần mềm

Phần lớn thiết bị Bộ điều khiển chính IoT này chứa sáu thành phần phần mềm chính tương tự như trong Cảm biến nhiệt độ và độ ẩm WiFi IoT có thể hướng dẫn. Phần: 8 IoT, Tự động hóa gia đình và được hiển thị trong hình 1 ở trên, với một số tùy chỉnh.

SPIFFS

Đây là (được nâng cấp lên 4MBytes) Hệ thống lưu trữ Flash SPI trên bo mạch và được sử dụng để chứa các thông tin sau (xem hình 2 ở trên);

  • Biểu tượng và 'Trang chủ cấu hình bộ điều khiển chính' html: Được thiết bị IoT cung cấp khi thiết bị không thể kết nối với mạng WiFi IoT của bạn (thường do thông tin bảo mật không chính xác) và cung cấp cho người dùng phương tiện định cấu hình từ xa bộ điều khiển nguồn mà không cần nhu cầu lập trình lại hoặc tải lên nội dung SPIFFS mới.
  • Thông tin bảo mật: Thông tin này lưu giữ thông tin được sử dụng khi thiết bị IoT bật nguồn để kết nối với mạng IoT WiFi và MQTT Broker của bạn. Thông tin được gửi qua 'Trang chủ cấu hình bộ điều khiển chính' được ghi vào tệp này ('secvals.txt').

Lưu ý: Để thiết lập ban đầu thiết bị, hãy xem tại đây để biết chi tiết đầy đủ về cách sử dụng SPIFFS với Arduino IDE.

Máy chủ mDNS

Chức năng này được gọi khi thiết bị IoT không kết nối được với mạng WiFi của bạn dưới dạng một trạm WiFi và thay vào đó, nó đã trở thành một điểm truy cập WiFi giống như một bộ định tuyến WiFi trong nước. Trong trường hợp của một bộ định tuyến như vậy, bạn thường sẽ kết nối với nó bằng cách nhập Địa chỉ IP của một cái gì đó như 192.168.1.1 (thường được in trên nhãn dán vào hộp) trực tiếp vào thanh URL trình duyệt của bạn, sau đó bạn sẽ nhận được một trang đăng nhập để nhập tên người dùng và mật khẩu để cho phép bạn định cấu hình thiết bị. Đối với ESP8266 ở chế độ AP (chế độ Điểm truy cập), thiết bị mặc định là địa chỉ IP 192.168.4.1, tuy nhiên với máy chủ mDNS đang chạy, bạn chỉ phải nhập tên thân thiện với con người 'MAINSCON.local' vào thanh URL của trình duyệt để xem 'Trang chủ cấu hình bộ điều khiển chính'.

Khách hàng MQTT

Máy khách MQTT cung cấp tất cả các chức năng cần thiết để; kết nối với nhà môi giới MQTT mạng IoT của bạn, đăng ký các chủ đề bạn chọn và xuất bản tải trọng cho một chủ đề nhất định. Tóm lại, nó cung cấp chức năng cốt lõi của IoT.

Máy chủ web

Như đã đề cập ở trên, nếu thiết bị IoT không thể kết nối với mạng WiFi có SSID, P / W, v.v. được xác định trong tệp Thông tin bảo mật được giữ trong SPIFFS, thiết bị sẽ trở thành Điểm truy cập. Sau khi được kết nối với mạng WiFi do Access Point cung cấp, sự hiện diện của Máy chủ web HTTP cho phép bạn kết nối trực tiếp với thiết bị và thay đổi cấu hình của thiết bị thông qua việc sử dụng Trình duyệt web HTTP mà mục đích là để cung cấp 'Cấu hình bộ điều khiển chính Trang chủ 'trang web cũng được tổ chức trong SPIFFS.

Trạm WiFi

Chức năng này cung cấp cho thiết bị IoT khả năng kết nối với mạng WiFi trong nước bằng cách sử dụng các thông số trong tệp Thông tin bảo mật, nếu không có chức năng này, thiết bị IoT của bạn sẽ không thể đăng ký / xuất bản lên MQTT Broker

Điểm truy cập WiFi

Khả năng trở thành Điểm truy cập WiFi là phương tiện mà thiết bị IoT cho phép bạn kết nối với thiết bị đó và thực hiện các thay đổi cấu hình thông qua trạm WiFi và trình duyệt (chẳng hạn như Safari trên Apple iPad). Điểm truy cập này phát SSID = "MAINSCON" + 6 chữ số cuối cùng của địa chỉ MAC của thiết bị IoT. Mật khẩu cho mạng kín này được đặt tên theo hình tượng là 'MẬT KHẨU'.

Bước 6: Tổng quan về phần mềm

Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm

PreambleĐể biên dịch thành công mã nguồn này, bạn sẽ cần các thư viện bổ sung sau;

PubSubClient.h

  • Bởi: Nick O'Leary
  • Mục đích: Cho phép thiết bị xuất bản hoặc đăng ký các chủ đề MQTT với một Nhà môi giới nhất định
  • Từ:

Bounce2.h

  • Bởi: Thomas O Fredericks
  • Mục đích: Loại bỏ công tắc đầu vào bị trả lại trong phần mềm
  • Từ:

Tổng quan về mã

Phần mềm sử dụng máy trạng thái như được hiển thị trong hình 1 ở trên (bản sao đầy đủ của nguồn được cung cấp bên dưới). Có 5 trạng thái chính như sau;

  • TRONG ĐÓ

    Trạng thái khởi tạo này là trạng thái đầu tiên được nhập sau khi bật nguồn

  • NOCONFIG

    Trạng thái này được nhập nếu sau khi khởi động, phát hiện thấy tệp secvals.txt không hợp lệ hoặc bị thiếu

  • PENDING NW

    Trạng thái này là tạm thời, được nhập trong khi không có kết nối mạng WiFi

  • ĐANG ĐANG MQTT

    Trạng thái này là tạm thời, được nhập sau khi kết nối mạng WiFi đã được thực hiện và trong khi không tồn tại kết nối với nhà môi giới MQTT trên mạng đó

  • TÍCH CỰC

    Đây là trạng thái hoạt động bình thường được nhập sau khi cả kết nối mạng WiFi và kết nối MQTT Broker đã được thiết lập. Trong trạng thái này, Bộ điều khiển chính sẽ xuất bản tới Nhà môi giới MQTT và nhận lệnh thông qua các chủ đề đã đăng ký

Các sự kiện điều khiển chuyển đổi giữa các trạng thái được mô tả trong hình 1 ở trên. Chuyển đổi giữa các trạng thái cũng được điều chỉnh bởi các tham số SecVals sau đây;

  • Địa chỉ IP nhà môi giới MQTT thứ nhất. Ở dạng thập phân chấm chấm AAA. BBB. CCC. DDD
  • Cổng môi giới MQTT thứ 2. Ở dạng Số nguyên.
  • Kết nối MQTT Broker thứ 3 cố gắng thực hiện trước khi chuyển từ chế độ STA sang chế độ AP. Ở dạng Số nguyên.
  • SSID mạng WiFi thứ 4. Trong văn bản biểu mẫu miễn phí.
  • Mật khẩu mạng WiFi thứ 5. Trong văn bản biểu mẫu miễn phí.

Như đã đề cập ở trên nếu thiết bị IoT không thể kết nối dưới dạng Trạm WiFi với mạng WiFi, SSID và P / W của người đó được xác định trong secvals.txt được giữ trong SPIFFS, thiết bị sẽ trở thành Điểm truy cập. Sau khi kết nối với điểm truy cập này, nó sẽ cung cấp 'Trang chủ cấu hình bộ điều khiển chính' như được hiển thị ở trên trong Pic 2 (bằng cách nhập 'MAINSCON.local' hoặc 192.168.4.1 vào thanh địa chỉ URL của trình duyệt của bạn). Trang chủ này cho phép cấu hình lại bộ điều khiển chính thông qua trình duyệt

MQTT Quy ước đặt tên chủ đề

Được phác thảo trong hình 3 ở trên là quy ước đặt tên được sử dụng cho các chủ đề MQTT và phù hợp với mẫu được sử dụng trong Bài hướng dẫn trước đây của tôi (tại đây Bước 5).

Chủ đề MQTT được thiết bị IoT này sử dụng

Để rõ ràng, tôi đã ghi lại (hình 4) các chủ đề và chuỗi thông báo liên quan mà thiết bị này xuất bản / đăng ký. Hình ảnh cũng mô tả sự tương tác với nút điều khiển màu trắng ở bên ngoài của vỏ máy (mặc dù trớ trêu thay, nút này lại được hiển thị bằng màu đỏ).

Truy cập cấu hình từ xa trong khi ở trạng thái HOẠT ĐỘNG

Sau khi kết nối với MQTT Broker, có thể cấu hình lại từ xa các thông số bảo mật cho thiết bị thông qua các ấn phẩm chủ đề MQTT. Tệp liên quan secvals.txt có quyền truy cập chỉ ghi được tiếp xúc.

Người dùng gỡ lỗi

Trong quá trình khởi động, đèn led thiết bị Sonoff đưa ra phản hồi gỡ lỗi sau đây, mặc dù cần lưu ý, để xem điều này, bạn sẽ cần phải tháo nắp và để lộ mạch, vì vậy bạn chỉ nên làm như vậy trong khi phát triển mã của bạn và cấp nguồn cho thiết bị với một cung 3v3;

  • 1 Flash ngắn: Không có tệp cấu hình nằm trong SPIFFS (secvals.txt),
  • 2 Nhấp nháy ngắn: Thiết bị IoT đang cố gắng kết nối với mạng WiFi,
  • Chiếu sáng liên tục: Thiết bị Sonoff IoT đang cố gắng kết nối với MQTT Broker,
  • Tắt: Thiết bị đang hoạt động và được kết nối với MQTT Broker.

Lưu ý 1: 'Trang chủ cấu hình bộ điều khiển chính' không sử dụng ổ cắm an toàn và do đó, mạng của bạn được bảo mật.

Lưu ý 2: Để lập trình nhiều thiết bị IoT, chuỗi MQTT sẽ yêu cầu chỉnh sửa trước khi tải xuống từng thiết bị. Điều này là do số id của bộ điều khiển nguồn đã được nhúng vào chuỗi chủ đề MQTT. I E. trong phần mềm đã xuất bản, tôi đã chọn giá trị 100: 'WFD / MainsCont / 100 / Relay / Command / 1' và đối với 2 thiết bị của tôi, chúng được đánh số tương ứng là 1 & 2.

  • 'WFD / MainsCont / 1 / Relay / Command / 1'
  • 'WFD / MainsCont / 2 / Relay / Command / 1'

Lưu ý 3: Để hoàn thiện khi ở trạng thái HOẠT ĐỘNG, phần mềm IoT cho phép điều khiển đèn LED Sonoff và công bố trạng thái của nút nhấp nháy lại. Mặc dù chúng chỉ có giá trị trong quá trình gỡ lỗi vì chúng không được hiển thị cho người dùng trong quá trình hoạt động bình thường.

Bước 7: Cấu hình OpenHAB

Cấu hình OpenHAB
Cấu hình OpenHAB
Cấu hình OpenHAB
Cấu hình OpenHAB
Cấu hình OpenHAB
Cấu hình OpenHAB

Với mục đích thử nghiệm, tôi quyết định triển khai hai bộ điều khiển nguồn điện trong 'Phòng khách' của nhà mình. Trang OpenHAB này có thể được truy cập thông qua trang chính như trong hình 1.

Tôi đã sửa đổi cấu hình OpenHAB.sitemap được đưa ra trong Bản đồ có thể hướng dẫn trước đó của tôi (tại đây) và thêm các mục riêng lẻ cho 'Bộ điều khiển chính 1' và 'Bộ điều khiển chính 2' (hình 2 ở trên). Tôi cũng đã thêm các mục (Phòng khách chứa tiếp 1 & 2) để hiển thị Xu hướng RSSI được đo tại bộ thu của hai thiết bị IoT mới (hình 3).

Cuối cùng, tôi đã thêm các mục vào tệp.rules và.items để cho phép đồng bộ hóa trạng thái động của Sonoff và cập nhật / tạo hoạt ảnh cho nỗ lực kém của tôi đối với đồ họa công tắc (công tắc đóng khi hoạt động và mở khi không hoạt động). Pic 2 đưa ra một ví dụ về MC1 hoạt động và MC2 không hoạt động.

Lưu ý 1: Nếu bạn không chắc chắn về cách sử dụng OpenHAB, hãy xem tại đây 'Thiết lập và cấu hình OpenHAB. Phần 6: IoT, Tự động hóa gia đình '

Lưu ý 2: Bản sao của sơ đồ trang web đã sửa đổi, các tệp quy tắc và mục, Biểu tượng, v.v. được cung cấp trong tệp zip bên dưới.

Lưu ý 3: RSSI = Chỉ báo cường độ tín hiệu đã nhận. Đây là thước đo về mức độ mà thiết bị IoT có thể nhìn thấy mạng WiFi của bạn.

Bước 8: Kiểm tra thiết bị IoT của bạn

Image
Image
Kiểm tra thiết bị IoT của bạn
Kiểm tra thiết bị IoT của bạn

Như được mô tả trong Cảm biến nhiệt độ và độ ẩm WiFi IoT có thể hướng dẫn. Phần: 8 IoT, Tự động hóa tại nhà Bước 7, thử nghiệm ban đầu của thiết bị IoT được thực hiện qua kết nối MQTT thông qua MQTT Spy (như trong sơ đồ khối hệ thống pic 1 ở trên), giám sát đầu ra đèn LED, đầu vào nút (cả nút nhấp nháy lại Sonoff và nút bên ngoài màu trắng) và gỡ lỗi lưu lượng trên giao diện nối tiếp. Điều này cho phép tôi thực hiện tất cả các chủ đề đã đăng ký hiện có và kiểm tra các câu trả lời đã xuất bản. Mặc dù một lần nữa, việc này được thực hiện thủ công và tốn thời gian, mặc dù nó đã cho phép phủ sóng 100% các thông điệp / ấn phẩm chủ đề.

Vì máy trạng thái phần mềm chính (Bước 6 ở trên) được kế thừa từ Có thể hướng dẫn trước đó (Phần: 8), ngoài việc kiểm tra tỉnh táo, phần mềm có thể kết nối với WiFi N / W và MQTT Broker, nó được cho là hoạt động chính xác.

Sau đó, kiểm tra toàn bộ mức hệ thống đã được hoàn thành bằng cách sử dụng bộ điều khiển nguồn và cơ sở hạ tầng IoT (lần này là hình 1) bằng cách sử dụng OpenHAB để kiểm soát tương tác với thiết bị IoT. Phần cứng IoT và tải giả được thiết lập có thể được nhìn thấy trong hình 2 ở trên.

Video cung cấp chi tiết đầy đủ về các bài kiểm tra hệ thống và cho thấy rõ ràng quá trình đồng bộ hóa đang được duy trì giữa các thiết bị OpenHAB (PC / Chrome và iPad / ỨNG DỤNG OpenHAB) trong thời gian thực. Nó cũng hiển thị tin nhắn trực tiếp đến Bộ điều khiển chính thông qua MQTTSpy (xem tại đây để biết thêm chi tiết Thiết lập nhà môi giới MQTT. Phần 2: IoT, Tự động hóa gia đình) và nhật ký hệ thống theo đuôi OpenHAB từ máy chủ raspberry pi qua kết nối PuTTY SSH (xem thêm tại đây chi tiết Thiết lập và cấu hình OpenHAB. Phần 6: IoT, Tự động hóa gia đình).

Lưu ý: Lưu lượng gỡ lỗi đã được biên dịch cho bản phát hành phần mềm cuối cùng.

Bước 9: Kết luận

Tổng quan

Dự án tương đối dễ hoàn thành và hoạt động tốt. Phần mềm nhúng rất đơn giản để sản xuất, là phiên bản rút gọn của mã được sử dụng cho Cảm biến nhiệt độ và độ ẩm của Phần 8 trong loạt bài này.

Ban đầu tôi dự định chỉ mua các bộ phận thành phần màu trắng hoàn toàn vì chất lượng thẩm mỹ của chúng. Tôi đã đạt được điều này trong tất cả trừ nút điều khiển, hãy cố gắng hết sức có thể, tôi không thể tìm thấy một nút hoàn toàn màu trắng tốt / rẻ.

Thiết bị Sonoff 10A

Tôi đã liệt kê bên dưới những gì tôi cảm thấy là Ưu và Nhược điểm của thiết bị Sonoff

Ưu điểm

  • Rẻ.
  • Hỗ trợ cộng đồng tốt.
  • Có thể lập trình lại thông qua Arduino IDE.

Nhược điểm

  • Vỏ bọc mỏng manh.
  • I / O tối thiểu (đưa ra các đầu nối có thể sử dụng được).
  • Nó nóng ở trạng thái tĩnh.
  • Chỉ có 1MByte đèn flash SPI trên bo mạch.
  • Là một PITA để lập trình lại sau khi có dây tại chỗ.
  • Khi tích hợp mã mới vào thử nghiệm Sonoff, việc đóng rơ le có vấn đề do rơ le là 5v và nguồn cung cấp cho Sonoff để lập trình là 3v3. Kích hoạt chuyển tiếp chỉ có thể cảm nhận được bằng tai.

Mối quan tâm

  • Nó không chuyển dòng Trung tính. Sử dụng một rơle SPST.
  • Không hợp nhất.
  • Giảm căng cáp kém.
  • PCB không được bảo mật trong vỏ Sonoff.

Nhận xét về thiết kế kỹ thuật

Do thiết bị IoT này đã được sử dụng để chuyển đổi nguồn điện trực tiếp của Vương quốc Anh (240VAC RMS), tôi đã tuân thủ cả thực hành thiết kế cơ và điện tốt và đảm bảo giảm thiểu nguy cơ bị điện giật bằng cách không để lộ bất kỳ vật liệu dẫn điện nào, chỉ định tất cả các thành phần, loại bỏ tải đầu ra, áp dụng bảo vệ cầu chì cho cả Bộ điều khiển chính và Hệ thống phụ ghép nối quang, bao gồm tiếp đất tốt không bị đứt đoạn và sử dụng cách ly quang / điện.

Cải tiến có thể

Với nhận thức sâu sắc, sẽ hữu ích nếu bao gồm một chỉ báo trực quan rằng đầu ra Bộ điều khiển chính đang hoạt động (LED hoặc Neon). Mặc dù không phải là vấn đề trong sử dụng hàng ngày, nhưng thực tế tiêu chuẩn là cách ly tải khỏi nguồn cung cấp trước khi tiến hành bất kỳ bảo trì nào hoặc chỉ cần nhấn nút điều khiển cục bộ sẽ chuyển đổi đầu ra trong trường hợp đèn có thể sáng khi được cắm vào.

Lưu ý cuối cùng

Nếu bạn muốn xem hai ví dụ rất kém về xử lý điện lưới, hãy xem các liên kết bên dưới. Giải thưởng Darwin của họ sẽ được đăng rất sớm, tôi khá chắc chắn;

  • Dây nối dài nhà khoa học điên
  • Phản hồi của cộng đồng 03 - Mối quan tâm về an toàn điện!

Bước 10: Tài liệu tham khảo được sử dụng

Tôi đã sử dụng các nguồn sau để tổng hợp Tài liệu hướng dẫn này lại với nhau;

PubSubClient.h

  • Bởi: Nick O'Leary
  • Mục đích: Cho phép thiết bị xuất bản hoặc đăng ký các chủ đề MQTT với một Nhà môi giới nhất định
  • Từ:

Bounce2.h

  • Bởi: Thomas O Fredericks
  • Mục đích: Loại bỏ công tắc đầu vào bị trả lại trong phần mềm
  • Từ:

SPIFFS

https://esp8266.github.io/Arduino/versions/2.0.0/do…

Nâng cấp đèn flash Sonoff

  • https://www.andremiller.net/content/upgrading-sonof…
  • https://tech.scargill.net/32mb-esp01/
  • https://www.andremiller.net/content/upgrading-sonof…

Sơ đồ mạch Sonoff

https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf

Mô-đun UART USB (hay còn gọi là. FTDI)

https://www.ebay.co.uk/itm/6Pin-USB-2-0-to-TTL-UART-Module-Converter-CP2102-STC-Replace-FT232-CF-/272249732398?epid=503069058&hash=item3f63593d2e: g: QVUAAOSw71BXP92B

Giải thưởng Darwin (cứu trợ ánh sáng)

https://www.darwinawards.com/

Biểu dữ liệu bộ cách ly quang TIL111

Đề xuất: