Turinys:
- 1 žingsnis: KOMPONENTAI
- 2 žingsnis: JUNGTYS
- 3 žingsnis: KODAVIMAS:
- 4 žingsnis: IŠVADA:
- 5 žingsnis: GRAFIKA
- 6 žingsnis:
Video: Dirvožemio drėgmės turinio matavimas naudojant Esp32 ir „Thingsio.ai“platformą: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Šioje pamokoje aš paaiškinsiu, kaip skaityti drėgmės kiekį dirvožemyje naudojant esp32, o tada siunčiant vertes į thingsio.ai IoT debesų platformą.
1 žingsnis: KOMPONENTAI
Techninės įrangos komponentai:
1. esp32 kūrimo lenta
2. Dirvožemio jutiklis
3. Džemperio laidai
Programinė įranga:
1. „Arduino IDE“
2. Thingsio.ai
2 žingsnis: JUNGTYS
Dirvožemio drėgmės jutiklis ---------------------- esp32 Board
VCC --------------------------------------- 3V3
GND -------------------------------------- GND
A0 ---------------------------------------- VP
3 žingsnis: KODAVIMAS:
#įtraukti
#įtraukti
#įtraukti
int skaičius = 0, i, m, j, k;
int t;
int sensor_pin = A0;
int vertė;
//////////////////////////////////////////////////////// VISI DEKLARACIJOS
CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // ARBA šeimininkas =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // ARBA
/api/v2/thingscloud2/_table/data_ac
const char* laiko_serveris =
„baas.thethingscloud.com“; // tai yra laiko žymos konvertavimas
const int httpPort = 80;
const int httpsPort = 443;
const char* serveris =
"api.thingsai.io"; // Serverio URL
char laiko žyma [10];
WiFiMulti WiFiMulti;
// Naudokite „WiFiClient“klasę, kad sukurtumėte TCP ryšius
„WiFiClient“klientas;
////////////////////////////////////////////////////// TIMESTAMP
APSKAIČIAVIMO funkcija ///////////////////////////////////////
int GiveMeTimestamp ()
{
nepasirašytas ilgai
skirtasis laikas = milis ();
// „WiFiClient“klientas;
tuo tarpu
(client.available () == 0)
{
jei (milis () -
skirtasis laikas> 50000)
{
client.stop ();
grįžti 0;
}
}
o (client.available ())
{
Eilutės eilutė =
client.readStringUntil ('\ r'); // indexOf () yra funkcija ieškoti smthng, ji grąžina -1, jei nerasta
int pos =
line.indexOf ("\" laiko žyma / ""); // ieškokite "\" laiko žymos / "" nuo atsakymo pradžios ir nukopijuokite visus duomenis po to, tai bus jūsų laiko žyma
jei (poz> =
0)
{
int j = 0;(j = 0; j <10; j ++)
{laiko žyma [j] = eilutė [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
negaliojanti sąranka ()
{Serial.begin (115200);Serial.println („Skaitymas iš jutiklio …“);
vėlavimas (2000 m.);
// Pradedame nuo
prisijungimas prie „WiFi“tinklo
„WiFiMulti.addAP“(„Wifi_name“, „Wifi_Password“);
Serial.println ();
Serial.println ();Serial.print („Palaukite„ WiFi “…“);while (WiFiMulti.run ()! = WL_CONNECTED) {Serijinis atspaudas (".");
vėlavimas (500);
}Serial.println ("");Serial.println („WiFi prijungtas“);
Serial.println ( IP
adresas: );Serial.println (WiFi.localIP ());
vėlavimas (500);
}
tuštumos kilpa ()
{
{
////////////////////////
GAUTI ATSAKYMĄ ///////////////////////
vertė =
analogRead (sensor_pin);
// vertė =
žemėlapis (vertė, 550, 0, 0, 100);Serial.print („Mositure:“);Serial.print (vertė);Serial.println ("%");vėlavimas (1000);Serial.print ("prisijungimas prie");Serial.println (priegloba); // apibrėžta aukštyn kojomis:- šeimininkas = devapi2.thethingscloud.com arba 139.59.26.117
////////////////////////
/////////////////////////
Serial.println ("viduje gauti laiko žymę / n");
jei
(! client.connect (time_server, {
grįžti;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/laiko žymė HTTP/1.1"); // Ką daro ši dalis, aš nesupratauclient.println ("Priimančioji: baas.thethingscloud.com");client.println („Cache-Control: no-cache“);client.println („Paštininkas-žetonas: ea3c18c6-09ba-d049-ccf3-369a22a284b8“);
klientas.println ();
GiveMeTimestamp ();
// jis iškvies funkciją, kuri iš serverio gaus laiko žymės atsakymą
Serial.println ("gauta laiko žyma");
Serial.println (laiko žyma);Serial.println ("viduje ThingsCloudPost");
Eilutė PostValue =
"{" device_id / ": 61121695918, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + laiko žyma;
PostValue =
PostValue +", \" data / ": {" MOIST / ":" +value +"}" +"}";Serial.println (PostValue);
/ * sukurti „WiFiClientSecure“egzempliorių */
„WiFiClientSecure“klientas;Serial.println („Prisijunkite prie serverio per 443 prievadą“);
jei
(! client.connect (serveris, 443)) {Serial.println ("Nepavyko prisijungti!");
} Kitas {Serial.println ("Prisijungta prie serverio!");
/* sukurti
prašymas */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Priegloba: api.thingsai.io");//client.println("Connection: close ");client.println ("Turinio tipas: programa/json");
client.println ( cache-control:
be talpyklos “);client.println ("Autorizacija: nešėjas eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2kvkclient.print ("Turinio ilgis:");
client.println (PostValue.length ());klientas.println ();client.println („PostValue“);
//////////////////////////////////////////////// Skelbdami duomenis į
debesis baigtas ir dabar gaukite atsakymo formą iš debesies serverio //////////////////
Serial.print ( Laukiama atsakymo
);
tuo tarpu
(! client.available ()) {
vėlavimas (50);
//Serijinis atspaudas (".");
}
/* jei duomenys yra
galima gauti ir spausdinti į terminalą */
tuo tarpu
(client.available ()) {
char c = client.read ();Serial.write (c);
}
/* jei
serveris atjungtas, sustabdykite klientą */
jei
(! client.connected ()) {Serial.println ();Serial.println („Serveris atjungtas“);
client.stop ();
}
}
Serial.println ( ////////////////////// PABAIGA
///////////////////// );
vėlavimas (3000);
}
}
4 žingsnis: IŠVADA:
Rodomas kodo išvestis.
5 žingsnis: GRAFIKA
Tai grafinis reikšmių, nuskaitytų iš jutiklio, atvaizdavimas.
6 žingsnis:
Čia yra visas projekto vaizdo įrašas. Ačiū.
Rekomenduojamas:
Dirvožemio drėgmės matavimas naudojant Raspberry Pi 4: 4 žingsnius
Dirvožemio drėgmės matavimas naudojant Raspberry Pi 4: Ar žinote, kaip dažnai laistyti augalus? Arba išliejo augalus ir juos pametė. Kad tai išspręstų, maniau, kad būtų daug svarbiau, jei mes nustatytume vandens kiekį dirvožemyje, kad galėtume priimti sprendimą dėl tinkamo augalų laistymo
Dirvožemio drėgmės stebėjimo ir valdymo sistema naudojant „NodeMCU“: 6 žingsniai
Daiktų interneto pagrindu sukurta dirvožemio drėgmės stebėjimo ir valdymo sistema naudojant „NodeMCU“: Šioje pamokoje ketiname įdiegti daiktų interneto pagrindu sukurtą dirvožemio drėgmės stebėjimo ir valdymo sistemą, naudojant ESP8266 „WiFi“modulį, ty „NodeMCU“. Šiam projektui reikalingi komponentai: ESP8266 „WiFi“modulis- „Amazon“(334/- INR) relės modulis- „Amazon“(130/- INR
Kaip naudoti dirvožemio drėgmės jutiklį naudojant „Arduino“: 4 žingsniai
Kaip naudoti dirvožemio drėgmės jutiklį naudojant „Arduino“: Dirvožemio drėgmės jutiklis yra jutiklis, kuriuo galima matuoti drėgmę dirvožemyje. Tinka protingo ūkininkavimo projektų, drėkinimo valdiklių ar daiktų interneto žemės ūkio projektų prototipams gaminti. Šis jutiklis turi 2 zondus. Kuris įpratęs
Dirvožemio drėgmės matavimas naudojant „Arduino“: 6 žingsniai
Dirvožemio drėgmės matavimas naudojant „Arduino“: šioje trumpoje pamokoje aš parodysiu, kaip skaityti dirvožemio drėgmės jutiklį naudojant arduino ir atspausdinti dirvožemio drėgmės lygį „Arduino“serijos monitoriuje. Originalią mano parašytą žinutę galite rasti Sinhala frim šioje nuorodoje
Temperatūros matavimas naudojant „Esp32“ir „Thingsio.ai“platformą: 6 žingsniai
Temperatūros matavimas naudojant „Esp32“ir „Thingsio.ai“platformą: Šioje pamokoje aš paaiškinsiu, kaip matuoti temperatūrą aplinkoje naudojant įmontuotą temperatūros jutiklį, esantį esp32 kūrimo plokštėje. „esp32“turi daug įmontuotų jutiklių, tokių kaip salės jutiklis, naudojamas kaip artumo jutiklis, palieskite