Mục lục:
- Quân nhu
- Bước 1: Chuẩn bị Môi trường Arduino cho ESP8266
- Bước 2: Bao gồm các thư viện bắt buộc
- Bước 3: Tùy chỉnh Phác thảo Ví dụ Chuẩn
- Bước 4: Tải lên giao diện người dùng Web
- Bước 5: Thêm cảm biến BME680
- Bước 6: Thêm cảm biến PMS5003
- Bước 7: Thêm một số tính năng mạng
- Bước 8: Thêm một số nhật ký
- Bước 9: Hành động
- Bước 10: Hình ảnh và tệp cấu hình
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
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
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
- 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).
- 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:
- 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
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
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
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
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
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
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:
Máy đo chất lượng không khí trong nhà: 5 bước (có hình ảnh)
Máy đo chất lượng không khí trong nhà: Dự án đơn giản để kiểm tra chất lượng không khí trong ngôi nhà của bạn. và hít thở không khí trong lành
Cảm biến chất lượng không khí AEROBOT V1.0: 6 bước (có hình ảnh)
Cảm biến chất lượng không khí AEROBOT V1.0: Tài liệu hướng dẫn này là về việc chế tạo một cảm biến chất lượng không khí rẻ tiền và có độ chính xác cao có tên là AEROBOT. Dự án này hiển thị nhiệt độ, độ ẩm tương đối, mật độ bụi PM 2.5 và cảnh báo về chất lượng không khí của môi trường xung quanh. Nó sử dụng cảm biến DHT11
Cảm biến chất lượng không khí sử dụng Arduino: 4 bước
Cảm biến chất lượng không khí sử dụng Arduino: Trong bài đăng này, chúng ta sẽ tìm hiểu cách xây dựng cảm biến chất lượng không khí đơn giản nhưng hữu ích. Chúng tôi sẽ sử dụng cảm biến SGP30 cùng với Piksey Pico, mặc dù bản phác thảo sẽ hoạt động với khá nhiều bảng tương thích Arduino. Đoạn video trên nói với bạn về t
Giám sát chất lượng không khí với MQ135 và cảm biến nhiệt độ và độ ẩm bên ngoài qua MQTT: 4 bước
Màn hình chất lượng không khí với MQ135 và cảm biến nhiệt độ và độ ẩm bên ngoài qua MQTT: Đây là mục đích thử nghiệm
Mũ cảm ứng cho máy dò khí và chất lượng không khí Raspberry Pi V0.9: 8 bước
Mũ cảm ứng cho máy dò khí và chất lượng không khí Raspberry Pi V0.9: Sensly là một cảm biến ô nhiễm di động có khả năng phát hiện mức độ ô nhiễm trong không khí bằng cách sử dụng các cảm biến khí trên bo mạch của nó để thu thập thông tin về các loại khí khác nhau hiện có. Thông tin này có thể được cung cấp trực tiếp vào điện thoại thông minh của bạn để