Tải bản đầy đủ (.pdf) (19 trang)

ESP8266 với BME280 sử dụng Arduino IDE (Áp suất, Nhiệt độ, Độ ẩm)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (696.84 KB, 19 trang )

ESP8266 với BME280 sử dụng Arduino IDE (Áp suất,
Nhiệt độ, Độ ẩm)
Hướng dẫn này chỉ ra cách sử dụng mô-đun cảm biến BME280 với ESP8266 để đọc áp
suất, nhiệt độ, độ ẩm và ước tính độ cao bằng Arduino IDE. Cảm biến BME280 sử dụng
giao thức truyền thông I2C hoặc SPI để trao đổi dữ liệu với vi điều khiển.

Chúng tôi sẽ chỉ cho bạn cách nối cảm biến với ESP8266, cài đặt các thư viện cần thiết
và viết một bản phác thảo đơn giản hiển thị các chỉ số cảm biến. Chúng tơi cũng sẽ xây
dựng một ví dụ về máy chủ web để hiển thị các bài đọc áp suất, nhiệt độ và độ ẩm mới
nhất.
Trước khi tiếp tục với hướng dẫn này, bạn nên cài đặt tiện ích bổ sung ESP8266 trong
Arduino IDE của mình.
Cài đặt bảng ESP8266 trong Arduino IDE
Bạn cũng có thể thích đọc các hướng dẫn BME280 khác:

Giới thiệu mô-đun cảm biến BME280
Mô-đun cảm biến BME280 đọc áp suất khí quyển, nhiệt độ và độ ẩm. Vì áp suất thay đổi
theo độ cao, bạn cũng có thể ước tính độ cao. Có một số phiên bản của mô-đun cảm
biến này. Chúng tôi đang sử dụng mơ-đun được minh họa trong hình bên dưới.

1/19


Cảm biến này giao tiếp bằng giao thức truyền thông I2C, vì vậy hệ thống dây điện rất
đơn giản. Bạn có thể sử dụng chân ESP8266 I2C mặc định như thể hiện trong bảng sau:
BME280

ESP8266

Vin


3.3V

GND

GND

SCL

GPIO 5

SDA

GPIO 4

Có các phiên bản khác của cảm biến này có thể sử dụng giao thức truyền thông SPI
hoặc I2C, như mô-đun được hiển thị trong hình tiếp theo:

2/19


Nếu bạn đang sử dụng một trong những cảm biến này, để sử dụng giao thức truyền
thông I2C, hãy sử dụng các chân sau:
BME280

ESP8266

SCK (Ghim SCL)

GPIO 5


SDI (chân SDA)

GPIO 4

Nếu bạn sử dụng giao thức truyền thông SPI, bạn cần sử dụng các chân sau:
BME280

ESP8266

SCK (Đồng hồ SPI)

GPIO 14

SDO (MISO)

GPIO 12

SDI (MOSI)

GPIO 13

CS (Lựa chọn chip)

GPIO 15

Các bộ phận cần thiết
Để hồn thành hướng dẫn này, bạn cần các phần sau:
Mơ-đun cảm biến BME280
ESP8266 (đọc bảng phát triển ESP8266 tốt nhất)
Breadboard

Dây nhảy

Sơ đồ - ESP8266 với BME280 sử dụng I2C
3/19


Chúng ta sẽ sử dụng giao tiếp I2C với mô-đun cảm biến BME280. Để làm được điều đó,
hãy nối cảm biến với các chân ESP8266 SDA và SCL, như thể hiện trong sơ đồ sau.

Đề xuất đọc: Hướng dẫn tham khảo sơ đồ chân ESP8266

Cài đặt thư viện BME280
Để đọc từ mô-đun cảm biến BME280, bạn cần sử dụng thư viện Adafruit_BME280. Làm
theo các bước tiếp theo để cài đặt thư viện trong Arduino IDE của bạn:
Mở Arduino IDE của bạn và đi tới Sketch > Include Library > Manage Libraries. Trình
quản lý thư viện sẽ mở.
Tìm kiếm "adafruit bme280" trên hộp Tìm kiếm và cài đặt thư viện.

4/19


Cài đặt thư viện Adafruit_Sensor
Để sử dụng thư viện BME280, bạn cũng cần cài đặt thư viện Adafruit_Sensor. Làm theo
các bước tiếp theo để cài đặt thư viện trong Arduino IDE của bạn:
Truy cập Sketch > Include Library > Manage Libraries và nhập "Adafruit Unified
Sensor" vào hộp tìm kiếm. Cuộn xuống để tìm thư viện và cài đặt nó.

Sau khi cài đặt các thư viện, hãy khởi động lại Arduino IDE của bạn.

Áp suất đọc, nhiệt độ và độ ẩm

5/19


Để đọc áp suất, nhiệt độ và độ ẩm, chúng tơi sẽ sử dụng một ví dụ phác thảo từ thư viện.

Sau khi cài đặt thư viện BME280 và thư viện Adafruit_Sensor, hãy mở Arduino IDE và đi
tới Tệp > Ví dụ > thư viện Adafruit BME280 > kiểm tra bme280.

6/19


/*********

Complete project details at
*********/





#include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_BME280.h>

/*#include <SPI.h>

#define BME_SCK 14


#define BME_MISO 12

#define BME_MOSI 13

#define BME_CS 15*/

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C

//Adafruit_BME280 bme(BME_CS); // hardware SPI

//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

unsigned long delayTime;

void setup() {

Serial.begin(9600);

Serial.println(F("BME280 test"));

bool status;

// default settings

// (you can also pass in a Wire library object like &Wire2)

status = bme.begin(0x76);


if (!status) {

Serial.println("Could not find a valid BME280 sensor, check wiring!");

while (1);

}

Serial.println("-- Default Test --");

delayTime = 1000;

Serial.println();

}

void loop() {

printValues();

delay(delayTime);

}

void printValues() {

Serial.print("Temperature = ");

Serial.print(bme.readTemperature());


Serial.println(" *C");

// Convert temperature to Fahrenheit

/*Serial.print("Temperature = ");

Serial.print(1.8 * bme.readTemperature() + 32);

Serial.println(" *F");*/

7/19


Serial.print("Pressure = ");

Serial.print(bme.readPressure() / 100.0F);

Serial.println(" hPa");

Serial.print("Approx. Altitude = ");

Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));

Serial.println(" m");

Serial.print("Humidity = ");

Serial.print(bme.readHumidity());

Serial.println(" %");


Serial.println();

}


Xem mã thô
Chúng tôi đã thực hiện một vài sửa đổi đối với bản phác thảo để làm cho nó hồn tồn
tương thích với ESP8266.

Mã hoạt động như thế nào
Tiếp tục đọc phần này để tìm hiểu cách mã hoạt động hoặc chuyển đến phần "Trình
diễn".

Thư viện
Mã bắt đầu bằng cách bao gồm các thư viện cần thiết: thư viện dây để sử dụng I2C và
các thư viện Adafruit_Sensor và Adafruit_BME280 để giao tiếp với cảm biến BME280.
#include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_BME280.h>

Truyền thông SPI
Khi chúng ta sẽ sử dụng giao tiếp I2C, các dòng sau xác định các chân SPI được nhận
xét:
/*#include <SPI.h>

#define BME_SCK 14


#define BME_MISO 12

#define BME_MOSI 13

#define BME_CS 15*/

Lưu ý: nếu bạn đang sử dụng giao tiếp SPI, hãy sử dụng chân SPI mặc định ESP8266:
MOSI

MISO

CLK

.CS

GPIO 13

GPIO 12

GPIO 14

GPIO 15

Á


8/19


Áp lực mực nước biển

Một biến gọi là SEALEVELPRESSURE_HPA được tạo ra.
#define SEALEVELPRESSURE_HPA (1013.25)

Biến này tiết kiệm áp suất ở mực nước biển tính bằng hectopascal (tương đương với
milibar). Biến này được sử dụng để ước tính độ cao cho một áp suất nhất định bằng cách
so sánh nó với áp suất mực nước biển. Ví dụ này sử dụng giá trị mặc định, nhưng để có
kết quả chính xác hơn, hãy thay thế giá trị bằng áp suất mực nước biển hiện tại tại vị trí
của bạn.

I2C
Ví dụ này sử dụng giao thức truyền thông I2C theo mặc định. Như bạn có thể thấy, bạn
chỉ cần tạo một đối tượng Adafruit_BME280 gọi là bme.
Adafruit_BME280 bme; // I2C

Để sử dụng SPI, bạn cần nhận xét dòng trước này và bỏ ghi chú một trong các dòng sau.
//Adafruit_BME280 bme(BME_CS); // hardware SPI

//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

Thiết lập()
Trong setup(), bắt đầu giao tiếp nối tiếp:
Serial.begin(9600);

Và khởi tạo cảm biến:
status = bme.begin(0x76);

if (!status) {

Serial.println("Could not find a valid BME280 sensor, check wiring!");


while (1);

}

Chúng tôi khởi tạo cảm biến với địa chỉ 0x76. Trong trường hợp bạn không nhận được
chỉ số cảm biến, hãy kiểm tra địa chỉ I2C của cảm biến. Với cảm biến BME280 có dây với
ESP8266 của bạn, hãy chạy bản phác thảo máy quét I2C này để kiểm tra địa chỉ cảm
biến của bạn. Sau đó, thay đổi địa chỉ nếu cần.

Giá trị in
Trong loop(), hàm printValues() đọc các giá trị từ BME280 và in kết quả trong Serial
Monitor.
void loop() {

printValues();

delay(delayTime);

}

9/19


Đọc nhiệt độ, độ ẩm, áp suất và độ cao ước tính cũng đơn giản như sử dụng các
phương pháp sau trên đối tượng bme:
bme.readTemperature () - đọc nhiệt độ tính bằng độ C;
bme.readHumidity() – đọc độ ẩm tuyệt đối;
bme.readPressure() – đọc áp suất tính bằng hPa (hectoPascal = millibar);
bme.readAltitude (SEALEVELPRESSURE_HPA) - ước tính độ cao tính bằng mét
dựa trên áp suất ở mực nước biển.


Cuộc biểu tình
Tải mã lên ESP8266 của bạn và mở Màn hình nối tiếp với tốc độ truyền 9600. Nhấn nút
RST trên bo mạch để chạy mã. Bạn sẽ thấy các bài đọc được hiển thị trên Màn hình nối
tiếp.

Máy chủ web ESP8266 với cảm biến BME280
Cảm biến BME280 đo nhiệt độ, độ ẩm và áp suất. Vì vậy, bạn có thể dễ dàng xây dựng
một trạm thời tiết nhỏ gọn và theo dõi các phép đo bằng máy chủ web được xây dựng
với ESP8266 - đó là những gì chúng ta sẽ làm trong phần này

10/19


Sao chép mã sau vào Arduino IDE của bạn. Chưa tải nó lên. Trước tiên, bạn cần bao
gồm SSID và mật khẩu của mình.

11/19


/*********

Rui Santos

Complete project details at
*********/






// Load Wi-Fi library

#include <ESP8266WiFi.h>

#include <Wire.h>

#include <Adafruit_BME280.h>

#include <Adafruit_Sensor.h>

//uncomment the following lines if you're using SPI

/*#include <SPI.h>

#define BME_SCK 14

#define BME_MISO 12

#define BME_MOSI 13

#define BME_CS 15*/

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C

//Adafruit_BME280 bme(BME_CS); // hardware SPI

//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI


// Replace with your network credentials

const char* ssid
= "REPLACE_WITH_YOUR_SSID";

const char* password = "REPLACE_WITH_YOUR_PASSWORD";

// Set web server port number to 80

WiFiServer server(80);

// Variable to store the HTTP request

String header;

void setup() {

Serial.begin(115200);

bool status;

// default settings

// (you can also pass in a Wire library object like &Wire2)

//status = bme.begin();

if (!bme.begin(0x76)) {


Serial.println("Could not find a valid BME280 sensor, check wiring!");

while (1);

}

// Connect to Wi-Fi network with SSID and password

Serial.print("Connecting to ");

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

// Print local IP address and start web server

Serial.println("");

12/19


Serial.println("WiFi connected.");


Serial.println("IP address: ");

Serial.println(WiFi.localIP());

server.begin();

}

void loop(){

WiFiClient client = server.available();

// Listen for incoming clients


if (client) {
// If a new client connects,

Serial.println("New Client.");
// print a message out in the serial
port

String currentLine = "";
// make a String to hold incoming data
from the client

while (client.connected()) {
// loop while the client's connected
if (client.available()) {

// if there's bytes to read from the
client,

char c = client.read();
// read a byte, then

Serial.write(c);
// print it out the serial monitor

header += c;

if (c == '\n') {
// if the byte is a newline character

// if the current line is blank, you got two newline characters in a
row.

// that's the end of the client HTTP request, so send a response:

if (currentLine.length() == 0) {

// HTTP headers always start with a response code (e.g. HTTP/1.1 200
OK)

// and a content-type so the client knows what's coming, then a blank
line:

client.println("HTTP/1.1 200 OK");

client.println("Content-type:text/html");


client.println("Connection: close");

client.println();



// Display the HTML web page

client.println("<!DOCTYPE html><html>");

client.println("<head><meta name=\"viewport\" content=\"width=devicewidth, initial-scale=1\">");

client.println("<link rel=\"icon\" href=\"data:,\">");

// CSS to style the table

client.println("<style>body { text-align: center; font-family:
\"Trebuchet MS\", Arial;}");

client.println("table { border-collapse: collapse; width:35%; marginleft:auto; margin-right:auto; }");

client.println("th { padding: 12px; background-color: #0043af; color:
white; }");

client.println("tr { border: 1px solid #ddd; padding: 12px; }");

client.println("tr:hover { background-color: #bcbcbc; }");

client.println("td { border: none; padding: 12px; }");


client.println(".sensor { color:white; font-weight: bold; backgroundcolor: #bcbcbc; padding: 1px; }");



// Web Page Heading

client.println("</style></head><body>

ESP8266 with BME280

");
client.println("<table><tr><th>MEASUREMENT</th><th>VALUE</th></tr>");

client.println("<tr><td>Temp. Celsius</td><td>13/19


class=\"sensor\">");

client.println(bme.readTemperature());

client.println(" *C</span></td></tr>");

client.println("<tr><td>Temp. Fahrenheit</td><td>class=\"sensor\">");

client.println(1.8 * bme.readTemperature() + 32);

client.println(" *F</span></td></tr>");


client.println("<tr><td>Pressure</td><td><span class=\"sensor\">");


client.println(bme.readPressure() / 100.0F);

client.println(" hPa</span></td></tr>");

client.println("<tr><td>Approx. Altitude</td><td>class=\"sensor\">");

client.println(bme.readAltitude(SEALEVELPRESSURE_HPA));

client.println(" m</span></td></tr>");

client.println("<tr><td>Humidity</td><td><span class=\"sensor\">");

client.println(bme.readHumidity());

client.println(" %</span></td></tr>");

client.println("</body></html>");



// The HTTP response ends with another blank line

client.println();

// Break out of the while loop

break;

} else { // if you got a newline, then clear currentLine


currentLine = "";

}

} else if (c != '\r') { // if you got anything else but a carriage return
character,

currentLine += c;
// add it to the end of the currentLine

}

}

}

// Clear the header variable

header = "";

// Close the connection

client.stop();

Serial.println("Client disconnected.");

Serial.println("");

}


}


Xem mã thô

Mã hoạt động như thế nào
Tiếp tục đọc phần này để tìm hiểu cách mã hoạt động hoặc chuyển sang phần "Trình
diễn".
Bản phác thảo này rất giống với bản phác thảo được sử dụng trong Hướng dẫn Máy chủ
Web ESP8266. Đầu tiên, bạn bao gồm thư viện ESP8266WiFi và các thư viện cần thiết
để đọc từ cảm biến BME280.

14/19


// Load Wi-Fi library

#include <ESP8266WiFi.h>

#include <Wire.h>

#include <Adafruit_BME280.h>

#include <Adafruit_Sensor.h>

Dòng tiếp theo xác định một biến để tiết kiệm áp suất ở mực nước biển. Để ước tính độ
cao chính xác hơn, hãy thay thế giá trị bằng áp suất mực nước biển hiện tại tại vị trí của
bạn.
#define SEALEVELPRESSURE_HPA (1013.25)


Trong dịng tiếp theo, bạn tạo một đối tượng Adafruit_BME280 gọi là bme mà theo mặc
định thiết lập giao tiếp với cảm biến bằng I2C.
Adafruit_BME280 bme; // I2C

Như đã đề cập trước đây, bạn cần chèn ssid và mật khẩu của mình vào các dòng sau
bên trong dấu ngoặc kép.
const char* ssid
= "";

const char* password = "";

Sau đó, bạn đặt máy chủ web của mình thành cổng 80.
// Set web server port number to 80

WiFiServer server(80);

Dòng sau tạo một biến để lưu trữ tiêu đề của yêu cầu HTTP:
String header;

Thiết lập()
Trong setup(), chúng ta bắt đầu giao tiếp nối tiếp với tốc độ truyền 115200 cho mục đích
gỡ lỗi.
Serial.begin(115200);

Bạn kiểm tra xem cảm biến BME280 đã được khởi tạo thành công.
if (!bme.begin(0x76)) {

Serial.println("Could not find a valid BME280 sensor, check wiring!");


while (1);

Các dòng sau bắt đầu kết nối Wi-Fi với WiFi.begin(ssid, mật khẩu), đợi kết nối thành
công và in địa chỉ IP ESP trong Màn hình nối tiếp.

15/19


// Connect to Wi-Fi network with SSID and password

Serial.print("Connecting to ");

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

// Print local IP address and start web server

Serial.println("");

Serial.println("WiFi connected.");


Serial.println("IP address: ");

Serial.println(WiFi.localIP());

server.begin();

vòng lặp()
Trong loop(), chúng tơi lập trình những gì xảy ra khi một máy khách mới thiết lập kết nối
với máy chủ web. ESP ln lắng nghe các khách hàng mới với dịng này:
WiFiClient client = server.available(); // Listen for incoming clients

Khi nhận được yêu cầu từ máy khách, chúng tôi sẽ lưu dữ liệu đến. Vòng lặp while theo
sau sẽ chạy miễn là máy khách vẫn kết nối.
if (client) { // If a new client connects,

Serial.println("New Client."); // print a message out in the serial port

String currentLine = ""; // make a String to hold incoming data from the client

while (client.connected()) { // loop while the client's connected

if (client.available()) { // if there's bytes to read from the client,

char c = client.read(); // read a byte, then

Serial.write(c); // print it out the serial monitor

header += c;

if (c == '\n') { // if the byte is a newline character


// if the current line is blank, you got two newline characters in a row.

// that's the end of the client HTTP request, so send a response:

if (currentLine.length() == 0) {

// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)

// and a content-type so the client knows what's coming, then a blank
line:

client.println("HTTP/1.1 200 OK");

client.println("Content-type:text/html");

client.println("Connection: close");

client.println();

Hiển thị trang web HTML
Điều tiếp theo bạn cần làm là gửi phản hồi cho khách hàng bằng văn bản HTML để xây
dựng trang web.
Trang web được gửi đến máy khách bằng cách sử dụng biểu thức client.println(). Bạn
nên nhập những gì bạn muốn gửi cho khách hàng dưới dạng đối số.
Đoạn mã sau đây gửi trang web để hiển thị số đọc cảm biến trong bảng.
16/19


client.println("<!DOCTYPE html><html>");


client.println("<head>initial-scale=1\">");

client.println("<link rel=\"icon\" href=\"data:,\">");

// CSS to style the on/off buttons

// Feel free to change the background-color and font-size attributes to fit your
preferences

client.println("<style>body { text-align: center; font-family: \"Trebuchet MS\",
Arial;}");

client.println("table { border-collapse: collapse; width:35%; margin-left:auto;
margin-right:auto; }");

client.println("th { padding: 12px; background-color: #0043af; color: white; }");

client.println("tr { border: 1px solid #ddd; padding: 12px; }");

client.println("tr:hover { background-color: #bcbcbc; }");

client.println("td { border: none; padding: 12px; }");

client.println(".sensor { color:white; font-weight: bold; background-color:
#bcbcbc; padding: 1px; }");




// Web Page Heading

client.println("</style></head><body>

ESP32 with BME280

");

client.println("<table><tr><th>MEASUREMENT</th><th>VALUE</th></tr>");

client.println("<tr><td>Temp. Celsius</td><td><span class=\"sensor\">");

client.println(bme.readTemperature());

client.println(" *C</span></td></tr>");

client.println("<tr><td>Temp. Fahrenheit</td><td><span class=\"sensor\">");

client.println(1.8 * bme.readTemperature() + 32);

client.println(" *F</span></td></tr>");

client.println("<tr><td>Pressure</td><td><span class=\"sensor\">");

client.println(bme.readPressure() / 100.0F);

client.println(" hPa</span></td></tr>");

client.println("<tr><td>Approx. Altitude</td><td><span class=\"sensor\">");

client.println(bme.readAltitude(SEALEVELPRESSURE_HPA));

client.println(" m</span></td></tr>");


client.println("<tr><td>Humidity</td><td><span class=\"sensor\">");

client.println(bme.readHumidity());

client.println(" %</span></td></tr>");

client.println("</body></html>");

Lưu ý: bạn có thể nhấp vào đây để xem trang web HTML đầy đủ.

Hiển thị số đọc cảm biến
Để hiển thị các chỉ số cảm biến trên bảng, chúng ta chỉ cần gửi chúng giữa các thẻ <td>
và < / td> tương ứng . Ví dụ: để hiển thị nhiệt độ:
client.println("<tr><td>Temp. Celsius</td><td><span class=\"sensor\">");

client.println(bme.readTemperature());

client.println(" *C</span></td></tr>");

Lưu ý: thẻ <span> rất hữu ích để tạo kiểu cho một phần cụ thể của văn bản. Trong
trường hợp này, chúng ta đang sử dụng thẻ <span> để bao gồm việc đọc cảm biến trong
một lớp gọi là "sensor". Điều này rất hữu ích để tạo kiểu cho phần cụ thể đó của văn bản
bằng CSS.

17/19


Theo mặc định, bảng hiển thị các chỉ số nhiệt độ ở cả độ C và độ F. Bạn có thể nhận xét
ba dòng sau, nếu bạn chỉ muốn hiển thị nhiệt độ ở độ Fahrenheit.
/*client.println("<tr><td>Temp. Celsius</td><td><span class=\"sensor\">");


client.println(bme.readTemperature());

client.println(" *C</span></td></tr>");*/

Đóng kết nối
Cuối cùng, khi phản hồi kết thúc, chúng ta xóa biến header và dừng kết nối với client
bằng client.stop().
// Clear the header variable

header = "";

// Close the connection

client.stop();

Trình diễn máy chủ web
Sau khi chèn thông tin đăng nhập mạng của bạn, bạn có thể tải mã lên bảng của mình.
Kiểm tra xem bạn đã chọn đúng bo mạch và cổng COM chưa và tải mã lên ESP8266 của
bạn. Sau khi tải lên, hãy mở Màn hình nối tiếp với tốc độ truyền 115200 và sao chép địa
chỉ IP ESP8266.

Mở trình duyệt của bạn, dán địa chỉ IP và bạn sẽ thấy các bài đọc cảm biến mới nhất.

18/19


Để cập nhật các bài đọc, bạn chỉ cần làm mới trang web.
Bạn cũng có thể thích: ESP8266 với Cảm biến DHT11 - Máy chủ web không đồng bộ
với cập nhật tự động


Tổng kết
Bài viết này là một hướng dẫn chuyên sâu về cách đọc áp suất, nhiệt độ và độ ẩm từ
cảm biến BME280 với ESP8266 bằng Arduino IDE và hiển thị các bài đọc trên máy chủ
web.
Bây giờ, bạn có thể đưa dự án này đi xa hơn và hiển thị số đọc cảm biến của mình trong
màn hình OLED; tạo bộ ghi dữ liệu; lưu các bài đọc trong cơ sở dữ liệu của riêng bạn
hoặc gửi các bài đọc đến nền tảng Tự động hóa gia đình của bạn bằng MQTT. Dưới đây
là một số dự án và hướng dẫn có thể giúp bạn thực hiện những ý tưởng này:
ESP32 Xuất bản các bài đọc cảm biến lên Google Trang tính
Bộ ghi dữ liệu trạm thời tiết công suất thấp (MicroPython)
ESP32 / ESP8266 Chèn dữ liệu vào Cơ sở dữ liệu MySQL bằng PHP và Arduino
IDE
ESP8266 và Node-RED với MQTT (Xuất bản và Đăng ký)
MQTT là gì và nó hoạt động như thế nào
Cảm ơn bạn đã đọc.

19/19



×