Բովանդակություն:
Video: Մոտիկության չափում `5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս ձեռնարկում ես պատրաստվում եմ բացատրել սարքի հարևանությունը չափելու և արժեքները Thingsai, io ամպային հարթակում հրապարակելու մասին ՝ օգտագործելով դահլիճի տվիչ և esp32 զարգացման տախտակ:
Հոլի էֆեկտի սենսորը սարք է, որն օգտագործվում է մագնիսական դաշտի մեծությունը չափելու համար: Դրա ելքային լարումը ուղիղ համեմատական է դրա միջով մագնիսական դաշտի ուժին: Հոլի էֆեկտների սենսորներն օգտագործվում են հարևանության, տեղորոշման, արագության հայտնաբերման և ընթացիկ զգայարանների համար:
Քայլ 1. Բաղադրիչներ
Սարքավորման բաղադրիչներ.
1. Hall սենսոր
2. esp32 զարգացման տախտակ
3. Թռիչքային լարեր
Softwareրագրային ապահովման բաղադրիչներ.
1. Arduino IDE
2. ThingsIO. AI
Քայլ 2: ՄԻԱՈՄՆԵՐ
Hall ցուցիչ ---------------------- esp32
Aout ------------------------------ vp
Գնդ -------------------------------- Գնդ
Vcc ------------------------------ 3V3
Քայլ 3: ԿՈԴ:
#ներառում
#ներառում
#ներառում
int հաշվարկ = 0, i, m, j, k;
int չափում;
int outputpin = A0; // ds18b20
//////////////////////////////////////// ԲՈԼՈՐ ՀԱՅՏԱՐԱՐՈԹՅՈՆՆԵՐ
CLOUD ///////////////////////////////
const char* host = "api.thingsai.io"; // ԿԱՄ հյուրընկալող =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // ԿԱՄ
/api/v2/thingscloud2/_ սեղան/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 ()
{
անստորագիր երկար
ժամանակային ընդմիջում = միլիլ ();
// WiFiClient հաճախորդ;
մինչդեռ
(client.available () == 0)
{
եթե (միլիլ () -
ընդմիջում> 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);
// Մենք սկսում ենք
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 (ելքային փին);
{
///////////////////////////////////////// ՈENDԱՐԿԵԼ ՀԱՐUԸ ԵՎ
ԸՆԴՈՆԵԼ ՊԱՏԱՍԽԱՆԸ ///////////////////////
int չափում
= 0;
չափում =
hallRead ();Serial.print ("Hall սենսորային չափում.");Serial.println (չափում);
ուշացում (1000);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- ի ներսում");
Լարային PostValue =
"{" device_id / ": 61121696007, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + ժամադրոշմ;
PostValue =
PostValue +", \" data / ": {" proximity / ":" +չափում +"}" +"}";Serial.println (PostValue);
/ * ստեղծել WiFiClientSecure օրինակ */
WiFiClientSecure հաճախորդ;Serial.println («Միացեք սերվերին 443 պորտի միջոցով»);
եթե
(! client.connect (սերվեր, 443)) {Serial.println («Կապը ձախողվեց»);
} ուրիշ {Serial.println ("Միացված է սերվերին");
/* ստեղծել
խնդրանք */
client.println («ՓՈՍՏ
/devices/deviceData HTTP/1.1 ");client.println ("Հաղորդավար` api.thingsai.io ");//client.println("Կապ. փակիր ");client.println («Բովանդակության տեսակը ՝ ծրագիր/json»);client.println ("cache-control: no-cache");
client.println ( Թույլտվություն.
Կրող eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9dKy6 »client.print ("Բովանդակություն-երկարություն.");client.println (PostValue.length ());
client.println ();client.println (PostValue);
//////////////////////////////////// ՏԵԵԿՈԹՅՈՆԸ տվյալները
ամպը պատրաստ է և այժմ ստացեք պատասխանի ձևը ամպային սերվեր ///////////////////
Serial.print («Սպասում եմ պատասխանին
);
մինչդեռ
(! client.available ()) {
ուշացում (50);
//Serial.print (".");
}
/* եթե տվյալները կան
հասանելի է, ապա ստանալ և տպել տերմինալում */
մինչդեռ
(client.available ()) {
char c =
client.read ();Սերիա. Գրել (գ);
}
/ * եթե սերվերն անջատված է, դադարեցրեք հաճախորդին */
եթե
(! client.connected ()) {Serial.println ();Serial.println ("Սերվերն անջատված է");client.stop ();
}
}
Serial.println ( ////////////////////// ՎԵՐ END
///////////////////// );
ուշացում (3000);
}}
Քայլ 4: ԱՐԴՅՈՆՔ
Սենսորից կարդացած արժեքները հաջողությամբ ուղարկվում են IOT ամպ և գրաֆիկը ստեղծվում է որպես մոտիկություն ժամանակի նկատմամբ: Սրանով սենսորի աշխատանքը վերլուծվում և օգտագործվում է ըստ կիրառման պահանջվող ոլորտների:
Քայլ 5: Ամբողջական ձեռնարկ
Սա սարքի հարևանությունը չափելու ամբողջական նախագիծ է ՝ օգտագործելով սրահի ցուցիչ esp32 և thingsai.io ամպային հարթակը: Շնորհակալություն
Խորհուրդ ենք տալիս:
Շարժիչի արագության չափում Arduino- ի միջոցով. 6 քայլ
Շարժիչի արագության չափում Arduino- ի միջոցով. Դժվա՞ր է չափել շարժիչի rpm- ը: Ահա մեկ պարզ լուծում. Միայն IR սենսորը և ձեր հանդերձանքի Arduino- ն կարող են դա անել: Այս գրառման մեջ ես կտամ մի պարզ ձեռնարկ, որը բացատրում է, թե ինչպես չափել ցանկացած շարժիչի RPM- ն ՝ օգտագործելով IR սենսոր և A
Timeամանակի չափում (ժապավենի չափման ժամացույց) `5 քայլ (նկարներով)
Meամանակի չափում (ժապավենի չափման ժամացույց). Այս նախագծի համար մենք (Ալեքս Ֆիլ և Աննա Լինթոն) վերցրեցինք ամենօրյա չափիչ գործիք և այն վերածեցինք ժամացույցի: Սկզբնական պլանը եղած ժապավենի շարժիչի մոտորիզացումն էր: Դա պատրաստելով ՝ մենք որոշեցինք, որ ավելի հեշտ կլինի ստեղծել մեր սեփական կեղևը, որի հետ միասին
Inaերմաստիճանի չափում XinaBox- ի և ջերմաչափի միջոցով. 8 քայլ
Inaերմաստիճանի չափում XinaBox- ի և թերմիստորի միջոցով. Չափել հեղուկի ջերմաստիճանը `օգտագործելով XinaBox- ի անալոգային մուտքի xChip և ջերմիստորային զոնդ
ADXL345- ի և մասնիկի ֆոտոնի միջոցով արագացման չափում. 4 քայլ
ADXL345- ի և մասնիկի ֆոտոնի միջոցով արագացման չափում. ADXL345- ը փոքր, բարակ, ծայրահեղ ցածր հզորության, 3 առանցքի արագացուցիչ է `բարձր լուծաչափով (13 բիթ) չափմամբ մինչև ± 16 գ: Թվային ելքային տվյալները ձևաչափվում են որպես 16-բիթ երկակի լրացում և հասանելի են I2 C թվային ինտերֆեյսի միջոցով: Չափում է
Մոտիկության լամպ Arduino- ի միջոցով. 7 քայլ
Proximity Lamp- ը Arduino- ի միջոցով. Այս նախագծում ես ձեզ ցույց կտամ, թե ինչպես կարող եք ստեղծել հարևանության սենսոր ՝ օգտագործելով ալյումինե փայլաթիթեղ և բարձր արժեքի դիմադրություն (դիմադրություն 10 MΩ- ից 40 MΩ): Այն աշխատում է Arduino capacitive sensing Library- ի հիման վրա: Ամեն անգամ, երբ ձեռքդ բերես (ցանկացած դրդապատճառ