Mục lục:

ESP8266 NodeMCU với BME280 Gauges & Chart: 5 bước
ESP8266 NodeMCU với BME280 Gauges & Chart: 5 bước

Video: ESP8266 NodeMCU với BME280 Gauges & Chart: 5 bước

Video: ESP8266 NodeMCU với BME280 Gauges & Chart: 5 bước
Video: Using ESP8266 Nodemcu to Send and Display Data to and from MYSQL Database using PHP. 2024, Tháng mười một
Anonim
ESP8266 NodeMCU với BME280 Gauges & Chart
ESP8266 NodeMCU với BME280 Gauges & Chart
ESP8266 NodeMCU với BME280 Gauges & Chart
ESP8266 NodeMCU với BME280 Gauges & Chart

Đồng hồ đo và biểu đồ ưa thích cho bảng Phát triển ESP8266 NodeMCU của bạn với cảm biến Nhiệt độ, Độ ẩm và Áp suất BME280. Thingspeak sẽ lưu trữ tất cả dữ liệu của bạn trên đám mây để truy xuất bất cứ lúc nào trong nhiều năm (hy vọng) sắp tới. Các đồng hồ đo và biểu đồ được điền từ dữ liệu được lưu trữ tại thingspeak và được cập nhật tự động sau mỗi 5 phút.

Các mặt hàng cần thiết:

Bảng phát triển NodeMCU ESP8266 ($ 3,79 từ Banggood.com Hong Kong)

Bosch BME280 ($ 5,63 từ Banggood.com Hong Kong)

Breadboard Jumpers ($ 3,09 từ Banggood.com Hong Kong)

Breadboard ($ 2,28 từ Banggood.com Hong Kong)

Cung cấp điện, miễn phí nếu bạn có bộ sạc điện thoại micro USB

Cáp Micro USB, Miễn phí nếu bạn đã có

Arduino IDE, Tải xuống miễn phí

Nhận các tệp mã.ino &. HTML tại đây

Bước 1: Tạo và thiết lập kênh Thingspeak của bạn

Tạo và thiết lập kênh Thingspeak của bạn
Tạo và thiết lập kênh Thingspeak của bạn

1. Tạo tài khoản Thingspeak miễn phí và kênh mới tại https://thingspeak.com, Gọi kênh "ESP8266-NodeMCU-12E-BME280"

2. Kênh mới phải có 3 trường có tên Nhiệt độ Độ ẩm Áp suất theo thứ tự cụ thể đó (Lưu ý viết hoa chữ cái đầu tiên).

3. Ghi lại "ID kênh" XXXXXX mới của bạn trong "Cài đặt kênh"

4. Nhấp vào liên kết "API Keys" và ghi lại "API Write" và "Read API Keys" XXXXXXXXXXXXXXX của bạn. Ngoài ra, hãy đặt kênh này thành một kênh công khai được chia sẻ.

5. Tạo kênh Thingspeak thứ hai sẽ giữ dữ liệu "Hôm nay" (kể từ nửa đêm) Cao Thấp. Gọi nó là "BME280 Dữ liệu Thấp Cao Hàng ngày"

6. Kênh mới này nên có 6 trường có tên là Tmax Tmin Hmax Hmin Pmax Pmin theo thứ tự cụ thể đó (Lưu ý viết hoa chữ cái đầu tiên).

7. Ghi lại mã kênh "BME280 Dữ liệu thấp hàng ngày", "Đọc" & "Ghi khóa API" giống như trong các bước trên.

Bước 2: Thiết lập Arduino IDE, Thư viện và Định cấu hình BME280

Thiết lập Arduino IDE, Thư viện và Định cấu hình BME280
Thiết lập Arduino IDE, Thư viện và Định cấu hình BME280

8. Làm theo hướng dẫn để cài đặt lõi Arduino IDE & ESP8266 tại

9. Kích hoạt Arduino IDE để chúng tôi có thể cài đặt bốn thư viện mà chúng tôi sẽ cần.

10. Bạn sẽ cần thư viện "Adafruit Unified Sensor Driver", hãy cài đặt nó trong "Library Manager" trong Arduino IDE. Menu Sketch Bao gồm Thư viện Quản lý Thư viện thực hiện tìm kiếm theo Type = "Recommended" Topic = "Sensors", sau đó đặt các từ Adafruit Unified Sensor Driver vào hộp tìm kiếm. Một trong những bạn muốn nói "Trình điều khiển cảm biến hợp nhất Adafruit của Adafruit"

11. Ngoài ra, bạn cũng sẽ yêu cầu cài đặt "Adafruit BME280 Library" trong "Library Manager" trong Arduino IDE. Menu Sketch Bao gồm Thư viện Quản lý Thư viện thực hiện tìm kiếm theo Type = "Recommended" Topic = "Sensors" sau đó đặt các từ Adafruit BME280 Library vào hộp tìm kiếm. Một trong những bạn muốn nói "Thư viện Adafruit BME280 của Adafruit"

12. Một thư viện khác mà bạn cần là Wire.h, hãy cài đặt nó trong "Trình quản lý thư viện" trong Arduino IDE. Menu, Sketch Bao gồm Thư viện Quản lý Thư viện Thực hiện tìm kiếm theo Type = "Contributed" Topic = "Signal Input / Output", sau đó đặt từ Wire vào hộp tìm kiếm. Một trong những bạn muốn nói "Dây tích hợp bởi Arduino" Rất có thể ở cuối vùng lựa chọn.

13. Thêm một thư viện, ESP8266WiFi, cài đặt nó trong "Trình quản lý Thư viện" trong Arduino IDE. Menu, Phác thảo Bao gồm Thư viện Quản lý Thư viện Thực hiện tìm kiếm theo Type = "Contributed" Topic = "Communication", sau đó đặt từ ESP8266wifi vào hộp tìm kiếm. Một trong những bạn muốn nói "ESP8266wifi được tích hợp bởi Ivan Grokhotkov"

14. Địa chỉ I2C cho BME280 được mã hóa cứng trong tệp Adafruit_BME280.h (tìm dòng #define BME280_ADDRESS 0x77) bên trong thư mục Adafruit_BME280_Library. Mô-đun cảm biến BME của Adafruit được kết nối cứng để sử dụng địa chỉ I2C là 0x77. Nhưng BME280 có thể có địa chỉ I2C hơi khác (0x76) nếu chân SDO bên ngoài của nó được nối đất. Nếu bạn đang sử dụng các mô-đun cảm biến từ bên thứ ba, có thể địa chỉ của địa chỉ đó sẽ không khớp với giá trị mặc định trong thư viện Adafruit. Ví dụ: đối với hầu hết các mô-đun cảm biến BME280 có sẵn trên eBay hoặc Aliexpress có địa chỉ I2C của chúng là 0x76. Nếu bạn không nhận được phản hồi từ cảm biến bằng cách sử dụng địa chỉ mặc định được đặt trong tệp Adafruit_BME280.h, bạn có thể cần phải thay đổi nó thành 0x76.

Điểm kết nối BME280 & ESP8266. ESP8266 3.3V đến BME280 Vin, ESP8266 GND đến BME280 GND, ESP8266 D4 đến BME280 SCL, ESP8266 D3 đến BME280 SDA. 15. Mở tệp ESP8266-NodeMCU-12E-BME280.html được cung cấp trong trình soạn thảo văn bản và nhập "ESP8266-NodeMCU-12E-BME280" của bạn (Kênh đầu tiên bạn đã tạo) "ID kênh" & "Đọc khóa API" cho các biến key1 & chan1. Đồng thời nhập "Khóa API đọc" và "ID kênh" cho "Dữ liệu thấp hàng ngày BME280" (Kênh thứ hai bạn đã tạo) cho key2 và chan2. Ngoài ra, hãy nhập chênh lệch múi giờ của bạn từ UTC. Như trong -5 đối với tôi. Tất cả các giá trị phải nằm trong dấu ngoặc kép được cung cấp 'XXXXX'. Lưu và thoát khỏi trình soạn thảo văn bản.

Cắm ESP8266 của bạn bằng cáp USB vào máy tính của bạn, sau đó chọn cổng nối tiếp của bạn làm cổng USB.

Người dùng Linux có thể phải thay đổi quyền sở hữu cổng USB để giao tiếp với / dev / ttyUSB0 như trong 'sudo chown yourusername / dev / ttyUSB0' hoặc những gì bạn đã chọn làm cổng khi thiết lập.

Bước 3: Lập trình ESP8266 với Arduino IDE

Lập trình ESP8266 với Arduino IDE
Lập trình ESP8266 với Arduino IDE

16. Tiếp theo, chúng tôi sẽ lập trình ESP8266. Kết nối cáp USB giữa ESP8266 và máy tính của bạn.

Tải tệp New_BME_Sensor.ino đã cung cấp vào Arduino IDE. Cảm biến BME280 của bạn phải được kết nối với D3 (SDA) & D4 (SCL) trên ESP8266. Nhập "ESP8266-NodeMCU-12E-BME280" (Kênh đầu tiên bạn đã tạo) "Viết khóa" "SSID không dây" & "Mật khẩu" vào phần chính xác của bản phác thảo. Sau đó nhấp vào mục menu "Phác thảo" & "Tải lên". Sau khi tải bản phác thảo lên (Tiến độ đạt 100%) lên ESP8266, bạn có thể mở màn hình nối tiếp (Biểu tượng trên cùng bên phải trông giống như một kính lúp) và xem dữ liệu của bạn được in ra sau 5 phút, cứ sau 5 phút. Dữ liệu được gửi đến thingspeak với khoảng thời gian 5 phút, vì vậy sẽ mất một khoảng thời gian trước khi bạn có dữ liệu biểu đồ có ý nghĩa nhưng bạn sẽ có các kết quả đo sau 5 phút.

Đảm bảo bạn nhận được số đọc chính xác từ BME280 trong màn hình nối tiếp.

Phép đo đầu tiên có thể sẽ là một nan không hợp lệ.

Chờ một vài phút cho đến khi đọc tiếp theo và kiểm tra xem các bài đọc có ổn không.

Bước 4: Quay lại Điều khoản để thực hiện một số tinh chỉnh dữ liệu

Quay lại Điều khoản để thực hiện một số tinh chỉnh dữ liệu
Quay lại Điều khoản để thực hiện một số tinh chỉnh dữ liệu

17. Bây giờ, Trong khi dữ liệu đang dần được tải lên thingspeak, hãy thực hiện một số điều chỉnh để có thêm một số dữ liệu từ những gì đang được tải lên. Quay lại trang web thingspeak và trong trang kênh Thingspeak "BME280 Dữ liệu Thấp Hàng ngày" (Kênh thứ hai bạn đã tạo), hãy nhấp vào nút "Phân tích MATLAB" màu xanh lục. Chọn Mẫu "Tùy chỉnh (Không có Mã Khởi động)"

18. Đặt tên cho Phân tích MATLAB là "Tính tối thiểu Max kể từ lúc nửa đêm".

19. Sao chép mã MATLAB Analysis.txt vào không gian được cung cấp. Nhập "ID kênh" cho "ESP8266-NodeMCU-12E-BME280" (Kênh đầu tiên bạn đã tạo) vào "readChannelID". Nhập "BME280 Dữ liệu Thấp Cao Hàng ngày" (Kênh thứ hai bạn đã tạo) Ghi "ID kênh" & "Ghi khóa" vào writeNewChannelID & writeAPIKey tương ứng. Tôi biết nó nghe có vẻ khó hiểu (đọc lại). Nhấp vào lưu và chạy. Nếu bạn đã làm đúng và kênh đọc là công khai, bạn sẽ không thấy lỗi và nó in thành công các giá trị. Lưu ý, Bạn có thể gặp lỗi nếu chưa có dữ liệu nào được tải lên kênh đó. Mặc dù lỗi vẫn tiếp tục. Nếu muốn, bạn có thể truy cập lại Nhấp vào lưu và chạy để đảm bảo rằng nó hoạt động sau khi dữ liệu đã được tải lên.

20. Tiếp theo, chúng ta cần tạo một "Kiểm soát thời gian" để kích hoạt mã này sau mỗi 5 phút và dữ liệu của chúng ta sẽ được ghi vào kênh "BME280 Dữ liệu Thấp Hàng ngày" (Kênh thứ hai mà bạn đã tạo). Từ trang chính của "BME280 Dữ liệu Thấp Cao Hàng ngày" (Kênh thứ hai bạn đã tạo), chọn Ứng dụng ở trên cùng. Trong các hành động, chọn "TimeControl", sau đó chọn nút Màu xanh lá cây "New TimeControl". Đặt tên là "Gửi điện áp thấp ESP8266". Chọn múi giờ của bạn nếu cần và chọn "Định kỳ" trong Tần suất. Chọn Phút trong Lặp lại. Đặt để chạy 5 phút một lần. Hành động nên là Phân tích MATLAB và "Mã để thực thi" là "Tính tối thiểu tối đa kể từ nửa đêm". Tiết kiệm thời gian kiểm soát.

Bước 5: Chỉnh sửa tệp HTML được cung cấp

Chỉnh sửa tệp HTML được cung cấp
Chỉnh sửa tệp HTML được cung cấp

Chỉnh sửa các tệp HTML và tìm các nhận xét có nội dung "******** Change Me 1 of 8 *********" Thay đổi các nhận xét này theo sở thích của bạn.

Ghi chú:

Một số trường văn bản và biểu đồ hàng tuần sẽ không điền chính xác cho đến khi bạn có dữ liệu cả ngày và cả tuần cho phần và biểu đồ 24 giờ và tuần. Khi bạn có một loạt dữ liệu, bạn có thể phóng to các biểu đồ bằng con lăn chuột (Nhấp chuột phải để Đặt lại). Bạn cũng có thể có thước đo thứ tư (như được thấy trong ảnh chụp màn hình) từ một cảm biến khác từ một kênh khác nhưng tôi đã bắt đầu các phần có liên quan. Nếu bạn cảm thấy hiểu biết, hãy kết nối nó. Cũng có một số vấn đề về thời gian cần lưu ý. Bạn có thể sẽ không có dữ liệu mới nhất tuyệt đối nhưng dữ liệu đó luôn phải cũ hơn 5 phút. Điều này xuất phát từ khi điều khiển thời gian được kích hoạt, Khi dữ liệu được gửi từ ESP8266 và khi bạn tải / làm mới trang web.

Mở tệp ESP8266-NodeMCU-12E-BME280.html được cung cấp trong trình duyệt web của bạn và bạn sẽ thấy các đồng hồ đo và biểu đồ được điền.

Nhận các tệp mã.ino &. HTML tại đây

Đề xuất: