Talaan ng mga Nilalaman:

Motion Detector Gamit ang Thingsai.io Iot Cloud Platform: 6 na Hakbang
Motion Detector Gamit ang Thingsai.io Iot Cloud Platform: 6 na Hakbang

Video: Motion Detector Gamit ang Thingsai.io Iot Cloud Platform: 6 na Hakbang

Video: Motion Detector Gamit ang Thingsai.io Iot Cloud Platform: 6 na Hakbang
Video: 4 Things na Wag Gagawin sa pag Drive ng Automatic Transmission na Kotse 2024, Nobyembre
Anonim
Motion Detector Gamit ang Thingsai.io Iot Cloud Platform
Motion Detector Gamit ang Thingsai.io Iot Cloud Platform

Sa tutorial na ito ipapaliwanag ko ang tungkol sa pagtuklas ng paggalaw sa pamamagitan ng paggamit ng isang sensor ng PIR at Esp32 kasama ang isang IOT cloud platform na Thingai.io

Hakbang 1: Mga Bahagi

Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi

HARDWARE KOMPONENSA;

1.esp32 Development Board

2. Sensor ng Pir

3. Jumper Wires

SOFTWARE:

1. Arduino IDE

2. Thingsai.io account

Hakbang 2: Mga koneksyon

Mga koneksyon
Mga koneksyon

Ang mga koneksyon ay tahimik na simple.

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

VCC ----------------- 3V3 sa esp32

GND ----------------- GND sa esp32

OUT ------------------- D22 sa esp32

Hakbang 3: CODING

I-paste ang code na ito sa iyong Arduino IDE na may ilang pag-update, ang iyong Motion sensor ay magbibigay ng output nang walang kapintasan.

# isama

# isama

# isama

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

int t, t1, t2, t3;

int pin = 22;

// ///. // ///.

const char * host = "api.thingsai.io"; // OR host = devapi2.thethingscloud.com

const char * post_url = "/ aparato / aparatoData"; // OR / api / v2 / thingscloud2 / _table / data_ac

const char * time_server = "baas.thethingscloud.com"; // ito ay upang i-convert ang timestamp

const int httpPort = 80;

const int httpsPort = 443;

const char * server = "api.thingsai.io"; // Server URL

timestamp ng char [10];

WiFiMulti WiFiMulti;

// Gumamit ng klase ng WiFiClient upang lumikha ng mga koneksyon sa TCP

Client ng WiFiClient;

// ///. // ///.

int GiveMeTimestamp ()

{

unsigned long timeout = millis ();

// client ng WiFiClient;

habang (client.available () == 0)

{

kung (millis () - timeout> 50000)

{

client.stop ();

ibalik ang 0;

}

}

habang (client.available ())

{

String line = client.readStringUntil ('\ r'); // indexOf () ay isang funtion upang maghanap para sa smthng, nagbabalik ito ng -1 kung hindi nahanap

int pos = line.indexOf ("\" timestamp / ""); // search for "\" timestamp / "" mula sa simula ng pagtanggap nakuha at kopyahin ang lahat ng data pagkatapos nito, ito ang magiging timestamp mo

kung (pos> = 0)

{

int j = 0;

para sa (j = 0; j <10; j ++)

{

timestamp [j] = linya [pos + 12 + j];

}

}

}

}

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

walang bisa ang pag-setup ()

{

Serial.begin (115200);

antala (10);

pinMode (pin, INPUT);

// Nagsisimula kami sa pamamagitan ng pagkonekta sa isang WiFi network

WiFiMulti.addAP ("wifi_name", "Wifi_password");

Serial.println ();

Serial.println ();

Serial.print ("Maghintay para sa WiFi …");

habang (WiFiMulti.run ()! = WL_CONNected) {

Serial.print (".");

pagkaantala (500);

}

Serial.println ("");

Serial.println ("Konektado sa WiFi");

Serial.println ("IP address:");

Serial.println (WiFi.localIP ());

pagkaantala (500);

}

walang bisa loop ()

{

int analogValue = analogRead (outputpin);

{

// ///. // ///.

{

bool isDetected = digitalRead (pin);

kung (ay Natukoy) {

Serial.println ("Nakita ang presensya");

}

pagkaantala (500);

}

Serial.print ("pagkonekta sa");

Serial.println (host); // tinukoy nang paitaas: - host = devapi2.thethingscloud.com o 139.59.26.117

// ///. // ///.

Serial.println ("sa loob makakuha ng timestamp / n");

kung (! client.connect (time_server, {

bumalik; // * - * - * - * - * - * - * - * - * - *

}

client.println ("GET / api / timestamp HTTP / 1.1"); // Ano ang ginagawa ng bahaging ito, hindi ko nakuha

client.println ("Host: baas.thethingscloud.com");

client.println ("Cache-Control: no-cache");

client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // tatawagan nito ang pagpapaandar na makakakuha ng tugon ng timestamp mula sa server

Serial.println ("natanggap ang timestamp");

Serial.println (timestamp);

Serial.println ("sa loob ng ThingsCloudPost");

String PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";

PostValue = PostValue + ", \" dts / ":" + timestamp;

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

Serial.println (PostValue);

/ * Lumikha ng isang halimbawa ng WiFiClientSecure * /

Client ng WiFiClientSecure;

Serial.println ("Kumonekta sa server sa pamamagitan ng port 443");

kung (! client.connect (server, 443)) {

Serial.println ("Nabigo ang koneksyon!");

} iba pa {

Serial.println ("Nakakonekta sa server!");

/ * lumikha ng kahilingan sa HTTP * /

client.println ("POST / aparato / aparatoData HTTP / 1.1");

client.println ("Host: api.thingsai.io");

//client.println("Connection: close ");

client.println ("Uri ng Nilalaman: application / json");

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

client.println ( Awtorisasyon: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT6X79f9)

client.print ("Haba ng Nilalaman:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue);

// ///. server // ///.

Serial.print ("Naghihintay para sa tugon");

habang (! client.available ()) {

antala (50); //

Serial.print (".");

}

/ * kung ang data ay magagamit pagkatapos ay tumanggap at mag-print sa Terminal * /

habang (client.available ()) {

char c = client.read ();

Serial.write (c);

}

/ * kung naka-disconnect ang server, itigil ang client * /

kung (! client.connected ()) {

Serial.println ();

Serial.println ("Nakakonekta ang server"); javascript:;

client.stop ();

}

}

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

pagkaantala (3000);

}

}

Hakbang 4: OUTPUT

OUTPUT
OUTPUT

Ito ang representasyon ng grap ng bar ng mga halagang binasa mula sa sensor sa bagay, platform ng cloud,

Hakbang 5: Grap

Grap
Grap

Ito ang grapikong representasyon ng mga halaga mula sa sensor. Mula sa nasa itaas na grap maaari naming pag-aralan ang aplikasyon ng sensor. Salamat

Inirerekumendang: