תוכן עניינים:

גלאי תנועה באמצעות Thingsai.io Iot Cloud Platform: 6 שלבים
גלאי תנועה באמצעות Thingsai.io Iot Cloud Platform: 6 שלבים

וִידֵאוֹ: גלאי תנועה באמצעות Thingsai.io Iot Cloud Platform: 6 שלבים

וִידֵאוֹ: גלאי תנועה באמצעות Thingsai.io Iot Cloud Platform: 6 שלבים
וִידֵאוֹ: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, נוֹבֶמבֶּר
Anonim
גלאי תנועה באמצעות Thingsai.io Iot Cloud Platform
גלאי תנועה באמצעות Thingsai.io Iot Cloud Platform

במדריך זה אני הולך להסביר על זיהוי תנועה באמצעות חיישן PIR ו- Esp32 יחד עם פלטפורמת ענן IOT Thingai.io

שלב 1: רכיבים

רכיבים
רכיבים
רכיבים
רכיבים

רכיבי חומרה;

1. מועצת הפיתוח שלesp32

2. חיישן PIR

3. חוטי מגשר

תוכנה:

1. Arduino IDE

2. חשבון Thingsai.io

שלב 2: חיבורים

חיבורים
חיבורים

החיבורים שקטים ופשוטים.

PINS PIR ------------ ESP32 PINS

VCC ------------------- 3V3 ב- esp32

GND ------------------ GND ב- esp32

OUT ------------------- D22 ב- esp32

שלב 3: קידוד

הדבק את הקוד הזה ב- Arduino IDE שלך עם עדכון כלשהו, חיישן התנועה שלך ייתן את הפלט ללא רבב.

#לִכלוֹל

#לִכלוֹל

#לִכלוֹל

int count = 0, i, m, j, k;

int t, t1, t2, t3;

int pin = 22;

/////////////////////////// //////////////////////////

const char* host = "api.thingsai.io"; // OR מארח = 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;

////////////////////////////////////////// פונקציית חישוב זמן ////////////////////////////////////

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);

pinMode (pin, INPUT);

// אנו מתחילים בחיבור לרשת 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);

{

/////////////////////////////////// ////////////////////

{

bool isDetected = digitalRead (pin);

if (isDetected) {

Serial.println ("זיהוי נוכחות");

}

עיכוב (500);

}

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 / ": 61121695839, \" slave_id / ": 2";

PostValue = PostValue + ", \" dts / ":" + חותמת זמן;

PostValue = PostValue +", \" data / ": {" PIR / ":" +pin +"}" +"}";

Serial.println (PostValue);

/ * צור מופע של WiFiClientSecure */

לקוח WiFiClientSecure;

Serial.println ("התחבר לשרת דרך יציאה 443");

if (! client.connect (שרת, 443)) {

Serial.println ("החיבור נכשל!");

} אחר {

Serial.println ("מחובר לשרת!");

/ * צור בקשת HTTP */

client.println ( POST/devices/deviceData

client.println ("מארח: api.thingsai.io");

//client.println("חיבור: קרוב ");

client.println ("סוג תוכן: יישום/json");

client.println ("cache-control: no-cache");

client.println ( הרשאה: נושאת eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNYs9k9y7y9y9s9y9k9y9c9y9c9y9c9y9c9p6y9c9y9c9y9c9y9c9p6y9c5j9J9JyJ9JyN9C9pK9y9YYYYYYN9CYPWzQy9J9yYyYNJC9pJ6y9JyJJJJJJJJ9JyJJ9JyJJJjJJJJJJJg

client.print ("אורך התוכן:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue);

///////////////////////////////// שרת//////////////////

Serial.print ("מחכה לתגובה");

בעוד (! client.available ()) {

עיכוב (50); //

Serial.print (".");

}

/ * אם יש נתונים, קבל והדפס לטרמינל */

while (client.available ()) {

char c = client.read ();

Serial.write (ג);

}

/ * אם השרת נותק, עצור את הלקוח */

אם (! client.connected ()) {

Serial.println ();

Serial.println ("השרת מנותק"); javascript:;

client.stop ();

}

}

Serial.println ("////////////////////// END ////////////// ");

עיכוב (3000);

}

}

שלב 4: פלט

תְפוּקָה
תְפוּקָה

זהו ייצוג תרשים העמודים של הערכים הנקראים מהחיישן בפלטפורמת הענן Thingsai, io,

שלב 5: גרף

גרָף
גרָף

זהו הייצוג הגרפי של הערכים מהחיישן. מהגרף לעיל נוכל לנתח את היישום של החיישן. תודה

מוּמלָץ: