Мазмуну:
- 1 -кадам: КОМПОНЕНТТЕР
- 2 -кадам: БАЙЛАНЫШТАР
- 3 -кадам: КОД:
- 4 -кадам: ЧЫГУУ:
- 5 -кадам: GRAPH
- 6 -кадам:
Video: Esp32 жана Thingsio.ai платформасын колдонуу менен топурактын нымдуулугун өлчөө: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул үйрөткүчтө мен 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 -кадам:
Бул жерде долбоордун толук видеосу. Рахмат.
Сунушталууда:
Raspberry Pi менен топурактын нымдуулугун өлчөө 4: 4 кадам
Raspberry Pi 4 менен топурактын нымдуулугун өлчөө: Сиз өсүмдүктөрдү канчалык тез -тез сугарууну билесизби? Же өсүмдүктөрдү төгүп, жоготуп коюшту. Муну чечүү үчүн, эгерде биз өсүмдүктөрдү сугаруу боюнча чечим кабыл алуу үчүн топурактын ичиндеги суунун баалуулугун ала турган болсок, анда бир топ олуттуу болмок деп ойлогом
DHT ESP8266 жана AskSensors IoT платформасын колдонуу менен температура жана нымдуулукту көзөмөлдөө: 8 кадам
DHT ESP8266 жана AskSensors IoT Платформасын колдонуп, температураны жана нымдуулукту көзөмөлдөө: Мурунку көрсөтмөлөрдө мен ESP8266 nodeMCU жана AskSensors IoT платформасын баштоо үчүн этап -этабы менен көрсөтмө бергем. MCU түйүнүнө. DHT11 - бул көбүнчө температура жана нымдуу
Топурактын нымдуулугун Arduino менен өлчөө: 6 кадам
Топурактын нымдуулугун Arduino менен өлчөө: Бул тез үйрөткүчтө мен сизге arduino аркылуу топурактын нымдуулук сенсорун кантип окуп, топурактын нымдуулук деңгээлин Arduino сериялык мониторунда басып чыгарууну көрсөтөм. Бул шилтемеден Синхаладан мен жазган оригиналдуу постту таба аласыз
Esp32 жана Thingsio.ai платформасын колдонуу менен температураны өлчөө: 6 кадам
Esp32 жана Thingsio.ai платформасын колдонуу менен температураны өлчөө: Бул окуу куралында мен esp32 өнүктүрүү тактасында камтылган температура сенсорун колдонуу менен айланадагы температураны өлчөө жөнүндө айтып берейин. esp32де көптөгөн сенсорлор бар, алар жакындык сенсору катары колдонулган зал сенсору сыяктуу
Топурактын нымдуулугун үн амплитудалары менен өлчөө: 6 кадам (сүрөттөр менен)
Топурактын нымдуулугун үн амплитудалары менен өлчөгүлө: Бул окуу куралында биз топурактын нымдуулугун үн амплитудасы менен өлчөөчү аппаратты кантип жасоону түшүндүрөбүз