תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
במדריך זה אני הולך להסביר על מדידת הקרבה של מכשיר ופרסום הערכים לפלטפורמת הענן Thingsai, io באמצעות חיישן אולם ולוח פיתוח של esp32.
חיישן אפקט הול הוא מכשיר המשמש למדידת גודל השדה המגנטי. מתח המוצא שלו עומד ביחס ישר לחוזק השדה המגנטי דרכו. חיישני אפקט הול משמשים לחישושי קרבה, מיקום, זיהוי מהירות ויישומי חישה שוטפים.
שלב 1: רכיבים
רכיבי חומרה:
1. חיישן אולם
2. לוח פיתוח esp32
3. חוטי מגשר
רכיבי תוכנה:
1. Arduino IDE
2. ThingsIO. AI
שלב 2: חיבורים:
חיישן אולם ---------------------- esp32
אאוט ------------------------------ נ.ב
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
שלב 3: קידוד:
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
int count = 0, i, m, j, k;
מדידת int;
int outputpin = A0; // ds18b20
/////////////////////////////////
עבור CLOUD //////////////////////////////////
const char* host = "api.thingsai.io"; // או מארח =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // או
/api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; // זה כדי להמיר את חותמת הזמן
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // כתובת URL של השרת
חותמת זמן של צ'ארה [10];
WiFiMulti WiFiMulti;
// השתמש בכיתה WiFiClient ליצירת חיבורי TCP
לקוח WiFiClient;
//////////////////////////////////////////
פונקציית חישוב ////////////////////////////
int GiveMeTimestamp ()
{
ארוך ללא סימן
פסק זמן = מיליס ();
// לקוח WiFiClient;
בזמן
(client.available () == 0)
{
אם (מיליס () -
פסק זמן> 50000)
{
client.stop ();
החזר 0;
}
}
בעוד (client.available ())
{
קו מחרוזת =
client.readStringUntil ('\ r'); // indexOf () הוא פונקציה לחיפוש smthng, הוא מחזיר -1 אם לא נמצא
int pos =
line.indexOf ("\" חותמת זמן / ""); // חפש "\" חותמת זמן / "" מתחילת התגובה שקיבלת והעתק את כל הנתונים לאחר מכן, זה יהיה חותמת הזמן שלך
אם (pos> =
0)
{
int j = 0;עבור (j = 0; j <10; j ++)
{חותמת זמן [j] = שורה [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
הגדרת חלל ()
{Serial.begin (115200);
עיכוב (10);
// נתחיל ב
חיבור לרשת WiFi
WiFiMulti.addAP ("wifi_name", "wifi_password");
Serial.println ();
Serial.println ();Serial.print ("המתן ל- WiFi …");בעוד (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
עיכוב (500);
}Serial.println ("");Serial.println ("WiFi מחובר");Serial.println ("כתובת IP:");
Serial.println (WiFi.localIP ());
עיכוב (500);
}
לולאת חלל ()
{
int analogValue =
analogRead (outputpin);
{
/////////////////////////////////
קבל את התגובה /////////////////////
מדידת int
= 0;
מדידה =
hallRead ();Serial.print ("מדידת חיישן הול:");Serial.println (מדידה);
עיכוב (1000);Serial.print ("מתחבר אל");Serial.println (מארח); // מוגדר כלפי מעלה:- host = devapi2.thethingscloud.com או 139.59.26.117
////////////////////////////////////////// SNIPPET
/////////////////////////
Serial.println ("בפנים חותמת זמן / n");
אם
(! client.connect (שרת הזמן, {
לַחֲזוֹר;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/timestamp HTTP/1.1"); // מה החלק הזה עושה, לא הבנתיclient.println ("מארח: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("אגרת דוור: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // זה יקרא לפונקציה
שיקבל את תגובת חותמת הזמן מהשרת
Serial.println ("חותמת זמן התקבלה");
Serial.println (חותמת זמן);Serial.println ("בתוך ThingsCloudPost");
מחרוזת PostValue =
"{" device_id / ": 61121696007, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + חותמת זמן;
PostValue =
PostValue +", \" data / ": {" proximity / ":" +מדידה +"}" +"}";Serial.println (PostValue);
/ * צור מופע של WiFiClientSecure */
לקוח WiFiClientSecure;Serial.println ("התחבר לשרת דרך יציאה 443");
אם
(! client.connect (שרת, 443)) {Serial.println ("החיבור נכשל!");
} אחר {Serial.println ("מחובר לשרת!");
/* צור
בקשה */
client.println ( POST
/devices/deviceData HTTP/1.1 ");client.println ("מארח: api.thingsai.io");//client.println("חיבור: קרוב ");client.println ("סוג תוכן: יישום/json");client.println ("cache-control: no-cache");
client.println ( הרשאה:
נושא eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9Pky6_mtd;client.print ("אורך התוכן:");client.println (PostValue.length ());
client.println ();client.println (PostValue);
////////////////////////////////////// לפרסם את הנתונים ב
ענן נעשה ועכשיו קבל את טופס התגובה שרת ענן ////////////////////
Serial.print ( מחכה לתגובה
);
בזמן
(! client.available ()) {
עיכוב (50);
//Serial.print (".");
}
/* אם הנתונים
זמין ואז קבל והדפס לטרמינל */
בזמן
(client.available ()) {
char c =
client.read ();Serial.write (ג);
}
/ * אם השרת נותק, עצור את הלקוח */
אם
(! client.connected ()) {Serial.println ();Serial.println ("השרת נותק");client.stop ();
}
}
Serial.println ( //////////////////////// END
///////////////////// );
עיכוב (3000);
}}
שלב 4: תוצאה:
הערכים הנקראים מהחיישן נשלחים לענן IOT בהצלחה והגרף נוצר כקרבה לעומת זמן. בעזרתו מנתח את פעולת החיישן ומשתמשים בו בהתאם לתחומי היישום הנדרשים.
שלב 5: הדרכה מלאה:
זהו הפרויקט השלם למדידת הקרבה של מכשיר באמצעות חיישן אולם esp32 ופלטפורמת הענן Thingsai.io. תודה