Სარჩევი:
- ნაბიჯი 1: კომპონენტები
- ნაბიჯი 2: კავშირები
- ნაბიჯი 3: კოდირება:
- ნაბიჯი 4: გამოსავალი:
- ნაბიჯი 5: გრაფიკა
- ნაბიჯი 6:
ვიდეო: ნიადაგის ტენიანობის შემცველობის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ამ გაკვეთილში მე ვაპირებ აგიხსნათ ნიადაგში ტენიანობის შემცველობის წაკითხვის შესახებ esp32 გამოყენებით და შემდეგ ღირებულებების გაგზავნა thingsio.ai IoT ღრუბლოვან პლატფორმაზე.
ნაბიჯი 1: კომპონენტები
აპარატურის კომპონენტები:
1. esp32 განვითარების დაფა
2. ნიადაგის სენსორი
3. Jumper Wires
პროგრამული უზრუნველყოფა:
1. Arduino IDE
2. თინგიო.აი
ნაბიჯი 2: კავშირები
ნიადაგის ტენიანობის სენსორი ---------------------- esp32 დაფა
VCC ------------------------------------------ 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/_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);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);
}
ბათილი მარყუჟი ()
{
{
/////////////////////////////////////// გაუგზავნოთ შეკითხვა და
მიიღეთ პასუხი ///////////////////////
მნიშვნელობა =
analogRead (სენსორის_პინი);
// მნიშვნელობა =
რუკა (მნიშვნელობა, 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 ("ქეში-კონტროლი: არა-ქეში");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 / ":" +მნიშვნელობა +"}" +"}";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: გრაფიკა
ეს არის მნიშვნელობების გრაფიკული წარმოდგენა, რომლებიც იკითხება სენსორიდან.
ნაბიჯი 6:
აქ არის პროექტის სრული ვიდეო. Გმადლობთ.
გირჩევთ:
ნიადაგის ტენიანობის გაზომვა ჟოლოს პი 4: 4 საფეხური
გაზომეთ ნიადაგის ტენიანობა ჟოლოს პი 4: იცით რამდენად ხშირად მორწყავთ მცენარეებს? ან მცენარეები გადაასხა და დაკარგა. ამის გადასაჭრელად, მე ვიფიქრე, რომ უფრო გარემოება იქნება, თუ ჩვენ შეგვიძლია მივიღოთ წყლის შემცველობა ნიადაგში, რათა მივიღოთ გადაწყვეტილება მცენარეების სათანადო მორწყვის შესახებ
DHT ტემპერატურისა და ტენიანობის მონიტორინგი ESP8266 და AskSensors IoT პლატფორმის გამოყენებით: 8 ნაბიჯი
DHT ტემპერატურისა და ტენიანობის მონიტორინგი ESP8266 და AskSensors IoT პლატფორმის გამოყენებით: წინა სასწავლო ინსტრუქციაში მე წარმოვადგინე ეტაპობრივი სახელმძღვანელო ESP8266 nodeMCU და AskSensors IoT პლატფორმის დასაწყებად. ამ გაკვეთილში მე DHT11 სენსორს ვუკავშირებ კვანძამდე MCU. DHT11 არის ჩვეულებრივ გამოყენებული ტემპერატურა და ტენიანი
IoT დაფუძნებული ნიადაგის ტენიანობის მონიტორინგისა და კონტროლის სისტემა NodeMCU გამოყენებით: 6 ნაბიჯი
IoT დაფუძნებული ნიადაგის ტენიანობის მონიტორინგისა და კონტროლის სისტემა NodeMCU გამოყენებით: ამ გაკვეთილში ჩვენ ვაპირებთ IoT დაფუძნებულ ნიადაგის ტენიანობის მონიტორინგისა და კონტროლის სისტემის დანერგვას ESP8266 WiFi მოდულის გამოყენებით ანუ NodeMCU. ამ პროექტისათვის საჭირო კომპონენტები: ESP8266 WiFi მოდული- Amazon (334/- INR) სარელეო მოდული- ამაზონი (130/- INR
ნიადაგის ტენიანობის გაზომვა არდუინოსთან ერთად: 6 ნაბიჯი
ნიადაგის ტენიანობის გაზომვა არდუინოსთან ერთად: ამ სწრაფ სახელმძღვანელოში მე ვაპირებ გაჩვენოთ როგორ წაიკითხოთ ნიადაგის ტენიანობის სენსორი არდუინოს გამოყენებით და დაბეჭდოთ ნიადაგის ტენიანობის დონე არდუინოს სერიულ მონიტორში. თქვენ შეგიძლიათ ნახოთ ჩემს მიერ დაწერილი ორიგინალური პოსტი სინჰალაში ამ ბმულიდან
ტემპერატურის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი
ტემპერატურის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: ამ სახელმძღვანელოში მე ვაპირებ აგიხსნათ გარემოს ტემპერატურის გაზომვის შესახებ, ჩამონტაჟებული ტემპერატურის სენსორის გამოყენებით, რომელიც წარმოდგენილია esp32 განვითარების დაფაზე. esp32– ს აქვს მრავალი ჩაშენებული სენსორი, როგორიცაა დარბაზის სენსორი, რომელიც გამოიყენება როგორც სიახლოვის სენსორი, შეხება