Mục lục:

Trạm thời tiết WiFi ESP32 với cảm biến BME280: 7 bước (có hình ảnh)
Trạm thời tiết WiFi ESP32 với cảm biến BME280: 7 bước (có hình ảnh)

Video: Trạm thời tiết WiFi ESP32 với cảm biến BME280: 7 bước (có hình ảnh)

Video: Trạm thời tiết WiFi ESP32 với cảm biến BME280: 7 bước (có hình ảnh)
Video: ESP32 weather station display the sensor readings on a web server.| JLCPCB 2024, Tháng bảy
Anonim
Image
Image
Trạm thời tiết WiFi ESP32 với cảm biến BME280
Trạm thời tiết WiFi ESP32 với cảm biến BME280
Trạm thời tiết WiFi ESP32 với cảm biến BME280
Trạm thời tiết WiFi ESP32 với cảm biến BME280

Chào mừng bạn đến với một hướng dẫn khác! Trong hướng dẫn này, chúng tôi sẽ xây dựng dự án trạm thời tiết hỗ trợ aWiFi! Chúng tôi sẽ lần đầu tiên sử dụng chip ESP32 mới, ấn tượng cùng với màn hình Nextion.

Trong video này, chúng tôi sẽ thực hiện điều này. Đó là một dự án trạm thời tiết khác mà tôi biết, nhưng lần này chúng tôi sử dụng chip ESP32 mới! Chúng tôi cũng sử dụng cảm biến BME280 mới để đo nhiệt độ, độ ẩm và áp suất khí quyển. Khi chúng tôi khởi động dự án, nó sẽ kết nối với mạng WiFi và nó sẽ truy xuất dự báo thời tiết cho vị trí của tôi từ trang web openweathermap. Sau đó, nó sẽ hiển thị dự báo trên Màn hình cảm ứng Nextion 3.2”này cùng với các kết quả đọc từ cảm biến! Các bài đọc được cập nhật hai giây một lần và dự báo thời tiết mỗi giờ! Như bạn có thể thấy, trong dự án này, chúng tôi sử dụng các công nghệ mới nhất có sẵn cho một nhà sản xuất hiện nay! Nếu bạn là một cựu chiến binh DIY, bạn có thể xây dựng dự án này trong năm phút.

Nếu bạn là người mới bắt đầu, bạn phải xem một vài video trước khi thực hiện dự án này. Bạn có thể tìm thấy các liên kết đến những video này trong Có thể hướng dẫn này, đừng lo lắng.

Hãy bắt đầu!

Bước 1: Nhận tất cả các bộ phận

Nhận tất cả các bộ phận
Nhận tất cả các bộ phận

Để xây dựng dự án này, chúng tôi cần các phần sau:

  • Bảng ESP32 ▶
  • Cảm biến I2C BME280 ▶
  • Màn hình Nextion 3,2 inch ▶
  • A Small Breadboard ▶
  • Một số dây ▶

Chi phí của dự án là khoảng 30 đô la.

Thay vì ESP32, chúng tôi có thể sử dụng chip ESP8266 rẻ hơn, nhưng tôi quyết định sử dụng ESP32 để có một số kinh nghiệm với nó và xem những gì hoạt động và những gì không.

Bước 2: ESP32

Image
Image
ESP32
ESP32

Đây là dự án đầu tiên tôi xây dựng với chip ESP32 mới.

Nếu bạn chưa quen với nó, chip ESP32 là sự kế thừa của chip ESP8266 phổ biến mà chúng ta đã sử dụng nhiều lần trong quá khứ. ESP32 là một con quái vật! Nó cung cấp hai 32 lõi xử lý hoạt động ở tần số 160MHz, một lượng lớn bộ nhớ, WiFi, Bluetooth và nhiều tính năng khác với chi phí khoảng 7 đô la! Công cụ tuyệt vời!

Hãy xem bài đánh giá chi tiết tôi đã chuẩn bị cho bảng này. Tôi đã đính kèm video trên này có thể hướng dẫn. Nó sẽ giúp hiểu tại sao con chip này sẽ thay đổi cách chúng ta tạo ra mọi thứ mãi mãi!

Bước 3: Màn hình Nextion

Image
Image
Cảm biến BME280
Cảm biến BME280

Ngoài ra, đây là dự án đầu tiên tôi xây dựng với màn hình cảm ứng Nextion.

Màn hình Nextion là loại màn hình mới. Họ có bộ xử lý ARM của riêng họ ở phía sau, chịu trách nhiệm điều khiển màn hình và tạo giao diện người dùng đồ họa. Vì vậy, chúng ta có thể sử dụng chúng với bất kỳ bộ vi điều khiển nào và đạt được kết quả ngoạn mục.

Tôi đã chuẩn bị một tài liệu Hướng dẫn chi tiết về màn hình Nextion này giải thích sâu hơn về cách chúng hoạt động, cách sử dụng chúng và những hạn chế của chúng. Bạn có thể đọc nó bằng cách nhấp vào đây:

Bước 4: Cảm biến BME280

Cảm biến BME280
Cảm biến BME280

BME280 trong một cảm biến tuyệt vời mới của Bosch.

Cho đến nay, tôi đang sử dụng cảm biến BMP180 có thể đo nhiệt độ và áp suất khí quyển. Cảm biến BME280 có thể đo nhiệt độ, độ ẩm và áp suất khí quyển! Thật tuyệt làm sao! Chúng tôi chỉ cần một cảm biến để xây dựng một trạm thời tiết hoàn chỉnh!

Thêm vào đó, cảm biến có kích thước rất nhỏ và rất dễ sử dụng. Mô-đun chúng ta sẽ sử dụng ngày hôm nay sử dụng giao diện I2C vì vậy nó giúp giao tiếp với Arduino rất dễ dàng. Chúng tôi chỉ kết nối nguồn điện và hai dây nữa để làm cho nó hoạt động.

Đã có nhiều thư viện được phát triển cho cảm biến này nên chúng tôi có thể sử dụng nó trong các dự án của mình một cách rất dễ dàng! Chi phí của cảm biến là khoảng 5 đô la. Bạn có thể lấy nó tại đây ▶

LƯU Ý: Chúng tôi cần cảm biến BME280. Ngoài ra còn có một cảm biến BMP280 không cung cấp tính năng đo độ ẩm. Hãy cẩn thận để đặt hàng để cảm biến bạn cần.

Bước 5: Kết nối các bộ phận

Kết nối các bộ phận
Kết nối các bộ phận
Kết nối các bộ phận
Kết nối các bộ phận
Kết nối các bộ phận
Kết nối các bộ phận

Kết nối của các bộ phận rất đơn giản như bạn có thể thấy từ sơ đồ sơ đồ.

Vì cảm biến BME280 sử dụng giao diện I2C, chúng tôi chỉ cần kết nối hai dây để giao tiếp với ESP32. Tôi đã gắn cảm biến vào Chân 26 và 27. Về lý thuyết, mọi chân kỹ thuật số của bo mạch ESP32 đều có thể được sử dụng với các thiết bị ngoại vi I2C. Tuy nhiên, trong thực tế, tôi phát hiện ra rằng một số chân không hoạt động vì chúng được dành cho các mục đích sử dụng khác. Các chân 26 và 27 hoạt động tuyệt vời!

Để gửi dữ liệu đến màn hình, chúng tôi chỉ cần kết nối một dây với chân TX0 của ESP32. Tôi đã phải uốn cong chốt như thế này để kết nối dây cái của màn hình vì bảng mạch ESP32 quá lớn so với bảng mạch chính này.

Sau khi kết nối các bộ phận, chúng ta phải tải mã vào ESP32 và chúng ta phải tải GUI vào màn hình Nextion. Nếu bạn gặp sự cố khi tải chương trình lên bo mạch ESP32, hãy giữ nút BOOT sau khi nhấn nút tải lên trên Arduino IDE.

Để tải GUI vào màn hình Nextion, hãy sao chép tệp WeatherStation.tft mà tôi sẽ chia sẻ với bạn vào thẻ SD trống. Đặt thẻ SD vào khe cắm thẻ SD ở phía sau màn hình. Sau đó, bật nguồn màn hình và GUI sẽ được tải. Sau đó, tháo thẻ SD và kết nối nguồn lại.

Sau khi tải mã thành công, dự án sẽ kết nối với mạng WiFi, nó sẽ nhận được dự báo thời tiết từ trang web openweathermap.org và nó sẽ hiển thị các kết quả đọc được từ cảm biến. Bây giờ chúng ta hãy xem khía cạnh phần mềm của dự án.

Bước 6: Mã của dự án

Bộ luật của dự án
Bộ luật của dự án
Bộ luật của dự án
Bộ luật của dự án
Bộ luật của dự án
Bộ luật của dự án

Để phân tích cú pháp dữ liệu thời tiết, chúng ta cần thư viện Arduino JSON tuyệt vời. Chúng tôi cũng cần một thư viện cho cảm biến.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

Hãy xem mã ngay bây giờ.

Đầu tiên, chúng ta phải đặt SSID và mật khẩu của mạng WiFi của mình. Tiếp theo, chúng ta phải nhập APIKEY miễn phí từ trang web operweathermap.org. Để tạo khóa API của riêng bạn, bạn phải đăng ký trên trang web. Nhận dữ liệu thời tiết hiện tại và dự báo là miễn phí, nhưng trang web cung cấp nhiều tùy chọn hơn nếu bạn sẵn sàng trả một số tiền. Tiếp theo, chúng tôi phải tìm id của vị trí của chúng tôi. Tìm vị trí của bạn và sao chép ID có thể tìm thấy tại URL của vị trí của bạn.

Sau đó, nhập id thành phố của bạn vào biến CityID. Ngoài ra, hãy nhập độ cao của thị trấn của bạn vào biến này. Giá trị này là cần thiết để đọc chính xác áp suất khí quyển từ cảm biến.

const char * ssid = "yourSSID"; const char * password = "yourPassword"; Chuỗi CityID = "253394"; // Sparta, Hy Lạp Chuỗi APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Độ cao ở Sparta, Hy Lạp

Bây giờ chúng tôi đã sẵn sàng để tiếp tục.

Đầu tiên, chúng tôi khởi tạo cảm biến và kết nối với Mạng WiFi. Sau đó, chúng tôi yêu cầu dữ liệu thời tiết từ máy chủ.

Chúng tôi nhận được câu trả lời với dữ liệu thời tiết ở định dạng JSON. Trước khi gửi dữ liệu đến thư viện JSON, tôi xóa thủ công một số ký tự đang gây ra sự cố cho tôi. Sau đó, thư viện JSON tiếp quản và chúng ta có thể dễ dàng lưu dữ liệu mà chúng ta cần trong các biến. Sau khi chúng tôi đã giữ dữ liệu trong các biến, tất cả những gì chúng tôi phải làm là hiển thị chúng trên màn hình và đợi một giờ trước khi yêu cầu dữ liệu mới từ máy chủ. Thông tin duy nhất tôi trình bày là dự báo thời tiết, nhưng bạn có thể hiển thị thêm thông tin nếu muốn. Tất cả ở đây được lưu trong các biến. Sau đó, chúng tôi đọc nhiệt độ, độ ẩm và áp suất khí quyển từ cảm biến và chúng tôi gửi dữ liệu đến màn hình Nextion.

Để cập nhật màn hình, chúng tôi chỉ cần gửi một số lệnh đến cổng nối tiếp như sau:

void showConnectingIcon () {Serial.println (); Lệnh chuỗi = "weatherIcon.pic = 3"; Serial.print (lệnh); endNextionCommand (); }

Nextion GUI bao gồm nền, một số hộp văn bản và hình ảnh thay đổi tùy thuộc vào dự báo thời tiết. Vui lòng xem hướng dẫn hiển thị Nextion để biết thêm thông tin. Bạn có thể nhanh chóng thiết kế GUI của riêng mình nếu muốn và hiển thị nhiều thứ hơn trên đó.

Như mọi khi, bạn có thể tìm thấy mã của dự án được đính kèm với Tài liệu hướng dẫn này

Bước 7: Suy nghĩ cuối cùng và cải tiến

Suy nghĩ cuối cùng & Cải tiến
Suy nghĩ cuối cùng & Cải tiến

Như bạn có thể thấy, một nhà sản xuất giàu kinh nghiệm ngày nay có thể xây dựng các dự án thú vị chỉ trong vài giờ với một vài dòng mã và chỉ ba phần! Một dự án như thế này sẽ không thể thực hiện được ngay cả hai năm trước đây!

Tất nhiên, đây chỉ là bước khởi đầu của dự án. Tôi muốn thêm nhiều tính năng vào nó, như đồ thị, chức năng cảm ứng hiện đang bị thiếu, có thể là một màn hình lớn hơn và tất nhiên là một bao vây được in 3D đẹp mắt. Tôi cũng sẽ thiết kế một GUI và các biểu tượng đẹp hơn. Tôi có một số ý tưởng rất mới để thực hiện!

Tôi rất muốn nghe ý kiến của bạn về dự án của ngày hôm nay. Bạn muốn tôi thêm những tính năng nào vào dự án? Bạn có thích nó trông như thế nào không? Bạn muốn xem nó phát triển như thế nào? Vui lòng gửi ý tưởng của bạn trong phần bình luận bên dưới; Tôi thích đọc những suy nghĩ của bạn!

Cuộc thi không dây
Cuộc thi không dây
Cuộc thi không dây
Cuộc thi không dây

Về nhì trong cuộc thi không dây

Đề xuất: