Բովանդակություն:
- Քայլ 1: Բաղադրիչներ
- Քայլ 2. Արգելափակել Esp32- ի դիագրամների ներկայացումը
- Քայլ 3: ԿՈԴ:
- Քայլ 4: Ելք
- Քայլ 5: ԳՐԱՖՍ
- Քայլ 6:
Video: P3երմաստիճանի չափում ՝ օգտագործելով Esp32 և Thingsio.ai հարթակ ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս ձեռնարկում ես պատրաստվում եմ բացատրել շրջակա միջավայրի ջերմաստիճանը չափելու մասին `օգտագործելով ներկառուցված ջերմաստիճանի տվիչը, որը առկա է esp32 մշակման տախտակում: esp32- ն ունի բազմաթիվ ներկառուցված սենսորներ, ինչպես դահլիճի սենսորը, որն օգտագործվում է որպես հարևանության սենսոր, հպման ցուցիչ, ջերմաստիճանի տվիչ: Այս ձեռնարկում մենք կքննարկենք ջերմաստիճանի տվիչի մասին:
Քայլ 1: Բաղադրիչներ
Սարքավորումներ:
1.esp32 զարգացման տախտակ
Softwareրագրային ապահովում:
1. Arduino IDE
2. Thingsio.ai
Քայլ 2. Արգելափակել Esp32- ի դիագրամների ներկայացումը
Քայլ 3: ԿՈԴ:
#ներառում
#ներառում
#ներառում
#ներառում
#ներառում
#ifdef _plusplus
արտաքին «C» {
#էնդիֆ
uint8_t temprature_sens_read ();
// uint8_t g_phyFuns;
#ifdef _plusplus
}
#էնդիֆ
int հաշվարկ = 0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0; // ds18b20
//////////////////////////////////////// ԲՈԼՈՐ ՀԱՅՏԱՐԱՐՈԹՅՈՆՆԵՐ
CLOUD ///////////////////////////////
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 ()
{
անստորագիր երկար
ժամանակային ընդմիջում = միլիլ ();
// 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);
tzset ();
// Մենք սկսում ենք
WiFi ցանցին միանալըWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");
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);
}
uint8_t temp_farenheit;
float temp_celsius;
char strftime_buf [64];
ժամանակ_ հիմա = 0;
struct tm timeinfo;
char buf [256];
դատարկ շրջան ()
{
// int analogValue =
analogRead (ելքային փին);
{
///////////////////////////////////////// ՈENDԱՐԿԵԼ ՀԱՐUԸ ԵՎ
ԸՆԴՈՆԵԼ ՊԱՏԱՍԽԱՆԸ ///////////////////////
//
t1 = (analogValue/1024.0) *5000;
//
Serial.print ("temp:");
// Serial.println (t1);
/
/ t2 = (t1/ 10);
//
Serial.print ("celc:");
//
Serial.println (t2);
/
/ t3 = ((t2 *
9)/5 + 32);
//
Serial.print ("fhrn:");
//
Serial.println (t3); //ընդմիջում;localtime_r (& այժմ, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "սկան սկիզբ%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Սերիա. Տպագիր
(բուֆ);
temp_farenheit =
temprature_sens_read ();
ջերմաստիճան_ցելսիուս = (temp_farenheit - 32) / 1.8;Serial.print («Temp onBoard»);Serial.print (temp_farenheit);Serial.print ("° F");Serial.print (temp_celsius);Serial.println ("° C");
ուշացում (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 / ": 61121695920, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + ժամադրոշմ;
PostValue =
PostValue +", \" data / ": {" TEMP / ":" +temp_farenheit +"}" +"}";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: 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 (".");
}
/* եթե տվյալները կան
հասանելի է, ապա ստանալ և տպել տերմինալում */
մինչդեռ
(client.available ()) {
char c =
client.read ();Սերիա. Գրել (գ);
}
/* եթե
սերվերն անջատված է, դադարեցրեք հաճախորդին */
եթե
(! client.connected ()) {Serial.println ();Serial.println ("Սերվերն անջատված է");
client.stop ();
}
}
Serial.println ( ////////////////////// ՎԵՐ END
///////////////////// );
ուշացում (3000);
}
}
Քայլ 4: Ելք
Ահա սենսորից կարդացած ջերմաստիճանի արժեքների ելքը:
Քայլ 5: ԳՐԱՖՍ
Ինքնաթիռի ջերմաստիճանի տվիչից կարդացված արժեքների գրաֆիկական ներկայացում:
Խորհուրդ ենք տալիս:
Լույսի ինտենսիվության չափում `օգտագործելով BH1715 և ազնվամորի Pi: 5 քայլ
Լույսի ինտենսիվության չափում ՝ օգտագործելով BH1715 և Raspberry Pi. Երեկ մենք աշխատում էինք LCD էկրաններով, և դրանց վրա աշխատելիս մենք հասկացանք լույսի ինտենսիվության հաշվարկի կարևորությունը: Լույսի ինտենսիվությունը ոչ միայն կարևոր է այս աշխարհի ֆիզիկական տիրույթում, այլև իր լավ ասված դերն ունի կենսաբանության մեջ
Մագնիսական դաշտի չափում `օգտագործելով HMC5883 և ազնվամորի Pi: 4 քայլ
HMC5883- ի և Raspberry Pi- ի միջոցով մագնիսական դաշտի չափում. HMC5883- ը թվային կողմնացույց է, որը նախատեսված է ցածր դաշտի մագնիսական զգայարանների համար: Այս սարքն ունի մագնիսական դաշտի լայն շրջանակ ՝ +/- 8 Օէ և ելքային արագություն ՝ 160 Հց: HMC5883 սենսորը ներառում է ժապավենների ավտոմատ հանող շարժիչներ, օֆսեթ չեղարկում և
Երկաթուղային ավտոմատ հատման համակարգ ՝ օգտագործելով Arduino- ի վրա հիմնված ներկառուցված հարթակ. 9 քայլ
Երկաթուղու հատման ավտոմատ համակարգ ՝ օգտագործելով Arduino- ի վրա հիմնված ներկառուցված հարթակ. Սուրբ Christmasննդին մնաց ընդամենը մեկ շաբաթ: Բոլորը զբաղված են տոնակատարություններով և նվերներով, որոնք, ի դեպ, ավելի դժվար է դառնում մեր շուրջը գտնվող անվերջ հնարավորություններով: Ի՞նչ կասեք դասական նվերի մասին և ավելացրեք DIY հպում
Սեղանի սեղանի Pinball մեքենա ՝ օգտագործելով Evive- Arduino- ի վրա հիմնված ներկառուցված հարթակ ՝ 18 քայլ (նկարներով)
Սեղանի Pinball մեքենա ՝ օգտագործելով Evive- Arduino- ի վրա հիմնված ներկառուցված պլատֆորմ. Եվս մեկ հանգստյան օր, ևս մեկ հետաքրքիր խաղ: Եվ այս անգամ, դա ոչ այլ ոք է, քան բոլորի սիրած արկադային խաղը `Pinball! Այս նախագիծը ցույց կտա ձեզ, թե ինչպես կարելի է ձեր սեփական Pinball մեքենան հեշտությամբ պատրաստել տանը: Այն, ինչ ձեզ հարկավոր կլինի, բաղադրիչներն են ՝ արկածախնդրությունից
Հողի խոնավության պարունակության չափում ՝ օգտագործելով Esp32 և Thingsio.ai հարթակ ՝ 6 քայլ
Հողի խոնավության պարունակության չափում ՝ օգտագործելով Esp32 և Thingsio.ai հարթակ. Այս ձեռնարկում ես պատրաստվում եմ բացատրել հողում խոնավության պարունակության ընթերցման մասին ՝ օգտագործելով esp32 և այնուհետև արժեքները ուղարկելով thingsio.ai IoT ամպային հարթակ: