Mục lục:

Xây dựng cảm biến chất lượng không khí IoT trong nhà không cần đám mây: 10 bước
Xây dựng cảm biến chất lượng không khí IoT trong nhà không cần đám mây: 10 bước

Video: Xây dựng cảm biến chất lượng không khí IoT trong nhà không cần đám mây: 10 bước

Video: Xây dựng cảm biến chất lượng không khí IoT trong nhà không cần đám mây: 10 bước
Video: Giới thiệu về IoT siêu dễ hiểu. Học và làm việc trong ngành IoT ra sao? 2024, Tháng sáu
Anonim
Xây dựng cảm biến chất lượng không khí IoT trong nhà Không cần đám mây
Xây dựng cảm biến chất lượng không khí IoT trong nhà Không cần đám mây
Xây dựng cảm biến chất lượng không khí IoT trong nhà Không cần đám mây
Xây dựng cảm biến chất lượng không khí IoT trong nhà Không cần đám mây
Xây dựng cảm biến chất lượng không khí IoT trong nhà Không cần đám mây
Xây dựng cảm biến chất lượng không khí IoT trong nhà Không cần đám mây
Xây dựng cảm biến chất lượng không khí IoT trong nhà Không cần đám mây
Xây dựng cảm biến chất lượng không khí IoT trong nhà Không cần đám mây

Chất lượng của không khí trong nhà hay ngoài trời phụ thuộc vào nhiều nguồn ô nhiễm và do thời tiết.

Thiết bị này nắm bắt một số thông số phổ biến và một số thông số thú vị nhất bằng cách sử dụng 2 chip cảm biến.

  • Nhiệt độ
  • Độ ẩm
  • Sức ép
  • Khí hữu cơ
  • Hạt vi mô

Các cảm biến được sử dụng ở đây là BME680 để nhận các giá trị nhiệt độ, độ ẩm, áp suất và khí hữu cơ và PMS5003 để lấy mật độ của các hạt vi mô.

Bằng cách sử dụng thư viện HomeDing, bạn có thể dễ dàng xây dựng một thiết bị chỉ được kết nối với Mạng gia đình của mình và có thể được tiếp cận và điều khiển bởi bất kỳ trình duyệt nào trên mạng. Nó đi kèm với một loạt các Phần tử cho phép sử dụng các chip cảm biến, thiết bị và các dịch vụ khác phổ biến nhất.

Nó cũng mang đến một giải pháp hoàn chỉnh để lưu trữ một mặt web bên trong thiết bị thay vì sử dụng một giải pháp dựa trên đám mây để hiển thị dữ liệu cảm biến và tương tác với thiết bị.

Quân nhu

Tất cả những gì bạn cần để xây dựng dự án này là một bảng mạch dựa trên ESP8266 như bảng mạch gật gù và bộ cảm biến để đo chất lượng không khí. Thư viện HomeDing được sử dụng trong dự án này hỗ trợ một số chip cảm biến phổ biến về nhiệt độ, độ ẩm, áp suất và chất lượng. Ở đây chip BMP680 được sử dụng.

  • Một phích cắm USB và một cáp micro-usb để cấp nguồn.
  • 1 bo mạch gật gù với CPU ESP8266.
  • 1 bo mạch phá vỡ cảm biến BME680.
  • 1 loại cảm biến laser hạt không khí PM2.5 PMS5003

Có thể dễ dàng hoán đổi cảm biến BME680 với cảm biến DHT22 vì chúng cũng được hỗ trợ bởi thư viện trong số nhiều cảm biến khác.

Bước 1: Chuẩn bị Môi trường Arduino cho ESP8266

Chuẩn bị Môi trường Arduino cho ESP8266
Chuẩn bị Môi trường Arduino cho ESP8266
  1. Cài đặt phiên bản mới nhất của Arduino IDE (hiện tại là phiên bản 1.8.2).
  2. Sử dụng Board Manager để cài đặt cài đặt hỗ trợ esp8266. Bạn có thể tìm thấy hướng dẫn chi tiết tại đây:
  3. Thiết lập các tùy chọn bo mạch cho NodeMCU 1.0 với Hệ thống tệp SPIFFS 1MByte như được hiển thị trong ảnh chụp màn hình

Bước 2: Bao gồm các thư viện bắt buộc

Bao gồm các thư viện bắt buộc
Bao gồm các thư viện bắt buộc

Thư viện HomeDing dựa vào một số thư viện bổ sung phổ biến để các cảm biến và màn hình hoạt động.

Khi bạn cài đặt thư viện HomeDing, bạn sẽ thấy một cửa sổ bật lên với các thư viện bắt buộc này có thể được cài đặt tự động như trong hình và rất dễ dàng để cài đặt tất cả.

Đôi khi (không rõ lý do) việc cài đặt các thư viện không thành công, vì vậy tất cả các thư viện bắt buộc cần phải được cài đặt theo cách thủ công.

Bạn có thể tìm thêm thông tin chi tiết về các thư viện bắt buộc trên trang web tài liệu tại

Đây là danh sách các thư viện bắt buộc hiện tại:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • Trình điều khiển ESP8266 và ESP32 Oled cho màn hình SSD1306
  • RotaryEncoder
  • Thư viện cảm biến DHT cho ESPx
  • OneWire

Cảm biến laser hạt không khí PMS5003 giao tiếp bằng cách sử dụng tín hiệu dòng nối tiếp 9600 baud. Tín hiệu này được ghi lại bằng cách sử dụng thư viện SoftwareSerial đi kèm với việc cài đặt các công cụ ESP8266. Đảm bảo không cài đặt phiên bản cũ hơn làm thư viện.

Bước 3: Tùy chỉnh Phác thảo Ví dụ Chuẩn

Tùy chỉnh Phác thảo Ví dụ Chuẩn
Tùy chỉnh Phác thảo Ví dụ Chuẩn

Ví dụ tiêu chuẩn đã bao gồm một số cảm biến phổ biến hơn dưới dạng các phần tử nên chỉ cần một số cấu hình.

Điều này áp dụng cho cảm biến BME680 được hỗ trợ bởi Phần tử BME680.

Cảm biến PMS5003 ít phổ biến hơn và cần được kích hoạt bằng cách đưa Phần tử PMS vào phần sụn. Điều này được thực hiện bằng cách xác định #define HOMEDING_INCLUDE_PMS trong phần thanh ghi phần tử của bản phác thảo

#define HOMEDING_INCLUDE_BME680 # xác định HOMEDING_INCLUDE_PMS

Để đơn giản hơn khi thêm thiết bị mới vào mạng, bạn có thể thêm SSID và cụm mật khẩu của WiFi tại nhà của mình trong tệp secret.h bên cạnh tệp phác thảo standard.ino. Nhưng bạn cũng có thể sử dụng Trình quản lý WiFi tích hợp để thêm thiết bị vào mạng mà không cần cấu hình mã hóa cứng này.

Bây giờ mọi thứ liên quan đến việc thực hiện bản phác thảo đã được thực hiện và phần sụn có thể được biên dịch và tải lên.

Bước 4: Tải lên giao diện người dùng Web

Ví dụ tiêu chuẩn đi kèm với một thư mục dữ liệu chứa tất cả các tệp cho giao diện người dùng web.

Trước khi tải lên các tệp này, bạn có thể muốn thêm tệp env.json và config.json mà bạn có thể tìm thấy trong bài viết này vì điều này sẽ giúp mọi thứ dễ dàng hơn.

Nội dung của các tệp này là điều khiến thiết bị IoT trở nên đặc biệt và hoạt động như một cảm biến Chất lượng không khí. Nó được giải thích chi tiết trong câu chuyện này.

Việc sử dụng tiện ích tải lên tệp ESP8266 và tải lên tất cả các tệp. Nó cần khởi động lại để kích hoạt cấu hình.

Bước 5: Thêm cảm biến BME680

Thêm cảm biến BME680
Thêm cảm biến BME680
Thêm cảm biến BME680
Thêm cảm biến BME680
Thêm cảm biến BME680
Thêm cảm biến BME680

Cảm biến BME680 đang giao tiếp với bo mạch bằng bus I2C.

Vì điều này có thể được chia sẻ với các phần mở rộng khác như các cảm biến hoặc màn hình khác được định cấu hình ở cấp thiết bị trong env.json cùng với tên mạng của thiết bị. Đây là một mẫu trích xuất của thiết bị và cài đặt I2C:

"thiết bị": {

"0": {"name": "airding", "description": "Air Quality Sensor",… "i2c-scl": "D2", "i2c-sda": "D1"}}

Trên bảng mạch, bạn có thể thấy các cáp kết nối với cảm biến: 3.3V = đỏ, GND = đen, SCL = vàng, SDA = xanh lam

Cấu hình cho BME680 có thể được sử dụng trong config.json:

"bme680": {

"bd": {"address": "0x77", "readtime": "10s"}}

Chúng tôi sẽ thêm các hành động sau.

Để kiểm tra thiết lập, chỉ cần sử dụng trình duyệt và mở https://airding/board.htm và bạn sẽ thấy các giá trị thực tế của cảm biến được hiển thị và chúng sẽ được cập nhật khoảng 10 giây một lần:

Bước 6: Thêm cảm biến PMS5003

Thêm cảm biến PMS5003
Thêm cảm biến PMS5003

Tôi không có cảm biến với đầu nối thân thiện với breadboard, vì vậy tôi phải cắt một trong các đầu nối trên cáp bằng cách sử dụng mỏ hàn của mình để gắn trực tiếp vào bảng mạch gật gù. Bạn có thể thấy nó vẫn còn trên những hình ảnh cuối cùng.

Nguồn cho cảm biến này phải được lấy từ Vin thường được cấp bởi bus USB. GND cũng vậy nhưng cũng có sẵn bên cạnh chân Vin.

Dữ liệu từ cảm biến được truyền ở định dạng nối tiếp 9600 baud tiêu chuẩn, do đó, các chân rx và tx và thời gian đọc cần được định cấu hình:

"pms": {

"pm25": {"description": "pm25 chip sensor", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}

Chúng tôi sẽ thêm các hành động sau.

Để kiểm tra thiết lập lại, chỉ cần khởi động lại thiết bị và sử dụng trình duyệt và mở https://airding/board.htm và bạn sẽ thấy giá trị pm35 thực tế của cảm biến được hiển thị và chúng sẽ được cập nhật khoảng 10 giây một lần nhưng giá trị này là bình thường không thay đổi thường xuyên.

Bạn có thể nhận được các giá trị cao hơn bằng cách đặt một ngọn nến bên cạnh bộ cảm biến vì ngọn nến tạo ra nhiều hạt này.

Giờ đây, bạn có thể đặt mọi thứ trong một ngôi nhà đẹp vì tất cả các cấu hình khác và thậm chí cả cập nhật phần mềm đều có thể được thực hiện từ xa.

Bước 7: Thêm một số tính năng mạng

Trích xuất cấu hình sau trong env.json đang bật

  • cập nhật chương trình cơ sở qua mạng
  • cho phép phát hiện mạng bằng giao thức mạng SSDP và lấy thời gian hiện tại từ một máy chủ ntp.

{

… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Listen for 'over the air' OTA Updates"}}, "ssdp": {"0 ": {" Nhà sản xuất ":" yourname "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}

Bạn nên điều chỉnh múi giờ phù hợp với vị trí của mình. Nếu bạn nghi ngờ, bạn có thể sử dụng trang web https://www.timeanddate.com/ để nhận phần bù từ UTC / GMT. "2" phù hợp với Đức vào mùa hè.

Bạn cũng có thể điều chỉnh mật khẩu ota sau khi đọc hướng dẫn về chế độ lưu trong tài liệu tại

Sau khi khởi động lại, bạn có thể tìm thấy thiết bị airding trên mạng và sau khi nhận được phản hồi từ máy chủ ntp, thời gian cục bộ có sẵn.

Bước 8: Thêm một số nhật ký

Chỉ các giá trị thực tế có thể không cung cấp đủ để có thể sử dụng thêm một số phần tử.

Đối với câu chuyện này, phần tử Nhật ký và phần tử NPTTime được sử dụng để ghi lại lịch sử của các giá trị cảm biến trong tệp nhật ký và thẻ giao diện người dùng Web cho phần tử này có thể hiển thị nó dưới dạng đồ thị.

Cấu hình sau đây tạo ra 2 nguyên tố log cho khí và hạt:

{

"log": {"pm": {"description": "Log of pm25", "filename": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Nhật ký chất lượng khí "," tên tệp ":" /aqlog.txt "," kích thước tệp ":" 10000 "}}}

Bước 9: Hành động

Hành động
Hành động

Bây giờ chúng ta cần chuyển các giá trị thực tế đến các phần tử nhật ký bằng cách sử dụng các hành động. Các hành động đang sử dụng ký hiệu URL để chuyển kay và giá trị cho phần tử mục tiêu. Nhiều Phần tử hỗ trợ phát ra các hành động đối với các sự kiện nhất định xảy ra như ghi lại một giá trị cảm biến mới.

Các hành động được định cấu hình tại phần tử phát ra các hành động, cần có 2 mục nhập:

  • Sự kiện onvalue pms / p25 gửi giá trị thực đến phần tử log / pm bằng cách sử dụng hành động giá trị.
  • Sự kiện ongas bme680 / bd gửi giá trị thực đến phần tử log / pm bằng cách sử dụng hành động giá trị.

{

"pms": {"pm25": {… "onvalue": "log / pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log / aq? value = $ v "}}}

Bây giờ tất cả các phần tử đã được cấu hình.

Bước 10: Hình ảnh và tệp cấu hình

Ảnh và Tệp cấu hình
Ảnh và Tệp cấu hình
Ảnh và Tệp cấu hình
Ảnh và Tệp cấu hình
Ảnh và Tệp cấu hình
Ảnh và Tệp cấu hình

Dưới đây là một số hình ảnh về cảm biến Chất lượng không khí IoT cuối cùng của tôi.

Các tệp cấu hình để tải xuống cần được đổi tên thành *.json (không phải.txt) trước khi tải lên.

Liên kết và tài liệu tham khảo

  • Kho lưu trữ mã nguồn HomeDing:
  • Tài liệu:
  • Ví dụ tiêu chuẩn:
  • Phần tử BME680:
  • Phần tử PMS:
  • Phần tử nhật ký:
  • Phần tử NtpTime:

Đề xuất: