Mục lục:

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

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

Video: Cảm biến nhiệt độ và độ ẩm WiFi IoT. Phần: 8 IoT, Tự động hóa gia đình: 9 bước
Video: Đo nhiệt độ - độ ẩm đất và điều khiển bơm tưới tự động sử dụng esp8266 và blynk iot 2024, Tháng mười một
Anonim
Cảm biến nhiệt độ và độ ẩm WiFi IoT. Phần: 8 IoT, Tự động hóa gia đình
Cảm biến nhiệt độ và độ ẩm WiFi IoT. Phần: 8 IoT, Tự động hóa gia đình

Mở đầu

Bài viết này ghi lại sự chắc chắn thực tế và sự phát triển tiếp theo của một Thiết bị có thể hướng dẫn trước đó: 'Pimping' Thiết bị WiFi IoT đầu tiên của bạn. Phần 4: IoT, Tự động hóa gia đình 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 gia đình trong nước.

Giới thiệu

Như đã đề cập ở trên, Bản hướng dẫn này mô tả việc kết hợp một ví dụ IoT trước đó với một thiết kế hệ thống đáng tin cậy cho phép xử lý thành công các trường hợp sử dụng thực tế như; Mất điện nghiêm trọng, lỗi MQTT Broker, lỗi WiFi N / W, cấu hình lại cảm biến từ xa, chiến lược báo cáo có thể định cấu hình để giảm lưu lượng mạng và hiệu chuẩn cảm biến riêng.

Tổng cộng có 6 thiết bị tắt đã được tạo (xem hình 1 ở trên) và được phân phối xung quanh nhà tôi để tạo thành mạng cảm biến IoT đầu tiên của tôi.

Huấn luyện viên cũng xem xét quy ước đặt tên MQTT như được sử dụng trong loạt Tự động hóa gia đình IoT ban đầu, nhường chỗ cho một cấu trúc thực tế, cân bằng hơn cho phép gỡ lỗi đơn giản hơn đối với lưu lượng truy cập IoT trong môi trường đa thiết bị IoT.

Những gì sau đây là chi tiết thiết kế đầy đủ của cảm biến IoT bao gồm; cấu hình xây dựng, mã nguồn, chiến lược thử nghiệm và OpenHAB.

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

  1. 1 tắt ESP8266-01,
  2. 2 tắt Tụ điện 1uF,
  3. 3 tắt 10K điện trở,
  4. 1 tắt điện trở 330R,
  5. 1 off 3mm dia. DẪN ĐẾN,
  6. 1 tắt LD1117-33v, 3v3 LDO VReg. (Farnell đây),
  7. 1 tắt Cảm biến nhiệt độ / độ ẩm DHT22,
  8. 1 tắt Đầu nối 4way 0,1 "Kép,
  9. 1 tắt CAMDENBOSS RX2008 / S-5 Vỏ nhựa, Hộp bầu, ABS, 38 mm, 23 mm (Farnell tại đây),
  10. Đầu nối nguồn DC 1 tắt, Phích cắm, 1 A, 2 mm, Giá gắn bảng điều khiển (Farnell tại đây),
  11. 1 tắt Tản nhiệt TO-220 24,4 ° C / W (Farnell tại đây),
  12. Các ống co nhiệt khác nhau (màu vàng, Ebay tại đây),
  13. Cáp ruy băng IDC có độ dài khác nhau,
  14. Hợp chất tản nhiệt,
  15. Veroboard,
  16. Thiết bị lập trình ESP8266-01. Xem tại đây; Xây dựng mạch thực tế với Strip Board, Bước 9 trở đi.

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

  1. Arduino IDE 1.6.9
  2. Arduino IDE được cấu hình để lập trình ESP8266-01. 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. Khoan và các loại bit khác nhau,
  3. Các tập tin,
  4. Cưa sắt,
  5. Cơ phó chắc chắn,
  6. Súng nhiệt,
  7. DMM.

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

  1. Hiểu biết tối thiểu về điện tử,
  2. Kiến thức về Arduino và IDE của nó,
  3. Kỹ năng chế tạo thô sơ (hàn, cưa hack, giũ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

  1. Tổng quan về mạch
  2. Tổng quan về hệ thống phần mềm
  3. Tổng quan về phần mềm
  4. Hiệu chuẩn cảm biến
  5. Quy ước đặt tên chủ đề MQTT
  6. Cấu hình OpenHAB
  7. Kiểm tra thiết kế
  8. Phần kết luận
  9. Tài liệu tham khảo được sử dụng

Liên kết chuỗi

Đến Phần 7: Bộ điều khiển đèn học (làm lại). Phần 7: IoT, Tự động hóa gia đình

Đến Phần 9: Bộ điều khiển IoT Mains. Phần 9: 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

Hình ảnh 1 ở trên cho thấy thiết kế mạch đầy đủ cho cảm biến IoT.

Trung tâm của thiết bị IoT là ESP8266-01 được kết nối với cảm biến nhiệt độ / độ ẩm DHT22 thông qua một điện trở kéo lên 10K tới GPIO2. Nguồn 5v bên ngoài được lấy nguồn từ nguồn cung cấp chế độ chuyển đổi và được cấp cho thiết bị thông qua ổ cắm gắn bảng điều khiển DC 2mm và được điều chỉnh cục bộ bằng bộ điều chỉnh điện áp LDO LD1117-33v, 3v3 được gắn với bộ tản nhiệt bên ngoài bằng vít và đai ốc đầu chảo BZP M3.

Thiết kế bao gồm một đèn led màu đỏ 3mm được kết nối với GPIO0 được sử dụng để đưa ra chỉ báo cục bộ về trạng thái của thiết bị IoT trong quá trình khởi động hoặc bất kỳ tình trạng lỗi nào sau đó. Nó cũng có thể được sử dụng để xác định thiết bị bằng cách kích hoạt thủ công thông qua giao diện openHAB.

Thiết kế đầy đủ nằm gọn trong một hộp bầu ABS như thể hiện ở trên trong hình 2 và được bố trí đặc biệt để đảm bảo cảm biến cách bộ điều chỉnh càng xa càng tốt để tránh hiện tượng sai lệch do hiệu ứng gia nhiệt cục bộ (hình 7 ở trên).

Bảng mạch là một phần của tấm veroboard, được cắt theo hình dạng và được chế tạo để vừa với vỏ máy (hình 3 ở trên). Bo mạch này được cố định ở vị trí bằng một vít nylon chìm M3 và hai đai ốc khớp với mặt dưới của cảm biến, do đó cho phép nó nằm trên một bề mặt phẳng.

Hình 4… 6 cho thấy các trạng thái xây dựng khác nhau.

Bước 2: 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

Thiết bị cảm biến nhiệt độ và độ ẩm IoT này chứa sáu thành phần phần mềm chính như được hiển thị trong hình 1 ở trên.

SPIFFS

Đây là Hệ thống Nộp hồ sơ 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 cảm biến' 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 cảm biến từ xa mà không cần để 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 cảm biến' được ghi vào tệp này ('secvals.txt').
  • Thông tin Hiệu chuẩn: Thông tin có trong tệp này ('calvals.txt') được sử dụng để hiệu chỉnh cảm biến nhiệt độ / độ ẩm trên bo mạch nếu cần thiết. Hằng số hiệu chuẩn chỉ có thể được ghi vào thiết bị IoT thông qua các lệnh MQTT từ một nhà môi giới MQTT.

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 'SENSORSVR.local' vào thanh URL của trình duyệt để xem 'Trang chủ cấu hình cảm biến'.

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 Điểm truy cập 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à để phục vụ 'Trang chủ cấu hình cảm biến Trang '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 = "SENSOR" + 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 3: 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ừ:

DHT.h

  • Bởi: Adafruit
  • Mục đích: Thư viện cho cảm biến nhiệt độ / độ ẩm DHT
  • 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ư dưới đây;

  • 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, chức năng nhiệt độ và độ ẩm của cảm biến được công bố cho MQTT Broker

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ị IoT sẽ trở thành Điểm truy cập. Sau khi được kết nối với điểm truy cập này, nó sẽ cung cấp 'Trang chủ cấu hình cảm biến' như được hiển thị ở trên trong Pic 2 (bằng cách nhập 'SENSORSVR.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 cảm biến thông qua trình duyệt

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

Sau khi kết nối với MQTT Broker, bạn cũng có thể hiệu chỉnh lại và cấu hình lại thiết bị thông qua các ấn phẩm chủ đề MQTT. Tệp calvals.txt có quyền truy cập R / W và secvals.txt có quyền truy cập chỉ ghi được hiển thị.

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

Trong trình tự khởi động, đèn led thiết bị IoT đưa ra phản hồi gỡ lỗi sau

  • 1 Flash ngắn: Không có tệp cấu hình nào 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ị IoT đang cố gắng kết nối với MQTT Broker
  • Tắt: Thiết bị đang hoạt động
  • Lưu ý 1: 'Trang chủ cấu hình cảm biến' 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 từng thiết bị IoT, chuỗi MQTT sẽ yêu cầu chỉnh sửa trước khi tải xuống. Điều này là do số lượng của cảm biến đã được nhúng vào chuỗi chủ đề MQTT. I E. 'WFD / THSen / 100 / HumdStatus / 1' cho 6 thiết bị của tôi, chúng được đánh số tương ứng là 1… 6.

Bước 4: Hiệu chỉnh cảm biến

Hiệu chuẩn cảm biến
Hiệu chuẩn cảm biến
Hiệu chuẩn cảm biến
Hiệu chuẩn cảm biến

Khi thiết bị IoT bật nguồn, như một phần của trình tự khởi động, tệp có tên 'cavals.txt' sẽ được đọc từ SPIFFS. Nội dung của tệp này là các hằng số hiệu chuẩn như được chỉ ra ở trên trong hình 1. Các hằng số hiệu chuẩn này được sử dụng để điều chỉnh các số đọc thu được từ cảm biến để đưa chúng vào phù hợp với thiết bị tham chiếu. Còn một giá trị khác xác định chiến lược báo cáo cho thiết bị và được mô tả bên dưới cùng với quy trình sau để hiệu chỉnh cảm biến.

Chiến lược báo cáo Thông số này xác định cách cảm biến từ xa báo cáo mọi thay đổi cục bộ của tham số môi trường xung quanh đối với nó. Nếu giá trị 0 được chọn, cảm biến từ xa sẽ công bố bất kỳ thay đổi nào mà nó nhìn thấy trong các giá trị nhiệt độ hoặc độ ẩm mỗi khi cảm biến được đọc (khoảng 10 giây một lần). Bất kỳ giá trị nào khác sẽ trì hoãn việc xuất bản thay đổi 1… 60 phút. Việc sửa đổi tham số này cho phép tối ưu hóa lưu lượng mạng MQTT.

Hiệu chuẩn nhiệt độ

Để hiệu chỉnh các cảm biến, chúng được đặt gần nhau về mặt vật lý như minh họa ở trên trong hình 2. Cùng với chúng, tôi đặt một DMM có gắn một cặp nhiệt điện đã hiệu chuẩn (Fluke 87 V) và sau đó theo dõi đầu ra từ mỗi thiết bị thông qua nhiệt độ OpenHAB trang xu hướng trong suốt một ngày để có được sự dao động nhiệt độ tốt. Tôi đã lưu ý cả độ lệch tĩnh (độ không tăng 'C') và tốc độ thay đổi của mỗi thiết bị (độ lợi hoặc độ dốc của đồ thị 'M') so với giá trị đến từ cặp nhiệt điện đã hiệu chuẩn. Sau đó, tôi tính toán mối quan hệ y = mx + c đơn giản (tôi thấy nó đủ tuyến tính để gần đúng với một đồ thị đường thẳng) và lập trình bất kỳ hiệu chỉnh cần thiết nào vào các hằng số hiệu chuẩn thông qua MQTTSpy.

Các thiết bị sau đó được theo dõi trong 24 giờ nữa để đảm bảo hiệu chuẩn thành công. Một dấu hiệu cho thấy các dấu vết nhiệt độ trên trang xu hướng nhiệt độ của OpenHAB đều nằm chồng lên nhau khá nhiều.

Tất nhiên nếu bạn chỉ quan tâm đến nhiệt độ gần đúng, bạn có thể để tất cả các giá trị hiệu chuẩn làm mặc định.

Hiệu chỉnh độ ẩm

Vì tôi không có phương tiện nào để ghi lại hoặc thậm chí kiểm soát độ ẩm xung quanh cục bộ một cách chính xác, nên để hiệu chỉnh các cảm biến, tôi đã sử dụng cách tiếp cận tương tự như ở trên, bằng cách đặt tất cả các thiết bị gần nhau về mặt vật lý (hình 2) và chỉ cần theo dõi đầu ra của chúng thông qua OpenHAB Trang có xu hướng ẩm. Sau đó, tôi chọn thiết bị số 1 làm tham chiếu hiệu chuẩn và hiệu chỉnh tất cả các thiết bị liên quan đến thiết bị này.

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

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

Sau nhiều thử nghiệm và sai sót, tôi đã giải quyết được quy ước đặt tên chủ đề được nêu trong hình 1 ở trên.

Cụ thể là 'AccessMethod / DeviceType / whichDevice / Action / SubDevice'

Nó không hoàn hảo nhưng nó cho phép các bộ lọc hữu ích được áp dụng để xem tất cả các đầu ra cảm biến cho một giá trị tham số nhất định, do đó cho phép so sánh dễ dàng như trong hình 2 ở trên với MQTTSpy. Nó cũng hỗ trợ các nhóm chức năng hợp lý có thể mở rộng hợp lý trong một thiết bị IoT nhất định.

Khi triển khai các chủ đề này trong phần mềm, tôi đã sử dụng các chuỗi chủ đề được mã hóa cứng với các số nhận dạng cố định, được nhúng cho mỗi thiết bị thay vì tạo động các chủ đề tại thời điểm chạy để tiết kiệm RAM và giữ hiệu suất cao.

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

Bước 6: 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

Tôi đã sửa đổi cấu hình OpenHAB được đưa ra trong Có thể hướng dẫn trước đó của tôi (tại đây) và thêm vào các mục nhập riêng lẻ cho;

  • Ga-ra,
  • Đại sảnh,
  • Phòng khách,
  • Phòng bếp
  • Phòng ngủ cho khách
  • Buông ngủ của sêp

Trong sơ đồ trang web, xem hình 1 ở trên.

Đối với mỗi mục nhập này, tôi đã thêm các sơ đồ trang web riêng lẻ hiển thị các giá trị xung quanh cục bộ (Xem hình 2 ở trên);

  • Nhiệt độ
  • Độ ẩm
  • Chỉ số nhiệt

Tôi cũng bao gồm một công tắc để điều khiển đèn led cục bộ được gắn trong cảm biến.

Hình 3… 5 hiển thị các dấu vết trực tiếp riêng lẻ trong khoảng thời gian 24 giờ đối với nhiệt độ, độ ẩm và RSSI (Chỉ báo cường độ tín hiệu đã nhận, về cơ bản là thước đo mức độ cảm biến có thể nhìn thấy mạng WiFi).

Hình 6 đưa ra một ví dụ về xu hướng độ ẩm dài hạn trong khoảng thời gian một tuần.

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 bên dưới.

Bước 7: Kiểm tra thiết kế

Kiểm tra thiết kế
Kiểm tra thiết kế
Kiểm tra thiết kế
Kiểm tra thiết kế

Đối với hầu hết các phần, tôi đã kiểm tra thiết bị IoT qua kết nối MQTT với MQTT Spy, giám sát đầu ra dẫn 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ù điều này được thực hiện theo cách thủ công và đôi khi trở nên hơi tẻ nhạt, nhưng nó đã cho phép phạm vi phủ sóng 100%.

Tuy nhiên, máy trạng thái chính tỏ ra hơi khó kiểm tra vì nó dựa vào sự hiện diện hay không có mạng WiFi, quyền truy cập vào mạng yêu cầu các bộ thông số cụ thể. Nó chỉ đơn giản là không thực tế để sử dụng mạng gia đình cho việc này.

Để giải quyết vấn đề này, tôi đã tạo bộ mạng giả của riêng mình bằng cách sử dụng ESP8266-01 được định cấu hình làm Điểm truy cập (hình 1) với SSID của 'DummyNet1' và 'DummyNet2' tương ứng. Sử dụng mạch trong pic 2 phía trên đèn led đã đưa ra chỉ báo nếu thiết bị IoT đã kết nối với nó. Mặc dù đây không phải là một giải pháp thử nghiệm hoàn hảo (tức là mỗi mạng WiFi giả này không chứa máy chủ MQTT) nhưng vẫn có thể kiểm tra toàn bộ máy trạng thái.

Tôi đã bao gồm một bản sao của mã nguồn bên dưới.

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

Tổng quan

Phần mềm trong các thiết bị IoT đã hoạt động đáng tin cậy trong nhiều tháng và hiện đã khôi phục được các trường hợp mất điện trong gia đình (chủ yếu do tôi gây ra). Nhìn chung, chúng là những thiết bị khá mạnh mẽ cung cấp dữ liệu nhất quán và chính xác.

Cải tiến

Trong việc phát triển các quy trình phần mềm để đọc và ghi vào SPIFFS, tôi đã viết mã mà trong tầm nhìn xa có thể nâng cao hơn một chút so với dự định của tôi, sử dụng con trỏ void, recasting và con trỏ tới con trỏ. Mặc dù nó rất linh hoạt và hoạt động tốt, nhưng lần tới tôi có thể sử dụng JSON someting dọc theo dòng ConfigFile.ino để đơn giản hơn một chút.

  • Lõi HUB Arduino GIT

    https://github.com/esp8266/Arduino

  • Nguồn ConfigFile.ino

    https://github.com/esp8266/Arduino/tree/master/libraries/esp8266/examples/ConfigFile

Danh sách mong muốn

Tôi đã định sử dụng một ứng dụng khách mDNS để kết nối với Broker nhưng thư viện quá mỏng. Đây là lý do tại sao cần phải chỉ định địa chỉ IP của Nhà môi giới MQTT thay vì 'MQTTSVR.local'. Nếu thư viện mDNS trở nên ổn định hơn trong tương lai, tôi sẽ thêm khả năng này vào thiết bị.

Sẽ thật tuyệt nếu có một phương tiện vừa giám sát chính xác vừa kiểm soát độ ẩm xung quanh để hiệu chỉnh các cảm biến. Tuy nhiên, điều đó cho thấy phương pháp hiệu chuẩn được chọn cho kết quả tương đối tốt và có vẻ chính xác hợp lý phù hợp với thông số kỹ thuật trong bảng dữ liệu DHT22.

Cuối cùng, với sự phức tạp của phần mềm, tôi nhận thấy việc kiểm tra toàn bộ mã sau một thay đổi lớn đang trở nên tốn thời gian. Tôi có thể xem xét thử nghiệm tự động vào một ngày sau đó.

Bước 9: 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
  • Từ:

DHT.h

  • Bởi: Adafruit
  • Từ:

Bảng dữ liệu DHT22

Đề xuất: