Բովանդակություն:
- Քայլ 1: Բաղադրիչներ
- Քայլ 2: ԿԱՊԵՐ
- Քայլ 3: ԿՈԴ
- Քայլ 4: Ելք
- Քայլ 5: Գրաֆիկ
- Քայլ 6. Ահա Բրայֆի բացատրության տեսանյութը
Video: Շարժման դետեկտոր ՝ օգտագործելով Thingsai.io Iot Cloud պլատֆորմը ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս ձեռնարկում ես պատրաստվում եմ բացատրել շարժման հայտնաբերման մասին ՝ օգտագործելով PIR տվիչ և Esp32 ՝ IOT ամպային հարթակի և Thingai.io հարթակի միջոցով:
Քայլ 1: Բաղադրիչներ
HARDWARE բաղադրիչներ;
1.esp32 զարգացման խորհուրդ
2. PIR ցուցիչ
3. Jumper լարերը
SOՐԱԳԻՐ:
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 քորոց = 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 timestamp [10];
WiFiMulti WiFiMulti;
// Օգտագործեք WiFiClient դասը ՝ TCP կապեր ստեղծելու համար
WiFiClient հաճախորդ;
//////////////////////////////////////// TIMESTAMP ՀԱՇՎԱՐԿ գործառույթ ///////// /////////////////////////////////
int GiveMeTimestamp ()
{
անստորագիր երկարաժամկետ = millis ();
// WiFiClient հաճախորդ;
while (client.available () == 0)
{
if (millis () - timeout> 50000)
{
client.stop ();
վերադարձ 0;
}
}
while (client.available ())
{
Լարային գիծ = client.readStringUntil ('\ r'); // indexOf () -ը smthng որոնելու գործառույթ է, այն չգտնվելու դեպքում վերադարձնում է -1
int pos = line.indexOf ("\" ժամանակային նշան / ""); // որոնման համար "\" timestamp / "" պատասխանների սկզբից ստացել և պատճենել բոլոր տվյալները դրանից հետո, դա կլինի քո ժամադրոշմը
եթե (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 (ելքային փին);
{
///////////////////////////////////////////////////////////////////////////////// ուղարկեք հարցումը և ստացեք պատասխանը //// ////////////////////
{
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 ("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 պորտի միջոցով»);
եթե (! 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.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: Ելք
Սա սենսորից կարված արժեքների գծապատկերային ներկայացում է ՝ thingsi, io ամպային հարթակում,
Քայլ 5: Գրաֆիկ
Սա սենսորից ստացված արժեքների գրաֆիկական ներկայացումն է: Վերոնշյալ գրաֆիկից մենք կարող ենք վերլուծել սենսորի կիրառումը: Շնորհակալություն
Խորհուրդ ենք տալիս:
Անձրևի դետեկտոր ՝ օգտագործելով Arduino և անձրևի տվիչ ՝ 8 քայլ
Անձրևի դետեկտոր ՝ օգտագործելով Arduino և Raindrop Sensor: Այս ձեռնարկում մենք կսովորենք, թե ինչպես կարելի է անձրևը հայտնաբերել անձրևի սենսորի միջոցով և ձայն արձակել ՝ օգտագործելով ազդանշանային մոդուլը և OLED էկրանը և Visuino- ն: Դիտեք տեսանյութը
Շարժման դետեկտոր ՝ օգտագործելով NodeMCU ՝ 5 քայլ
Շարժման դետեկտոր ՝ օգտագործելով NodeMCU. Այս նախագծում, պարզապես շարժման տվիչ օգտագործելով, կարող եք հայտնաբերել որևէ մարդու կամ կենդանու առկայությունը: Իսկ thingsio կոչվող հարթակով կարող եք վերահսկել ներկայությունը հայտնաբերելու ամսաթիվը և ժամը
Փոքր հեռավորության շարժման դետեկտոր ՝ 5 քայլ
Փոքր միջակայքի շարժման դետեկտոր. Այս հրահանգը կսովորեցնի ձեզ, թե ինչպես պատրաստել փոքր հեռավորության շարժման դետեկտոր էժան մասերից, որոնք կարող եք ձեռք բերել Radioshack- ում: Այս կոկիկ նախագծով դուք կարող եք փոխել դետեկտորի պայծառությունը: Սա իմ առաջին հրահանգն է, ուստի խնդրում եմ նկատի ունենալ պարզությունը
Շարժման վերահսկվող վարդակից - շարժման զգայուն լույսից `6 քայլ
Շարժման վերահսկվող վարդակից - Շարժման զգայուն լույսից. Պատկերացրեք, որ դուք հնարամիտ եք, ով գնում է բլոկի ամենասարսափելի տունը: Բոլոր գայլերի, ուրվականների և գերեզմանների կողքով անցնելուց հետո դուք վերջապես հասնում եք վերջին ճանապարհին: Դուք կարող եք տեսնել կոնֆետը ձեր առջևի ամանի մեջ: Բայց հետո հանկարծ մի ղո
Շարժման դետեկտոր Blynk- ի ծանուցումներով (WeMos D1 Mini + HC-SR04). 4 քայլ (նկարներով)
Շարժման դետեկտոր Blynk- ի ծանուցումներով (WeMos D1 Mini + HC-SR04). Խնդրում ենք քվեարկել այս նախագծի համար անլար մրցույթում: Շնորհակալություն: Թարմացրեք թիվ 2 - Մի քանի փոփոխություն (տարբերակ 2.2), կարող եք սահմանել ձեր ցուցիչը (տիրույթը և անունը) հենց սահմանման մեջ: Բացի այդ, երբեմն պատահում էր, որ սենսորը սխալ արժեքներ էր կարդում և ծանուցում ուղարկում