Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Trong hướng dẫn này, tôi sẽ giải thích về cách đo nhiệt độ xung quanh bằng cách sử dụng cảm biến nhiệt độ có sẵn trong bảng phát triển esp32. esp32 có nhiều cảm biến sẵn có như cảm biến hội trường được sử dụng như cảm biến tiệm cận, cảm biến cảm ứng, cảm biến nhiệt độ. Trong hướng dẫn này, chúng ta sẽ thảo luận về cảm biến nhiệt độ.
Bước 1: THÀNH PHẦN:
Phần cứng:
Ban phát triển 1.esp32
Phần mềm:
1. Arduino IDE
2. Thingsio.ai
Bước 2: ĐẠI DIỆN SƠ ĐỒ KHỐI CỦA Esp32
Bước 3: GIẢI MÃ:
#bao gồm
#bao gồm
#bao gồm
#bao gồm
#bao gồm
#ifdef _cplusplus
bên ngoài "C" {
#endif
uint8_t temp Heat_sens_read ();
// uint8_t g_phyFuns;
#ifdef _cplusplus
}
#endif
int count = 0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0; // ds18b20
////////////////////////////////////////// TẤT CẢ KHAI BÁO
cho CLOUD ////////////////////////////////
const char * host = "api.thingsai.io"; // HOẶC máy chủ =
devapi2.thethingscloud.com
const char * post_url = "/ devices / deviceData"; //
HOẶC / api / v2 / thingscloud2 / _table / data_ac
const char * time_server =
"baas.thethingscloud.com"; // đây là để chuyển đổi dấu thời gian
const int httpPort = 80;
const int httpsPort = 443;
const char * máy chủ =
"api.thingsai.io"; // URL máy chủ
dấu thời gian char [10];
WiFiMulti WiFiMulti;
// Sử dụng lớp WiFiClient để tạo kết nối TCP
Máy khách WiFiClient;
/////////////////////////////////////////// TIMESTAMP
Hàm tính toán ///////////////////////////////////////////
int GiveMeTimestamp ()
{
không ký lâu
thời gian chờ = millis ();
// Máy khách WiFiClient;
trong khi
(client.available () == 0)
{
nếu (mili () -
thời gian chờ> 50000)
{
client.stop ();
trả về 0;
}
}
while (client.available ())
{
Dòng chuỗi =
client.readStringUntil ('\ r'); // indexOf () là một phép tìm kiếm smthng, nó trả về -1 nếu không tìm thấy
int pos =
line.indexOf ("\" dấu thời gian / ""); // tìm kiếm "\" dấu thời gian / "" từ đầu câu trả lời đã nhận và sao chép tất cả dữ liệu sau đó, nó sẽ là dấu thời gian của bạn
if (pos> =
0)
{
int j = 0;cho (j = 0; j <10; j ++)
{dấu thời gian [j] = line [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{Serial.begin (115200);
chậm trễ (10);
tzset ();
// Chúng tôi bắt đầu bởi
kết nối với mạng WiFiWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");
Serial.println ();
Serial.println ();Serial.print ("Chờ WiFi…");trong khi (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
chậm trễ (500);
}Serial.println ("");Serial.println ("Đã kết nối WiFi");Serial.println ("Địa chỉ IP:");Serial.println (WiFi.localIP ());
chậm trễ (500);
}
uint8_t temp_farenheit;
float temp_c;
char strftime_buf [64];
time_t now = 0;
struct tm timeinfo;
char buf [256];
void loop ()
{
// int analogValue =
analogRead (ghim đầu ra);
{
/////////////////////////////////////////// GỬI CÂU HỎI VÀ
NHẬN LẠI LỜI TRẢ LỜI /////////////////////////
//
t1 = (analogValue / 1024.0) * 5000;
//
Serial.print ("temp:");
// Serial.println (t1);
/
/ t2 = (t1 / 10);
//
Serial.print ("celc:");
//
Serial.println (t2);
/
/ t3 = ((t2 *
9)/5 + 32);
//
Serial.print ("fhrn:");
//
Serial.println (t3); //nghỉ;localtime_r (& now, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "% c", & timeinfo);sprintf (buf, "bắt đầu quét% 02d:% 02d:% 02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Serial.print
(buf);
temp_farenheit =
temp Heat_sens_read ();
temp_cators = (temp_farenheit - 32) / 1.8;Serial.print ("Temp onBoard");Serial.print (temp_farenheit);Serial.print ("° F");Serial.print (nhiệt độ);Serial.println ("° C");
chậm trễ (1000);
ngay ++;
Serial.print ( đang kết nối
đến );Serial.println (máy chủ); // được định nghĩa ngược: - host = devapi2.thethingscloud.com hoặc 139.59.26.117
///////////////////////////////////////// MÃ TIMESTAMP SNIPPET
/////////////////////////
Serial.println ("bên trong lấy dấu thời gian / n");
nếu như
(! client.connect (time_server, {
trở lại;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET / api / timestamp HTTP / 1.1"); // Phần này đang làm gì vậy, tôi không hiểuclient.println ("Máy chủ: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // nó sẽ gọi
hàm sẽ nhận được phản hồi dấu thời gian từ máy chủ
Serial.println ("đã nhận được dấu thời gian");
Serial.println (dấu thời gian);Serial.println ("bên trong ThingsCloudPost");
Chuỗi PostValue =
"{" device_id / ": 61121695920, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + dấu thời gian;
PostValue =
PostValue + ", \" data / ": {" TEMP / ":" + temp_farenheit + "}" + "}";Serial.println (PostValue);
/ * tạo một phiên bản của WiFiClientSecure * /
Máy khách WiFiClientSecure;Serial.println ("Kết nối với máy chủ qua cổng 443");
nếu như
(! client.connect (server, 443)) {Serial.println ("Kết nối không thành công!");
} khác {Serial.println ("Đã kết nối với máy chủ!");
/ * tạo
lời yêu cầu */client.println ("POST / devices / deviceData HTTP / 1.1");client.println ("Máy chủ: api.thingsai.io");//client.println("Connection: close ");client.println ("Loại-Nội dung: ứng dụng / json");client.println ("cache-control: no-cache");client.println ("Ủy quyền: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PWV5AGs9")client.print ("Nội dung-Độ dài:");client.println (PostValue.length ());client.println ();client.println (PostValue);
//////////////////////////////////// ĐĂNG dữ liệu lên
đám mây đã xong và bây giờ nhận được máy chủ đám mây biểu mẫu phản hồi ////////////////////
Serial.print ( Đang chờ
để trả lời );
trong khi
(! client.available ()) {
chậm trễ (50);
//Serial.print (".");
}
/ * nếu dữ liệu là
có sẵn sau đó nhận và in ra Terminal * /
trong khi
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/ * nếu
máy chủ bị ngắt kết nối, dừng máy khách * /
nếu như
(! client.connected ()) {Serial.println ();Serial.println ("Máy chủ đã ngắt kết nối");
client.stop ();
}
}
Serial.println ( //////////////////////// THE END
///////////////////// );
chậm trễ (3000);
}
}
Bước 4: ĐẦU RA:
Đây là kết quả đầu ra của các giá trị nhiệt độ đọc được từ cảm biến.
Bước 5: GRAPHS:
Biểu diễn đồ họa của các giá trị đọc được từ cảm biến nhiệt độ trên bo mạch.