Mục lục:
- Bước 1: Tạo và đăng nhập vào Nền tảng THINGSIO
- Bước 2: Tạo dự án mới
- Bước 3: Tạo thiết bị mới
- Bước 4: Xác định thông số thiết bị
- Bước 5: Cập nhật thiết bị
- Bước 6: Mã hóa
- Bước 7: Lựa chọn Bo mạch và Cổng Com
- Bước 8: Kết nối mạch
- Bước 9: Biên dịch và tải lên
- Bước 10: Màn hình nối tiếp
- Bước 11: Bài đọc
- Bước 12: Biểu diễn đồ họa
- Bước 13:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
HEY…..hôm nay chúng ta sẽ tìm hiểu về cách đo cường độ ánh sáng và đăng các giá trị lên nền tảng đám mây THINGSAI IOT bằng cách sử dụng ESP32.
Các yêu cầu để thực hiện dự án này là
1. Ban phát triển ESP32 (Tôi đã sử dụng ESP32 DEVKIT V1)
2. Cảm biến LDR
3. Dây nhảy
4. Tài khoản ở THINGSAI IOT PLATFORM
Bước 1: Tạo và đăng nhập vào Nền tảng THINGSIO
Đăng nhập vào tài khoản THINGS AI. Nếu bạn là người mới, hãy đăng ký tài khoản bằng cách nhấn nút đăng ký và điền tất cả các thông tin đăng nhập. Tài khoản của bạn sẽ được tạo và từ đó bạn có thể làm việc trên nền tảng đám mây và tạo dự án tùy chỉnh của mình
Bước 2: Tạo dự án mới
Sau khi đăng nhập tài khoản, để tạo dự án chỉ cần nhấp chuột vào dự án mới rồi đặt tên dự án.
Bước 3: Tạo thiết bị mới
Sau khi tạo dự án, việc tiếp theo bạn phải làm là tạo một thiết bị mới, nhập tên thiết bị và nhập ID thiết bị theo cách thủ công hoặc do hệ thống tạo.
Bước 4: Xác định thông số thiết bị
Cung cấp thông số thiết bị và sau đó chọn loại thông số
Bước 5: Cập nhật thiết bị
Chọn thông số và sau đó cập nhật thiết bị
Bước 6: Mã hóa
Từ các mã mẫu chọn mã esp32 sao chép nó và sau đó dán nó vào arduino IDE và thực hiện các thay đổi cần thiết theo yêu cầu. Tôi đã cung cấp mã bên dưới
#include #include
#bao gồm
int count = 0, i, m, j, k;
int t; int outputpin = A0; // ds18b20
giá trị cảm biến int;
//////////////////////////////////////////// TẤT CẢ CÁC KHAI BÁO CHO CLOUD ////// //////////////////////////
const char * host = "api.thingsai.io"; // HOẶC
host = 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 * server = "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;
//////////////////////////////////////////////////////////////////// /////////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // Máy khách WiFiClient;
while (client.available () == 0)
{
if (millis () - timeout> 50000)
{
client.stop (); trả về 0;
}
}
while (client.available ())
{
String line = 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);
// Chúng tôi bắt đầu bằng cách kết nối với mạng WiFi
WiFiMulti.addAP ("wifi", "pswrd");
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);
}
void loop ()
{
int analogValue = analogRead (đầu ra);
{/////////////////////////////////////////// HÃY GỬI CÂU HỎI VÀ NHẬN TRẢ LỜI /// //////////////////////
giá trị cảm biến = analogRead (A0); // đọc chân đầu vào analog 0
sensorvalue = giá trị cảm biến / 100;
Serial.print (giá trị cảm biến, DEC); // in giá trị đã đọc
Serial.print ("\ n"); // in ra khoảng trắng giữa các số
chậm trễ (1000); // đợi 100 mili giây để đọc tiếp
Serial.print ("đang kết nối với"); 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");
if (! 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 nhận được client.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 ("timestampished");
Serial.println (dấu thời gian);
Serial.println ("bên trong ThingsCloudPost");
Chuỗi PostValue = "{" device_id / ": 61121695844, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + dấu thời gian;
PostValue = PostValue + ", \" data / ": {" INTENSITY / ":" + / sensorvalue + "}" + "}";
Serial.println (PostValue);
/ * tạo một phiên bản của máy khách WiFiClientSecure * / WiFiClientSecure;
Serial.println ("Kết nối với máy chủ qua cổng 443");
if (! 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 yêu cầu HTTP * /
client.println ("POST / devices / deviceData HTTP / 1.1");
client.println ("Máy chủ: api.thingsai.io"); //client.println("Connection: close "); cl
ient.println ("Loại-Nội dung: ứng dụng / json");
client.println ("cache-control: no-cache");
client.println ("Ủy quyền: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. 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 biểu mẫu phản hồi trên đám mây người phục vụ//////////////////
Serial.print ("Đang chờ phản hồi");
while (! client.available ()) {
chậm trễ (50); //
Serial.print (".");
} / * nếu có sẵn dữ liệu thì nhận và in ra Terminal * /
while (client.available ())
{
char c = client.read ();
Serial.write (c);
}
/ * nếu máy chủ bị ngắt kết nối, hãy dừng máy khách * /
if (! 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 7: Lựa chọn Bo mạch và Cổng Com
Từ các công cụ, chọn bảng và sau đó chọn cổng com
Bước 8: Kết nối mạch
Mã hóa xong rồi thực hiện các kết nối sau như đã đề cập bên dưới
KẾT NỐI:
GND của esp32 đến GND của cảm biến LDR
3V3 0f esp32 sang Vcc của LDR
VP của esp32 đến A0 của LDR
Bước 9: Biên dịch và tải lên
biên dịch và tải mã lên esp32 và sau đó đọc các bài đọc từ màn hình nối tiếp. Điều đó sẽ hiển thị một kết quả như thế này
Bước 10: Màn hình nối tiếp
Các giá trị thu được trên màn hình nối tiếp và sau đó chúng được gửi vào nền tảng THINGSAI IOT Cloud.
Bước 11: Bài đọc
Điều này cho thấy các giá trị thu được từ bảng esp32.
Bước 12: Biểu diễn đồ họa
Đây là biểu diễn đồ họa của các giá trị thu được. Đó là phần cuối của hướng dẫn. Hy vọng bạn đã hiểu. Cảm ơn