Mündəricat:

Esp32 və Thingsio.ai Platformasından istifadə edərək Torpaq Nəmliyinin Ölçülməsi: 6 Addım
Esp32 və Thingsio.ai Platformasından istifadə edərək Torpaq Nəmliyinin Ölçülməsi: 6 Addım

Video: Esp32 və Thingsio.ai Platformasından istifadə edərək Torpaq Nəmliyinin Ölçülməsi: 6 Addım

Video: Esp32 və Thingsio.ai Platformasından istifadə edərək Torpaq Nəmliyinin Ölçülməsi: 6 Addım
Video: Уроки Home Assistant - Управление через Telegram, текстовые диалоги, права пользователей 2024, Noyabr
Anonim
Esp32 və Thingsio.ai Platformasından istifadə edərək Torpaq Nəmliyinin Təzyiqi
Esp32 və Thingsio.ai Platformasından istifadə edərək Torpaq Nəmliyinin Təzyiqi

Bu dərslikdə esp32 istifadə edərək torpaqdakı nəm miqdarının oxunmasını və sonra dəyərlərin thingsio.ai IoT bulud platformasına göndərilməsini izah edəcəyəm.

Addım 1: BİLEŞENLER

Tərkibləri
Tərkibləri
Tərkibləri
Tərkibləri

Avadanlıq Komponentləri:

1. esp32 inkişaf lövhəsi

2. Torpaq sensoru

3. Jumper telləri

Proqram təminatı:

1. Arduino IDE

2. Thingsio.ai

Addım 2: BAĞLANTILAR

BAĞLANTILAR
BAĞLANTILAR

Torpaq Nəm Sensoru ---------------------- esp32 lövhəsi

VCC -------------------------------------- 3V3

GND -------------------------------------- GND

A0 -------------------------------------- VP

Addım 3: KODLAMA:

#daxil edin

#daxil edin

#daxil edin

int sayı = 0, i, m, j, k;

int t;

int sensor_pin = A0;

int dəyəri;

///////////////////////////////////////// BÜTÜN Bəyannamələr

CLOUD üçün ///////////////////////////////

const char* host = "api.thingsai.io"; // OR ana =

devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // OR

/api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; // bu zaman damgasını çevirməkdir

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

"api.thingsai.io"; // Server URL

simvol işarəsi [10];

WiFiMulti WiFiMulti;

// TCP əlaqələri yaratmaq üçün WiFiClient sinifindən istifadə edin

WiFi müştəri;

////////////////////////////////////////// TIMESTAMP

HESAB VERMƏ funksiyası //////////////////////////////////////////////////////////////////////////

int GiveMeTimestamp ()

{

imzasız uzun

zaman aşımı = millis ();

// WiFiClient müştəri;

isə

(müştəri.available () == 0)

{

əgər (millis () -

vaxt aşımı> 50000)

{

client.stop ();

qaytarma 0;

}

}

while (client.available ())

{

String xətti =

client.readStringUntil ('\ r'); // indexOf () smthng axtaran bir funksiyadır, tapılmazsa -1 qaytarır

int pos =

line.indexOf ("\" zaman damgası / ""); // "\" zaman damgası / "" nı axtarın və sonra bütün məlumatları kopyalayın, bu sizin zaman damganız olacaq

əgər (pos> =

0)

{

int j = 0;üçün (j = 0; j <10; j ++)

{vaxt damgası [j] = sətir [pos + 12 + j];

}

}

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////

boş quraşdırma ()

{Serial.begin (115200);Serial.println ("Sensordan Oxunur …");

gecikmə (2000);

// Başlayırıq

WiFi şəbəkəsinə qoşulma

WiFiMulti.addAP ("Wifi_adı", "Wifi_Password");

Serial.println ();

Serial.println ();Serial.print ("WiFi gözləyin …");isə (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

gecikmə (500);

}Serial.println ("");Serial.println ("WiFi bağlıdır");

Serial.println ( IP

ünvan: );Serial.println (WiFi.localIP ());

gecikmə (500);

}

boşluq döngəsi ()

{

{

////////////////////////////////////////////////////////// SORĞU GÖNDƏRİN VƏ

CAVAB ALIN ///////////////////////

dəyər =

analogRead (sensor_pin);

// dəyər =

xəritə (dəyər, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (dəyər);Serial.println ("%");gecikmə (1000);Serial.print ("qoşulur");Serial.println (ev sahibi); // tərs olaraq təyin olunur:- host = devapi2.thethingscloud.com və ya 139.59.26.117

////////////////////////////////////////////////////////////////// TIMESTAMP KODU SNIPPET

/////////////////////////

Serial.println ("daxilində zaman damgası alın / n");

əgər

(! client.connect (time_server, {

qayıtmaq;

//*-*-*-*-*-*-*-*-*-*

}client.println ("GET/api/zaman damgası HTTP/1.1"); // Bu hissə nə edir, başa düşmədimclient.println ("Host: baas.thethingscloud.com");client.println ("Önbelleğe Nəzarət: önbelleği yoxdur");client.println ("Poçtalyon-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

müştəri.println ();

GiveMeTimestamp ();

// serverdən zaman damgası cavabını alacaq funksiyanı çağıracaq

Serial.println ("vaxt damgası alındı");

Serial.println (vaxt damgası);Serial.println ("ThingsCloudPost daxilində");

String PostValue =

"{" device_id / ": 61121695918, \" slave_id / ": 2";

PostValue =

PostValue + ", \" dts / ":" + zaman damgası;

PostValue =

PostValue +", \" data / ": {" MOIST / ":" +dəyər +"}" +"}";Serial.println (PostValue);

/ * WiFiClientSecure nümunəsi yaradın */

WiFiClientSecure müştəri;Serial.println ("Serverə 443 portu ilə qoşulun");

əgər

(! client.connect (server, 443)) {Serial.println ("Bağlantı uğursuz oldu!");

} başqa {Serial.println ("Serverə qoşuldu!");

/* HTTP yaradın

tələb */client.println ("POST/cihazlar/cihazData HTTP/1.1");client.println ("Host: api.thingsai.io");//client.println("Bağlantı: yaxın ");client.println ("Məzmun Növü: application/json");

client.println ( önbelleğe nəzarət:

önbellek yoxdur ");client.println ("Yetkilendirme: daşıyıcı eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT"client.print ("Məzmun-Uzunluq:");

müştəri.println (PostValue.length ());müştəri.println ();client.println (PostValue);

////////////////////////////////////////////////// Məlumatların yerləşdirilməsi

bulud tamamlandı və indi bulud serverinin cavab formasını əldə edin /////////////////

Serial.print ( Cavab gözləyirik

);

isə

(! müştəri.available ()) {

gecikmə (50);

//Serial.print (".");

}

/* məlumatlar varsa

mövcuddur, sonra alın və Terminalda çap edin */

isə

(müştəri.available ()) {

char c = client.read ();Serial.write (c);

}

/* əgər

server kəsildi, müştərini dayandırın */

əgər

(! client.connected ()) {Serial.println ();Serial.println ("Server bağlantısı kəsildi");

client.stop ();

}

}

Serial.println ( ////////////////////// SON

///////////////////// );

gecikmə (3000);

}

}

Addım 4: Çıxış:

Çıxış
Çıxış

Kodun Çıxışı göstərilir.

Addım 5: GRAPH

QRAF
QRAF

Bu sensordan oxunan dəyərlərin qrafik təsviridir.

Addım 6:

Layihənin tam videosunu təqdim edirik. Çox sağ ol.

Tövsiyə: