Мазмуну:

Esp32 жана Thingsio.ai платформасын колдонуу менен топурактын нымдуулугун өлчөө: 6 кадам
Esp32 жана Thingsio.ai платформасын колдонуу менен топурактын нымдуулугун өлчөө: 6 кадам

Video: Esp32 жана Thingsio.ai платформасын колдонуу менен топурактын нымдуулугун өлчөө: 6 кадам

Video: Esp32 жана Thingsio.ai платформасын колдонуу менен топурактын нымдуулугун өлчөө: 6 кадам
Video: Marlin Firmware - VScode - Marlin Example File Guide 2024, Ноябрь
Anonim
Esp32 жана Thingsio.ai платформасын колдонуу менен топурактын нымдуулугун өлчөө
Esp32 жана Thingsio.ai платформасын колдонуу менен топурактын нымдуулугун өлчөө

Бул үйрөткүчтө мен esp32ди колдонуу менен топурактагы нымдуулукту окуп, анан баалуулуктарды thingsio.ai IoT булут платформасына жөнөтүүнү түшүндүрөм.

1 -кадам: КОМПОНЕНТТЕР

КОМПОНЕНТТЕР
КОМПОНЕНТТЕР
КОМПОНЕНТТЕР
КОМПОНЕНТТЕР

Аппараттык компоненттер:

1. esp32 иштеп чыгуу тактасы

2. Топурак сенсору

3. Jumper Wires

Программалык камсыздоо:

1. Arduino IDE

2. Thingsio.ai

2 -кадам: БАЙЛАНЫШТАР

БАЙЛАНЫШТАР
БАЙЛАНЫШТАР

Топурактын ным сенсору ---------------------- esp32 Board

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

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

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

3 -кадам: КОД:

#кошуу

#кошуу

#кошуу

int count = 0, i, m, j, k;

int t;

int sensor_pin = A0;

int value;

///////////////////////////////////////// БАРДЫК ДЕКЛАРАЦИЯЛАР

CLOUD үчүн ///////////////////////////////

const char* host = "api.thingsai.io"; // ЖЕ хост =

devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // ЖЕ

/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"; // Server URL

char убакыт белгиси [10];

WiFiMulti WiFiMulti;

// TCP байланыштарын түзүү үчүн WiFiClient классын колдонуңуз

WiFiClient кардары;

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

Эсептөө функциясы /////////////////////////////////////////////////////////////////////////////////////////////

int GiveMeTimestamp ()

{

кол коюлбаган узун

күтүү убактысы = millis ();

// WiFiClient кардары;

ал эми

(client.available () == 0)

{

эгер (миллис () -

күтүү убакыты> 50000)

{

client.stop ();

return 0;

}

}

while (client.available ())

{

Сап сабы =

client.readStringUntil ('\ r'); // indexOf () -бул smthng издөө функциясы, ал табылбаса -1 кайтарат

int pos =

line.indexOf ("\" убакыт белгиси / ""); // "\" убакыт белгисин / "" издеп, жооптун башынан бери бардык маалыматтарды көчүрүп алыңыз, бул сиздин убакыт белгиси болот

эгер (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 күтө туруңуз …");while (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

кечигүү (500);

}Serial.println ("");Serial.println ("WiFi туташты");

Serial.println ( IP

дареги: );Serial.println (WiFi.localIP ());

кечигүү (500);

}

боштук цикл ()

{

{

////////////////////////////////////////// СУРОО ЖӨНӨТҮҮ ЖАНА

ЖООПТУ АЛЫҢЫЗ ///////////////////////

мааниси =

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 ичинде");

String 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 ("Серверге туташты!");

/* HTTP түзүү

өтүнүч */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Хост: api.thingsai.io");//client.println("Байланыш: жабуу ");client.println ("Content-Type: application/json");

client.println ( cache-control:

жок кэш ");client.println ("Уруксат: алып жүрүүчү eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT")client.print ("Content-Length:");

client.println (PostValue.length ());client.println ();client.println (PostValue);

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

булут бүттү жана эми булут серверинин жооп түрүн алыңыз /////////////////

Serial.print ( Жооп күтүлүүдө

);

ал эми

(! client.available ()) {

кечиктирүү (50);

//Serial.print (".");

}

/* эгер маалыматтар болсо

жеткиликтүү, анан алыңыз жана Терминалга басып чыгарыңыз */

ал эми

(client.available ()) {

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

}

/* Эгерде

сервер ажыратылды, кардарды токтотуу */

эгер

(! client.connected ()) {Serial.println ();Serial.println ("Сервер ажыратылды");

client.stop ();

}

}

Serial.println ( ////////////////////// АКЫРЫ

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

кечигүү (3000);

}

}

4 -кадам: ЧЫГУУ:

ЧЫГУУ
ЧЫГУУ

Коддун чыгышы көрсөтүлөт.

5 -кадам: GRAPH

ГРАФИК
ГРАФИК

Бул сенсордон окулган баалуулуктардын графикалык көрүнүшү.

6 -кадам:

Бул жерде долбоордун толук видеосу. Рахмат.

Сунушталууда: