Სარჩევი:

მოძრაობის დეტექტორი Thingsai.io Iot Cloud პლატფორმის გამოყენებით: 6 ნაბიჯი
მოძრაობის დეტექტორი Thingsai.io Iot Cloud პლატფორმის გამოყენებით: 6 ნაბიჯი

ვიდეო: მოძრაობის დეტექტორი Thingsai.io Iot Cloud პლატფორმის გამოყენებით: 6 ნაბიჯი

ვიდეო: მოძრაობის დეტექტორი Thingsai.io Iot Cloud პლატფორმის გამოყენებით: 6 ნაბიჯი
ვიდეო: ყველაზე იაფი მინი wifi კამერა ტრეკინგით. 2024, ნოემბერი
Anonim
მოძრაობის დეტექტორი Thingsai.io Iot Cloud პლატფორმის გამოყენებით
მოძრაობის დეტექტორი Thingsai.io Iot Cloud პლატფორმის გამოყენებით

ამ გაკვეთილში მე ვაპირებ ახსნას მოძრაობის გამოვლენის შესახებ PIR სენსორის და Esp32– ის გამოყენებით IOT ღრუბლოვანი პლატფორმის Thingai.io– სთან ერთად.

ნაბიჯი 1: კომპონენტები

კომპონენტები
კომპონენტები
კომპონენტები
კომპონენტები

HARDWARE კომპონენტები;

1.esp32 განვითარების საბჭო

2. PIR სენსორი

3. ჯუმბერის მავთულები

პროგრამული უზრუნველყოფა:

1. Arduino IDE

2. Thingsai.io ანგარიში

ნაბიჯი 2: კავშირები

კავშირები
კავშირები

კავშირები მშვიდი მარტივია.

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

VCC ------------------- 3V3 esp32– ზე

GND ------------------ GND esp32– ზე

OUT ------------------- D22 esp32– ზე

ნაბიჯი 3: კოდირება

ჩასვით ეს კოდი თქვენს Arduino IDE– ში გარკვეული განახლებით, თქვენი მოძრაობის სენსორი შესანიშნავად მისცემს გამომავალს.

#ჩართეთ

#ჩართეთ

#ჩართეთ

int რაოდენობა = 0, i, m, j, k;

int t, t1, t2, t3;

int pin = 22;

//////////////////////////////////////// ყველა დეკლარაცია ღრუბლისთვის ////// //////////////////////////

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* სერვერი = "api.thingsai.io"; // სერვერის URL

char დროის ნიშნული [10];

WiFiMulti WiFiMulti;

// გამოიყენეთ WiFiClient კლასი TCP კავშირების შესაქმნელად

WiFiClient კლიენტი;

//////////////////////////////////////// TIMESTAMP კალკულაციის ფუნქცია ///////// /////////////////////////////////

int GiveMeTimestamp ()

{

ხელმოუწერელი ხანგრძლივი ვადა = მილი ();

// WiFiClient კლიენტი;

while (client.available () == 0)

{

თუ (მილილი () - დროის გასვლა> 50000)

{

client.stop ();

დაბრუნება 0;

}

}

ხოლო (client.available ())

{

სიმებიანი ხაზი = client.readStringUntil ('\ r'); // indexOf () არის smthng– ის ძებნის ფუნქცია, ის აბრუნებს -1 თუ არ არის ნაპოვნი

int pos = line.indexOf ("\" დროის ნიშნული / ""); // მოძებნეთ "\" დროის ნიშნული / "" პასუხის დასაწყისიდან და დააკოპირეთ ყველა მონაცემი ამის შემდეგ, ეს იქნება თქვენი დროის ნიშნული

თუ (pos> = 0)

{

int j = 0;

for (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 (პინი);

თუ (აღმოჩენილია) {

Serial.println ("გამოვლენილია ყოფნა");

}

დაგვიანება (500);

}

Serial.print ("დაკავშირება");

Serial.println (მასპინძელი); // განსაზღვრული თავდაყირა:- მასპინძელი = devapi2.thethingscloud.com ან 139.59.26.117

////////////////////////////////////// TIMESTAMP CODE SNIPPET /////////// //////////////////

Serial.println ("შიგნით მიიღეთ დროის ნიშნული / n");

თუ (! client.connect (time_server, {

დაბრუნების; //*-*-*-*-*-*-*-*-*-*-*

}

client.println ("GET/api/timestamp HTTP/1.1"); // რას აკეთებს ეს ნაწილი, მე ვერ გავიგე

client.println ("მასპინძელი: baas.thethingscloud.com");

client.println ("ქეში-კონტროლი: არა-ქეში");

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 ("ქეში-კონტროლი: არა-ქეში");

client.println ("ავტორიზაცია: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AG7ajfVlY");

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

სერიული. დაწერეთ (გ);

}

/ * თუ სერვერი გათიშულია, გააჩერეთ კლიენტი */

თუ (! client.connected ()) {

Serial.println ();

Serial.println ("სერვერი გათიშულია"); javascript:;

client.stop ();

}

}

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

დაგვიანება (3000);

}

}

ნაბიჯი 4: გამოსავალი

ამონაწერი
ამონაწერი

ეს არის სენსორიდან წაკითხული მნიშვნელობების სვეტოგრაფიული გრაფიკა რამის, ღრუბლის პლატფორმაზე,

ნაბიჯი 5: გრაფიკი

გრაფიკი
გრაფიკი

ეს არის მნიშვნელობების გრაფიკული წარმოდგენა სენსორიდან. ზემოთ მოყვანილი გრაფიკიდან შეგვიძლია გავაანალიზოთ სენსორის გამოყენება. Გმადლობთ

გირჩევთ: