תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
היי …. היום נלמד על מדידת עוצמת האור ופרסום הערכים בפלטפורמת הענן של THINGSAI IOT באמצעות ESP32.
הדרישות לביצוע פרויקט זה הן
1. לוח פיתוח ESP32 (השתמשתי ב- ESP32 DEVKIT V1)
2. חיישן LDR
3. חוטי מגשר
4. חשבון ב- THINGSAI IOT PLATFORM
שלב 1: יצירה והתחברות לפלטפורמת THINGSIO
היכנס לחשבון THINGS AI. אם אתה חדש אז הירשם לחשבון על ידי לחיצה על כפתור ההרשמה ומלא את כל האישורים. החשבון שלך ייווצר ומכאן תוכל לעבוד על פלטפורמת הענן וליצור את הפרויקט המותאם אישית שלך
שלב 2: יצירת פרויקט חדש
לאחר הכניסה לחשבון, ליצירת פרוייקט פשוט לחץ על הפרויקט החדש ולאחר מכן תן את שם הפרויקט.
שלב 3: יצירת מכשיר חדש
לאחר יצירת הפרויקט הדבר הבא שעליך לעשות הוא ליצור מכשיר חדש. תן את שם המכשיר והזן את מזהה המכשיר באופן ידני או שנוצר על ידי המערכת.
שלב 4: הגדרת פרמטר התקן
תן את פרמטר המכשיר ולאחר מכן בחר את סוג הפרמטר
שלב 5: עדכון המכשיר
בחר את הפרמטר ולאחר מכן עדכן את המכשיר
שלב 6: קידוד
מתוך הקודים לדוגמא בחר את הקוד של esp32 העתק אותו ולאחר מכן הדבק אותו ב- arduino IDE ובצע את השינויים הדרושים בהתאם לדרישה. נתתי את הקוד למטה
#כלול #כלול
#לִכלוֹל
int count = 0, i, m, j, k;
int t; int outputpin = A0; // ds18b20
int sensorvalue;
/////////////////////////// //////////////////////////
const char* host = "api.thingsai.io"; // או
מארח = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // OR/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;
////////////////////////////////////////// פונקציית חישוב הזמן //////// ////////////////////////////>/ // לקוח 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", "pswrd");
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);
שלח את השאילתה וקבל את התשובה /// //////////////////////
sensorvalue = analogRead (A0); // קרא את סיכת הכניסה האנלוגית 0
sensorvalue = sensorvalue/100;
Serial.print (sensorvalue, DEC); // מדפיס את הערך הנקרא
Serial.print ("\ n"); // מדפיס רווח בין המספרים
עיכוב (1000); // המתן 100 ms לקריאה הבאה
Serial.print ("מתחבר אל"); Serial.println (מארח); // מוגדר כלפי מעלה:- host = devapi2.thethingscloud.com או 139.59.26.117
////////////////////////////////////////// SNIPPET CODE ////////////////
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");
String PostValue = "{" device_id / ": 61121695844, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + חותמת זמן;
PostValue = PostValue +", \" data / ": {" INTENSITY / ":" +\ sensorvalue +"}" +"}";
Serial.println (PostValue);
/ * צור מופע של WiFiClientSecure */ WiFiClientSecure client;
Serial.println ("התחבר לשרת דרך יציאה 443");
אם (! client.connect (שרת, 443))
{
Serial.println ("החיבור נכשל!");
}
אַחֵר
{Serial.println ("מחובר לשרת!"); / * צור בקשת HTTP */
client.println ( POST/devices/deviceData
client.println ("מארח: api.thingsai.io"); //client.println("חיבור: קרוב "); cl
ient.println ("סוג תוכן: יישום/json");
client.println ("cache-control: no-cache");
client.println ("הרשאה: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNy)" 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); }}
שלב 7: בחירת לוח ולוח נמל
מתוך הכלים בחר את הלוח ולאחר מכן בחר את יציאת ה- com
שלב 8: חיבורי מעגלים
הקידוד מתבצע ואז בצע את החיבורים הבאים כפי שהוזכר להלן
חיבורים:
GND של esp32 עד GND של חיישן LDR
3V3 0f esp32 ל- Vcc של ה- LDR
סמנכ ל esp32 ל- A0 של ה- LDR
שלב 9: הידור והעלאה
הידור והעלה את הקוד ל- esp32 ולאחר מכן קרא את הקריאות מהצג הטורי. זה יראה תוצאה כזו
שלב 10: צג סידורי
הערכים מתקבלים במסך הטורי ואז הם נשלחים לפלטפורמת הענן THINGSAI IOT.
שלב 11: קריאות
זה מראה את הערכים המתקבלים מלוח esp32.
שלב 12: ייצוג גרפי
זהו הייצוג הגרפי של הערכים המתקבלים. זהו סוף ההדרכה. מקווה שהבנת. תודה