Բովանդակություն:
Video: Հողի խոնավության պարունակության չափում ՝ օգտագործելով Esp32 և Thingsio.ai հարթակ ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս ձեռնարկում ես պատրաստվում եմ բացատրել հողում խոնավության պարունակությունը կարդալու մասին ՝ օգտագործելով esp32, այնուհետև արժեքներն ուղարկելով thingsio.ai IoT ամպային հարթակ:
Քայլ 1. Բաղադրիչներ
Սարքավորման բաղադրիչներ.
1. esp32 զարգացման տախտակ
2. Հողի ցուցիչ
3. Թռիչքային լարեր
Softwareրագրային ապահովում:
1. Arduino IDE
2. Thingsio.ai
Քայլ 2: ԿԱՊԵՐ
Հողի խոնավության ցուցիչ ---------------------- esp32 տախտակ
ԵԿՀ ------------------------------------------ 3V3
GND -------------------------------------- GND
A0 ------------------------------------------ VP
Քայլ 3: ԿՈԴ:
#ներառում
#ներառում
#ներառում
int հաշվարկ = 0, i, m, j, k;
int t;
int sensor_pin = A0;
int արժեք;
//////////////////////////////////////// ԲՈԼՈՐ ՀԱՅՏԱՐԱՐՈԹՅՈՆՆԵՐ
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);Serial.println («Կարդում ենք սենսորից …»);
ուշացում (2000);
// Մենք սկսում ենք
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);
}
դատարկ շրջան ()
{
{
///////////////////////////////////////// ՈENDԱՐԿԵԼ ՀԱՐUԸ ԵՎ
ԸՆԴՈՆԵԼ ՊԱՏԱՍԽԱՆԸ ///////////////////////
արժեք =
analogRead (sensor_pin);
// արժեք =
քարտեզ (արժեք, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (արժեքը);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 / ": 61121695918, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + ժամադրոշմ;
PostValue =
PostValue +", \" data / ": {" MOIST / ":" +value +"}" +"}";Serial.println (PostValue);
/ * ստեղծել WiFiClientSecure օրինակ */
WiFiClientSecure հաճախորդ;Serial.println («Միացեք սերվերին 443 պորտի միջոցով»);
եթե
(! client.connect (սերվեր, 443)) {Serial.println («Կապը ձախողվեց»);
} ուրիշ {Serial.println ("Միացված է սերվերին");
/* ստեղծել
խնդրանք */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Հաղորդավար` api.thingsai.io ");//client.println("Կապ. փակիր ");client.println («Բովանդակության տեսակը ՝ ծրագիր/json»);
client.println ( cache-control:
ոչ-քեշ »);client.println ("թույլտվության կրողը eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AG7ajfVlY");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: Ելք
Կոդի ելքը ցուցադրվում է:
Քայլ 5: ԳՐԱՖ
Սա այն արժեքների գրաֆիկական ներկայացումն է, որոնք կարդացվում են սենսորից:
Քայլ 6:
Ահա նախագծի ամբողջական տեսանյութը: Շնորհակալություն.
Խորհուրդ ենք տալիս:
Հողի խոնավության չափում ազնվամորու Պի 4: 4 քայլերով
Ազնվամորու Պի 4 հողի խոնավության չափում. Գիտե՞ք, թե որքան հաճախ է ջրել բույսերը: Կամ բույսերը դուրս են թափել և կորցրել դրանք: Սա լուծելու համար ես մտածեցի, որ ավելի հանգամանալի կլիներ, եթե մենք կարողանայինք ստանալ հողի ներսում ջրի պարունակության արժեքը, որպեսզի որոշում կայացնեինք բույսերը պատշաճ կերպով ջրելը
Խոնավության չափում `օգտագործելով HYT939 և մասնիկի ֆոտոն` 4 քայլ
Խոնավության չափում HYT939- ի և մասնիկի ֆոտոնի միջոցով. HYT939- ը թվային խոնավության տվիչ է, որն աշխատում է I2C հաղորդակցության արձանագրության վրա: Խոնավությունը առանցքային պարամետր է, երբ խոսքը վերաբերում է բժշկական համակարգերին և լաբորատորիաներին, ուստի այս նպատակներին հասնելու համար մենք փորձեցինք HYT939- ը կապել ազնվամորու pi- ի հետ: Ես
IoT- ի վրա հիմնված հողի խոնավության մոնիտորինգի և վերահսկման համակարգ `օգտագործելով NodeMCU: 6 քայլ
IoT- ի վրա հիմնված հողի խոնավության մոնիտորինգի և վերահսկման համակարգ `օգտագործելով NodeMCU. Այս ձեռնարկում մենք մտադիր ենք ներդնել IoT- ի վրա հիմնված հողի խոնավության մոնիտորինգի և վերահսկման համակարգ` օգտագործելով ESP8266 WiFi մոդուլը, այսինքն `NodeMCU: Այս նախագծի համար պահանջվող բաղադրիչները. ESP8266 WiFi մոդուլ- Amazon (334/-- INR) Ռելեի մոդուլ- Amazon (130/- INR
Arduino- ով հողի խոնավության չափում. 6 քայլ
Arduino- ով հողի խոնավության չափում. Այս արագ ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես կարդալ հողի խոնավության սենսոր arduino- ով և տպել հողի խոնավության մակարդակը Arduino սերիալային մոնիտորում: Իմ կողմից գրված օրիգինալ գրառումը կարող եք գտնել սինհալերենում ՝ այս հղումով
P3երմաստիճանի չափում ՝ օգտագործելով Esp32 և Thingsio.ai հարթակ ՝ 6 քայլ
P3երմաստիճանի չափում ՝ օգտագործելով Esp32 և Thingsio.ai հարթակ. Այս ձեռնարկում ես պատրաստվում եմ բացատրել շրջակայքում ջերմաստիճանը չափելու մասին ՝ օգտագործելով esp32 մշակման տախտակում առկա ներկառուցված ջերմաստիճանի տվիչ: esp32- ն ունի բազմաթիվ ներկառուցված տվիչներ, ինչպես սրահի սենսորը, որն օգտագործվում է որպես հարևանության տվիչ, հպում