Სარჩევი:
- ნაბიჯი 1: კომპონენტები:
- ნაბიჯი 2: Esp32– ის დიაგრამის ბლოკირება
- ნაბიჯი 3: კოდირება:
- ნაბიჯი 4: გამოსავალი:
- ნაბიჯი 5: გრაფიკები:
- ნაბიჯი 6:
ვიდეო: ტემპერატურის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ამ გაკვეთილში მე ვაპირებ აგიხსნათ გარემოს ტემპერატურის გაზომვის შესახებ ჩამონტაჟებული ტემპერატურის სენსორის გამოყენებით, რომელიც წარმოდგენილია esp32 განვითარების დაფაზე. esp32– ს აქვს მრავალი ჩაშენებული სენსორი, როგორიცაა დარბაზის სენსორი, რომელიც გამოიყენება როგორც სიახლოვის სენსორი, შეხების სენსორი, ტემპერატურის სენსორი. ამ გაკვეთილში ჩვენ ვაპირებთ განვიხილოთ ტემპერატურის სენსორის შესახებ.
ნაბიჯი 1: კომპონენტები:
აპარატურა:
1.esp32 განვითარების დაფა
პროგრამული უზრუნველყოფა:
1. Arduino IDE
2.თინგიო.აი
ნაბიჯი 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* დროის_სერვერი =
"baas.thethingscloud.com"; // ეს არის დროის ნიშნულის გარდაქმნა
const int httpPort = 80;
const int httpsPort = 443;
const char* სერვერი =
"api.thingsai.io"; // სერვერის URL
char დროის ნიშნული [10];
WiFiMulti WiFiMulti;
// გამოიყენეთ WiFiClient კლასი TCP კავშირების შესაქმნელად
WiFiClient კლიენტი;
//////////////////////////////////////// TIMESTAMP
კალკულაციის ფუნქცია ///////////////////////////////////////
int GiveMeTimestamp ()
{
ხელმოუწერელი გრძელი
დროის გასვლა = მილი ();
// WiFiClient კლიენტი;
ხოლო
(client.available () == 0)
{
თუ (მილი () -
დროის გასვლა> 50000)
{
client.stop ();
დაბრუნება 0;
}
}
ხოლო (client.available ())
{
სიმებიანი ხაზი =
client.readStringUntil ('\ r'); // indexOf () არის smthng– ის ძებნის ფუნქცია, ის აბრუნებს -1 თუ არ არის ნაპოვნი
int pos =
line.indexOf ("\" დროის ნიშნული / ""); // მოძებნეთ "\" დროის ნიშნული / "" პასუხის დასაწყისიდან და დააკოპირეთ ყველა მონაცემი ამის შემდეგ, ეს იქნება თქვენი დროის ნიშნული
თუ (pos> =
0)
{
int j = 0;for (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 (outputpin);
{
/////////////////////////////////////// გაუგზავნოთ შეკითხვა და
მიიღეთ პასუხი ///////////////////////
//
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_celsius = (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 ("ქეში-კონტროლი: არა-ქეში");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 ("ქეში-კონტროლი: არა-ქეში");client.println ("ავტორიზაცია: Bearer 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 ( ////////////////////// ბოლო
///////////////////// );
დაგვიანება (3000);
}
}
ნაბიჯი 4: გამოსავალი:
აქ არის ტემპერატურის მნიშვნელობების გამომავალი სენსორიდან.
ნაბიჯი 5: გრაფიკები:
ტემპერატურის სენსორიდან წაკითხული მნიშვნელობების გრაფიკული წარმოდგენა.
გირჩევთ:
ტემპერატურის გაზომვა XinaBox– ისა და თერმისტორის გამოყენებით: 8 ნაბიჯი
ტემპერატურის გაზომვა XinaBox– ისა და თერმისტორის გამოყენებით: გაზომეთ სითხის ტემპერატურა XinaBox– დან ანალოგიური შეყვანის xChip– ის და თერმისტორის ზონდის გამოყენებით
ტემპერატურის გაზომვა AD7416ARZ და ჟოლოს Pi გამოყენებით: 4 ნაბიჯი
ტემპერატურის გაზომვა AD7416ARZ და Raspberry Pi გამოყენებით: AD7416ARZ არის 10 ბიტიანი ტემპერატურის სენსორი, რომელსაც აქვს ოთხი ერთარხიანი ანალოგური ციფრული გადამყვანი და მასში შემავალი ტემპერატურის სენსორი. ნაწილების ტემპერატურის სენსორზე წვდომა შესაძლებელია მულტიპლექსერული არხებით. ეს მაღალი სიზუსტის ტემპერატურა
ტემპერატურის გაზომვა STS21 და არდუინო ნანოს გამოყენებით: 4 ნაბიჯი
ტემპერატურის გაზომვა STS21- ისა და არდუინო ნანოს გამოყენებით: STS21 ციფრული ტემპერატურის სენსორი გთავაზობთ საუკეთესო შესრულებას და სივრცის დაზოგვის ნაკვალევს. ის უზრუნველყოფს დაკალიბრებულ, ხაზოვანი სიგნალებს ციფრულ, I2C ფორმატში. ამ სენსორის დამზადება ემყარება CMOSens ტექნოლოგიას, რომელიც მიაკუთვნებს უპირატესობას
ტემპერატურის გაზომვა ADT75 და არდუინო ნანოს გამოყენებით: 4 ნაბიჯი
ტემპერატურის გაზომვა ADT75 და Arduino Nano გამოყენებით: ADT75 არის უაღრესად ზუსტი, ციფრული ტემპერატურის სენსორი. იგი მოიცავს დიაპაზონის ტემპერატურის სენსორს და 12 ბიტიან ციფრულ ციფრულ გადამყვანს ტემპერატურის მონიტორინგისა და ციფრების გასაუმჯობესებლად. მისი უაღრესად მგრძნობიარე სენსორი მას საკმარისად კომპეტენტურს ხდის ჩემთვის
ნიადაგის ტენიანობის შემცველობის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი
ნიადაგის ტენიანობის შემცველობის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: ამ გაკვეთილში მე ვაპირებ ავხსნა ნიადაგის ტენიანობის წაკითხვის შესახებ esp32– ის გამოყენებით და შემდეგ ღირებულებების გაგზავნა thingsio.ai IoT ღრუბლოვან პლატფორმაზე