
Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-23 15:15

Trong hướng dẫn này, tôi sẽ giải thích về việc đo lường mức độ gần của một thiết bị và xuất bản các giá trị vào nền tảng đám mây Thingsai, io bằng cách sử dụng cảm biến hội trường và bảng phát triển esp32.
Cảm biến hiệu ứng Hall là một thiết bị được sử dụng để đo độ lớn của từ trường. Điện áp đầu ra của nó tỷ lệ thuận với cường độ từ trường qua nó. Cảm biến hiệu ứng Hall được sử dụng cho các ứng dụng phát hiện độ gần, định vị, phát hiện tốc độ và cảm biến hiện tại.
Bước 1: THÀNH PHẦN



Các thành phần phần cứng:
1. Cảm biến Hall
2. bảng phát triển esp32
3. Dây nhảy
Thành phần phần mềm:
1. Arduino IDE
2. ThingsIO. AI
Bước 2: KẾT NỐI:

Cảm biến Hall ---------------------- esp32
Hết ------------------------------ vp
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
Bước 3: GIẢI MÃ:
#bao gồm
#bao gồm
#bao gồm
int count = 0, i, m, j, k;
int đo lường;
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);
// Chúng tôi bắt đầu bởi
kết nối với mạng WiFi
WiFiMulti.addAP ("wifi_name", "mật khẩu mạng wifi");
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 (ghim đầu ra);
{
/////////////////////////////////////////// GỬI CÂU HỎI VÀ
NHẬN LẠI LỜI TRẢ LỜI /////////////////////////
int đo lường
= 0;
đo lường =
HallRead ();Serial.print ("Đo cảm biến Hall:");Serial.println (đo lường);
chậm trễ (1000);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");
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 / ": 61121696007, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + dấu thời gian;
PostValue =
PostValue + ", \" data / ": {" độ gần / ":" + đo lường + "}" + "}";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 ( ĐĂNG
/ 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.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AGY7 "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ờ phản hồ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, hãy 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: KẾT QUẢ:

Các giá trị được đọc từ cảm biến đang được gửi đến đám mây IOT thành công và biểu đồ đang được tạo dưới dạng khoảng cách so với thời gian. Với điều này, hoạt động của cảm biến được phân tích và sử dụng theo các lĩnh vực ứng dụng yêu cầu.
Bước 5: Hoàn thành Hướng dẫn:

Đây là dự án hoàn chỉnh để đo khoảng cách của một thiết bị bằng cách sử dụng cảm biến hội trường esp32 và nền tảng đám mây thingsai.io. Cảm ơn bạn
Đề xuất:
Cách tạo mô hình vững chắc trong ROBLOX Studio: 5 bước

Cách tạo mô hình rắn trong ROBLOX Studio: Mô hình rắn có nhiều ứng dụng trong phát triển trò chơi ROBLOX. Mô hình rắn có thể được sử dụng để giảm độ trễ, tạo hình dạng phức tạp và làm cho trò chơi của bạn nhìn tổng thể đẹp hơn
Đồng hồ từ vựng Arduino RGB ngân sách!: 7 bước (có hình ảnh)

Đồng hồ từ vựng Arduino RGB ngân sách !: Xin chào mọi người, đây là hướng dẫn của tôi về cách tạo & đồng hồ chữ giá rẻ! Công cụ bạn sẽ cần cho dự án này Sắt hàn & Dây hàn (Tốt nhất là ít nhất 3 màu khác nhau) Máy in 3D (Hoặc truy cập vào một dây, bạn cũng có thể s
Zwift Ambilight và Đèn thông minh vùng nhịp tim: 4 bước

Zwift Ambilight và Đèn thông minh vùng nhịp tim: Ở đây chúng tôi xây dựng một chút cải tiến LỚN cho Zwift. Cuối cùng, bạn có một đèn chiếu sáng để có thêm niềm vui cưỡi ngựa trong bóng tối và bạn có một đèn (Yeelight) cho vùng nhịp tim của mình. Tôi sử dụng ở đây 2 Raspberry PI, nếu bạn chỉ muốn Yeelight, bạn chỉ cần 1 PI nếu
Đèn LED hoa sen (Môi trường tự nhiên bền vững): 4 bước

Đèn LED Hoa sen (Môi trường tự nhiên bền vững): Tóm tắt: Một chiếc đèn có hình dạng tương tự như bông hoa Sen nổi tiếng. Ý tưởng đằng sau chiếc đèn là nó có thể được sử dụng ở các cấu hình khác nhau tùy thuộc vào sở thích của người dùng cuối vì nó sẽ phát sáng khi (Bông sen
Tạo vùng an toàn cho thiết bị Android / IOS / WIN10 luôn được mở khóa: 6 bước

Tạo vùng an toàn cho thiết bị Android / IOS / WIN10 để luôn mở khóa: Trong bài viết này, chúng tôi muốn tạo một tiện ích thú vị có thể tạo vùng an toàn cho thiết bị của bạn được mở khóa. Khi kết thúc dự án này, bạn: Sẽ học cách sử dụng cảm biến vân tay. Sẽ học cách ghép nối thiết bị của bạn với tiện ích trong vùng an toàn của bạn. Sẽ m