Mục lục:

Đo độ ẩm của đất bằng nền tảng Esp32 và Thingsio.ai: 6 bước
Đo độ ẩm của đất bằng nền tảng Esp32 và Thingsio.ai: 6 bước

Video: Đo độ ẩm của đất bằng nền tảng Esp32 và Thingsio.ai: 6 bước

Video: Đo độ ẩm của đất bằng nền tảng Esp32 và Thingsio.ai: 6 bước
Video: [ThingsBoard] Thiết kế giao diện hiển thị trên Dashboard 2024, Tháng mười một
Anonim
Đo độ ẩm của đất bằng nền tảng Esp32 và Thingsio.ai
Đo độ ẩm của đất bằng nền tảng Esp32 và Thingsio.ai

Trong hướng dẫn này, tôi sẽ giải thích về cách đọc độ ẩm trong đất bằng cách sử dụng esp32 và sau đó gửi các giá trị vào nền tảng đám mây Thingsio.ai IoT.

Bước 1: THÀNH PHẦN

CÁC THÀNH PHẦN
CÁC THÀNH PHẦN
CÁC THÀNH PHẦN
CÁC THÀNH PHẦN

Các thành phần phần cứng:

1. Ban phát triển esp32

2. cảm biến đất

3. dây thắng

Phần mềm:

1. Arduino IDE

2. Thingsio.ai

Bước 2: KẾT NỐI

KẾT NỐI
KẾT NỐI

Cảm biến độ ẩm của đất ---------------------- esp32 Board

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

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

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

Bước 3: GIẢI MÃ:

#bao gồm

#bao gồm

#bao gồm

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

int t;

int sensor_pin = A0;

giá trị int;

////////////////////////////////////////// TẤT CẢ KHAI BÁO

cho CLOUD ////////////////////////////////

const char * host = "api.thingsai.io"; // HOẶC máy chủ =

devapi2.thethingscloud.com

const char * post_url = "/ devices / deviceData"; // HOẶC

/ api / v2 / thingscloud2 / _table / data_ac

const char * time_server =

"baas.thethingscloud.com"; // đây là để chuyển đổi dấu thời gian

const int httpPort = 80;

const int httpsPort = 443;

const char * máy chủ =

"api.thingsai.io"; // URL máy chủ

dấu thời gian char [10];

WiFiMulti WiFiMulti;

// Sử dụng lớp WiFiClient để tạo kết nối TCP

Máy khách WiFiClient;

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

Hàm tính toán ///////////////////////////////////////////

int GiveMeTimestamp ()

{

không ký lâu

thời gian chờ = millis ();

// Máy khách WiFiClient;

trong khi

(client.available () == 0)

{

nếu (mili () -

thời gian chờ> 50000)

{

client.stop ();

trả về 0;

}

}

while (client.available ())

{

Dòng chuỗi =

client.readStringUntil ('\ r'); // indexOf () là một phép tìm kiếm smthng, nó trả về -1 nếu không tìm thấy

int pos =

line.indexOf ("\" dấu thời gian / ""); // tìm kiếm "\" dấu thời gian / "" từ đầu câu trả lời đã nhận và sao chép tất cả dữ liệu sau đó, nó sẽ là dấu thời gian của bạn

if (pos> =

0)

{

int j = 0;cho (j = 0; j <10; j ++)

{dấu thời gian [j] = line [pos + 12 + j];

}

}

}

}

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

void setup ()

{Serial.begin (115200);Serial.println ("Đọc Từ Cảm biến…");

chậm trễ (2000);

// Chúng tôi bắt đầu bởi

kết nối với mạng WiFi

WiFiMulti.addAP ("Wifi_name", "Mật khẩu mạng wifi");

Serial.println ();

Serial.println ();Serial.print ("Chờ WiFi…");trong khi (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

chậm trễ (500);

}Serial.println ("");Serial.println ("Đã kết nối WiFi");

Serial.println ( IP

Địa chỉ: );Serial.println (WiFi.localIP ());

chậm trễ (500);

}

void loop ()

{

{

/////////////////////////////////////////// GỬI CÂU HỎI VÀ

NHẬN LẠI LỜI TRẢ LỜI /////////////////////////

giá trị =

analogRead (sensor_pin);

// giá trị =

bản đồ (giá trị, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (giá trị);Serial.println ("%");chậm trễ (1000);Serial.print ("đang kết nối với");Serial.println (máy chủ); // được định nghĩa ngược: - host = devapi2.thethingscloud.com hoặc 139.59.26.117

///////////////////////////////////////// MÃ TIMESTAMP SNIPPET

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

Serial.println ("bên trong lấy dấu thời gian / n");

nếu như

(! client.connect (time_server, {

trở lại;

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

}client.println ("GET / api / timestamp HTTP / 1.1"); // Phần này đang làm gì vậy, tôi không hiểuclient.println ("Máy chủ: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp ();

// nó sẽ gọi hàm sẽ nhận được phản hồi dấu thời gian từ máy chủ

Serial.println ("đã nhận được dấu thời gian");

Serial.println (dấu thời gian);Serial.println ("bên trong ThingsCloudPost");

Chuỗi PostValue =

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

PostValue =

PostValue + ", \" dts / ":" + dấu thời gian;

PostValue =

PostValue + ", \" data / ": {" MOIST / ":" + value + "}" + "}";Serial.println (PostValue);

/ * tạo một phiên bản của WiFiClientSecure * /

Máy khách WiFiClientSecure;Serial.println ("Kết nối với máy chủ qua cổng 443");

nếu như

(! client.connect (server, 443)) {Serial.println ("Kết nối không thành công!");

} khác {Serial.println ("Đã kết nối với máy chủ!");

/ * tạo

lời yêu cầu */client.println ("POST / devices / deviceData HTTP / 1.1");client.println ("Máy chủ: api.thingsai.io");//client.println("Connection: close ");client.println ("Loại-Nội dung: ứng dụng / json");

client.println ( cache-control:

không có bộ nhớ cache ");client.println ("Ủy quyền: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PWV5AGs9")client.print ("Nội dung-Độ dài:");

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

//////////////////////////////////// ĐĂNG dữ liệu lên

đám mây đã xong và bây giờ nhận được máy chủ đám mây biểu mẫu phản hồi ////////////////////

Serial.print ( Đang chờ phản hồi

);

trong khi

(! client.available ()) {

chậm trễ (50);

//Serial.print (".");

}

/ * nếu dữ liệu là

có sẵn sau đó nhận và in ra Terminal * /

trong khi

(client.available ()) {

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

}

/ * nếu

máy chủ bị ngắt kết nối, dừng máy khách * /

nếu như

(! client.connected ()) {Serial.println ();Serial.println ("Máy chủ đã ngắt kết nối");

client.stop ();

}

}

Serial.println ( //////////////////////// THE END

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

chậm trễ (3000);

}

}

Bước 4: ĐẦU RA:

ĐẦU RA
ĐẦU RA

Đầu ra của mã được hiển thị.

Bước 5: ĐỒ HỌA

ĐỒ HỌA
ĐỒ HỌA

Đây là biểu diễn đồ họa của các giá trị được đọc từ cảm biến.

Bước 6:

Đây là video hoàn chỉnh của dự án. Cảm ơn.

Đề xuất: